heat_template_version: 2013-05-23 description: heat template that creates PCRF Session Manager stack parameters: num_instances: type: comma_delimited_list label: PCRF SM server names description: name of the PCRF SM instance pcrf_psm_server_names: type: comma_delimited_list label: PCRF SM server names description: name of the PCRF SM instance pcrf_psm_image_name: type: string label: PCRF SM image name description: PCRF SM image name pcrf_psm_flavor_name: type: string label: PCRF SM flavor name description: flavor name of PCRF SM instance availabilityzone_name: type: string label: availabilityzone name description: availabilityzone name pcrf_cps_net_name: type: string label: CPS network name description: CPS network name pcrf_cps_net_ips: type: comma_delimited_list label: CPS network ips description: CPS network ips pcrf_cps_net_mask: type: string label: CPS network mask description: CPS network mask pcrf_security_group_name: type: string label: security group name description: the name of security group pcrf_vnf_id: type: string label: PCRF VNF Id description: PCRF VNF Id resources: server_pcrf_psm_001: type: nested-psm_v1.0.yaml properties: pcrf_psm_server_name: { get_param: [pcrf_psm_server_names, 0] } pcrf_psm_image_name: { get_param: pcrf_psm_image_name } pcrf_psm_flavor_name: { get_param: pcrf_psm_flavor_name } availabilityzone_name: { get_param: availabilityzone_name } pcrf_security_group_name: { get_param: pcrf_security_group_name } pcrf_cps_net_name: { get_param: pcrf_cps_net_name } pcrf_cps_net_ip: { get_param: [pcrf_cps_net_ips, 0] } pcrf_cps_net_mask: { get_param: pcrf_cps_net_mask } pcrf_vnf_id: {get_param: pcrf_vnf_id} server_pcrf_psm_002: type: nested-psm_v1.0.yaml properties: pcrf_psm_server_name: { get_param: [pcrf_psm_server_names, 1] } pcrf_psm_image_name: { get_param: pcrf_psm_image_name } pcrf_psm_flavor_name: { get_param: pcrf_psm_flavor_name } availabilityzone_name: { get_param: availabilityzone_name } pcrf_security_group_name: { get_param: pcrf_security_group_name } pcrf_cps_net_name: { get_param: pcrf_cps_net_name } pcrf_cps_net_ip: { get_param: [pcrf_cps_net_ips, 1] } pcrf_cps_net_mask: { get_param: pcrf_cps_net_mask } pcrf_vnf_id: {get_param: pcrf_vnf_id} server_pcrf_psm_003: type: nested-psm_v1.0.yaml properties: pcrf_psm_server_name: { get_param: [pcrf_psm_server_names, 2] } pcrf_psm_image_name: { get_param: pcrf_psm_image_name } pcrf_psm_flavor_name: { get_param: pcrf_psm_flavor_name } availabilityzone_name: { get_param: availabilityzone_name } pcrf_security_group_name: { get_param: pcrf_security_group_name } pcrf_cps_net_name: { get_param: pcrf_cps_net_name } pcrf_cps_net_ip: { get_param: [pcrf_cps_net_ips, 2] } pcrf_cps_net_mask: { get_param: pcrf_cps_net_mask } pcrf_vnf_id: {get_param: pcrf_vnf_id} server_pcrf_psm_004: type: nested-psm_v1.0.yaml properties: pcrf_psm_server_name: { get_param: [pcrf_psm_server_names, 3] } pcrf_psm_image_name: { get_param: pcrf_psm_image_name } pcrf_psm_flavor_name: { get_param: pcrf_psm_flavor_name } availabilityzone_name: { get_param: availabilityzone_name } pcrf_security_group_name: { get_param: pcrf_security_group_name } pcrf_cps_net_name: { get_param: pcrf_cps_net_name } pcrf_cps_net_ip: { get_param: [pcrf_cps_net_ips, 3] } pcrf_cps_net_mask: { get_param: pcrf_cps_net_mask } pcrf_vnf_id: {get_param: pcrf_vnf_id} server_pcrf_psm_005: type: nested-psm_v1.0.yaml properties: pcrf_psm_server_name: { get_param: [pcrf_psm_server_names, 4] } pcrf_psm_image_name: { get_param: pcrf_psm_image_name } pcrf_psm_flavor_name: { get_param: pcrf_psm_flavor_name } availabilityzone_name: { get_param: availabilityzone_name } pcrf_security_group_name: { get_param: pcrf_security_group_name } pcrf_cps_net_name: { get_param: pcrf_cps_net_name } pcrf_cps_net_ip: { get_param: [pcrf_cps_net_ips, 4] } pcrf_cps_net_mask: { get_param: pcrf_cps_net_mask } pcrf_vnf_id: {get_param: pcrf_vnf_id} server_pcrf_psm_006: type: nested-psm_v1.0.yaml properties: pcrf_psm_server_name: { get_param: [pcrf_psm_server_names, 5] } pcrf_psm_image_name: { get_param: pcrf_psm_image_name } pcrf_psm_flavor_name: { get_param: pcrf_psm_flavor_name } availabilityzone_name: { get_param: availabilityzone_name } pcrf_security_group_name: { get_param: pcrf_security_group_name } pcrf_cps_net_name: { get_param: pcrf_cps_net_name } pcrf_cps_net_ip: { get_param: [pcrf_cps_net_ips, 5] } pcrf_cps_net_mask: { get_param: pcrf_cps_net_mask } pcrf_vnf_id: {get_param: pcrf_vnf_id} server_pcrf_psm_007: type: nested-psm_v1.0.yaml properties: pcrf_psm_server_name: { get_param: [pcrf_psm_server_names, 6] } pcrf_psm_image_name: { get_param: pcrf_psm_image_name } pcrf_psm_flavor_name: { get_param: pcrf_psm_flavor_name } availabilityzone_name: { get_param: availabilityzone_name } pcrf_security_group_name: { get_param: pcrf_security_group_name } pcrf_cps_net_name: { get_param: pcrf_cps_net_name } pcrf_cps_net_ip: { get_param: [pcrf_cps_net_ips, 6] } pcrf_cps_net_mask: { get_param: pcrf_cps_net_mask } pcrf_vnf_id: {get_param: pcrf_vnf_id} server_pcrf_psm_008: type: nested-psm_v1.0.yaml properties: pcrf_psm_server_name: { get_param: [pcrf_psm_server_names, 7] } pcrf_psm_image_name: { get_param: pcrf_psm_image_name } pcrf_psm_flavor_name: { get_param: pcrf_psm_flavor_name } availabilityzone_name: { get_param: availabilityzone_name } pcrf_security_group_name: { get_param: pcrf_security_group_name } pcrf_cps_net_name: { get_param: pcrf_cps_net_name } pcrf_cps_net_ip: { get_param: [pcrf_cps_net_ips, 7] } pcrf_cps_net_mask: { get_param: pcrf_cps_net_mask } pcrf_vnf_id: {get_param: pcrf_vnf_id} server_pcrf_psm_009: type: nested-psm_v1.0.yaml properties: pcrf_psm_server_name: { get_param: [pcrf_psm_server_names, 8] } pcrf_psm_image_name: { get_param: pcrf_psm_image_name } pcrf_psm_flavor_name: { get_param: pcrf_psm_flavor_name } availabilityzone_name: { get_param: availabilityzone_name } pcrf_security_group_name: { get_param: pcrf_security_group_name } pcrf_cps_net_name: { get_param: pcrf_cps_net_name } pcrf_cps_net_ip: { get_param: [pcrf_cps_net_ips, 8] } pcrf_cps_net_mask: { get_param: pcrf_cps_net_mask } pcrf_vnf_id: {get_param: pcrf_vnf_id} server_pcrf_psm_010: type: nested-psm_v1.0.yaml properties: pcrf_psm_server_name: { get_param: [pcrf_psm_server_names, 9] } pcrf_psm_image_name: { get_param: pcrf_psm_image_name } pcrf_psm_flavor_name: { get_param: pcrf_psm_flavor_name } availabilityzone_name: { get_param: availabilityzone_name } pcrf_security_group_name: { get_param: pcrf_security_group_name } pcrf_cps_net_name: { get_param: pcrf_cps_net_name } pcrf_cps_net_ip: { get_param: [pcrf_cps_net_ips, 9] } pcrf_cps_net_mask: { get_param: pcrf_cps_net_mask } pcrf_vnf_id: {get_param: pcrf_vnf_id} server_pcrf_psm_011: type: nested-psm_v1.0.yaml properties: pcrf_psm_server_name: { get_param: [pcrf_psm_server_names, 10] } pcrf_psm_image_name: { get_param: pcrf_psm_image_name } pcrf_psm_flavor_name: { get_param: pcrf_psm_flavor_name } availabilityzone_name: { get_param: availabilityzone_name } pcrf_security_group_name: { get_param: pcrf_security_group_name } pcrf_cps_net_name: { get_param: pcrf_cps_net_name } pcrf_cps_net_ip: { get_param: [pcrf_cps_net_ips, 10] } pcrf_cps_net_mask: { get_param: pcrf_cps_net_mask } pcrf_vnf_id: {get_param: pcrf_vnf_id} server_pcrf_psm_012: type: nested-psm_v1.0.yaml properties: pcrf_psm_server_name: { get_param: [pcrf_psm_server_names, 11] } pcrf_psm_image_name: { get_param: pcrf_psm_image_name } pcrf_psm_flavor_name: { get_param: pcrf_psm_flavor_name } availabilityzone_name: { get_param: availabilityzone_name } pcrf_security_group_name: { get_param: pcrf_security_group_name } pcrf_cps_net_name: { get_param: pcrf_cps_net_name } pcrf_cps_net_ip: { get_param: [pcrf_cps_net_ips, 11] } pcrf_cps_net_mask: { get_param: pcrf_cps_net_mask } pcrf_vnf_id: {get_param: pcrf_vnf_id} resource_with_resources_group: type: OS::Heat::ResourceGroup properties: count: { get_param: num_instances } resource_def: type: nested-from-resources-group.yaml properties: cloud_zone_id: { get_param: cloud_zone_id } vf_name: { get_param: vf_name } vf_instance_num: { get_param: vf_instance_num } vf_component: { get_param: vf_component } vm_instance_num: { get_param: vm_instance_num } vnf_id: { get_param: vnf_id } vf_module_id: { get_param: vf_module_id } bootimage: { get_param: bootimage } flavor: { get_param: flavor } key_name: { get_param: key_name } availability_zone_0: { get_param: availability_zone_0 } sec_groups: { get_param: sec_groups } data_volume_size: { get_param: data_volume_size } mgmt_net_id: { get_param: mgmt_net_id } sas_mgmt_ip_0: { get_param: sas_mgmt_ip_0 } indx: "%index%" resource_without_resources_group: type: OS::Heat::ResourceGroup properties: count: { get_param: num_instances } resource_def: type: OS::Nova::Server properties: cloud_zone_id: { get_param: cloud_zone_id } vf_name: { get_param: vf_name } vf_instance_num: { get_param: vf_instance_num } vf_component: { get_param: vf_component } vm_instance_num: { get_param: vm_instance_num } vnf_id: { get_param: vnf_id } vf_module_id: { get_param: vf_module_id } bootimage: { get_param: bootimage } flavor: { get_param: flavor } key_name: { get_param: key_name } availability_zone_0: { get_param: availability_zone_0 } sec_groups: { get_param: sec_groups } data_volume_size: { get_param: data_volume_size } mgmt_net_id: { get_param: mgmt_net_id } sas_mgmt_ip_0: { get_param: sas_mgmt_ip_0 } indx: "%index%" resource_with_not_existing_resources_group: type: OS::Heat::ResourceGroup properties: count: { get_param: num_instances } resource_def: type: nested-from-resources-group.yaml properties: cloud_zone_id: { get_param: cloud_zone_id } vf_name: { get_param: vf_name } vf_instance_num: { get_param: vf_instance_num } vf_component: { get_param: vf_component } vm_instance_num: { get_param: vm_instance_num } vnf_id: { get_param: vnf_id } vf_module_id: { get_param: vf_module_id } bootimage: { get_param: bootimage } flavor: { get_param: flavor } key_name: { get_param: key_name } availability_zone_0: { get_param: availability_zone_0 } sec_groups: { get_param: sec_groups } data_volume_size: { get_param: data_volume_size } mgmt_net_id: { get_param: mgmt_net_id } sas_mgmt_ip_0: { get_param: sas_mgmt_ip_0 } indx: "%index%"