The Template Library is a place to manage your OASIS TOSCA orchestration modules (TOSCA templates), blueprints (TOSCA CSARs) and publish the implementations (e.g. Ansible playbooks) of the modules. The organisation and managing of the TOSCA content can be divided in three user scenarios:
This documentation will focus on publishing service version of the application.
Purpose and description¶
A Template Library is a service or shared repository that can hold the knowledge about:
module templates (e.g. TOSCA templates)
module implementations (e.g. Ansible playbooks behind TOSCA templates)
blueprints (e.g. the whole application designs created from TOSCA CSARs)
Template Library brings the following functionalities:
- User and group management:
search over the content metadata
list content by categories
show basic info about TOSCA templates
display versions and developers/release notes
- Published content, including:
content (zip, file, folder)
link to code (e.g. Github)
All currently available Template Library’s services and tools are:
Template Library GUI: template-library-xopera.xlab.si/
Template Library REST API: template-library-xopera.xlab.si/api/
Template Library REST API Swagger UI: template-library-xopera.xlab.si/swagger/
Template Library CLI: xopera-template-library
Template Library VS Code/Eclipse Che Theia plugin: template-library-vscode-plugin
The Template Library is a unique place for managing TOSCA modules, implementations and blueprints. Business value of this tool is twofold. First, it is a valuable content broker between application developers and (Dev)Ops. Both groups can version and publish their modules and applications and make them available through the Template Library service. Second, Template Library equips users with the content for developing applications. This content could be public or on the restricted access area, which makes open opportunities for the developers of the modules and applications to create and offer a valuable content through the Template Library.
To prevent any possible confusions remember that Template Library (service) or its parts may also be called TPS (Template Publishing Service) or TLPS (Template Library Publishing Service).
Template Library and xOpera SaaS overview¶
The xOpera ecosystem includes tools that target optimizing deployment processes and reducing the human factor along with a faster preparation of deployment scripts. The video presented in this blog points out the most crucial functionalities of xOpera SaaS and TPS:
Template Library Publishing Service (TPS) opens up a place for publishing, storing, managing, downloading and versioning of OASIS TOSCA modules and blueprints (i.e., TOSCA CSARs).
Similar templates can be grouped together to form a FaaS abstraction layer such as a bundle of ready to use templates for deployment to cloud providers (e.g., AWS, Azure, GCP, OpenFaaS, etc.).
Template groups in TPS can be used for connecting to corresponding groups of users and therefore enable working on different templates in a team and sharing them with other teams later.
TPS brings different modes of interaction such as REST API, CLI client, browser-based GUI and Eclipse Che/VS Code plugin.
Published deployment scripts in TPS can orchestrate the deployment with xOpera SaaS, which introduces a browser service for orchestration with a lightweight opera orchestrator compliant with OASIS TOSCA standard and powered by Ansible automation engine.
Users can choose the corresponding templates and create a new project, secrets and credentials for deployment. Then they can deploy the application and observe the progress and status of the deployment.
It is possible to organize multiple projects in multiple workspaces, manage provider credentials and assign them directly to workspaces. They can all run concurrently and users can even share the workspaces with other members.
Apart from standard validation, deployment and un-deployment, xOpera SaaS also offers more complex orchestration actions such as redeployment, discovering template differences or invoking TOSCA policy triggers to enable vertical or horizontal scaling.
The SaaS component is available through an API, GUI or Eclipse Che/VS Code plugin. The core part of the SaaS is the opera orchestrator, which is CLI and can be installed as a Python package from PyPI.
The following videos show how Template Library and xOpera SaaS work in action: