Skip to main content

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.

Metadata

Release files for orkestr-core 0.1.9

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for orkestr-core 0.1.9
File Size Uploaded Provenance
orkestr_core-0.1.9.tar.gz 24.0 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for orkestr-core 0.1.9
File Interpreter ABI Platform
orkestr_core-0.1.9-py3-none-any.whl Python 3 none any Details

Total release size: 65.6 kB

Release files / orkestr_core-0.1.9.tar.gz

Download URL orkestr_core-0.1.9.tar.gz
Size 24.0 kB
Tags Source
SHA-256 checksum
How to use checksums
4a83ecaf9c993ddcff568628428ef04fe65015c9f5a531f2dfa3de6816d9ec14
BLAKE2b-256 checksum
How to use checksums
3e9a20c4df2a4a98da5c6ee2028e12cef9f97ea2c1f41b4437825c05d5b9e96d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/2.1.1 CPython/3.11.12 Linux/6.8.0-1021-azure

Release files / orkestr_core-0.1.9-py3-none-any.whl

Download URL orkestr_core-0.1.9-py3-none-any.whl
Size 41.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
c67362ae57c478b756b164e2380b01273f131137210d8164d037c42a00659ce6
BLAKE2b-256 checksum
How to use checksums
7af01a537e46a8844845afbe1d7ce914c5ebf8ac1171ea7b19865e395cdbada8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/2.1.1 CPython/3.11.12 Linux/6.8.0-1021-azure

Security for orkestr-core 0.1.9

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page