Oasees SDK
Project description
Oasees SDK
Despite its name, the OASEES SDK is a Rapid Development Toolkit (RDK) developed in the context of the OASEES Project, that:
- Facilitates the provisioning of a Kubernetes cluster that comes with the OASEES framework's core components pre-installed.
- Provides templates and commands for the deployment of user applications in a way that enables immediate interaction with said components, as well as the OASEES Blockchain.
- Provides templates and commands for the development and deployment of Machine Learning and Federated Learning workflows.
The SDK comes in the form of a Python Package, and its functionality is split between two core modules: a Command Line Interface module and a Python module SDK.
CLI
The CLI module's purpose is to handle the Kubernetes aspect of the OASEES framework.
Installation
Like any other user Python package published on the PyPi repository, the user can install the OASEES SDK using pip.
-
Ensure that pip is present on your machine. If not, install it:
sudo apt install python3-pip -
Then either install with pip through its PyPi release:
pip install oasees-sdkOr through its official GitHub repository:
pip install git+https://github.com/oasees/oasees-sdk.git -
Set up the CLI module for use by adding the executable's installation folder to your system's PATH (example for Ubuntu):
export PATH="/home/{USERNAME}/.local/bin:$PATH" -
Make sure that it is working properly by executing:
oasees-sdkWhich will also provide you with the CLI's available commands and a very short description for each one.
Usage
Available commands
As mentioned above, executing oasees-sdk in your terminal will give you a list of the available commands. To get the full description of one of these commands, simply execute:
oasees-sdk [COMMAND] --help
I. Stack and Node Management
Commands for initializing the OASEES stack on the master node and managing worker nodes.
-
oasees-sdk init- Description: Provisions the Oasees stack on the master node.
- Argument:
--expose-ip <YOUR_MASTERS_IP>(Required): The IP address of the master node to expose the Oasees portal. - Usage:
oasees-sdk init --expose-ip <YOUR MASTERS's IP>
-
oasees-sdk get-token- Description: Generates a token required for joining worker-agent nodes to the master.
- Usage:
oasees-sdk get-token
-
oasees-sdk join- Description: Joins a device to the cluster as a worker-agent node. This must be run on each device that will be a worker.
- Arguments:
--ip <YOUR MASTER's IP>(Required): The IP address of the master node.--token <TOKEN>(Required): The token generated from theoasees-sdk get-tokencommand.
- Usage:
oasees-sdk join --ip <YOUR MASTER's IP> --token <TOKEN>
II. Application Management
Commands for converting and deploying applications on the OASEES stack.
-
oasees-sdk convert-app- Description: Converts a Docker Compose file with OASEES-specific labels into a format that can be deployed on the stack.
- Arguments:
<docker-compose-file>(Required): The path to the OASEES-compatibledocker-compose.yamlfile.<app-name>(Required): A name for the new application.
- Usage:
oasees-sdk convert-app docker-compose_oasees.yaml my-app
-
oasees-sdk deploy-app- Description: Deploys a converted application to the cluster.
- Argument:
<app-name>(Required): The name of the application you want to deploy. - Usage:
oasees-sdk deploy-app my-app
-
oasees-sdk get-app- Description: Displays a summary of a deployed application, showing which service is running on which node and on which port.
- Usage:
oasees-sdk get-app
III. Telemetry
Commands for managing metrics collection and agent configuration for DAO interactions. All telemetry commands can be listed by running $ oasees-sdk telemetry.
-
oasees-sdk telemetry deploy-collector- Description: Deploys a collector to scrape metrics from a specified endpoint.
- Arguments:
-i <metric_index>(Required): The name for the metric index to group metrics together[.-s <device_name>(Required): The device where the collector will be deployed.-se <scrape_endpoint>(Required): The URL endpoint to scrape for metrics.
- Usage:
oasees-sdk telemetry deploy-collector -i swarm_metrics -s device4 -se http://192.168.88.239:32691/metrics
-
oasees-sdk telemetry metric-index- Description: Lists all created metric indices.
- Usage:
oasees-sdk telemetry metric-index
-
oasees-sdk telemetry metrics-list- Description: Lists all metrics being ingested for a specific metric index.
- Argument:
-i <metric_index>(Required): The name of the metric index. - Usage:
oasees-sdk telemetry metrics-list -i swarm_metrics
-
oasees-sdk telemetry gen-config- Description: Generates a configuration template file (
.json) in the current path. This file is used to program the behavior of agents to propose and vote on DAO actions based on metrics.
- Description: Generates a configuration template file (
IV. MLOps & Federated Learning
Commands to support federated learning workflows, including data preparation, pipeline creation, training, and model deployment. An overview of commands is available via $ oasees-sdk mlops.
-
oasees-sdk mlops init-project- Description: Creates project templates for federated learning.
- Argument:
<project-name>(Required): The name of the new ML project. - Usage:
oasees-sdk mlops init-project <project-name>
-
oasees-sdk mlops prepare-dataset- Description: Prepares a device for federated learning. It creates and uploads synthetic data to IPFS while keeping the original data on the device.
- Arguments:
<samples.npy>(Required): The.npyfile containing the data samples/features.<labels.npy>(Required): The.npyfile containing the data labels.
- Usage:
oasees-sdk mlops prepare-dataset iris_data.npy iris_target.npy
-
oasees-sdk mlops ipfs-ls- Description: Lists files stored in IPFS for a given project path.
- Usage:
oasees-sdk mlops ipfs-ls projects/ml
-
oasees-sdk mlops fl-data-nodes- Description: Lists the devices that have data ready for federated learning.
- Usage:
oasees-sdk mlops fl-data-nodes
-
oasees-sdk mlops start-fl- Description: Starts a federated learning process with a server and clients.
- Arguments:
--project-name TEXT(Required): The name of the ML project.--data-files TEXT(Required): A colon-separated list ofdata,target,nodetriplets (e.g., "file.npy,target.npy,node1:file.npy,target.npy,node2").--num-rounds INTEGER(Optional): The number of training rounds (default: 5).--epochs INTEGER(Optional): The number of epochs per client per round (default: 5).
- Usage:
oasees-sdk mlops start-fl --project-name example1 --data-files "iris_data.npy,iris_target.npy,device1:iris_data.npy,iris_target.npy,device2"
-
oasees-sdk mlops deploy-model- Description: Deploys a trained model for inference.
- Arguments:
--project=<project-name>(Required): The name of the project the model belongs to.--model=<model-file.pkl>(Required): The name of the trained model file.
- Usage:
oasees-sdk mlops deploy-model --project-name=example1 --model=example1_2025-07-24_06-16-15.pkl
Uninstalling
If you want to uninstall your cluster (e.g. you've restarted your OASEES stack) run the following on the master node:
oasees-sdk uninstall master # UNINSTALLS K3S SERVER ON MASTER NODE
and on each of your worker nodes:
oasees-sdk uninstall agent #UNINSTALLS K3S AGENT ON WORKER NODE
Python Module SDK
Information about the Python module SDK to be added.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file oasees_sdk-0.7.3.tar.gz.
File metadata
- Download URL: oasees_sdk-0.7.3.tar.gz
- Upload date:
- Size: 52.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
beb59bb2dcaf45a52991ee4c68eee118ac8b66ea620c84da2c5ead900cdf8d9e
|
|
| MD5 |
faabba67d50cfaee2a873017c8c8c37c
|
|
| BLAKE2b-256 |
9f046002fb187b183f622549fbec35ea5375949a65fb933d586959a3dfcc51ae
|
Provenance
The following attestation bundles were made for oasees_sdk-0.7.3.tar.gz:
Publisher:
release.yml on oasees/oasees-sdk
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
oasees_sdk-0.7.3.tar.gz -
Subject digest:
beb59bb2dcaf45a52991ee4c68eee118ac8b66ea620c84da2c5ead900cdf8d9e - Sigstore transparency entry: 567957238
- Sigstore integration time:
-
Permalink:
oasees/oasees-sdk@817e16b8f791c1da1573e4908ec67917b113a23f -
Branch / Tag:
refs/heads/master - Owner: https://github.com/oasees
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@817e16b8f791c1da1573e4908ec67917b113a23f -
Trigger Event:
push
-
Statement type:
File details
Details for the file oasees_sdk-0.7.3-py2.py3-none-any.whl.
File metadata
- Download URL: oasees_sdk-0.7.3-py2.py3-none-any.whl
- Upload date:
- Size: 58.3 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b692f2a792bf545f073b83d38934498cff2e451b9e7a7677e68325bf8551415a
|
|
| MD5 |
9f54c338b5cb9c88e83e537ba7b3ce40
|
|
| BLAKE2b-256 |
08e26d003021fb5b4acac44c1390193344a035fa8dd65f4d75929cf9cd942cf9
|
Provenance
The following attestation bundles were made for oasees_sdk-0.7.3-py2.py3-none-any.whl:
Publisher:
release.yml on oasees/oasees-sdk
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
oasees_sdk-0.7.3-py2.py3-none-any.whl -
Subject digest:
b692f2a792bf545f073b83d38934498cff2e451b9e7a7677e68325bf8551415a - Sigstore transparency entry: 567957241
- Sigstore integration time:
-
Permalink:
oasees/oasees-sdk@817e16b8f791c1da1573e4908ec67917b113a23f -
Branch / Tag:
refs/heads/master - Owner: https://github.com/oasees
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@817e16b8f791c1da1573e4908ec67917b113a23f -
Trigger Event:
push
-
Statement type: