Blueprint Files and Packages

Blueprints are YAML documents written in Cloudify’s DSL (Domain Specific Language), which is based on TOSCA. Your blueprints will describe the logical representation, or topology, of an application or infrastructure.

Blueprints are packaged into a blueprint archive, which contains a main blueprint YAML file, and any other resources that you want to include, such as scripts, imports, etc. For more information, click this link.

Blueprint Elements

Blueprints comprise several high-level sections:

Tosca Definitions Version

tosca_definitions_version is a top-level property of the blueprint that is used to specify the DSL version used. For Cloudify 4.2, the versions that are currently defined are cloudify_dsl_1_0, cloudify_dsl_1_1, cloudify_dsl_1_2, and cloudify_dsl_1_3.

Always use the latest DSL version unless you know of a good reason not to.

For more information about the tosca_definitions_version, see the specification.

DSL Definitions

dsl_definitions are used to define arbitrary data structures that can then be reused in different parts of the blueprint using YAML anchors and aliases.

For more information about dsl_definitions, see the specification.

Imports

Import other YAML files to be parsed with the current blueprint file.

For more information about imports, see the specification.

Plugins

The plugins specification configures the plugin execution method, package information, and distribution information.

Together with node-types, data-types, relationships, and workflows, these are often found in “plugin.yaml”s instead of proper blueprints.

Node Types

Node types define the implementation and base properties for node-templates.

For more information about node_types see the specification.

Together with data-types, relationships, workflows, and plugins, these are often found in “plugin.yaml”s instead of proper blueprints.

Data Types

data_types enable grouping and re-use of a common set of properties, together with their types and default values.

For more information about data_types, see the specification.

Together with node-types, relationships, workflows, and plugins, these are often found in “plugin.yaml”s instead of proper blueprints.

Relationships

Relationships provide implementation maapings for relationship operations.

For more information about relationships see the specification.

Together with node-types, data-types, workflows, and plugins, these are often found in “plugin.yaml”s instead of proper blueprints.

Workflows

Workflows define a set of tasks that can be executed on a node or a group of nodes, and the execution order of those tasks, serially or in parallel. A task may be an operation implemented by a plugin, but it could also be other actions, including arbitrary code.

For more information about workflows, see the specification.

Together with node-types, data-types, relationships, and plugins, these are often found in “plugin.yaml”s instead of proper blueprints.

Inputs

Inject blueprint parameters when you create your deployment.

These parameters can be referenced using the get_input intrinsic function.

For more information about inputs, see the specification.

Node Templates

Node templates are used in a blueprint to indicate when you want to deploy one or more instances of a node-type.

For more information about node_templates, see the specification.

Outputs

Outputs are special values that you want to make readable to certain authenticated Cloudify users via the UI, CLI, or API. For example these may be consumed by another deployment via the Deployment Proxy

For more information about outputs see the specification.

Intrinsic Functions

You can assign values in a blueprint at runtime via intrinsic functons.

For more information about instrinsic_functions, see the specification.

Interfaces

Interfaces map logical tasks to executable operations.

For more information about interfaces, see the specification.

Groups

groups enable configuration of shared behavior for different node_templates.

For more information about groups, see the specification.

Policy Types

policies enable a stream of events that correspond to a group of nodes and their instances to be analyzed.

For more information about policy_types, see the specification.

Policy Triggers

policy_triggers enable actions to be declared that can be invoked by policies.

For more information about policy_triggers, see the specification.

Import Resolver

An import_resolver is used to resolve imports during blueprint parsing.

For more information about import_resolver, see the specification.

Upload Resources

upload_resources enables resources to be uploaded to Cloudify Manager that could be used by blueprints.

For more information about upload_resources, see the specification.