All Projects → tliron → puccini

tliron / puccini

Licence: Apache-2.0 license
Cloud topology management and deployment tools based on TOSCA

Programming Languages

go
31211 projects - #10 most used programming language
javascript
184084 projects - #8 most used programming language
shell
77523 projects
python
139335 projects - #7 most used programming language
java
68154 projects - #9 most used programming language
ruby
36898 projects - #4 most used programming language
c
50402 projects - #5 most used programming language

Projects that are alternatives of or similar to puccini

depcharge
DepCharge is a tool designed to help orchestrate the execution of commands across many directories at once.
Stars: ✭ 23 (-68.92%)
Mutual labels:  orchestration
xstate
State machines and statecharts for the modern web.
Stars: ✭ 21,286 (+28664.86%)
Mutual labels:  orchestration
rkt-compose
CLI to run Docker Compose file as pod on rkt with integrated service discovery using Consul - EOL
Stars: ✭ 24 (-67.57%)
Mutual labels:  orchestration
Docker-Kubernetes
Basics of Docker and Kubernetes
Stars: ✭ 18 (-75.68%)
Mutual labels:  orchestration
opensvc
The OpenSVC node agent
Stars: ✭ 27 (-63.51%)
Mutual labels:  orchestration
orchparty
Write your own orchestration config with a Ruby DSL that allows you to have mixins, imports and variables.
Stars: ✭ 37 (-50%)
Mutual labels:  orchestration
kubecloud
Kubecloud is a multi-cloud container cloud management platform
Stars: ✭ 48 (-35.14%)
Mutual labels:  orchestration
Kubernetes-and-Cloud-Native-Associate-KCNA
Useful notes for the KCNA - Kubernetes and Cloud Native Associate
Stars: ✭ 162 (+118.92%)
Mutual labels:  orchestration
docs
Documentation repo of nebula orchestration system
Stars: ✭ 16 (-78.38%)
Mutual labels:  orchestration
yorc
Ystia Orchestrator
Stars: ✭ 56 (-24.32%)
Mutual labels:  tosca
kubernetes the easy way
Automating Kubernetes the hard way with Vagrant and scripts
Stars: ✭ 22 (-70.27%)
Mutual labels:  orchestration
zeebe-helm
Public Zeebe K8s HELM Charts
Stars: ✭ 13 (-82.43%)
Mutual labels:  orchestration
stackbuilder
Stackbuilder builds stacks of virtual machines
Stars: ✭ 21 (-71.62%)
Mutual labels:  orchestration
sdk-java
Temporal Java SDK
Stars: ✭ 117 (+58.11%)
Mutual labels:  orchestration
Serverless-File-Validation
Using Azure Serverless products to perform file validation on a per-batch basis
Stars: ✭ 21 (-71.62%)
Mutual labels:  orchestration
nsolid-kubernetes
Using N|Solid, the Enterprise Node Platform from NodeSource with Kubernetes
Stars: ✭ 82 (+10.81%)
Mutual labels:  orchestration
workflow-manager
Minimal Workflow orchestrator for AWS Step Functions
Stars: ✭ 20 (-72.97%)
Mutual labels:  orchestration
mcollective-choria
Distribution of plugins for MCollective as found in Puppet 6
Stars: ✭ 58 (-21.62%)
Mutual labels:  orchestration
ops-examples
A repository of basic and advanced examples using Ops
Stars: ✭ 68 (-8.11%)
Mutual labels:  orchestration
f5-super-netops-container
F5 Super NetOps container images that enable Automation and Orchestration with a DevOps methodology
Stars: ✭ 24 (-67.57%)
Mutual labels:  orchestration

Puccini

License Latest Release Go Report Card

Cloud topology management and deployment tools based on TOSCA.

Puccini is primarily a TOSCA processor. It parses TOSCA service templates and compiles them into the Clout format.

Let's dive in!

Note that Puccini is intentionally not an orchestrator. This is a "BYOO" kind of establishment ("Bring Your Own Orchestrator"). Available orchestration integrations:

Puccini is also available as a GitHub action, allowing you to validate and otherwise use TOSCA in your git workflow.

For a TOSCA development environment, check out the TOSCA Visual Studio Code Extension, which is based on Puccini (work in progress).

Get It

Download

To build Puccini yourself see the build guide.

Overview

Distribution

Each tool is a self-contained executable file, allowing them to be easily distributed with and embedded in toolchains, orchestration, and development environments. They are coded in 100% Go and are very portable, even available for WebAssembly (which is how the in-browser demo linked above works).

You can also embed Puccini into your program as a library. Puccini is immediately usable from Go, but can be used in many other programming languages via self-contained shared C libraries. See included wrappers and examples for Java, Python, and Ruby.

Dialects

Puccini can parse all versions of TOSCA:

Additionally, Puccini can parse the following TOSCA-like dialects:

TOSCA is a complex object-oriented language. We put considerable effort into adhering to every aspect of the grammar, especially in regards to value type checking and type inheritance contracts, which are key to delivering the object-oriented promise of extensibility while maintaining reliable base type compatibility. Unfortunately, the TOSCA specification can be inconsistent and imprecise. For this reason, Puccini also supports quirk modes that enable alternative behaviors based on differing interpretations of the spec.

Packaging

The TOSCA source can be accessed by URL, on the local file systems or via HTTP/HTTPS, as individual files as well as packaged in CSAR files.

Puccini also comes with a simple CSAR creation tool, puccini-csar.

Design Principles

Puccini's TOSCA parser comprises 5 multi-threaded phases that handle validation, inheritance, assignment, and normalization of TOSCA's many types and templates, resulting in a flat, serializable data structure that can be directly consumed by your program. Validation error messages are precise and useful.

FAQ

Please read it!

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].