Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/xlab-si/xopera-opera
xOpera orchestrator compliant with TOSCA YAML v1.3 in the making
https://github.com/xlab-si/xopera-opera
ansible orchestration python tosca
Last synced: about 1 month ago
JSON representation
xOpera orchestrator compliant with TOSCA YAML v1.3 in the making
- Host: GitHub
- URL: https://github.com/xlab-si/xopera-opera
- Owner: xlab-si
- License: apache-2.0
- Created: 2019-02-11T15:22:43.000Z (almost 6 years ago)
- Default Branch: main
- Last Pushed: 2022-12-27T10:45:23.000Z (almost 2 years ago)
- Last Synced: 2024-09-30T01:42:40.329Z (about 2 months ago)
- Topics: ansible, orchestration, python, tosca
- Language: Python
- Homepage: https://xlab-si.github.io/xopera-docs/
- Size: 1.89 MB
- Stars: 35
- Watchers: 9
- Forks: 14
- Open Issues: 29
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# xOpera TOSCA orchestrator
xOpera orchestration tool compliant with TOSCA YAML v1.3 in the making.[![PyPI](https://img.shields.io/pypi/v/opera)](https://pypi.org/project/opera/)
[![Test PyPI](https://img.shields.io/badge/test%20pypi-dev%20version-blueviolet)](https://test.pypi.org/project/opera/)
[![cicd](https://github.com/xlab-si/xopera-opera/actions/workflows/ci_cd.yaml/badge.svg)](https://github.com/xlab-si/xopera-opera/actions/workflows/ci_cd.yaml)
[![Test Coverage](https://api.codeclimate.com/v1/badges/4e287640ae2ea2b04163/test_coverage)](https://codeclimate.com/github/xlab-si/xopera-opera/test_coverage)
[![PyPI - Downloads](https://img.shields.io/pypi/dm/opera)](https://pypi.org/project/opera/)
| Aspect | Information |
| ------------------------------ |:-----------------------------------------:|
| Tool name | [opera] |
| Documentation | [xOpera documentation] |
| Orchestration standard | [OASIS TOSCA] |
| Implementation tools | [Ansible] |
| Contact us | [[email protected]] |## Table of Contents
- [Introduction](#introduction)
- [Prerequisites](#prerequisites)
- [Installation and Quickstart](#installation-and-quickstart)
- [License](#license)
- [Contact](#contact)
- [Acknowledgement](#acknowledgement)## 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:```console
$ 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:
```console
$ 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:```console
(.venv) $ git clone [email protected]: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:
```console
(.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 [[email protected]].## 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]).[opera]: https://pypi.org/project/opera/
[OASIS TOSCA]: https://www.oasis-open.org/committees/tc_home.php?wg_abbrev=tosca
[xOpera documentation]: https://xlab-si.github.io/xopera-docs/
[Ansible]: https://www.ansible.com/
[[email protected]]: mailto:[email protected]
[OASIS TOSCA Simple Profile in YAML Version 1.3]: https://docs.oasis-open.org/tosca/TOSCA-Simple-Profile-YAML/v1.3/TOSCA-Simple-Profile-YAML-v1.3.html
[TOSCA Version 2.0]: https://docs.oasis-open.org/tosca/TOSCA/v2.0/TOSCA-v2.0.html
[PyPI production]: https://pypi.org/project/opera/#history
[PyPI development]: https://test.pypi.org/project/opera/#history
[examples folder]: examples
[xopera-examples]: https://github.com/xlab-si/xopera-examples
[xopera-tosca-parser]: https://github.com/xlab-si/xopera-tosca-parser
[xopera-api]: https://github.com/xlab-si/xopera-api
[xOpera SaaS]: https://xlab-si.github.io/xopera-docs/saas.html
[Apache License 2.0]: https://www.apache.org/licenses/LICENSE-2.0
[RADON]: http://radon-h2020.eu
[SODALITE]: http://www.sodalite.eu/
[PIACERE]: https://www.piacere-project.eu/