Skip to main content

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

sardou-0.8.0.tar.gz (17.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

sardou-0.8.0-py3-none-any.whl (13.4 kB view details)

Uploaded Python 3

File details

Details for the file sardou-0.8.0.tar.gz.

File metadata

  • Download URL: sardou-0.8.0.tar.gz
  • Upload date:
  • Size: 17.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for sardou-0.8.0.tar.gz
Algorithm Hash digest
SHA256 07b02b355087c79d2922b9fc7e340b6bee9caac2f240e2402d9f864a195aa96e
MD5 ddf5f57db6d8e99fc31181a5bafd335f
BLAKE2b-256 8c8f9c532e2c61afe4930fb6f54b3d23830d7dba1f1ba31e1a2ee72bbd7bd67d

See more details on using hashes here.

File details

Details for the file sardou-0.8.0-py3-none-any.whl.

File metadata

  • Download URL: sardou-0.8.0-py3-none-any.whl
  • Upload date:
  • Size: 13.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for sardou-0.8.0-py3-none-any.whl
Algorithm Hash digest
SHA256 ba65bf4c98fa42de1b1294ae96cb6b390f66194d21c9783b492277f13a657710
MD5 74cfd8a3abb48ad235872340e08e2c4c
BLAKE2b-256 d956b1a529315c8373342626bf6fe78a331f793274bbdae02531547ab5fb6e81

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page