Permalink
Cannot retrieve contributors at this time
Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.
Sign up
Fetching contributors…
| heat_template_version: 2014-10-16 | |
| description: > | |
| This is a very simple template that illustrates the basic features | |
| of OS::Heat::AutoScalingGroup when the scaled resource is an | |
| OS::Nova::Server. 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: OS::Nova::Server | |
| properties: | |
| key_name: { get_param: key_name } | |
| image: { get_param: image } | |
| flavor: { get_param: flavor } | |
| networks: [{network: {get_param: network} }] | |
| min_size: 1 | |
| desired_capacity: 3 | |
| max_size: 10 | |
| 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_down_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_down_policy, alarm_url]} | |
| asg_size: | |
| description: > | |
| This is the current size of the auto scaling group. | |
| value: {get_attr: [asg, current_size]} | |
| server_list: | |
| description: > | |
| This is a list of server names that are part of the group. | |
| value: {get_attr: [asg, outputs_list, name]} | |
| networks: | |
| description: > | |
| This is a map of server resources and their networks. | |
| value: {get_attr: [asg, outputs, networks]} | |
| server_ips: | |
| description: > | |
| This is a list of first ip addresses of the servers in the group | |
| for a specified network. | |
| value: {get_attr: [asg, outputs_list, networks, {get_param: network}, 0]} |