Skip to main content

xOpera TOSCA orchestrator

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

CircleCI GitHub deployments GitHub release (latest by date) GitHub contributors GitHub top language GitHub code size in bytes PyPI Test PyPI PyPI - License PyPI - Python Version PyPI - Wheel PyPI - Downloads

Aspect Information
Tool name opera
Read the docs (Sphinx) https://xlab-si.github.io/xopera-docs/
Orchestration standard OASIS TOSCA v1.3
Automation tools and actuators Ansible

Table of Contents

Introduction

opera aims to be a lightweight orchestrator compliant with OASIS TOSCA. The current compliance is with the TOSCA Simple Profile in YAML v1.3. The documentation for the tool is available on GitHub pages. Opera implements TOSCA standard with Ansible automation tool where Ansible playbooks can be used as orchestration actuators.

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

opera in action

The orchestration tool is available on PyPI as a package named opera. Apart from the latest production version, you can also find the latest opera develop version (available on Test PyPI instance), 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 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

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

And that is it.

Common examples

This part focuses on different common ways of usage for opera orchestration tool.

OpenStack client setup

Because using OpenStack modules from Ansible playbooks is quite common, we can install opera with all required OpenStack libraries by running:

(.venv) $ pip install -U opera[openstack]

Before we can actually use the OpenStack functionality, we also need to obtain the OpenStack credentials. If we log into OpenStack and navigate to the Access & Security -> API Access page, we can download the rc file with all required information.

At the start of each session (e.g., when we open a new command line console), we must source the rc file by running:

(venv) $ . openstack.rc

After we enter the password, we are ready to start using the OpenStack modules in playbooks that implement life cycle operations.

Other resources and services

The table below show other important resources that are connected to opera.

Resource Link
xopera-api https://github.com/xlab-si/xopera-api/
radon-xopera-saas-plugin https://github.com/radon-h2020/radon-xopera-saas-plugin

Acknowledgement

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

Release files for opera 0.6.4

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.6.4
File Size Uploaded
opera-0.6.4.tar.gz 703.4 kB Details

Built distribution (wheel)

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

Total release size: 795.7 kB

Release files / opera-0.6.4.tar.gz

Download URL opera-0.6.4.tar.gz
Size 703.4 kB
Tags Source
SHA-256 checksum
How to use checksums
fab5e764afc2d1ed5f6c873910fbdb4976629b192f54b84bcac0213aa9713a5c
BLAKE2b-256 checksum
How to use checksums
c312f9da88c965064b22330143c52b114525fe550849b8a79c1775f0d7924f5a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.3.0 pkginfo/1.6.1 requests/2.25.1 setuptools/51.1.2 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.7.4

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

Download URL opera-0.6.4-py3-none-any.whl
Size 92.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
420175463fd5b0ea2dbca8843d4fe32beedbfaa7dab944f7acbb78d137cccad5
BLAKE2b-256 checksum
How to use checksums
af913653933a6d27505117e3ef6124773417223e1f872d9327c3097c1900c4ea
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.3.0 pkginfo/1.6.1 requests/2.25.1 setuptools/51.1.2 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.7.4

Release history Release notifications | RSS feed

0.7.0

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

This release

0.6.4 This release

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