https://github.com/premiscale/premiscale
The PremiScale autoscaling controller for Kubernetes
https://github.com/premiscale/premiscale
autoscaling infrastructure kubernetes
Last synced: 11 months ago
JSON representation
The PremiScale autoscaling controller for Kubernetes
- Host: GitHub
- URL: https://github.com/premiscale/premiscale
- Owner: premiscale
- License: other
- Created: 2022-09-03T22:50:58.000Z (almost 4 years ago)
- Default Branch: master
- Last Pushed: 2025-04-10T18:33:05.000Z (over 1 year ago)
- Last Synced: 2025-04-10T19:55:23.073Z (over 1 year ago)
- Topics: autoscaling, infrastructure, kubernetes
- Language: Python
- Homepage: https://premiscale.com
- Size: 6.24 MB
- Stars: 1
- Watchers: 0
- Forks: 0
- Open Issues: 12
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
# PremiScale


PremiScale 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).
## Architecture
PremiScale 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.
The 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.
### Standalone
In `standalone` mode, the controller starts its own time series data collection process.
### Kubernetes
Starting the controller in `kubernetes` mode starts relevant components of the controller that allow it to interface with the cluster autoscaler.
Note 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.
## Configuration
The 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).
## Installation
This project is intended to be deployed to Kubernetes, whether you intend to integrate with the cluster autoscaler or not.
See the Helm [chart README](https://github.com/premiscale/premiscale/tree/master/helm/premiscale) for an overview of controller installation.