diff --git a/hot/resource_group.yaml b/hot/resource_group/resource_group.yaml similarity index 100% rename from hot/resource_group.yaml rename to hot/resource_group/resource_group.yaml diff --git a/hot/resource_group/server_with_volumes.yaml b/hot/resource_group/server_with_volumes.yaml new file mode 100644 index 00000000..aa3ca9d9 --- /dev/null +++ b/hot/resource_group/server_with_volumes.yaml @@ -0,0 +1,52 @@ +heat_template_version: 2013-05-23 + +description: > + Example of using ResourceGroup to attach multiple volumes to an instance + +parameters: + key_name: + type: string + description: keypair to enable SSH access to the instance. + default: stack_key + + image_id: + type: string + description: ID of the image to use for the instance to be created. + default: cirros-0.3.2-x86_64-disk + + volume_size: + type: number + description: Size of volume to attach to instance + default: 1 + constraints: + - range: {min: 1, max: 10} + + num_volumes: + type: number + description: Number of volumes to attach to instance + default: 2 + constraints: + - range: {min: 1, max: 10} + + instance_type: + type: string + description: Type of the instance to be created. + default: m1.nano + +resources: + instance: + type: OS::Nova::Server + properties: + image: { get_param: image_id } + flavor: { get_param: instance_type } + key_name: { get_param: key_name } + + group_of_volumes: + type: OS::Heat::ResourceGroup + properties: + count: {get_param: num_volumes} + resource_def: + type: volume_with_attachment.yaml + properties: + instance_id: {get_resource: instance} + volume_size: {get_param: volume_size} diff --git a/hot/resource_group/volume_with_attachment.yaml b/hot/resource_group/volume_with_attachment.yaml new file mode 100644 index 00000000..28ae35b7 --- /dev/null +++ b/hot/resource_group/volume_with_attachment.yaml @@ -0,0 +1,26 @@ +heat_template_version: 2013-05-23 + +parameters: + volume_size: + type: number + description: Size of volume to attach to instance + default: 1 + constraints: + - range: {min: 1, max: 10} + + instance_id: + type: string + description: Server to attach volume to + +resources: + volume: + type: OS::Cinder::Volume + properties: + size: { get_param: volume_size } + description: Volume for stack + + volume_attachment: + type: OS::Cinder::VolumeAttachment + properties: + volume_id: { get_resource: volume } + instance_uuid: { get_param: instance_id}