premiscale


Namepremiscale JSON
Version 0.0.5 PyPI version JSON
download
home_pagehttps://premiscale.com
SummaryPremiScale autoscaler
upload_time2024-06-27 12:41:52
maintainerEmma Doyle
docs_urlNone
authorEmma Doyle
requires_python<4.0,>=3.10
licenseBSL 1.1
keywords premiscale kubernetes virtual machine infrastructure autoscaling asg kvm libvirt
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # PremiScale

![GitHub Release](https://img.shields.io/github/v/release/premiscale/premiscale?include_prereleases&sort=semver&display_name=release&link=https%3A%2F%2Fgithub.com%2Fpremiscale%2Fpremiscale%2Freleases)
![Business License 1.1](https://img.shields.io/badge/License-Business_Source_1.1-red)


PremiScale is a controller that brings autoscaling of virtual and physical infrastructure to local, self-hosted and private datacenters, 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` (the default) and `standalone` modes. In either configuration, the controller aims to start only relevant processes for both data collection and managing virtual machines. Users are required at this time to provide a list of hosts on which virtual machines can be created, in addition to a list of autoscaling groups, into which virtual machines the controller manages, are organized.

### Standalone

In `standalone` mode (the default), the controller starts its own time series data collection process.

<p align="center" width="100%">
  <img width="100%" src="https://raw.githubusercontent.com/premiscale/premiscale/master/img/premiscale-architecture-controller_internal_autoscaler_enabled.png" alt="premiscale architecture: internal autoscaler enabled">
</p>

### Kubernetes

Starting the controller in `kubernetes` mode starts relevant components of the controller that allow it to interface with the cluster autoscaler.

<p align="center" width="100%">
  <img width="100%" src="https://raw.githubusercontent.com/premiscale/premiscale/master/img/premiscale-architecture-controller_internal_autoscaler_disabled.png" alt="premiscale architecture: internal autoscaler disabled">
</p>

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.

            

Raw data

            {
    "_id": null,
    "home_page": "https://premiscale.com",
    "name": "premiscale",
    "maintainer": "Emma Doyle",
    "docs_url": null,
    "requires_python": "<4.0,>=3.10",
    "maintainer_email": "emma@premiscale.com",
    "keywords": "premiscale, kubernetes, virtual machine, infrastructure, autoscaling, asg, kvm, libvirt",
    "author": "Emma Doyle",
    "author_email": "emma@premiscale.com",
    "download_url": "https://files.pythonhosted.org/packages/ef/2f/2ca9658875a1432234893fa98bb5839c1169b36ac97b21403febc25e16c5/premiscale-0.0.5.tar.gz",
    "platform": null,
    "description": "# PremiScale\n\n![GitHub Release](https://img.shields.io/github/v/release/premiscale/premiscale?include_prereleases&sort=semver&display_name=release&link=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 datacenters, 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` (the default) and `standalone` modes. In either configuration, the controller aims to start only relevant processes for both data collection and managing virtual machines. Users are required at this time to provide a list of hosts on which virtual machines can be created, in addition to a list of autoscaling groups, into which virtual machines the controller manages, are organized.\n\n### Standalone\n\nIn `standalone` mode (the default), the controller starts its own time series data collection process.\n\n<p align=\"center\" width=\"100%\">\n  <img width=\"100%\" src=\"https://raw.githubusercontent.com/premiscale/premiscale/master/img/premiscale-architecture-controller_internal_autoscaler_enabled.png\" alt=\"premiscale architecture: internal autoscaler enabled\">\n</p>\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<p align=\"center\" width=\"100%\">\n  <img width=\"100%\" src=\"https://raw.githubusercontent.com/premiscale/premiscale/master/img/premiscale-architecture-controller_internal_autoscaler_disabled.png\" alt=\"premiscale architecture: internal autoscaler disabled\">\n</p>\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",
    "bugtrack_url": null,
    "license": "BSL 1.1",
    "summary": "PremiScale autoscaler",
    "version": "0.0.5",
    "project_urls": {
        "Documentation": "https://docs.premiscale.com",
        "Homepage": "https://premiscale.com",
        "Repository": "https://github.com/premiscale/premiscale"
    },
    "split_keywords": [
        "premiscale",
        " kubernetes",
        " virtual machine",
        " infrastructure",
        " autoscaling",
        " asg",
        " kvm",
        " libvirt"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "deca5d494d6ac5adb5a066071479348241476b108fa9989ec4882810908cac72",
                "md5": "4ac80d33977656428be9377fb2881697",
                "sha256": "619434adf85095e367bf3f4a00cc84880a0904ee89f836db5882e152b80dd330"
            },
            "downloads": -1,
            "filename": "premiscale-0.0.5-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "4ac80d33977656428be9377fb2881697",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": "<4.0,>=3.10",
            "size": 51100,
            "upload_time": "2024-06-27T12:41:51",
            "upload_time_iso_8601": "2024-06-27T12:41:51.646844Z",
            "url": "https://files.pythonhosted.org/packages/de/ca/5d494d6ac5adb5a066071479348241476b108fa9989ec4882810908cac72/premiscale-0.0.5-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "ef2f2ca9658875a1432234893fa98bb5839c1169b36ac97b21403febc25e16c5",
                "md5": "d8254bd6a03de951f8c8338f7d3f0cc4",
                "sha256": "0e4d9b495a3fed9d57c532a1bc9d1ee00ff68eef7d4a9c573ec7598aa900f8f0"
            },
            "downloads": -1,
            "filename": "premiscale-0.0.5.tar.gz",
            "has_sig": false,
            "md5_digest": "d8254bd6a03de951f8c8338f7d3f0cc4",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": "<4.0,>=3.10",
            "size": 34599,
            "upload_time": "2024-06-27T12:41:52",
            "upload_time_iso_8601": "2024-06-27T12:41:52.733822Z",
            "url": "https://files.pythonhosted.org/packages/ef/2f/2ca9658875a1432234893fa98bb5839c1169b36ac97b21403febc25e16c5/premiscale-0.0.5.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-06-27 12:41:52",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "premiscale",
    "github_project": "premiscale",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "circle": true,
    "requirements": [],
    "lcname": "premiscale"
}
        
Elapsed time: 0.27521s