tosca_definitions_version: tosca_simple_yaml_1_0 description: > TOSCA simple profile with server and attached block storage using a named Relationship Template for the storage attachment. topology_template: inputs: cpus: type: integer description: Number of CPUs for the server. constraints: - valid_values: [ 1, 2, 4, 8 ] storage_size: type: scalar-unit.size description: Size of the storage to be created. default: 1 GB storage_location: type: string description: Block storage mount point (filesystem path). node_templates: my_server: type: Compute capabilities: host: properties: disk_size: 10 GB num_cpus: { get_input: cpus } mem_size: 4 MB os: properties: architecture: x86_64 type: Linux distribution: Fedora version: 18.0 requirements: - local_storage: node: my_storage # Declare template to use with 'relationship' keyword relationship: storage_attachment my_storage: type: BlockStorage properties: size: { get_input: storage_size } relationship_templates: storage_attachment: type: AttachesTo properties: location: { get_input: storage_location } outputs: private_ip: description: The private IP address of the newly created compute instance. value: { get_attribute: [my_server, private_address] } volume_id: description: The volume id of the block storage instance. value: { get_attribute: [my_storage, volume_id] }