ac8502c45d
Added trivial templates that can be used to exercise basic scaling group functionality: the mechanics of the scaling actions. These examples are deliberately spare, to minimize dependencies. Change-Id: Iddd63acc629d617f861215c12e20d250c53edd11 Partial-Bug: 1305425
90 lines
2.9 KiB
YAML
90 lines
2.9 KiB
YAML
heat_template_version: 2013-05-23
|
|
|
|
description: >
|
|
This is a very simple template that illustrates the basic features
|
|
of OS::Heat::AutoScalingGroup and demonstrates that these features
|
|
are available even when the scaled resource is a nested stack. By
|
|
virtue of its simplicity this example should be usable in many
|
|
contexts. In particular, this example does not require Neutron nor
|
|
a load balancer nor any particular support for software in the VMs.
|
|
In fact, the VMs in this example do not actually do anything. This
|
|
example does no automatic scaling, but does discuss manual scaling.
|
|
For a more complete example, see autoscaling.yaml.
|
|
|
|
parameters:
|
|
key_name:
|
|
type: string
|
|
description: Name of an existing key pair to use for the instances
|
|
constraints:
|
|
- custom_constraint: nova.keypair
|
|
description: Must name a public key (pair) known to Nova
|
|
flavor:
|
|
type: string
|
|
description: Flavor for the instances to be created
|
|
default: m1.small
|
|
constraints:
|
|
- custom_constraint: nova.flavor
|
|
description: Must be a flavor known to Nova
|
|
image:
|
|
type: string
|
|
description: >
|
|
Name or ID of the image to use for the instances.
|
|
You can get the default from
|
|
http://cloud.fedoraproject.org/fedora-20.x86_64.qcow2
|
|
There is also
|
|
http://cloud.fedoraproject.org/fedora-20.i386.qcow2
|
|
Any image should work since this template
|
|
does not ask the VMs to do anything.
|
|
constraints:
|
|
- custom_constraint: glance.image
|
|
description: Must identify an image known to Glance
|
|
network:
|
|
type: string
|
|
description: The network for the VM
|
|
default: private
|
|
|
|
resources:
|
|
asg:
|
|
type: OS::Heat::AutoScalingGroup
|
|
properties:
|
|
resource:
|
|
type: vm_with_cinder.yaml
|
|
properties:
|
|
key_name: { get_param: key_name }
|
|
image: { get_param: image }
|
|
flavor: { get_param: flavor }
|
|
network: { get_param: network }
|
|
min_size: 1
|
|
desired_capacity: 3
|
|
max_size: 5
|
|
|
|
scale_up_policy:
|
|
type: OS::Heat::ScalingPolicy
|
|
properties:
|
|
adjustment_type: change_in_capacity
|
|
auto_scaling_group_id: {get_resource: asg}
|
|
cooldown: 60
|
|
scaling_adjustment: 1
|
|
|
|
scale_dn_policy:
|
|
type: OS::Heat::ScalingPolicy
|
|
properties:
|
|
adjustment_type: change_in_capacity
|
|
auto_scaling_group_id: {get_resource: asg}
|
|
cooldown: 60
|
|
scaling_adjustment: '-1'
|
|
|
|
outputs:
|
|
scale_up_url:
|
|
description: >
|
|
This URL is the webhook to scale up the group. You can invoke
|
|
the scale-up operation by doing an HTTP POST to this URL; no
|
|
body nor extra headers are needed.
|
|
value: {get_attr: [scale_up_policy, alarm_url]}
|
|
scale_dn_url:
|
|
description: >
|
|
This URL is the webhook to scale down the group. You can invoke
|
|
the scale-down operation by doing an HTTP POST to this URL; no
|
|
body nor extra headers are needed.
|
|
value: {get_attr: [scale_dn_policy, alarm_url]}
|