Add a server with volumes ResourceGroup example

Adds an example in response to a ML question, shows how you can
create a resource group containing a number of nested stacks containing
identical volumes and volume attachment resources, then pass in the
server ID to have the volumes attached to one server.

Also moves the current basic example into a resource_group subdirectory,
so we can collect related examples, and make more obvious that the
volume_with_attachment template is part of another example rather than
a standalone example template.

Change-Id: I1ffc1656286a981b6dc219038e03adbb8d5af775
This commit is contained in:
Steven Hardy 2014-09-04 10:28:52 +01:00
parent 934233a0a6
commit c5e1c001bb
3 changed files with 78 additions and 0 deletions

View File

@ -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}

View File

@ -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}