aboutsummaryrefslogtreecommitdiff
path: root/contrib/demos/heat
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/demos/heat')
-rw-r--r--contrib/demos/heat/README.rst15
-rwxr-xr-xcontrib/demos/heat/launch11
-rw-r--r--contrib/demos/heat/steak-rg.yaml43
-rw-r--r--contrib/demos/heat/steak.yaml54
4 files changed, 123 insertions, 0 deletions
diff --git a/contrib/demos/heat/README.rst b/contrib/demos/heat/README.rst
new file mode 100644
index 000000000..b634febd8
--- /dev/null
+++ b/contrib/demos/heat/README.rst
@@ -0,0 +1,15 @@
+A Kolla Demo using Heat
+=======================
+
+By default, the launch script will spawn 3 Nova instances on a Neutron
+network created from the tools/init-runonce script. Edit the VM\_COUNT
+parameter in the launch script if you would like to spawn a different
+amount of Nova instances. Edit the IMAGE\_FLAVOR if you would like to
+launch images using a flavor other than m1.tiny.
+
+Then run the script:
+
+::
+
+ $ ./launch
+
diff --git a/contrib/demos/heat/launch b/contrib/demos/heat/launch
new file mode 100755
index 000000000..768b69eb0
--- /dev/null
+++ b/contrib/demos/heat/launch
@@ -0,0 +1,11 @@
+VM_COUNT=3
+IMAGE_FLAVOR=m1.small
+PUBLIC_NET_ID=$(neutron net-list | grep public | awk '{print $2}')
+DEMO_NET_ID=$(neutron net-list | grep demo | awk '{print $2}')
+DEMO_SUBNET_ID=$(neutron net-list | grep demo | awk '{print $6}')
+
+echo Public net id is $PUBLIC_NET_ID
+echo Demo net id is $DEMO_NET_ID
+echo Demo subnet id is $DEMO_SUBNET_ID
+
+heat stack-create steak --template-file steak-rg.yaml --parameters="vm_count=$VM_COUNT;image_flavor=$IMAGE_FLAVOR;public_net_id=$PUBLIC_NET_ID;demo_net_id=$DEMO_NET_ID;demo_subnet_id=$DEMO_SUBNET_ID"
diff --git a/contrib/demos/heat/steak-rg.yaml b/contrib/demos/heat/steak-rg.yaml
new file mode 100644
index 000000000..4c0a1db93
--- /dev/null
+++ b/contrib/demos/heat/steak-rg.yaml
@@ -0,0 +1,43 @@
+heat_template_version: 2013-05-23
+
+parameters:
+ public_net_id:
+ type: string
+ description: uuid of a network to use for floating ip addresses
+
+ demo_net_id:
+ type: string
+ description: uuid of a subnet on the fixed network to use for creating ports
+
+ demo_subnet_id:
+ type: string
+ description: uuid of a subnet on the fixed network to use for creating ports
+
+ vm_count:
+ type: string
+ description: Number of VMs to launch
+
+ image_flavor:
+ type: string
+ description: Image flavor to use when launching VMs
+
+resources:
+ steak:
+ type: OS::Heat::ResourceGroup
+ properties:
+ count:
+ get_param: vm_count
+ resource_def:
+ type: steak.yaml
+ properties:
+ image_flavor: {get_param: image_flavor}
+ public_net_id: {get_param: public_net_id}
+ demo_net_id: {get_param: demo_net_id}
+ demo_subnet_id: {get_param: demo_subnet_id}
+
+outputs:
+ eth0:
+ value: {get_attr: [steak, eth0]}
+
+ float:
+ value: {get_attr: [steak, float]}
diff --git a/contrib/demos/heat/steak.yaml b/contrib/demos/heat/steak.yaml
new file mode 100644
index 000000000..9b9bd9fc7
--- /dev/null
+++ b/contrib/demos/heat/steak.yaml
@@ -0,0 +1,54 @@
+heat_template_version: 2013-05-23
+
+parameters:
+ public_net_id:
+ type: string
+ description: uuid of a network to use for floating ip addresses
+
+ demo_net_id:
+ type: string
+ description: uuid of a subnet on the fixed network to use for creating ports
+
+ demo_subnet_id:
+ type: string
+ description: uuid of a subnet on the fixed network to use for creating ports
+
+ image_flavor:
+ type: string
+ description: Number of VMs to launch
+
+resources:
+ steak_node:
+ type: "OS::Nova::Server"
+ properties:
+ key_name: mykey
+ image: cirros
+ flavor:
+ get_param: image_flavor
+ networks:
+ - port:
+ get_resource: steak_node_eth0
+
+ steak_node_eth0:
+ type: "OS::Neutron::Port"
+ properties:
+ network_id:
+ get_param: demo_net_id
+ fixed_ips:
+ - subnet_id:
+ get_param: demo_subnet_id
+
+ steak_node_floating:
+ type: "OS::Neutron::FloatingIP"
+ properties:
+ floating_network_id:
+ get_param: public_net_id
+ port_id:
+ get_resource: steak_node_eth0
+
+outputs:
+ eth0:
+ value: {get_attr: [steak_node_eth0, fixed_ips, 0, ip_address]}
+
+ float:
+ value: {get_attr: [steak_node_floating, floating_ip_address]}