heat_template_version: 2013-05-23 description: heat template that creates PCRF Cluman stack parameters: pcm_server_name: type: string label: PCRF CM server name description: PCRF CM server name pcm_image_name: type: string label: image name description: PCRF CM image name 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 cps_net_name: type: string label: CPS network name description: CPS network name cps_net_ip: type: string label: CPS network ip description: CPS network ip cps_net_ips: type: string label: CPS network ip description: CPS network ip cps_net_mask: type: string label: CPS network mask description: CPS network mask oam_net_name: type: string label: OAM network name description: OAM network name oam_net_ip: type: string label: OAM network ip description: OAM network ip oam_net_gw: type: string label: CPS network gateway description: CPS network gateway oam_net_mask: type: string label: CPS network mask description: CPS network mask pcm_vol: type: string label: CPS Cluman Cinder Volume description: CPS Cluman Cinder Volume pcm_volumes: type: string label: CPS Cluman Cinder Volume description: CPS Cluman Cinder Volume security_group_name: type: string label: security group name description: the name of security group resources: server_pcm_005: type: nested-pcm_v0.1_2.yaml properties: availabilityzone_name: { get_param: availabilityzone_name } security_group_name: { get_param: security_group_name } pcm_vol: { get_param: [pcm_volumes, 0] } cps_net_name: { get_param: cps_net_name } cps_net_ip: { get_param: [cps_net_ips, 0] } cps_net_mask: { get_param: cps_net_mask } server_init: type: OS::Heat::MultipartMime properties: parts: - config: { get_resource: network} - config: { get_resource: script_init} script_init: type: OS::Heat::MultipartMime properties: parts: - config: { get_resource: network} network: type: OS::Contrail::VirtualNetwork properties: name: { get_param: cps_net_name} server_pcm: type: OS::Nova::Server properties: config_drive: "True" name: { get_param: pcm_server_name } image: { get_param: pcm_image_name } flavor: { get_param: pcm_flavor_name } availability_zone: { get_param: availabilityzone_name } networks: - port: { get_resource: pcm_port_0} - port: { get_resource: pcm_port_1} block_device_mapping: - device_name: vdb volume_id: { get_param: pcm_vol} user_data_format: RAW user_data: get_resource: server_init pcm_port_0: type: OS::Neutron::Port properties: network: { get_param: cps_net_name } fixed_ips: - ip_address: { get_param: cps_net_ip } security_groups: [{ get_param: security_group_name }] pcm_port_1: type: OS::Neutron::Port properties: network: { get_param: oam_net_name } fixed_ips: - ip_address: { get_param: oam_net_ip } security_groups: [{ get_param: security_group_name }] #pcm_vol_attachment: # type: OS::Cinder::VolumeAttachment # properties: # volume_id: { get_param: pcm_vol } # mountpoint: /dev/vdb # instance_uuid: { get_resource: server_pcm } outputs: server_pcm_id: description: the pcm nova service id value: { get_resource: server_pcm }