heat_template_version: 2013-05-23 description: > Version 2.0 02-09-2016 (Authors: Paul Phillips, pp2854 PROD) parameters: security_group_name: type: comma_delimited_list description: CMAUI1, CMAUI2 server names pcrf_security_group_name: type: comma_delimited_list description: CMAUI1, CMAUI2 server names volume_type: type: string label: volume type description: volume type Gold volume_size: type: number label: volume size description: my volume size 320GB FSB_1_image: type: string label: MME_FSB1 description: MME_FSB1_15B-CP04-r5a01 FSB1_volume_name: type: string label: FSB1_volume description: FSB1_volume_1 fsb1-name: type: string label: FSB1_name description: FSB1_name fsb1-flavor: type: string label: FSB1_flavor description: FSB1_flavor fsb1-zone: type: string label: FSB1_zone description: FSB1_zone fsb_zone: type: string label: FSB1_zone description: FSB1_zone fsb1-Internal1-mac: type: string label: FSB1_internal_mac description: FSB1_internal_mac fsb1-Internal2-mac: type: string label: FSB1_internal_mac description: FSB1_internal_mac fsb2-Internal1-mac: type: string label: FSB1_internal_mac description: FSB1_internal_mac oam_net_id: type: string label: oam_net_id description: oam_net_id jsa_net_name: type: string label: jsa_net_name description: jsa_net_name jsa_cidr: type: string label: jsa_cidr description: jsa_cidr pcrf_cps_net_name: type: string label: pcrf_cps_net_name description: pcrf_cps_net_name pcrf_psm_server_name: type: string label: pcrf_psm_server_name description: pcrf_psm_server_name pcrf_psm_image_name: type: string label: pcrf_psm_image_name description: pcrf_psm_image_name pcrf_psm_flavor_name: type: string label: pcrf_psm_flavor_name description: pcrf_psm_flavor_name availabilityzone_name: type: string label: availabilityzone_name description: availabilityzone_name pcm_server_name: type: string label: pcm_server_name description: pcm_server_name pcm_image_name: type: string label: pcm_image_name description: pcm_image_name pcm_flavor_name: type: string label: pcm_flavor_name description: pcm_flavor_name Internal1_net_name: type: string label: Internal1_net_name description: Internal1_net_name Internal1_forwarding_mode: type: string label: Internal1_forwarding_mode description: Internal1_forwarding_mode Internal1_shared: type: string label: Internal1_shared description: Internal1_shared Internal1_external: type: string label: Internal1_external description: Internal1_external Internal2_name: type: string label: Internal2_name description: Internal2_name Internal2_shared: type: string label: Internal2_shared description: Internal2_shared Internal2_external: type: string label: Internal2_external description: Internal2_external Internal2_forwarding_mode: type: string label: Internal2_forwarding_mode description: Internal2_forwarding_mode cps_net_name: type: string label: cps_net_name description: cps_net_name oam_net_name: type: string label: oam_net_name description: oam_net_name oam_net_gw: type: string description: prop cps_net_ip: type: string description: prop cps_net_mask: type: string description: prop oam_net_ip: type: string description: prop oam_net_mask: type: string description: prop fsb1-oam-ip: type: string description: prop pcrf_cps_net_ip: type: string description: prop pcrf_vnf_id: type: string description: prop pcm_vol: type: string description: prop pcm_vol_01: type: string description: prop snapshot01: type: string description: prop snapshot02: type: string description: prop VMME_FSB1_boot_volume: type: string network_name: type: string description: prop resources: FSB1: type: OS::Nova::Server depends_on: script_init properties: name: { get_attr: [FSB1_Internal1, unsupportedAttr] } block_device_mapping: [{device_name: "vda", volume_id : {get_param: VMME_FSB1_boot_volume }, delete_on_termination: "false" }] flavor: { get_param: fsb1-flavor } availability_zone: { get_param: fsb_zone } networks: - port: { get_resource: FSB1_Internal1 } fixed_ip: 10.0.0.0 floating_ip: 10.0.0.1 network: 100_1000_0011 port_extra_properties: {admin_state_up: true , allowed_address_pairs: 10} subnet: 10.0.0.2 - port: { get_resource: FSB1_Internal2 } - port: { get_resource: FSB1_OAM } metadata: write_files: - path: /etc/sysconfig/network-scripts/ifcfg-eth0 permissions: "0644" content: str_replace: template: { get_file: "file:///nimbus-ethernet" } params: $dev: eth0 $ip: { get_param: cps_net_ip } $netmask: { get_param: cps_net_mask } - path: /etc/sysconfig/network-scripts/ifcfg-eth1 permissions: "0644" content: str_replace: template: { get_file: "file:///nimbus-ethernet-gw" } params: $dev: eth1 $ip: { get_param: oam_net_ip } $netmask: { get_param: oam_net_mask } $gateway: { get_param: oam_net_gw } FSB1_Internal1: type: OS::Neutron::Port properties: network_id: { get_resource: Internal1-net } mac_address: { get_param: fsb1-Internal1-mac } FSB1_Internal2: type: OS::Neutron::Port properties: network_id: { get_resource: Internal2-net } mac_address: { get_param: fsb1-Internal2-mac } FSB1_OAM: type: OS::Neutron::Port properties: network_id: { get_param: oam_net_id } fixed_ips: - ip_address: { get_param: fsb1-oam-ip } pcrf_server_init: type: OS::Heat::MultipartMime properties: parts: - config: { get_resource: network} - config: { get_resource: script_init} psm01_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_server_psm: type: OS::Nova::Server properties: config_drive: "True" name: { get_param: pcrf_psm_server_name } image: { get_param: pcrf_psm_image_name } flavor: { get_param: pcrf_psm_flavor_name } availability_zone: { get_param: availabilityzone_name } networks: - port: { get_resource: psm01_port_0} user_data_format: RAW user_data: get_resource: pcrf_server_init metadata: vnf_id: {get_param: pcrf_vnf_id} 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 server_VolumeTest: 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 } block_device_mapping: - device_name: vdb - device_name: vdb volume_id: { get_param: pcm_vol} - device_name: vdb volume_id: { get_param: pcm_vol_01} - device_name: vdb volume_id: { get_resource: pcm_vol_02} - device_name: vdb snapshot_id: { get_param: snapshot01} - snapshot_id: { get_param: snapshot02} user_data_format: RAW user_data: get_resource: server_init 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: Internal1_net_name } pcm_vol_02: type: OS::Cinder::Volume properties: size: {get_param: volume_size} volume_type: {get_param: volume_type} name: {get_param: FSB1_volume_name} image: {get_param: FSB_1_image} read_only: 1 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 }] Internal1-net: type: OS::Contrail::VirtualNetwork properties: name: { get_param: Internal1_net_name } forwarding_mode: { get_param: Internal1_forwarding_mode } shared: { get_param: Internal1_shared } external: { get_param: Internal1_external } # route_targets: { "Fn::Split" : [ ",", Ref: route_targets ] } Internal2-net: type: OS::Contrail::VirtualNetwork properties: name: { get_param: Internal2_name } forwarding_mode: { get_param: Internal2_forwarding_mode } shared: { get_param: Internal2_shared } external: { get_param: Internal2_external } # route_targets: { "Fn::Split" : [ ",", Ref: route_targets ] } FSB2: type: OS::Nova::Server properties: name: { get_param: fsb1-name } flavor: { get_param: fsb1-flavor } availability_zone: { get_param: fsb_zone } networks: - network: {get_param: network_name}