| tosca_definitions_version: tosca_simple_yaml_1_0 |
| |
| description: >- |
| TOSCA simple profile with 2 servers each with different attached block storage. |
| |
| metadata: |
| template_name: block-storage-6 |
| template_author: TOSCA Simple Profile in YAML |
| template_version: '1.0' |
| |
| 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 |
| default: 1 GB |
| description: Size of the storage to be created. |
| storage_snapshot_id: |
| type: string |
| description: >- |
| Optional identifier for an existing snapshot to use when creating storage. |
| storage_location: |
| type: string |
| description: >- |
| Block storage mount point (filesystem path). |
| |
| node_templates: |
| |
| my_server: |
| type: tosca.nodes.Compute |
| capabilities: |
| host: |
| properties: |
| disk_size: 10 GB |
| num_cpus: { get_input: cpus } |
| mem_size: 4096 MB |
| os: |
| properties: |
| architecture: x86_64 |
| type: Linux |
| distribution: Fedora |
| version: 18.0 |
| requirements: |
| - local_storage: |
| node: my_storage |
| relationship: |
| type: AttachesTo |
| properties: |
| location: { get_input: storage_location } |
| |
| my_storage: |
| type: tosca.nodes.BlockStorage |
| properties: |
| size: { get_input: storage_size } |
| snapshot_id: { get_input: storage_snapshot_id } |
| |
| my_server2: |
| type: tosca.nodes.Compute |
| capabilities: |
| host: |
| properties: |
| disk_size: 10 GB |
| num_cpus: { get_input: cpus } |
| mem_size: 4096 MB |
| os: |
| properties: |
| architecture: x86_64 |
| type: Linux |
| distribution: Fedora |
| version: 18.0 |
| requirements: |
| - local_storage: |
| node: my_storage2 |
| relationship: |
| type: AttachesTo |
| properties: |
| location: { get_input: storage_location } |
| |
| my_storage2: |
| type: tosca.nodes.BlockStorage |
| properties: |
| size: { get_input: storage_size } |
| snapshot_id: { get_input: storage_snapshot_id } |
| |
| outputs: |
| server_ip_1: |
| description: The private IP address of the application's first server. |
| value: { get_attribute: [ my_server, private_address ] } |
| server_ip_2: |
| description: The private IP address of the application's second server. |
| value: { get_attribute: [ my_server2, private_address ] } |
| volume_id_1: |
| description: The volume id of the first block storage instance. |
| value: { get_property: [ my_storage, volume_id ] } # ARIA NOTE: wrong in spec |
| volume_id_2: |
| description: The volume id of the second block storage instance. |
| value: { get_property: [ my_storage2, volume_id ] } # ARIA NOTE: wrong in spec |