heat_template_version: 2013-05-23 description: heat template that creates PCRF Cluman stack parameters: pcrf_pcm_server_name: type: string label: PCRF CM server name description: PCRF CM server name pcrf_pcm_image_name: type: string label: image name description: PCRF CM image name pcrf_pcm_flavor_name: type: string label: PCRF CM flavor name description: flavor name of PCRF CM 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_ip: type: string label: CPS network ip description: CPS network ip pcrf_cps_net_mask: type: string label: CPS network mask description: CPS network mask pcrf_oam_net_name: type: string label: OAM network name description: OAM network name pcrf_oam_net_ip: type: string label: OAM network ip description: OAM network ip pcrf_oam_net_gw: type: string label: CPS network gateway description: CPS network gateway pcrf_oam_net_mask: type: string label: CPS network mask description: CPS network mask pcrf_pcm_volume_id: type: string label: CPS Cluman Cinder Volume description: CPS Cluman Cinder Volume 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: network: type: OS::Heat::CloudConfig properties: cloud_config: write_files: - path: /etc/sysconfig/network-scripts/ifcfg-eth0 permissions: "0644" content: str_replace: template: { get_file: nimbus-ethernet } params: $dev: eth0 $ip: { get_param: pcrf_cps_net_ip } $netmask: { get_param: pcrf_cps_net_mask } - path: /etc/sysconfig/network-scripts/ifcfg-eth1 permissions: "0644" content: str_replace: template: { get_file: nimbus-ethernet-gw } params: $dev: eth1 $ip: { get_param: pcrf_oam_net_ip } $netmask: { get_param: pcrf_oam_net_mask } $gateway: { get_param: pcrf_oam_net_gw } runcmd: - ifdown eth0 && ifup eth0 - ifdown eth1 && ifup eth1 script_init: type: OS::Heat::SoftwareConfig properties: group: ungrouped config: str_replace: template: { get_file: cloud-nimbus.sh } params: $vm_name: { get_param: pcrf_pcm_server_name } pcrf_server_init: type: OS::Heat::MultipartMime properties: parts: - config: { get_resource: network} - config: { get_resource: script_init} pcrf_server_pcm: type: OS::Nova::Server properties: config_drive: "True" name: { get_param: pcrf_pcm_server_name } image: { get_param: pcrf_pcm_image_name } flavor: { get_param: pcrf_pcm_flavor_name } availability_zone: { get_param: availabilityzone_name } networks: - port: { get_resource: pcrf_pcm_port_0} - port: { get_resource: pcrf_pcm_port_1} user_data_format: RAW user_data: get_resource: pcrf_server_init metadata: vnf_id: {get_param: pcrf_vnf_id} pcrf_pcm_port_0: type: OS::Neutron::Port properties: network: { get_param: pcrf_cps_net_name } fixed_ips: - ip_address: { get_param: pcrf_cps_net_ip } security_groups: [{ get_param: pcrf_security_group_name }] pcrf_pcm_port_1: type: OS::Neutron::Port properties: network: { get_param: pcrf_oam_net_name } fixed_ips: - ip_address: { get_param: pcrf_oam_net_ip } security_groups: [{ get_param: pcrf_security_group_name }] volume_attachment: type: OS::Cinder::VolumeAttachment properties: volume_id: { get_param: pcrf_pcm_volume_id } mountpoint: /dev/vdd instance_uuid: { get_resource: pcrf_server_pcm } outputs: pcrf_server_pcm_id: description: the pcm server id value: { get_resource: pcrf_server_pcm }