{"id":21600943,"url":"https://github.com/premiscale/premiscale","last_synced_at":"2025-09-06T05:44:45.710Z","repository":{"id":242246470,"uuid":"532390595","full_name":"premiscale/premiscale","owner":"premiscale","description":"The PremiScale autoscaling controller for Kubernetes","archived":false,"fork":false,"pushed_at":"2025-04-10T18:33:05.000Z","size":6543,"stargazers_count":1,"open_issues_count":12,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-04-10T19:55:23.073Z","etag":null,"topics":["autoscaling","infrastructure","kubernetes"],"latest_commit_sha":null,"homepage":"https://premiscale.com","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/premiscale.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2022-09-03T22:50:58.000Z","updated_at":"2024-07-29T23:51:20.000Z","dependencies_parsed_at":"2024-06-01T17:55:19.255Z","dependency_job_id":"b72741c9-25bd-4665-95d4-eb3b13001838","html_url":"https://github.com/premiscale/premiscale","commit_stats":null,"previous_names":["premiscale/premiscale"],"tags_count":7,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/premiscale%2Fpremiscale","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/premiscale%2Fpremiscale/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/premiscale%2Fpremiscale/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/premiscale%2Fpremiscale/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/premiscale","download_url":"https://codeload.github.com/premiscale/premiscale/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248289586,"owners_count":21078917,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["autoscaling","infrastructure","kubernetes"],"created_at":"2024-11-24T19:07:46.351Z","updated_at":"2025-04-11T02:12:45.006Z","avatar_url":"https://github.com/premiscale.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# PremiScale\n\n![GitHub Release](https://img.shields.io/github/v/release/premiscale/premiscale?include_prereleases\u0026sort=semver\u0026display_name=release\u0026link=https%3A%2F%2Fgithub.com%2Fpremiscale%2Fpremiscale%2Freleases)\n![Business License 1.1](https://img.shields.io/badge/License-Business_Source_1.1-red)\n\n\nPremiScale is a controller that brings autoscaling of virtual and physical infrastructure to local, self-hosted and private data centers, with a particular focus on integrating with the Kubernetes [cluster autoscaler](https://github.com/kubernetes/autoscaler).\n\n## Architecture\n\nPremiScale uses [libvirt](https://libvirt.org/) to connect to hosts and manage lifecycles of virtual machines. The Libvirt daemon provides a rich API for interacting with hypervisors, hosts and virtual machines.\n\nThe controller can be configured to run in two different modes, including `kubernetes` and `standalone` modes. In either configuration, the controller aims to start only relevant processes for both data collection and managing virtual machines and hardware.\n\n### Standalone\n\nIn `standalone` mode, the controller starts its own time series data collection process.\n\n\u003cp align=\"center\" width=\"100%\"\u003e\n  \u003cimg width=\"100%\" src=\"https://raw.githubusercontent.com/premiscale/premiscale/master/img/premiscale-architecture-controller_internal_autoscaler_enabled.svg\" alt=\"premiscale architecture: internal autoscaler enabled\"\u003e\n\u003c/p\u003e\n\n### Kubernetes\n\nStarting the controller in `kubernetes` mode starts relevant components of the controller that allow it to interface with the cluster autoscaler.\n\n\u003cp align=\"center\" width=\"100%\"\u003e\n  \u003cimg width=\"100%\" src=\"https://raw.githubusercontent.com/premiscale/premiscale/master/img/premiscale-architecture-controller_internal_autoscaler_disabled.svg\" alt=\"premiscale architecture: internal autoscaler disabled\"\u003e\n\u003c/p\u003e\n\nNote that, in this configuration, the controller does not require a time series database. State is still reconciled, but the time series signal comes from the cluster autoscaler instead.\n\n## Configuration\n\nThe controller is configured in a couple ways, including its command line interface, environment variables (as indicated in the help text below), and through the required config file (all versions of which are documented [here](https://github.com/premiscale/premiscale/tree/master/src/premiscale/config/docs) in this repository).\n\n## Installation\n\nThis project is intended to be deployed to Kubernetes, whether you intend to integrate with the cluster autoscaler or not.\n\nSee the Helm [chart README](https://github.com/premiscale/premiscale/tree/master/helm/premiscale) for an overview of controller installation.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpremiscale%2Fpremiscale","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpremiscale%2Fpremiscale","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpremiscale%2Fpremiscale/lists"}