premiscale


Namepremiscale JSON
Version 0.0.7 PyPI version JSON
download
home_pagehttps://premiscale.com
SummaryA Kubernetes controller that automatically scales and administers private virtual and physical infrastructure
upload_time2024-07-17 12:23:36
maintainerEmma Doyle
docs_urlNone
authorEmma Doyle
requires_python<4.0,>=3.10
licenseBSL 1.1
keywords premiscale kubernetes virtual machine infrastructure autoscaling asg qemu xen esx esxi 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 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.

<p align="center" width="100%">
  <img width="100%" src="https://raw.githubusercontent.com/premiscale/premiscale/master/img/premiscale-architecture-controller_internal_autoscaler_enabled.svg" 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.svg" 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, qemu, xen, esx, esxi, kvm, libvirt",
    "author": "Emma Doyle",
    "author_email": "emma@premiscale.com",
    "download_url": "https://files.pythonhosted.org/packages/27/94/991ef10eef1b9082f75a0e6454f5d3d94525c281c9ce038e1173b8ada3f2/premiscale-0.0.7.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 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<p align=\"center\" width=\"100%\">\n  <img width=\"100%\" src=\"https://raw.githubusercontent.com/premiscale/premiscale/master/img/premiscale-architecture-controller_internal_autoscaler_enabled.svg\" 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.svg\" 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\n",
    "bugtrack_url": null,
    "license": "BSL 1.1",
    "summary": "A Kubernetes controller that automatically scales and administers private virtual and physical infrastructure",
    "version": "0.0.7",
    "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",
        " qemu",
        " xen",
        " esx",
        " esxi",
        " kvm",
        " libvirt"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "dac83068378895ea458f2b692cfee24c91eb50f3920f4f5772fb50bfda3a0fbe",
                "md5": "4368c0d255cc441195dad52c012edd3a",
                "sha256": "a68f26c77d59de0b2a92af9ce73e56b62726ad49329fc44f3df51ecbf5f594ef"
            },
            "downloads": -1,
            "filename": "premiscale-0.0.7-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "4368c0d255cc441195dad52c012edd3a",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": "<4.0,>=3.10",
            "size": 54646,
            "upload_time": "2024-07-17T12:23:35",
            "upload_time_iso_8601": "2024-07-17T12:23:35.035782Z",
            "url": "https://files.pythonhosted.org/packages/da/c8/3068378895ea458f2b692cfee24c91eb50f3920f4f5772fb50bfda3a0fbe/premiscale-0.0.7-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "2794991ef10eef1b9082f75a0e6454f5d3d94525c281c9ce038e1173b8ada3f2",
                "md5": "652f2aef34366921951c24e09b6d903c",
                "sha256": "2649d686da6be49ba3577075e004afa6e980e50a9bee36ffe619fa08e9268787"
            },
            "downloads": -1,
            "filename": "premiscale-0.0.7.tar.gz",
            "has_sig": false,
            "md5_digest": "652f2aef34366921951c24e09b6d903c",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": "<4.0,>=3.10",
            "size": 37677,
            "upload_time": "2024-07-17T12:23:36",
            "upload_time_iso_8601": "2024-07-17T12:23:36.654347Z",
            "url": "https://files.pythonhosted.org/packages/27/94/991ef10eef1b9082f75a0e6454f5d3d94525c281c9ce038e1173b8ada3f2/premiscale-0.0.7.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-07-17 12:23:36",
    "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: 2.49934s