heat_template_version: 2013-05-23 description: > Topology 1: - 4 servers (Cirros)) - 2 Logical Switches - 1 Logical Router (Shared) - 2 Security Group allowing HTTP parameters: public_net: label: Public Network ID for external connectivity type: string description: > ID or name of public network # Need to update this network UUID for each vPod. default: public cirros_image: default: cirros-0.3.3-x86_64-ESX description: "cirros image" type: string resources: # Topology1 heat_NAT_web_net: type: OS::Neutron::Net properties: name: heat_NAT_web heat_NAT_web_subnet: type: OS::Neutron::Subnet properties: network_id: { get_resource: heat_NAT_web_net } cidr: 10.21.1.0/24 dns_nameservers: [ "10.166.17.90" ] heat_NAT_db_net: type: OS::Neutron::Net properties: name: heat_NAT_db heat_NAT_db_subnet: type: OS::Neutron::Subnet properties: network_id: { get_resource: heat_NAT_db_net } cidr: 10.21.2.0/24 dns_nameservers: [ "10.166.17.90" ] my_key: type: OS::Nova::KeyPair properties: save_private_key: true name: my_key router: type: OS::Neutron::Router properties: admin_state_up: true name: heat_NAT_router router_gw: type: OS::Neutron::RouterGateway properties: network_id: { get_param: public_net} router_id: { get_resource: router } router_interface1: type: OS::Neutron::RouterInterface properties: router_id: { get_resource: router } subnet_id: { get_resource: heat_NAT_web_subnet } router_interface2: type: OS::Neutron::RouterInterface properties: router_id: { get_resource: router } subnet_id: { get_resource: heat_NAT_db_subnet } heat_NAT_web_secgroup: type: OS::Neutron::SecurityGroup properties: name: heat_NAT_web_secgroup rules: - protocol: tcp remote_ip_prefix: 0.0.0.0/0 port_range_min: 443 port_range_max: 443 - protocol: tcp remote_ip_prefix: 0.0.0.0/0 port_range_min: 22 port_range_max: 22 - protocol: icmp remote_ip_prefix: 0.0.0.0/0 heat_NAT_db_secgroup: type: OS::Neutron::SecurityGroup properties: name: heat_NAT_db_secgroup rules: - protocol: tcp remote_mode: remote_group_id remote_group_id: { get_resource: heat_NAT_web_secgroup } port_range_min: 3307 port_range_max: 3307 - protocol: icmp remote_ip_prefix: 0.0.0.0/0 server1_port: type: OS::Neutron::Port properties: network_id: { get_resource: heat_NAT_web_net } security_groups: - { get_resource: heat_NAT_web_secgroup } server1_instance: type: OS::Nova::Server properties: image: { get_param: cirros_image} flavor: m1.tiny key_name: { get_resource: my_key } networks: - port: { get_resource: server1_port } server1_floating_ip: type: OS::Neutron::FloatingIP properties: floating_network_id: { get_param: public_net } port_id: { get_resource: server1_port } server2_port: type: OS::Neutron::Port properties: network_id: { get_resource: heat_NAT_db_net } security_groups: - { get_resource: heat_NAT_db_secgroup } server2_instance: type: OS::Nova::Server properties: image: { get_param: cirros_image} flavor: m1.tiny key_name: { get_resource: my_key } networks: - port: { get_resource: server2_port } server3_port: type: OS::Neutron::Port properties: network_id: { get_resource: heat_NAT_db_net } security_groups: - { get_resource: heat_NAT_db_secgroup } server3_instance: type: OS::Nova::Server properties: image: { get_param: cirros_image} flavor: m1.tiny key_name: { get_resource: my_key } networks: - port: { get_resource: server3_port } server4_port: type: OS::Neutron::Port properties: network_id: { get_resource: heat_NAT_web_net } security_groups: - { get_resource: heat_NAT_web_secgroup } server4_instance: type: OS::Nova::Server properties: image: { get_param: cirros_image} flavor: m1.tiny key_name: { get_resource: my_key } networks: - port: { get_resource: server4_port } outputs: topo1_server1_floatingip: description: Floating IP address of Topology1_Server1_floatingip value: { get_attr: [ server1_floating_ip, floating_ip_address ] } topo1_server1_private_ip: description: Private IP address of the deployed compute instance value: { get_attr: [server1_instance, networks, heat_NAT_web, 0] } topo1_server2_private_ip: description: Private IP address of the deployed compute instance value: { get_attr: [server2_instance, networks, heat_NAT_db, 0] } topo1_server3_private_ip: description: Private IP address of the deployed compute instance value: { get_attr: [server3_instance, networks, heat_NAT_db, 0] } topo1_server4_private_ip: description: Private IP address of the deployed compute instance value: { get_attr: [server4_instance, networks, heat_NAT_web, 0] } private_key: description: Private key value: { get_attr: [ my_key, private_key ] }