diff --git a/demos/heat/launch b/demos/heat/launch
new file mode 100755
index 0000000000000000000000000000000000000000..d46e69f1d08e7a4c8dc93ec81d9999024dedee6f
--- /dev/null
+++ b/demos/heat/launch
@@ -0,0 +1,9 @@
+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="public_net_id=$PUBLIC_NET_ID;demo_net_id=$DEMO_NET_ID;demo_subnet_id=$DEMO_SUBNET_ID"
diff --git a/demos/heat/steak-rg.yaml b/demos/heat/steak-rg.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..8b327159ee15780103ced88e6e81b5fc612346c7
--- /dev/null
+++ b/demos/heat/steak-rg.yaml
@@ -0,0 +1,26 @@
+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
+
+resources:
+  steak:
+    type: OS::Heat::ResourceGroup
+    properties:
+      count: 20
+      resource_def:
+        type: steak.yaml
+        properties:
+          public_net_id: {get_param: public_net_id}
+          demo_net_id: {get_param: demo_net_id}
+          demo_subnet_id: {get_param: demo_subnet_id}
diff --git a/demos/heat/steak.yaml b/demos/heat/steak.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..cb76b2ef175c889c5c9eeb591006010577f1b194
--- /dev/null
+++ b/demos/heat/steak.yaml
@@ -0,0 +1,42 @@
+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
+
+resources:
+  steak_node:
+    type: "OS::Nova::Server"
+    properties:
+      key_name: sdake
+      image: cirros
+      flavor: m1.small
+      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