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.6.tar.gz (23.9 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.6-py3-none-any.whl (41.4 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: orkestr_core-0.1.6.tar.gz
  • Upload date:
  • Size: 23.9 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.6.tar.gz
Algorithm Hash digest
SHA256 8d148c702072b9d189eb38b45d68c9e0874d7710f548a7a13dce81257bbd2329
MD5 532ec9e6f648d7145cc3cfe7ba62151b
BLAKE2b-256 8057f70ed1ab8f97ef0fdb6bc091b1aaafff1fb3b59bcb6e97f743858b58d06e

See more details on using hashes here.

File details

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

File metadata

  • Download URL: orkestr_core-0.1.6-py3-none-any.whl
  • Upload date:
  • Size: 41.4 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.6-py3-none-any.whl
Algorithm Hash digest
SHA256 7ca37cf4345e019bda8841434b004a6d41cf033e26ae289c1369741482503dd7
MD5 a4b29862f5ee8c7967a207c58fd4ad02
BLAKE2b-256 19513f019ded30f5f1ca94476cec345919ff709cda551969153bfe0e70ae4a1a

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