corc


Namecorc JSON
Version 0.0.3a1 PyPI version JSON
download
home_pagehttps://github.com/rasmunk/corc
SummaryA tool for managing cloud resources and scheduling compute tasks
upload_time2024-10-30 10:30:33
maintainerNone
docs_urlNone
authorRasmus Munk
requires_pythonNone
licenseMIT
keywords cloud orchstration compute
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            ====
corc
====


.. image:: https://badge.fury.io/py/corc.svg
    :target: https://badge.fury.io/py/corc

**Note**, corc is a small project that is currently under development for providing a set of tools for managing infrastructure components.

corc is a tool for conducting a range of operations for managing infrastructure components via a set of supported providers.
Each provider is defined as a seperate plugin that can be installed and utilized by corc.
The list of components that corc exposes are:

- Configurer
- Compute
- Orchestration
- Storage

Currently, the set of plugins/providers is very limited, and the initial development is focused on the area of
orchestration and the associated `libvirt_provider` plugin.

However, plugin/provider contributions for each of these components are very welcome.

------------
Installation
------------

Installation from pypi::

    pip install corc


Installation from local git repository::

    cd corc
    pip install .


If you have cloned the repo, an alternative way to install corc is to run::

    make install

Which will create a virtual environment, install the required dependencies, and install corc itself.

-----
Usage
-----

Since `corc` is a top level interface for managing infrastucture components, specialized providers that provide the specific implementation have 
to be installed. To accomplish this, each of the different corc components define 
the `add_provider` and `remove_provider` arguments that can be used to install and remove providers::

    usage: corc orchestration [-h] {add_provider,remove_provider,pool,stack} ...

    options:
      -h, --help            show this help message and exit

    COMMAND:
      {add_provider,remove_provider,pool,stack}


For instance, if we want to add the `libvirt_provider <https://pypi.org/project/libvirt-provider/>`_ to the orchestration component, we can do so by running::

    corc orchestration add_provider libvirt_provider


-----------------------------
Orchestrator Stacks and Pools
-----------------------------

As part of the orchestration component, corc defines the concepts of `stacks` and `pools`.
A stack is a collection of resources that are managed and orchestrated by corc.

Stacks are expected to defined as a yaml file that are passed to corc, which is
used to orchestrate a set of resources.

A pool is a construct that can be used to logically group resources.
When a pool is constructed, it is saved to a local state file where the pool is constructed.

When defining a stack as a yaml file, it is supported that pools are defined as part of the stack.
An example of a stack yaml definition can be seen in the ``examples/stack.yml``

The corc orchestration CLI can be used to manage both `stacks` and `pools`::

    :~ corc orchestration -h
    usage: corc orchestration [-h] {add_provider,remove_provider,pool,stack} ...

    options:
    -h, --help            show this help message and exit

    COMMAND:
    {add_provider,remove_provider,pool,stack}


