Skip to main content

Framework for orchestrating infrastructure and services in a multi-cloud environment

Project description

Introduction

Orkestr is a framework for orchestrating infrastructure and services in a multi-cloud environment. It is designed to be a lightweight, flexible, and extensible framework that can be used to manage infrastructure and services.

Note: Orkestr is currently in the early stages of development. The API and functionality may change as we continue to develop the framework.

Installation

To install Orkestr, you can use pip:

pip install orkestr-core

Usage

Here is an example of how to initialize an Orkestr instance, create a cluster, and scale it:

import asyncio
from orkestr_core import Orkestr, Cluster, Service
from orkestr_core.constants.providers import ProviderName, OrkestrRegion
from orkestr_core.base.node_spec import NodeSpec, NodeSpecConfiguration
from orkestr_core.base.service import ClusterConfiguration
from orkestr_core.datastores.global_datastore import set_global_datastore
from orkestr_core.datastores.sqlite.sqlite_datastore import SQLiteDatastore

async def main():
    # Set up the datastore
    datastore = SQLiteDatastore(db_path='orkestr.db')
    set_global_datastore(datastore)

    # Initialize Orkestr
    orkestr = Orkestr(
        providers=[ProviderName.TEST_PROVIDER],
        regions=[OrkestrRegion.US_EAST_1]
    )
    await orkestr.start_scheduler()

    # Define a NodeSpec
    node_spec_config = NodeSpecConfiguration(
        machine_type="t2.micro",
        user_data_script="echo 'Hello World'",
        environment_variables={}
    )
    node_spec = NodeSpec(
        name="ExampleNodeSpec",
        region=OrkestrRegion.US_EAST_1,
        versions=[node_spec_config]
    )

    # Define a Cluster
    cluster = Cluster(
        name="ExampleCluster",
        cluster_id="example_cluster",
        region=OrkestrRegion.US_EAST_1,
        provider=ProviderName.TEST_PROVIDER,
        node_spec_id=node_spec.id,
        node_spec_version=0,
        max_nodes=3
    )

    # Save configurations to the datastore
    datastore.save_node_spec(node_spec)
    datastore.save_cluster(cluster)

    # Scale the cluster
    orkestr.cluster_orchestrator.scale(
        cluster_id=cluster.cluster_id,
        region=OrkestrRegion.US_EAST_1,
        desired_nodes=2
    )

    print("Cluster scaled successfully!")

# Run the example
asyncio.run(main())

Docs

To know more about Orkestr, see the Docs.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

orkestr_core-0.1.9.tar.gz (24.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

orkestr_core-0.1.9-py3-none-any.whl (41.5 kB view details)

Uploaded Python 3

File details

Details for the file orkestr_core-0.1.9.tar.gz.

File metadata

  • Download URL: orkestr_core-0.1.9.tar.gz
  • Upload date:
  • Size: 24.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.1.1 CPython/3.11.12 Linux/6.8.0-1021-azure

File hashes

Hashes for orkestr_core-0.1.9.tar.gz
Algorithm Hash digest
SHA256 4a83ecaf9c993ddcff568628428ef04fe65015c9f5a531f2dfa3de6816d9ec14
MD5 2ff9bc5e51e12777b606e6fce99851f8
BLAKE2b-256 3e9a20c4df2a4a98da5c6ee2028e12cef9f97ea2c1f41b4437825c05d5b9e96d

See more details on using hashes here.

File details

Details for the file orkestr_core-0.1.9-py3-none-any.whl.

File metadata

  • Download URL: orkestr_core-0.1.9-py3-none-any.whl
  • Upload date:
  • Size: 41.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.1.1 CPython/3.11.12 Linux/6.8.0-1021-azure

File hashes

Hashes for orkestr_core-0.1.9-py3-none-any.whl
Algorithm Hash digest
SHA256 c67362ae57c478b756b164e2380b01273f131137210d8164d037c42a00659ce6
MD5 68e789febb512195b3b5d3590bdd87c7
BLAKE2b-256 7af01a537e46a8844845afbe1d7ce914c5ebf8ac1171ea7b19865e395cdbada8

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page