TOSCA Orchestrator

1 Conformance
This document aims to specify the requirements for implementations to be considered as TOSCA
compliant.
1.1 Conformance Targets
TOSCA simple profile in YAML defines conformance targets and requirements on their conformance
in respect to the specification document. This document aims to provide test scenarios that can be
used in order to validate tools or artifacts of the TOSCA ecosystem.
As a reminder the following categories are defined as conformance targets in the specification
document:
 TOSCA YAML service template
 TOSCA processor
o Parsers
o Matching engines
o Orchestrators
o Auditor
o Optimizer
o Catalog/Forge/Registry
 TOSCA generator
o IDE, Tools etc.
o Auditor
o Optimization engines
 TOSCA archive
As specified a TOSCA orchestrator is a specific TOSCA processor.
1.1.1 TOSCA YAML service template or TOSCA archive
A TOSCA yaml service template or TOSCA archive is considered as compliant if it can be validated by
a TOSCA compliant parser that successfully qualifies it as a valid TOSCA YAML service template or
TOSCA archive.
1.1.2 TOSCA Parser
Tosca parsers are tools that can read and validate TOSCA YAML document and TOSCA Archives. This
document details the expected behavior of TOSCA Parsers.
This document defines a set of conformance scenarios that should be processed with correct output
by the parser in order to be confirmed as being TOSCA compliant.
1.1.3 TOSCA Orchestrator
Note: TOSCA orchestrators should not try to orchestrate any TOSCA service template or archive that
cannot be parsed by a TOSCA parser. This specification will not specify the expected behavior of
orchestrators for any sample that should fail at parsing.
Note that a valid TOSCA orchestrator may fail to orchestrate some valid TOSCA Archives in case of
errors in user provided scripts or inconsistencies between TOSCA node specifications and artifacts
even if the Template or Archive is considered as valid from a TOSCA parsing point of view.
1.1.4 TOSCA generator
TOSCA generators are considered as valid TOSCA generators only if the TOSCA service template or
TOSCA archive they generate can be parsed by a TOSCA compliant parser that successfully qualifies it
as a valid TOSCA YAML service template or TOSCA archive.
Moreover, the template or archive produced by the processor should be compliant with the
generated lifecycle of TOSCA so that the archive can be processed by a compliant TOSCA
orchestrator. The created template should provide enough information that enables any TOSCA
orchestrator to perform a valid matching of resources that ensures the various implementation
artifacts to be process in a valid way.
1.2 Conformance levels
TOSCA plans to support multiple conformance levels in the future so that new tools can support only
a subset of the overall specification and improve their support while still being officially recognized
as part of the TOSCA ecosystem.
2 Parsing conformance scenarios
This section defines the various scenarios that tools needs to validate in order to be considered as
TOSCA compliant.
Note: when no Expected orchestrator behavior section is defined in a sample the orchestrator is
expected to fail because of an empty topology.
2.1 Tosca definition version should be specified and valid
2.1.1 Parsing a document with valid definition version should succeed
2.1.1.1 TOSCA YAML document
tosca_definitions_version: tosca_simple_yaml_1_0
2.1.1.2 Expected parser behavior
Parsing should be successful.
2.1.1.3 Expected orchestrator behavior
Orchestrator should fail because of an empty topology.
2.1.2 Parsing a document Invalid definition version
2.1.2.1 TOSCA YAML document
tosca_definitions_version: not_tosca_simple_yaml_1_0
2.1.2.2 Expected parser behavior
Parsing should fail if they don’t recognize the TOSCA definition version and output an error specifying
that the tosca_definitions_version is not supported by the parser.
2.1.3 Missing definition version
2.1.3.1 TOSCA YAML document
description: >
This is a document with no tosca definitions version, it is not a valid TOSCA
document and parsing should fail.
2.1.3.2 Expected parser behavior
Parsing should fail and output an error specifying that the tosca_definitions_version is required.
2.1.4 Definition version not the first line
2.1.4.1 TOSCA YAML document
description: >
This is a document with no tosca definitions version, it is not a valid TOSCA
document and parsing should fail.
tosca_definitions_version: tosca_simple_yaml_1_0
2.1.4.2 Expected parser behavior
Parsing should fail and output an error specifying that the tosca_definitions_version is required and
must be first line of the TOSCA document.
2.2 Meta data should be a map of string with support of specific keys
2.2.1 Valid meta-data definition
2.2.1.1 TOSCA YAML document
tosca_definitions_version: tosca_simple_yaml_1_0
metadata:
template_name: tosca_meta_data_test
template_author: tosca interop sc
template_version: 1.0
2.2.1.2 Expected parsing result
Parsing should be successful with no warnings and no errors.
2.2.2 Invalid meta-data definition
2.2.2.1 TOSCA YAML document
tosca_definitions_version: tosca_simple_yaml_1_0
metadata:
template_name:
complex: value
template_author:
complex: value
template_version: my version
2.2.2.2 Expected parsing result
Parsing should fail with 3 errors:
- template_name must be a string but is a complex object or map.
- template_author must be a string but is a complex object or map.
- template_version must be a TOSCA version but is a string
2.3 Import
2.4 DSL definitions should be YAML macros and can be reused in the
document
2.5 Repositories
2.6 Unknown keys
In case a TOSCA document contains unknown keys at any level of a document the parser should
output a WARNING rather than fail.
Such elements may be used by some TOSCA tools to extend the specification with elements that
MUST not be required for orchestration purpose. We may have for example path to icons for tosca
catalogs (type elements), tags, position of elements for graphical tools etc.
3 Matching conformance scenarios
4 Orchestrator conformance scenarios
Orchestrators that support TOSCA should be able to process TOSCA YAML Service Templates or
Archives, it should also be able to deploy elements based on the topologies and respect the various
constraints expressed. As such a TOSCA orchestrator is expected to fulfill the Parsing conformance
scenarios as well as the matching conformance scenarios.
4.1 Processor should handle topology with a single compute node
4.1.1 Single compute without specific configuration should match to any compute
and deploy
4.1.1.1 TOSCA YAML document
tosca_definitions_version: tosca_simple_yaml_1_0
metadata:
template_name: tosca_meta_data_test
template_author: tosca interop sc
template_version: 1.0
4.1.1.2 Expected parsing result
Parsing should be successful with no warnings and no errors.
4.1.2 Single compute with matching configuration should match to a valid resource
and deploy
4.1.3 Single compute with matching failure should fail before trying to deploy
anything