When a stack is deployed, corc will orchestrate the defined resources, create the 
specified pools if nonexistent, and associate resources to their specific pools.

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/rasmunk/corc",
    "name": "corc",
    "maintainer": null,
    "docs_url": null,
    "requires_python": null,
    "maintainer_email": null,
    "keywords": "Cloud, Orchstration, Compute",
    "author": "Rasmus Munk",
    "author_email": "munk1@live.dk",
    "download_url": "https://files.pythonhosted.org/packages/d9/72/b61bdef5815c123d8e96a9a2611deeac8fc3d6dba671b02a21c4a0a7bc35/corc-0.0.3a1.tar.gz",
    "platform": null,
    "description": "====\ncorc\n====\n\n\n.. image:: https://badge.fury.io/py/corc.svg\n    :target: https://badge.fury.io/py/corc\n\n**Note**, corc is a small project that is currently under development for providing a set of tools for managing infrastructure components.\n\ncorc is a tool for conducting a range of operations for managing infrastructure components via a set of supported providers.\nEach provider is defined as a seperate plugin that can be installed and utilized by corc.\nThe list of components that corc exposes are:\n\n- Configurer\n- Compute\n- Orchestration\n- Storage\n\nCurrently, the set of plugins/providers is very limited, and the initial development is focused on the area of\norchestration and the associated `libvirt_provider` plugin.\n\nHowever, plugin/provider contributions for each of these components are very welcome.\n\n------------\nInstallation\n------------\n\nInstallation from pypi::\n\n    pip install corc\n\n\nInstallation from local git repository::\n\n    cd corc\n    pip install .\n\n\nIf you have cloned the repo, an alternative way to install corc is to run::\n\n    make install\n\nWhich will create a virtual environment, install the required dependencies, and install corc itself.\n\n-----\nUsage\n-----\n\nSince `corc` is a top level interface for managing infrastucture components, specialized providers that provide the specific implementation have \nto be installed. To accomplish this, each of the different corc components define \nthe `add_provider` and `remove_provider` arguments that can be used to install and remove providers::\n\n    usage: corc orchestration [-h] {add_provider,remove_provider,pool,stack} ...\n\n    options:\n      -h, --help            show this help message and exit\n\n    COMMAND:\n      {add_provider,remove_provider,pool,stack}\n\n\nFor instance, if we want to add the `libvirt_provider <https://pypi.org/project/libvirt-provider/>`_ to the orchestration component, we can do so by running::\n\n    corc orchestration add_provider libvirt_provider\n\n\n-----------------------------\nOrchestrator Stacks and Pools\n-----------------------------\n\nAs part of the orchestration component, corc defines the concepts of `stacks` and `pools`.\nA stack is a collection of resources that are managed and orchestrated by corc.\n\nStacks are expected to defined as a yaml file that are passed to corc, which is\nused to orchestrate a set of resources.\n\nA pool is a construct that can be used to logically group resources.\nWhen a pool is constructed, it is saved to a local state file where the pool is constructed.\n\nWhen defining a stack as a yaml file, it is supported that pools are defined as part of the stack.\nAn example of a stack yaml definition can be seen in the ``examples/stack.yml``\n\nThe corc orchestration CLI can be used to manage both `stacks` and `pools`::\n\n    :~ corc orchestration -h\n    usage: corc orchestration [-h] {add_provider,remove_provider,pool,stack} ...\n\n    options:\n    -h, --help            show this help message and exit\n\n    COMMAND:\n    {add_provider,remove_provider,pool,stack}\n\n\nWhen a stack is deployed, corc will orchestrate the defined resources, create the \nspecified pools if nonexistent, and associate resources to their specific pools.\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "A tool for managing cloud resources and scheduling compute tasks",
    "version": "0.0.3a1",
    "project_urls": {
        "Homepage": "https://github.com/rasmunk/corc"
    },
    "split_keywords": [
        "cloud",
        " orchstration",
        " compute"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "d58fbc42803ad44e0de1b1492768b9fd3633e211cf6eb4d6e1f669e01c2c2481",
                "md5": "3e6b1537fd71dbf5242cf053d787592c",
                "sha256": "93a53ed9c0876e60739c4e88d0d1a329ccbb3860fdfd6d9b4ff5d63d07531e82"
            },
            "downloads": -1,
            "filename": "corc-0.0.3a1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "3e6b1537fd71dbf5242cf053d787592c",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": null,
            "size": 48490,
            "upload_time": "2024-10-30T10:30:31",
            "upload_time_iso_8601": "2024-10-30T10:30:31.899954Z",
            "url": "https://files.pythonhosted.org/packages/d5/8f/bc42803ad44e0de1b1492768b9fd3633e211cf6eb4d6e1f669e01c2c2481/corc-0.0.3a1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "d972b61bdef5815c123d8e96a9a2611deeac8fc3d6dba671b02a21c4a0a7bc35",
                "md5": "0bfb5dc3b42a716620bc357b65b8db86",
                "sha256": "9bfd8629c3b1f958d8a8c0447ce8408b202df453272afe5183004f2bbd387bfb"
            },
            "downloads": -1,
            "filename": "corc-0.0.3a1.tar.gz",
            "has_sig": false,
            "md5_digest": "0bfb5dc3b42a716620bc357b65b8db86",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": null,
            "size": 29336,
            "upload_time": "2024-10-30T10:30:33",
            "upload_time_iso_8601": "2024-10-30T10:30:33.390953Z",
            "url": "https://files.pythonhosted.org/packages/d9/72/b61bdef5815c123d8e96a9a2611deeac8fc3d6dba671b02a21c4a0a7bc35/corc-0.0.3a1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-10-30 10:30:33",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "rasmunk",
    "github_project": "corc",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "requirements": [],
    "lcname": "corc"
}
        
Elapsed time: 0.36320s