Skip to main content

xOpera TOSCA orchestrator

xOpera orchestration tool compliant with TOSCA YAML v1.3 in the making.

PyPI Test PyPI cicd Test Coverage PyPI - Downloads

Aspect Information
Tool name opera
Documentation xOpera documentation
Orchestration standard OASIS TOSCA
Implementation tools Ansible
Contact us xopera@xlab.si

Table of Contents

Introduction

opera aims to be a lightweight orchestrator compliant with OASIS TOSCA. The current compliance is with the OASIS TOSCA Simple Profile in YAML Version 1.3. opera implements the TOSCA standard with Ansible automation tool where Ansible playbooks can be used as orchestration actuators within the TOSCA interface operations.

We are currently testing experimental support for TOSCA Version 2.0, which will become the main version after TOSCA 2.0 is released.

Prerequisites

opera requires Python 3 and a virtual environment. In a typical modern Linux environment, we should already be set. In Ubuntu, however, we might need to run the following commands:

$ sudo apt update
$ sudo apt install -y python3-venv python3-wheel python-wheel-common

Installation and Quickstart

The orchestration tool is available on PyPI as a package named opera. Apart from the latest PyPI production version, you can also find the latest opera PyPI development version, which includes pre-releases so that you will be able to test the latest features before they are officially released.

The simplest way to test opera is to install it into Python virtual environment:

$ mkdir ~/opera && cd ~/opera
$ python3 -m venv .venv && . .venv/bin/activate
(.venv) $ pip install opera

To test if everything is working as expected, we can now clone xOpera's GitHub repository and try to deploy a hello-world service:

(.venv) $ git clone git@github.com:xlab-si/xopera-opera.git
(.venv) $ cd xopera-opera/examples/hello
(.venv) $ opera deploy service.yaml
[Worker_0]   Deploying my-workstation_0
[Worker_0]   Deployment of my-workstation_0 complete
[Worker_0]   Deploying hello_0
[Worker_0]     Executing create on hello_0
[Worker_0]   Deployment of hello_0 complete

If nothing went wrong, new empty file has been created at /tmp/playing-opera/hello/hello.txt.

To delete the created directory, we can undeploy our stuff by running:

(.venv) $ opera undeploy
[Worker_0]   Undeploying hello_0
[Worker_0]     Executing delete on hello_0
[Worker_0]   Undeployment of hello_0 complete
[Worker_0]   Undeploying my-workstation_0
[Worker_0]   Undeployment of my-workstation_0 complete

And that is it. For more startup examples please visit examples folder, or go to xopera-examples repository if you wish to explore deeper with more complex xOpera examples. If you want to use just xOpera TOSCA parser go to xopera-tosca-parser repository. If you want to use opera commands from an API take a look at xopera-api repository. You can also take a look at the xOpera SaaS component, which is designed for business partners and enterprise users. To find more about xOpera project visit our xOpera documentation.

License

This work is licensed under the Apache License 2.0.

Contact

You can contact the xOpera team by sending an email to xopera@xlab.si.

Acknowledgement

This project has received funding from the European Union’s Horizon 2020 research and innovation programme under Grant Agreements No. 825040 (RADON), No. 825480 (SODALITE) and No. 101000162 (PIACERE).

Release files for opera 0.7.0

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

Source distribution (sdist)

Source distribution for opera 0.7.0
File Size Uploaded
opera-0.7.0.tar.gz 77.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for opera 0.7.0
File Interpreter ABI Platform
opera-0.7.0-py3-none-any.whl Python 3 none any Details

Total release size: 125.7 kB

Release files / opera-0.7.0.tar.gz

Download URL opera-0.7.0.tar.gz
Size 77.8 kB
Tags Source
SHA-256 checksum
How to use checksums
263fa342decdb638492ae9140cd22ed1d077e00b2e8ea83153acb59221cb91bb
BLAKE2b-256 checksum
How to use checksums
91f40c8f058ff2c0d7058f24a0a1625c4ba9d14ddd9f1df0ef95c362f1a1e8c5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.9.14

Release files / opera-0.7.0-py3-none-any.whl

Download URL opera-0.7.0-py3-none-any.whl
Size 47.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
e573892b8a72c29870764b75d2ddef866918ba1c34b9d7677d6613c86a23ae1a
BLAKE2b-256 checksum
How to use checksums
3c00cda119cb7eaaf4193ab61e385fcd7f1e3f2dd728813e31ecd1dd9f2cc9b1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.9.14

Release history Release notifications | RSS feed

This release

0.7.0 This release

2 release files

0.6.9

2 release files

0.6.8

2 release files

0.6.7

2 release files

0.6.6

2 release files

0.6.5

2 release files

0.6.4

2 release files

0.6.3

2 release files

0.6.2

2 release files

0.6.1

2 release files

0.6.0

2 release files

0.5.9

2 release files

0.5.8

2 release files

0.5.7

2 release files

0.5.6

2 release files

0.5.5

2 release files

0.5.4

2 release files

0.5.3

2 release files

0.5.2

2 release files

0.5.1

2 release files

0.5.0

2 release files

0.1.7

2 release files

0.1.6

2 release files

0.1.5

2 release files

0.1.4

2 release files

0.1.3

1 release file

0.1.2

1 release file

0.1.1

1 release file

0.1.0

2 release files

0.0.1

1 release file

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