Sardou TOSCA Library
Project description
TOSCA in Swarmchestrate
This repository is home to the Swarmchestrate project documentation.
The full documentation can be seen here and this should be the first stop for anyone looking to deploy applications with Swarmchestrate. There is some usual info for developers below.
Sardou TOSCA Library
This repository also contains the source for the TOSCA Toolkit in Swarmchestrate, named Sardou. Some info for developers is available in this README.
Quickstart
Install Puccini.
wget https://github.com/Swarmchestrate/tosca/releases/download/v0.2.4/go-puccini_0.22.7-SNAPSHOT-3e85b40_linux_amd64.deb
sudo dpkg -i go-puccini_0.22.7-SNAPSHOT-3e85b40_linux_amd64.deb || sudo apt --fix-broken install -y
Install Sardou:
uv add sardou
Run the Sardou CLI to validate an SAT or CDT:
sardou templates/BookInfo.yaml
Setup
System Requirements
- Python 3.12
- Minimum GLIBC 2.34 (Ubuntu 22.04 or higher)
Puccini
Puccini provides a TOSCA Parser, which Swarmchestrate uses to validate templates and complete the representation graph. It must be installed before using Sardou.
Prefer the latest (currently unreleased) version. Build from source from Go-Puccini or use the prebuilts attached to this Sardou release.
??? note "Rust Puccini"
Puccini is being [re-written in Rust](https://github.com/tliron/puccini). Until its release, we are using the
Go version of Puccini, 0.22.x
You can install the recommended Puccini on Linux with:
wget https://github.com/Swarmchestrate/tosca/releases/download/v0.2.4/go-puccini_0.22.7-SNAPSHOT-3e85b40_linux_amd64.deb
sudo dpkg -i go-puccini_0.22.7-SNAPSHOT-3e85b40_linux_amd64.deb || sudo apt --fix-broken install -y
Sardou
You may then install Sardou from PyPi using uv or pip.
=== "uv"
```bash
uv add Sardou
```
=== "pip"
```bash
pip install Sardou
```
Command-line Usage
The Sardou CLI currently only performs validation. Run it against any SAT or CDT. If processed succesfully, the template is valid.
sardou templates/BookInfo.yaml
Library Usage
Import the Sardou TOSCA Library
from sardou import Sardou # note the uppercase S
Validation
To validate a TOSCA template, create a new Sardou object, passing it an SAT or CDT.
This will validate the template and complete the representation, inheriting from parent
types.
>>> sat = Sardou("my_app.yaml")
Processed successfully: my_app.yaml
>>> sat
{'description': 'stressng on Swarmchestrate', 'nodeTemplates': {'resource-1': {'metadata': {}, 'description': '', 'types': {'eu.swarmchestrate:0.1::EC2.micro.t3': {'description': 'An EC2 compute node from the University of Westminster provision\n', 'parent': 'eu.swarmchestrate:0.1::Resource'} ...
The template is not resolved at this point (i.e. statisfied requirements and created relationships) - that functionality is to come. If there are errors or warnings, they will be presented at this time.
Exploring the Template
Get the raw, uncompleted (original YAML) with the raw attribute.
>>> sat.raw
{'tosca_definitions_version': 'tosca_2_0', 'description': 'stressng on Swarmchestrate', 'imports': [{'namespace': 'swch' ...
You can traverse YAML maps using dot notation if needed (which leads to some unexpected behaviour, so this may not be a long-term feature):
>>> sat.nodeTemplates
{'resource-1': {'metadata': {}, 'description': '', 'types': {'eu.swarmchestrate:0.1::EC2.micro.t3' ...
Going Further
The rest of the developer docs can be found here
Contact
Contact Jay at Westminster for support with TOSCA and/or this repository.
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 sardou-0.7.0.tar.gz.
File metadata
- Download URL: sardou-0.7.0.tar.gz
- Upload date:
- Size: 16.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ce7407171b136ac754fb3c7a0625a381902b05e58bdd583b8f9af870dbea963b
|
|
| MD5 |
59f4bb94b1c273e71d95152d35108c53
|
|
| BLAKE2b-256 |
de32bc05b378fa07dfbba9f12626a687811b34bf624ab645ed35eae32a235dcc
|
File details
Details for the file sardou-0.7.0-py3-none-any.whl.
File metadata
- Download URL: sardou-0.7.0-py3-none-any.whl
- Upload date:
- Size: 12.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
183921001ea17ae9c33f06dc075651d17eb912aa92d00d9b54ff91020686ed5f
|
|
| MD5 |
4efebe31e65fdd8d89d745948544ae4d
|
|
| BLAKE2b-256 |
71226f204be90085694f53733257a3667c3e8c70831d1f290d14228e6973ceb7
|