heat_template_version: 2013-05-23 description: heat template that creates MOG stack parameters: pd_server_names: type: comma_delimited_list label: PD server names description: name of the PD instance pd_image_name: type: string label: image name description: PD image name pd_flavor_name: type: string label: PD flavor name description: flavor name of PD instance availabilityzone_name: type: string label: availabilityzone name description: availabilityzone name a_single_1a_names: type: string oam_net_name: type: string ppds_net_name: type: string b_single_1b_names: type: string 1c1_scalling_instance_names: type: string myIPs: type: string 1c2_catalog_instance_names: type: string pcm_server_names: type: string pcm_image_name: type: string pcm_flavor_name: type: string net_name: type: string security_group_name: type: string resources: 1a_single_1A: type: OS::Nova::Server depends_on: - 4p_nested - nestedWithNoNovaHadDependencyToIt properties: name: {get_param: [a_single_1a_names, 0]} image: {get_param: pd_image_name} flavor: {get_param: pd_flavor_name} availability_zone: {get_param: availabilityzone_name} networks: - port: {get_resource: 1a_t1_port_0} - port: {get_resource: 1a_t2_port_0} user_data_format: RAW scheduler_hints: { group: { get_resource: BE_Affinity } } 1a_t1_port_0: type: OS::Neutron::Port properties: network: {get_resource: a_single_1a_network} 1a_t2_port_0: type: OS::Neutron::Port properties: network: {get_param: ppds_net_name} a_single_1a_network: type: OS::Neutron::Net properties: name: get_param: net_name 4p_nested: type: nested-pcm_v0.1.yaml depends_on: - 1a_single_1A - 1b_t1_port_0 - nestedWithNoNovaHadDependencyToIt properties: pcm_server_name: { get_param: [pcm_server_names, 0] } pcm_image_name: { get_param: pcm_image_name } pcm_flavor_name: { get_param: pcm_flavor_name } cps_net_name: { get_resource: nested_network} security_group_name: { get_resource: jsa_security_group} server_group: { get_resource: BE_Affinity } nested_network: type: OS::Neutron::Net properties: name: get_param: net_name 1b01_single_1B: type: OS::Nova::Server depends_on: - 1a_single_1A - 4p_nested - nestedWithNoNovaHadDependencyToIt properties: name: {get_param: [b_single_1b_names, 0]} image: {get_param: pd_image_name} flavor: {get_param: pd_flavor_name} availability_zone: {get_param: availabilityzone_name} networks: - port: {get_resource: 1b_t1_port_0} - port: {get_resource: 1b_t2_port_0} user_data_format: RAW scheduler_hints: { group: { get_resource: BE_Affinity } } 1b_t1_port_0: type: OS::Neutron::Port properties: network: {get_attr: [1b01_single_1B, accessIPv6]} 1b_t2_port_0: type: OS::Neutron::Port properties: network: {get_resource: b_single_1b_network} b_single_1b_network: type: OS::Neutron::Net properties: name: get_param: net_name 1b02_single_1B: type: OS::Nova::Server properties: name: {get_param: [b_single_1b_names, 1]} image: {get_param: pd_image_name} flavor: {get_param: pd_flavor_name} availability_zone: {get_param: availabilityzone_name} networks: - port: {get_resource: 1b_t1_port_1} - port: {get_resource: 1b_t2_port_1} user_data_format: RAW scheduler_hints: { group: { get_resource: BE_Affinity } } 1b_t1_port_1: type: OS::Neutron::Port properties: network: {get_param: oam_net_name} 1b_t2_port_1: type: OS::Neutron::Port properties: network: {get_resource: b_single_1b_network} 1c101_scalling_instance_1C1: type: OS::Nova::Server depends_on: - nestedWithNoNovaHadDependencyToIt properties: name: {get_param: [1c1_scalling_instance_names, 1]} image: {get_param: pd_image_name} flavor: {get_param: pd_flavor_name} availability_zone: {get_param: availabilityzone_name} networks: - port: {get_resource: 1c1_t1_port_0} - port: {get_resource: 1c1_t2_port_0} user_data_format: RAW1 scheduler_hints: { group: { get_resource: BE_Affinity } } 1c1_t1_port_0: type: OS::Neutron::Port properties: network: {get_resource: 1c1_scalling_instance_network} fixed_ips: [{"ip_address": {get_param: [myIPs, 1]}}] name: 1c1_t1_port_0 1c1_t2_port_0: type: OS::Neutron::Port properties: network: {get_param: ppds_net_name} fixed_ips: [{"ip_address": {get_param: [myIPs, 1]}}] name: 1c1_t2_port_0 1c1_scalling_instance_network: type: OS::Neutron::Net properties: name: get_param: net_name 1c102_scalling_instance_1C1: type: OS::Nova::Server depends_on: - nestedWithNoNovaHadDependencyToIt properties: name: {get_param: [1c1_scalling_instance_names, 2]} image: {get_param: pd_image_name} flavor: {get_param: pd_flavor_name} availability_zone: {get_param: availabilityzone_name} networks: - port: {get_resource: 1c1_t1_port_1} - port: {get_resource: 1c1_t2_port_1} user_data_format: RAW2 scheduler_hints: { group: { get_resource: BE_Affinity } } 1c1_t1_port_1: type: OS::Neutron::Port properties: network: {get_resource: 1c1_scalling_instance_network} fixed_ips: [{"ip_address": {get_param: [myIPs, 1]}}] name: 1c1_t1_port_1 1c1_t2_port_1: type: OS::Neutron::Port properties: network: {get_param: ppds_net_name} fixed_ips: [{"ip_address": {get_param: [myIPs, 1]}}] name: 1c1_t2_port_1 1c201_catalog_instance_1C2: type: OS::Nova::Server properties: name: {get_param: [1c2_catalog_instance_names, 1]} image: {get_param: pd_image_name} flavor: {get_param: pd_flavor_name} availability_zone: {get_param: availabilityzone_name} networks: - port: {get_resource: 1c2_t1_port_0} - port: {get_resource: 1c2_t2_port_0} user_data_format: RAW1 scheduler_hints: { group: { get_resource: BE_Affinity } } 1c2_t1_port_0: type: OS::Neutron::Port depends_on: - nestedWithNoNovaHadDependencyToIt properties: network: {get_param: oam_net_name} 1c2_t2_port_0: type: OS::Neutron::Port properties: network: {get_resource: 1c2_catalog_instance_network} 1c2_catalog_instance_network: type: OS::Neutron::Net properties: name: get_param: net_name 1c202_scalling_instance_1C2: type: OS::Nova::Server properties: name: {get_param: [1c2_catalog_instance_names, 2]} image: {get_param: pd_image_name} flavor: {get_param: pd_flavor_name} availability_zone: {get_param: availabilityzone_name} networks: - port: {get_resource: 1c2_t1_port_1} - port: {get_resource: 1c2_t2_port_1} user_data_format: {get_attr: [1c201_catalog_instance_1C2, instance_name]} scheduler_hints: { group: { get_resource: BE_Affinity } } 1c2_t1_port_1: type: OS::Neutron::Port depends_on: - nestedWithNoNovaHadDependencyToIt properties: network: {get_param: oam_net_name} 1c2_t2_port_1: type: OS::Neutron::Port properties: network: {get_resource: 1c2_catalog_instance_network} nestedNoUnified: type: nested-no_vfc_v0.1.yaml depends_on: - 1c2_t2_port_1 - nestedWithNoNovaHadDependencyToIt properties: pcm_server_name: { get_param: [pcm_server_names, 0] } pcm_image_name: { get_param: pcm_image_name } pcm_flavor_name: { get_param: pcm_flavor_name } cps_net_name: { get_resource: nested_network} security_group_name: { get_resource: jsa_security_group} server_group: { get_resource: BE_Affinity } nestedWithNoNova: type: nested-no-nova.yaml depends_on: - 1a_single_1A - 4p_nested - 1b_t1_port_0 - 1b_t1_port_1 - 1c101_scalling_instance_1C1 - 1c102_scalling_instance_1C1 - 1c201_catalog_instance_1C2 - 1c202_scalling_instance_1C2 - nestedNoUnified - nestedWithNoNovaHadDependencyToIt properties: security_group_name: group1 net_name: myNetwork nestedWithNoNovaHadDependencyToIt: type: nested-no-nova.yaml properties: security_group_name: group1 net_name: myNetwork jsa_security_group: type: OS::Neutron::SecurityGroup properties: description: ems security group name: {get_param: security_group_name} rules: [{"direction": egress, "ethertype": IPv4, "port_range_min": 1, "port_range_max": 65535, "protocol": tcp, "remote_ip_prefix": 0.0.0.0/0}, {"direction": egress, "ethertype": IPv4, "port_range_min": 1, "port_range_max": 65535, "protocol": udp, "remote_ip_prefix": 0.0.0.0/0}, {"direction": egress, "ethertype": IPv4, "protocol": icmp, "remote_ip_prefix": 0.0.0.0/0}, {"direction": egress, "ethertype": IPv6, "port_range_min": 1, "port_range_max": 65535, "protocol": tcp, "remote_ip_prefix": "::/0"}, {"direction": egress, "ethertype": IPv6, "port_range_min": 1, "port_range_max": 65535, "protocol": udp, "remote_ip_prefix": "::/0"}, {"direction": egress, "ethertype": IPv6, "protocol": icmp, "remote_ip_prefix": "::/0"}, {"direction": ingress, "ethertype": IPv4, "port_range_min": 1, "port_range_max": 65535, "protocol": tcp, "remote_ip_prefix": 0.0.0.0/0}, {"direction": ingress, "ethertype": IPv4, "port_range_min": 1, "port_range_max": 65535, "protocol": udp, "remote_ip_prefix": 0.0.0.0/0}, {"direction": ingress, "ethertype": IPv4, "protocol": icmp, "remote_ip_prefix": 0.0.0.0/0}, {"direction": ingress, "ethertype": IPv6, "port_range_min": 1, "port_range_max": 65535, "protocol": tcp, "remote_ip_prefix": "::/0"}, {"direction": ingress, "ethertype": IPv6, "port_range_min": 1, "port_range_max": 65535, "protocol": udp, "remote_ip_prefix": "::/0"}, {"direction": ingress, "ethertype": IPv6, "protocol": icmp, "remote_ip_prefix": "::/0"} ] dependsOn_network: type: OS::Neutron::Net depends_on: - nestedNoUnified - 4p_nested - 1c2_t1_port_1 - 1c2_t1_port_0 - 1c201_catalog_instance_1C2 - 1c202_scalling_instance_1C2 - 1c101_scalling_instance_1C1 - 1c102_scalling_instance_1C1 - 1c1_t2_port_0 - 1c1_t2_port_1 - 1b01_single_1B - 1b02_single_1B - 1b_t1_port_0 - 1b_t1_port_1 - 1a_single_1A - 1a_t1_port_0 - nestedWithNoNovaHadDependencyToIt properties: name: get_param: net_name nodeGetAttIn_network: type: OS::Neutron::Net properties: name: { get_attr: [nestedNoUnified, portId, {get_attr: [4p_nested, server_pcm_id]}]} dhcp_agent_ids: { get_attr: [1c2_t1_port_1, tenant_id, {get_attr: [1c2_t1_port_0, tenant_id, {get_attr: [1c201_catalog_instance_1C2, instance_name, {get_attr: [1c202_scalling_instance_1C2,instance_name]}]}]}]} tenant_id: { get_attr:[1c101_scalling_instance_1C1, instance_name, {get_attr:[1c102_scalling_instance_1C1, instance_name, {get_attr:[1c1_t2_port_0, tenant_id, {get_attr:[1c1_t2_port_1, tenant_id]}]}]}]} value_specs: {get_attr:[1b01_single_1B, instance_name, get_attr:[1b02_single_1B,instance_name, {get_attr:[1b_t1_port_0, tenant_id, {get_attr:[1b_t1_port_1, tenant_id]}]}]] } qos_policy: {get_attr:[1a_single_1A, instance_name]} admin_state_up: {get_attr:[1a_t1_port_0, tenant_id]} BE_Affinity: type: OS::Nova::ServerGroup properties: policies: ["affinity"] name: def outputs: out1: value: { get_attr: [nestedNoUnified, portId, {get_attr: [4p_nested, server_pcm_id]}]} out2: value: { get_attr: [1c2_t1_port_1, tenant_id, {get_attr: [1c2_t1_port_0, tenant_id, {get_attr: [1c201_catalog_instance_1C2, instance_name, {get_attr: [1c202_scalling_instance_1C2,instance_name]}]}]}]} out3: value: { get_attr:[1c101_scalling_instance_1C1, instance_name, {get_attr:[1c102_scalling_instance_1C1, instance_name, {get_attr:[1c1_t2_port_0, tenant_id, {get_attr:[1c1_t2_port_1, tenant_id]}]}]}]} out4: value: {get_attr:[1b01_single_1B, instance_name, get_attr:[1b02_single_1B,instance_name, {get_attr:[1b_t1_port_0, tenant_id, {get_attr:[1b_t1_port_1, tenant_id]}]}]] } out5: value: {get_attr:[1a_single_1A, instance_name]} out6: value: {get_attr:[1a_t1_port_0, tenant_id]} out7: value: {get_attr:[nestedWithNoNovaHadDependencyToIt, output1]}