diff options
Diffstat (limited to 'openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/nestedwithoutNodeTemplates/inputs/module_2_perimeta_sw_b_child.yaml')
-rw-r--r-- | openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/nestedwithoutNodeTemplates/inputs/module_2_perimeta_sw_b_child.yaml | 292 |
1 files changed, 292 insertions, 0 deletions
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/nestedwithoutNodeTemplates/inputs/module_2_perimeta_sw_b_child.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/nestedwithoutNodeTemplates/inputs/module_2_perimeta_sw_b_child.yaml new file mode 100644 index 0000000000..3aa1a66ba1 --- /dev/null +++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/nestedwithoutNodeTemplates/inputs/module_2_perimeta_sw_b_child.yaml @@ -0,0 +1,292 @@ +# Heat template which intstantiates an B side Perimeta RTP MSC instance with +# 4 vNICs. +# +# This is designed to be included in a higher level template. +# +# This template puts the Perimeta configuration in place using userdata +# injected via OpenStack's ConfigDrive mechanism. +# +# Host anti-affinity is achieved using different availability zones for +# the Perimeta instance or server group anti-affinity if they are in the +# same availability zone. +# +# Template requires Juno or above and has been tested on Kilo. +# +heat_template_version: 2014-10-16 + +description: > + HOT template to instantiate an B side Perimeta RTP MSC instance with 4 vNICs as part of a nested template + +parameters: + vnf_name: + type: string + description: Unique name for this VNF instance + vnf_id: + type: string + description: VNF ID of this deployment + vm_role: + type: string + description: Role of these VMs + vf_module_id: + type: string + description: Unique ID for this VF Module instance + # Index of the instance to instantiate / heal. This is used to access the + # various address / name / server group arrays to extract the information + # specific to this server. + # + # The constraints need to be co-ordinated with the parameter + # perimeta_max_rtp_msc_count in the base template. Unfortunately we cannot + # use a get_param call to get a constraint so it has to be a number. + # + # We also need to account for the fact that arrays start at zero and we are + # specifying the index in this parameter so the maximum constraint is 1 less + # than the maximum in the base template + perimeta_instance_index: + type: number + description: Index of instance among multiple instances. Use to retrieve correct parameter for this instance when passed all parameters for all instances. + constraints: + - range: { min: 0, max: 19 } + description: perimeta_instance_index must be between 0 and 19 + rtp_msc_b_names: + type: comma_delimited_list + description: List of names of Perimeta VM B instances, indexed by perimeta_instance_index + perimeta_image_name: + type: string + description: Glance image for Perimeta instance + perimeta_flavor_name: + type: string + description: Flavor to use for creating VM instances + perimeta_keypair: + type: string + description: Keypair to use for accessing this Perimeta instance + availability_zone_1: + # Can be commented out along with references if always using a single availability zone + type: string + description: Availability zone for B instances. May be the same as A instance. + mgmt_net_id: + type: string + description: Management network id + rtp_msc_mgmt_vips: + type: comma_delimited_list + description: List of management virtual IP addresses for all instances. + rtp_msc_b_mgmt_ips: + type: comma_delimited_list + description: List of fixed IP addresses to use as management IPs of B instances. + int_ha_net_id: + type: string + description: HA network id + int_ha_network_plen: + # Constraint copied from base module + type: number + description: Prefix length of subnet associated with internal HA network + constraints: + - range: { min: 0, max: 31 } + description: int_ha_network_plen must be between 0 and 31 + rtp_msc_b_int_ha_ips: + type: comma_delimited_list + description: List of fixed IP addresses to use as HA IPs of B instances. + rtp_msc_a_int_ha_ips: + type: comma_delimited_list + description: List of fixed IP addresses to use as HA IPs of A instances. + trusted_net_id: + type: string + description: Trusted/core network UUID + rtp_msc_trusted_vips: + type: comma_delimited_list + description: List of Trusted/core virtual IP addresses for all instances. + rtp_msc_b_trusted_ips: + type: comma_delimited_list + description: List of fixed IP addresses to use as Trusted/core fixed IPs of B instances. + perimeta_sec_groups: + type: comma_delimited_list + description: List of security groups to add on trusted interfaces. + rtp_msc_untrusted_vips: + type: comma_delimited_list + description: List of Untrusted/access virtual IP addresses for all instances. + rtp_msc_untrusted_v6_vips: + type: comma_delimited_list + description: List of Untrusted/access alternate virtual IP addresses for all instances. + rtp_msc_b_untrusted_ips: + type: comma_delimited_list + description: List of fixed IP addresses to use as Untrusted/access fixed IPs of B instances. + rtp_msc_b_untrusted_v6_ips: + type: comma_delimited_list + description: List of fixed IP addresses to use as Untrusted/access alternate fixed IPs of B instances. + int_untrusted_parent_net_id: + type: string + description: internal Untrusted/access parent network id + rtp_msc_untrusted_parent_vips: + type: comma_delimited_list + description: List of Untrusted/access parent virtual IP addresses for all instances. + rtp_msc_b_untrusted_parent_ips: + type: comma_delimited_list + description: List of fixed IP addresses to use as Untrusted/access parent fixed IPs of B instances. + perimeta_untrusted_num_vlans: + # constraint copied from parent module + type: number + description: number of VLANs to connect to the untrusted/access interface + constraints: + - range: { min: 1, max: 1001 } + description: perimeta_untrusted_num_vlans (number of VLANs to connect to the untrusted/access interface) must be between 1 and 1001 + perimeta_untrusted_vlan_ids: + type: comma_delimited_list + description: List of VLAN IDs to use on the untrusted/access network + perimeta_untrusted_vlan_networks: + type: comma_delimited_list + description: List of Contrail VLAN networks to use on the untrusted/access network. The order and number of these must match the VLAN ID list. + perimeta_server_groups: + type: comma_delimited_list + description: Server groups to use for these VMs + +resources: + # Perimeta management ports + perimeta_rtp_msc_b_mgmt_0_port: + type: OS::Neutron::Port + properties: + name: + str_replace: + template: $VNF_NAME_$VM_mgmt_0_port + params: + $VNF_NAME : { get_param: vnf_name } + $VM: { get_param: [ rtp_msc_b_names, { get_param: perimeta_instance_index } ] } + network: { get_param: mgmt_net_id } + fixed_ips: + - ip_address: { get_param: [ rtp_msc_b_mgmt_ips, { get_param: perimeta_instance_index } ] } + security_groups: { get_param: perimeta_sec_groups } + allowed_address_pairs: + - ip_address: { get_param: [ rtp_msc_mgmt_vips, { get_param: perimeta_instance_index } ] } + + # Perimeta HA ports + perimeta_rtp_msc_b_ha_0_port: + type: OS::Neutron::Port + properties: + name: + str_replace: + template: $VNF_NAME_$VM_ha_port + params: + $VNF_NAME : { get_param: vnf_name } + $VM: { get_param: [ rtp_msc_b_names, { get_param: perimeta_instance_index } ] } + network: { get_param: int_ha_net_id } + fixed_ips: + - ip_address: { get_param: [ rtp_msc_b_int_ha_ips, { get_param: perimeta_instance_index } ] } + security_groups: { get_param: perimeta_sec_groups } + + # Perimeta Trusted/core service network ports + # + # Dual stack core network + # - if only IPv4 required comment out second entry in fixed_ips and allowed_addess_pairs parameters. + # - if only IPv6 required comment out first entry in fixed_ips and allowed_addess_pairs parameters. + perimeta_rtp_msc_b_trusted_0_port: + type: OS::Neutron::Port + properties: + name: + str_replace: + template: $VNF_NAME_$VM_trusted_port + params: + $VNF_NAME : { get_param: vnf_name } + $VM: { get_param: [ rtp_msc_b_names, { get_param: perimeta_instance_index } ] } + network: { get_param: trusted_net_id } + fixed_ips: + - ip_address: { get_param: [ rtp_msc_b_trusted_ips, { get_param: perimeta_instance_index } ] } + security_groups: { get_param: perimeta_sec_groups } + allowed_address_pairs: + - ip_address: { get_param: [ rtp_msc_trusted_vips, { get_param: perimeta_instance_index } ] } + + # Perimeta Untrusted/access service network ports + # VLAN being used on this service interface. + # The parent network port is used to anchor the VLANs and is not used to + # route actual traffic for the service interface. This means that we can + # create a dummy network in the base module and use that instead of the + # real untrusted network + + perimeta_rtp_msc_b_untrusted_parent_0_port: + type: OS::Neutron::Port + properties: + name: + str_replace: + template: $VNF_NAME_$VM_untrusted_parent_port + params: + $VNF_NAME : { get_param: vnf_name } + $VM: { get_param: [ rtp_msc_b_names, { get_param: perimeta_instance_index } ] } + network: { get_param: int_untrusted_parent_net_id } + fixed_ips: + - ip_address: { get_param: [ rtp_msc_b_untrusted_parent_ips, { get_param: perimeta_instance_index } ] } + security_groups: { get_param: perimeta_sec_groups } + allowed_address_pairs: + - ip_address: { get_param: [ rtp_msc_untrusted_parent_vips, { get_param: perimeta_instance_index } ] } + + + # Contrail VLAN subinterfaces + perimeta_rtp_msc_b_untrusted_0_vlan_ports: + type: OS::Heat::ResourceGroup + properties: + count: { get_param: perimeta_untrusted_num_vlans } + resource_def: + type: vlan_subinterface_dual.yaml + properties: + perimeta_subinterface_instance_index: "%index%" + perimeta_subinterface_name_prefix: + str_replace: + template: $VNF_NAME_$VM_untrusted_port_vlan + params: + $VNF_NAME : { get_param: vnf_name } + $VM: { get_param: [ rtp_msc_b_names, { get_param: perimeta_instance_index } ] } + perimeta_parent_interface: { get_resource: perimeta_rtp_msc_b_untrusted_parent_0_port } + perimeta_mac_address: { get_attr: [ perimeta_rtp_msc_b_untrusted_parent_0_port, mac_address ] } + perimeta_ip_0: { get_param: [ rtp_msc_b_untrusted_ips, { get_param: perimeta_instance_index } ] } + perimeta_v6_ip_0: { get_param: [ rtp_msc_b_untrusted_v6_ips, { get_param: perimeta_instance_index } ] } + perimeta_vip_0: { get_param: [ rtp_msc_untrusted_vips, { get_param: perimeta_instance_index } ] } + perimeta_v6_vip_0: { get_param: [ rtp_msc_untrusted_v6_vips, { get_param: perimeta_instance_index } ] } + perimeta_vlan_ids: { get_param: perimeta_untrusted_vlan_ids } + perimeta_vlan_networks: { get_param: perimeta_untrusted_vlan_networks } + + # Add any additional service ports here. + + perimeta_rtp_msc_b_server_0: + type: OS::Nova::Server + properties: + name: { get_param: [ rtp_msc_b_names, { get_param: perimeta_instance_index } ] } + image: { get_param: perimeta_image_name } + flavor: { get_param: perimeta_flavor_name } + key_name: { get_param: perimeta_keypair } + scheduler_hints: { group: { get_param: [ perimeta_server_groups, { get_param: perimeta_instance_index } ] } } + metadata: + 'vnf_name': { get_param: vnf_name } + 'vnf_id': { get_param: vnf_id } + 'vm_role': + str_replace: + template: $ROLE_b + params: + $ROLE: { get_param: vm_role } + 'vf_module_id': { get_param: vf_module_id } + 'msw_template_version': '17.07.04 - 2017-09-01' + networks: + - port: { get_resource: perimeta_rtp_msc_b_mgmt_0_port } + - port: { get_resource: perimeta_rtp_msc_b_ha_0_port } + - port: { get_resource: perimeta_rtp_msc_b_trusted_0_port } + - port: { get_resource: perimeta_rtp_msc_b_untrusted_parent_0_port } + availability_zone: { get_param: availability_zone_1 } + config_drive: True + user_data_format: RAW + user_data: + str_replace: + template: | + { + "vnic_assignment": { + "IBG1mgmt": {"mac": "$MGMT_MACADDR"}, + "IPG1": {"mac": "$HA_MACADDR"}, + "RPG1": {"mac": "$TRUSTED_MACADDR"}, + "RPG2": {"mac": "$UNTRUSTED_MACADDR"} + }, + "ip_ha_local": "$LOCAL_HA_IP_ADDR", + "ip_ha_remote": "$REMOTE_HA_IP_ADDR", + "ip_ha_plen": "$HA_NETWORK_PLEN" + } + params: + $MGMT_MACADDR: { get_attr: [perimeta_rtp_msc_b_mgmt_0_port, mac_address] } + $HA_MACADDR: { get_attr: [perimeta_rtp_msc_b_ha_0_port, mac_address] } + $TRUSTED_MACADDR: { get_attr: [perimeta_rtp_msc_b_trusted_0_port, mac_address] } + $UNTRUSTED_MACADDR: { get_attr: [perimeta_rtp_msc_b_untrusted_parent_0_port, mac_address] } + $LOCAL_HA_IP_ADDR: { get_param: [ rtp_msc_b_int_ha_ips, { get_param: perimeta_instance_index } ] } + $REMOTE_HA_IP_ADDR: { get_param: [ rtp_msc_a_int_ha_ips, { get_param: perimeta_instance_index } ] } + $HA_NETWORK_PLEN: { get_param: int_ha_network_plen }
\ No newline at end of file |