Update ubuntu docker file and add autoscaling templates
Related-PROD: PROD-36128
Change-Id: Ic983e236e4342d50a5df7075a5a47eaeb866ac16
diff --git a/autoscale/environment.yaml b/autoscale/environment.yaml
new file mode 100644
index 0000000..19907c4
--- /dev/null
+++ b/autoscale/environment.yaml
@@ -0,0 +1,2 @@
+resource_registry:
+ "OS::Nova::Server::Ubuntu": "server.yaml"
diff --git a/autoscale/server.yaml b/autoscale/server.yaml
new file mode 100644
index 0000000..1c5aa96
--- /dev/null
+++ b/autoscale/server.yaml
@@ -0,0 +1,29 @@
+heat_template_version: 2014-10-16
+description: A simple Ubuntu server booted from volume.
+
+parameters:
+ metadata:
+ type: json
+
+resources:
+ server:
+ type: OS::Nova::Server
+ properties:
+ block_device_mapping:
+ - device_name: vda
+ delete_on_termination: true
+ volume_id: { get_resource: volume }
+ flavor: cvp.medium
+ networks:
+ - network: cvp.net.1
+ metadata: {get_param: metadata}
+ user_data_format: RAW
+ user_data: |
+ #!/bin/sh
+ while [ 1 ] ; do echo $((13**99)) 1>/dev/null 2>&1; done
+
+ volume:
+ type: OS::Cinder::Volume
+ properties:
+ image: 'cvp.ubuntu.1604'
+ size: 20
diff --git a/autoscale/simple.yaml b/autoscale/simple.yaml
new file mode 100644
index 0000000..fe95eed
--- /dev/null
+++ b/autoscale/simple.yaml
@@ -0,0 +1,48 @@
+heat_template_version: 2016-10-14
+description: A simple auto scaling group.
+
+resources:
+ group:
+ type: OS::Heat::AutoScalingGroup
+ properties:
+ cooldown: 60
+ desired_capacity: 2
+ max_size: 5
+ min_size: 1
+ resource:
+ type: OS::Nova::Server::Ubuntu
+ properties:
+ metadata: {"metering.server_group": {get_param: "OS::stack_id"}}
+
+ scaleup_policy:
+ type: OS::Heat::ScalingPolicy
+ properties:
+ adjustment_type: change_in_capacity
+ auto_scaling_group_id: { get_resource: group }
+ cooldown: 60
+ scaling_adjustment: 1
+
+ cpu_alarm_high:
+ type: OS::Aodh::GnocchiAggregationByResourcesAlarm
+ properties:
+ description: Scale up if CPU time spent >10000 ns
+ metric: cpu
+ aggregation_method: mean
+ granularity: 60
+ evaluation_periods: 1
+ threshold: 10000
+ resource_type: instance
+ comparison_operator: gt
+ alarm_actions:
+ - str_replace:
+ template: trust+url
+ params:
+ url: {get_attr: [scaleup_policy, signal_url]}
+ query:
+ list_join:
+ - ''
+ - - {'=': {server_group: {get_param: "OS::stack_id"}}}
+
+outputs:
+ scaleup_policy_signal_url:
+ value: {get_attr: {scaleup_policy, signal_url}}