diff options
Diffstat (limited to 'openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/subInterfaceToInterfaceConnection/vTSBC_AIC')
26 files changed, 13889 insertions, 0 deletions
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/subInterfaceToInterfaceConnection/vTSBC_AIC/expectedoutputfiles/GlobalSubstitutionTypesServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/subInterfaceToInterfaceConnection/vTSBC_AIC/expectedoutputfiles/GlobalSubstitutionTypesServiceTemplate.yaml new file mode 100644 index 0000000000..394e567d3d --- /dev/null +++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/subInterfaceToInterfaceConnection/vTSBC_AIC/expectedoutputfiles/GlobalSubstitutionTypesServiceTemplate.yaml @@ -0,0 +1,2919 @@ +tosca_definitions_version: tosca_simple_yaml_1_0_0 +metadata: + template_name: GlobalSubstitutionTypes +imports: +- CommonGlobalTypes: + file: CommonGlobalTypesServiceTemplate.yaml +- NovaServerGlobalTypes: + file: NovaServerGlobalTypesServiceTemplate.yaml +- NeutronPortGlobalTypes: + file: NeutronPortGlobalTypesServiceTemplate.yaml +- NeutronSecurityRulesGlobalTypes: + file: NeutronSecurityRulesGlobalTypesServiceTemplate.yaml +- NeutronNetGlobalTypes: + file: NeutronNetGlobalTypesServiceTemplate.yaml +- CinderVolumeGlobalTypes: + file: CinderVolumeGlobalTypesServiceTemplate.yaml +- ContrailVirtualNetworkGlobalType: + file: ContrailVirtualNetworkGlobalTypeServiceTemplate.yaml +- ContrailNetworkRuleGlobalType: + file: ContrailNetworkRuleGlobalTypeServiceTemplate.yaml +- AbstractSubstituteGlobalTypes: + file: AbstractSubstituteGlobalTypesServiceTemplate.yaml +- ContrailV2VirtualMachineInterfaceGlobalType: + file: ContrailV2VirtualMachineInterfaceGlobalTypeServiceTemplate.yaml +- ContrailComputeGlobalTypes: + file: ContrailComputeGlobalTypesServiceTemplate.yaml +- ContrailPortGlobalTypes: + file: ContrailPortGlobalTypesServiceTemplate.yaml +- ContrailAbstractSubstituteGlobalTypes: + file: ContrailAbstractSubstituteGlobalTypesServiceTemplate.yaml +- ContrailV2VirtualNetworkGlobalType: + file: ContrailV2VirtualNetworkGlobalTypeServiceTemplate.yaml +- ContrailV2NetworkRuleGlobalType: + file: ContrailV2NetworkRuleGlobalTypeServiceTemplate.yaml +- ContrailV2VLANSubInterfaceGlobalType: + file: ContrailV2VLANSubInterfaceGlobalTypeServiceTemplate.yaml +node_types: + org.openecomp.resource.abstract.nodes.heat.perimeta_ha_swmu: + derived_from: org.openecomp.resource.abstract.nodes.AbstractSubstitute + properties: + vf_module_id: + type: string + description: Unique ID for this VF Module instance + required: true + status: SUPPORTED + untrusted_net_id: + type: string + description: Service network 2 network UUID + required: true + status: SUPPORTED + mgmt_net_plen: + type: string + description: Prefix length of management network + required: true + status: SUPPORTED + perimeta_config: + type: string + description: Orchestration template configuration for instance. + required: true + status: SUPPORTED + vm_a_names: + type: list + description: List of names of Perimeta VM A instances, indexed by perimeta_instance_index + required: true + status: SUPPORTED + entry_schema: + type: string + serv3_vips: + type: list + description: List of service network 3 virtual IP addresses for all instances. + required: true + status: SUPPORTED + entry_schema: + type: string + untrusted_b_ips: + type: list + description: List of fixed IP addresses to use as untrusted fixed IPs of B instances. + required: true + status: SUPPORTED + entry_schema: + type: string + ha_net_id: + type: string + description: HA network id + required: true + status: SUPPORTED + perimeta_param_server_group: + type: string + description: Server group to use for these VMs - ignored + required: true + status: SUPPORTED + untrusted_vlan_networks: + type: 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. + required: true + status: SUPPORTED + entry_schema: + type: string + mgmt_sec_groups: + type: list + description: List of security groups to add on management interfaces. + required: true + status: SUPPORTED + entry_schema: + type: string + perimeta_instance_index: + type: float + description: Index of instance among multiple instances. Use to retrieve correct parameter for this instance when passed all parameters for all instances. + required: true + status: SUPPORTED + untrusted_vlan_ids: + type: list + description: List of VLAN IDs to use on the untrusted/access network + required: true + status: SUPPORTED + entry_schema: + type: string + serv3_net_id: + type: string + description: Service network 3 network UUID + required: true + status: SUPPORTED + perimeta_keypair: + type: string + description: Keypair to use for accessing this Perimeta instance + required: true + status: SUPPORTED + mgmt_vips: + type: list + description: List of management virtual IP addresses for all instances. + required: true + status: SUPPORTED + entry_schema: + type: string + untrusted_vips: + type: list + description: List of service network 2 virtual IP addresses for all instances. + required: true + status: SUPPORTED + entry_schema: + type: string + vnf_id: + type: string + description: VNF ID of this deployment + required: true + status: SUPPORTED + availability_zone_0: + type: string + description: Availability zone for A instances. + required: true + status: SUPPORTED + availability_zone_1: + type: string + description: Availability zone for B instances. May be the same as A instance. + required: true + status: SUPPORTED + serv3_a_ips: + type: list + description: List of fixed IP addresses to use as serv3 fixed IPs of A instances. + required: true + status: SUPPORTED + entry_schema: + type: string + unused_net_id: + type: string + description: Service network unused port network UUID + required: true + status: SUPPORTED + ha_a_ips: + type: list + description: List of fixed IP addresses to use as HA IPs of A instances. + required: true + status: SUPPORTED + entry_schema: + type: string + untrusted_v6_vips: + type: list + description: List of service network 2 alternate virtual IP addresses for all instances. + required: true + status: SUPPORTED + entry_schema: + type: string + ha_sec_groups: + type: list + description: List of security groups to add on HA interfaces. + required: true + status: SUPPORTED + entry_schema: + type: string + trusted_a_ips: + type: list + description: List of fixed IP addresses to use as trusted fixed IPs of A instances. + required: true + status: SUPPORTED + entry_schema: + type: string + untrusted_num_vlans: + type: float + description: Number of VLANs to connect to on the untrusted/access network + required: true + status: SUPPORTED + system_names: + type: list + description: List of system names of Perimeta instances. Name of a specific instance is indexed by perimeta_instance_index + required: true + status: SUPPORTED + entry_schema: + type: string + vm_b_names: + type: list + description: List of names of Perimeta VM A instances, indexed by perimeta_instance_index + required: true + status: SUPPORTED + entry_schema: + type: string + trusted_sec_groups: + type: list + description: List of security groups to add on trusted interfaces. + required: true + status: SUPPORTED + entry_schema: + type: string + serv3_sec_groups: + type: list + description: List of security groups to add on serv3 interfaces. + required: true + status: SUPPORTED + entry_schema: + type: string + trusted_vips: + type: list + description: List of service network 1 virtual IP addresses for all instances. + required: true + status: SUPPORTED + entry_schema: + type: string + trusted_net_id: + type: string + description: Service network 1 network UUID + required: true + status: SUPPORTED + serv3_b_ips: + type: list + description: List of fixed IP addresses to use as serv3 fixed IPs of B instances. + required: true + status: SUPPORTED + entry_schema: + type: string + ha_b_ips: + type: list + description: List of fixed IP addresses to use as HA IPs of B instances. + required: true + status: SUPPORTED + entry_schema: + type: string + untrusted_a_v6_ips: + type: list + description: List of fixed IP addresses to use as untrusted alternate fixed IPs of A instances. + required: true + status: SUPPORTED + entry_schema: + type: string + untrusted_b_v6_ips: + type: list + description: List of fixed IP addresses to use as untrusted alternate fixed IPs of B instances. + required: true + status: SUPPORTED + entry_schema: + type: string + mgmt_a_ips: + type: list + description: List of fixed IP addresses to use as management IPs of A instances. + required: true + status: SUPPORTED + entry_schema: + type: string + vm_role: + type: string + description: Role of these VMs + required: true + status: SUPPORTED + trusted_b_ips: + type: list + description: List of fixed IP addresses to use as trusted fixed IPs of B instances. + required: true + status: SUPPORTED + entry_schema: + type: string + perimeta_image_name: + type: string + description: Glance image for Perimeta instance + required: true + status: SUPPORTED + mgmt_net_default_gateway: + type: string + description: IP address of management default gateway + required: true + status: SUPPORTED + untrusted_a_ips: + type: list + description: List of fixed IP addresses to use as untrusted fixed IPs of A instances. + required: true + status: SUPPORTED + entry_schema: + type: string + untrusted_sec_groups: + type: list + description: List of security groups to add on untrusted interfaces. + required: true + status: SUPPORTED + entry_schema: + type: string + mgmt_net_id: + type: string + description: Management network id + required: true + status: SUPPORTED + perimeta_flavor_name: + type: string + description: Flavor to use for creating VM instances + required: true + status: SUPPORTED + ha_network_plen: + type: float + required: true + status: SUPPORTED + constraints: + - in_range: + - 0 + - 32 + mgmt_b_ips: + type: list + description: List of fixed IP addresses to use as management IPs of B instances. + required: true + status: SUPPORTED + entry_schema: + type: string + attributes: + server_group_used: + type: string + description: Server group used for these VMs + requirements: + - link_perimeta_a_unused_0_port: + capability: tosca.capabilities.network.Linkable + node: tosca.nodes.Root + relationship: tosca.relationships.network.LinksTo + occurrences: + - 1 + - 1 + - link_contrail_vmi_subinterface_perimeta_a_untrusted_0_vlan_ports: + capability: tosca.capabilities.network.Linkable + node: tosca.nodes.Root + relationship: tosca.relationships.network.LinksTo + occurrences: + - 1 + - 1 + - link_perimeta_a_mgmt_0_port: + capability: tosca.capabilities.network.Linkable + node: tosca.nodes.Root + relationship: tosca.relationships.network.LinksTo + occurrences: + - 1 + - 1 + - link_perimeta_b_untrusted_0_port: + capability: tosca.capabilities.network.Linkable + node: tosca.nodes.Root + relationship: tosca.relationships.network.LinksTo + occurrences: + - 1 + - 1 + - link_contrail_vmi_subinterface_perimeta_b_untrusted_0_vlan_ports: + capability: tosca.capabilities.network.Linkable + node: tosca.nodes.Root + relationship: tosca.relationships.network.LinksTo + occurrences: + - 1 + - 1 + - link_perimeta_b_unused_0_port: + capability: tosca.capabilities.network.Linkable + node: tosca.nodes.Root + relationship: tosca.relationships.network.LinksTo + occurrences: + - 1 + - 1 + - link_perimeta_a_trusted_0_port: + capability: tosca.capabilities.network.Linkable + node: tosca.nodes.Root + relationship: tosca.relationships.network.LinksTo + occurrences: + - 1 + - 1 + - link_perimeta_b_mgmt_0_port: + capability: tosca.capabilities.network.Linkable + node: tosca.nodes.Root + relationship: tosca.relationships.network.LinksTo + occurrences: + - 1 + - 1 + - link_perimeta_b_ha_0_port: + capability: tosca.capabilities.network.Linkable + node: tosca.nodes.Root + relationship: tosca.relationships.network.LinksTo + occurrences: + - 1 + - 1 + - link_perimeta_b_serv3_0_port: + capability: tosca.capabilities.network.Linkable + node: tosca.nodes.Root + relationship: tosca.relationships.network.LinksTo + occurrences: + - 1 + - 1 + - link_perimeta_a_serv3_0_port: + capability: tosca.capabilities.network.Linkable + node: tosca.nodes.Root + relationship: tosca.relationships.network.LinksTo + occurrences: + - 1 + - 1 + - local_storage_perimeta_a_server_0: + capability: tosca.capabilities.Attachment + node: tosca.nodes.BlockStorage + relationship: tosca.relationships.AttachesTo + occurrences: + - 0 + - UNBOUNDED + - link_perimeta_b_trusted_0_port: + capability: tosca.capabilities.network.Linkable + node: tosca.nodes.Root + relationship: tosca.relationships.network.LinksTo + occurrences: + - 1 + - 1 + - link_perimeta_a_ha_0_port: + capability: tosca.capabilities.network.Linkable + node: tosca.nodes.Root + relationship: tosca.relationships.network.LinksTo + occurrences: + - 1 + - 1 + - link_perimeta_a_untrusted_0_port: + capability: tosca.capabilities.network.Linkable + node: tosca.nodes.Root + relationship: tosca.relationships.network.LinksTo + occurrences: + - 1 + - 1 + - local_storage_perimeta_b_server_0: + capability: tosca.capabilities.Attachment + node: tosca.nodes.BlockStorage + relationship: tosca.relationships.AttachesTo + occurrences: + - 0 + - UNBOUNDED + capabilities: + attachment_perimeta_a_mgmt_0_port: + type: tosca.capabilities.Attachment + occurrences: + - 1 + - UNBOUNDED + binding_perimeta_a_server_0: + type: tosca.capabilities.network.Bindable + occurrences: + - 1 + - UNBOUNDED + host_perimeta_a_server_0: + type: tosca.capabilities.Container + valid_source_types: + - tosca.nodes.SoftwareComponent + occurrences: + - 1 + - UNBOUNDED + binding_perimeta_b_untrusted_0_port: + type: tosca.capabilities.network.Bindable + valid_source_types: + - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface + occurrences: + - 0 + - UNBOUNDED + binding_perimeta_b_unused_0_port: + type: tosca.capabilities.network.Bindable + valid_source_types: + - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface + occurrences: + - 0 + - UNBOUNDED + binding_perimeta_b_mgmt_0_port: + type: tosca.capabilities.network.Bindable + valid_source_types: + - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface + occurrences: + - 0 + - UNBOUNDED + binding_perimeta_a_mgmt_0_port: + type: tosca.capabilities.network.Bindable + valid_source_types: + - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface + occurrences: + - 0 + - UNBOUNDED + binding_perimeta_a_untrusted_0_port: + type: tosca.capabilities.network.Bindable + valid_source_types: + - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface + occurrences: + - 0 + - UNBOUNDED + endpoint_perimeta_a_server_0: + type: tosca.capabilities.Endpoint.Admin + occurrences: + - 1 + - UNBOUNDED + attachment_perimeta_b_unused_0_port: + type: tosca.capabilities.Attachment + occurrences: + - 1 + - UNBOUNDED + attachment_perimeta_a_serv3_0_port: + type: tosca.capabilities.Attachment + occurrences: + - 1 + - UNBOUNDED + attachment_perimeta_b_serv3_0_port: + type: tosca.capabilities.Attachment + occurrences: + - 1 + - UNBOUNDED + attachment_perimeta_b_ha_0_port: + type: tosca.capabilities.Attachment + occurrences: + - 1 + - UNBOUNDED + attachment_perimeta_b_trusted_0_port: + type: tosca.capabilities.Attachment + occurrences: + - 1 + - UNBOUNDED + attachment_perimeta_b_untrusted_0_port: + type: tosca.capabilities.Attachment + occurrences: + - 1 + - UNBOUNDED + binding_perimeta_b_serv3_0_port: + type: tosca.capabilities.network.Bindable + valid_source_types: + - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface + occurrences: + - 0 + - UNBOUNDED + binding_perimeta_a_serv3_0_port: + type: tosca.capabilities.network.Bindable + valid_source_types: + - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface + occurrences: + - 0 + - UNBOUNDED + scalable_perimeta_a_server_0: + type: tosca.capabilities.Scalable + occurrences: + - 1 + - UNBOUNDED + binding_perimeta_b_ha_0_port: + type: tosca.capabilities.network.Bindable + valid_source_types: + - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface + occurrences: + - 0 + - UNBOUNDED + binding_perimeta_b_trusted_0_port: + type: tosca.capabilities.network.Bindable + valid_source_types: + - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface + occurrences: + - 0 + - UNBOUNDED + attachment_perimeta_a_trusted_0_port: + type: tosca.capabilities.Attachment + occurrences: + - 1 + - UNBOUNDED + os_perimeta_b_server_0: + type: tosca.capabilities.OperatingSystem + occurrences: + - 1 + - UNBOUNDED + attachment_perimeta_a_untrusted_0_port: + type: tosca.capabilities.Attachment + occurrences: + - 1 + - UNBOUNDED + attachment_perimeta_a_ha_0_port: + type: tosca.capabilities.Attachment + occurrences: + - 1 + - UNBOUNDED + binding_perimeta_a_trusted_0_port: + type: tosca.capabilities.network.Bindable + valid_source_types: + - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface + occurrences: + - 0 + - UNBOUNDED + binding_perimeta_a_unused_0_port: + type: tosca.capabilities.network.Bindable + valid_source_types: + - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface + occurrences: + - 0 + - UNBOUNDED + binding_perimeta_b_server_0: + type: tosca.capabilities.network.Bindable + occurrences: + - 1 + - UNBOUNDED + scalable_perimeta_b_server_0: + type: tosca.capabilities.Scalable + occurrences: + - 1 + - UNBOUNDED + attachment_perimeta_a_unused_0_port: + type: tosca.capabilities.Attachment + occurrences: + - 1 + - UNBOUNDED + endpoint_perimeta_b_server_0: + type: tosca.capabilities.Endpoint.Admin + occurrences: + - 1 + - UNBOUNDED + binding_perimeta_a_ha_0_port: + type: tosca.capabilities.network.Bindable + valid_source_types: + - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface + occurrences: + - 0 + - UNBOUNDED + os_perimeta_a_server_0: + type: tosca.capabilities.OperatingSystem + occurrences: + - 1 + - UNBOUNDED + host_perimeta_b_server_0: + type: tosca.capabilities.Container + valid_source_types: + - tosca.nodes.SoftwareComponent + occurrences: + - 1 + - UNBOUNDED + attachment_perimeta_b_mgmt_0_port: + type: tosca.capabilities.Attachment + occurrences: + - 1 + - UNBOUNDED + org.openecomp.resource.abstract.nodes.heat.perimeta_ha_sw: + derived_from: org.openecomp.resource.abstract.nodes.AbstractSubstitute + properties: + vf_module_id: + type: string + description: Unique ID for this VF Module instance + required: true + status: SUPPORTED + untrusted_net_id: + type: string + description: Service network 2 network UUID + required: true + status: SUPPORTED + mgmt_net_plen: + type: string + description: Prefix length of management network + required: true + status: SUPPORTED + perimeta_config: + type: string + description: Orchestration template configuration for instance. + required: true + status: SUPPORTED + vm_a_names: + type: list + description: List of names of Perimeta VM A instances, indexed by perimeta_instance_index + required: true + status: SUPPORTED + entry_schema: + type: string + untrusted_b_ips: + type: list + description: List of fixed IP addresses to use as untrusted fixed IPs of B instances. + required: true + status: SUPPORTED + entry_schema: + type: string + ha_net_id: + type: string + description: HA network id + required: true + status: SUPPORTED + perimeta_param_server_group: + type: string + description: Server group to use for these VMs - ignored + required: true + status: SUPPORTED + untrusted_vlan_networks: + type: 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. + required: true + status: SUPPORTED + entry_schema: + type: string + mgmt_sec_groups: + type: list + description: List of security groups to add on management interfaces. + required: true + status: SUPPORTED + entry_schema: + type: string + perimeta_instance_index: + type: float + description: Index of instance among multiple instances. Use to retrieve correct parameter for this instance when passed all parameters for all instances. + required: true + status: SUPPORTED + untrusted_vlan_ids: + type: list + description: List of VLAN IDs to use on the untrusted/access network + required: true + status: SUPPORTED + entry_schema: + type: string + perimeta_keypair: + type: string + description: Keypair to use for accessing this Perimeta instance + required: true + status: SUPPORTED + mgmt_vips: + type: list + description: List of management virtual IP addresses for all instances. + required: true + status: SUPPORTED + entry_schema: + type: string + untrusted_vips: + type: list + description: List of service network 2 virtual IP addresses for all instances. + required: true + status: SUPPORTED + entry_schema: + type: string + vnf_id: + type: string + description: VNF ID of this deployment + required: true + status: SUPPORTED + availability_zone_0: + type: string + description: Availability zone for A instances. + required: true + status: SUPPORTED + availability_zone_1: + type: string + description: Availability zone for B instances. May be the same as A instance. + required: true + status: SUPPORTED + ha_a_ips: + type: list + description: List of fixed IP addresses to use as HA IPs of A instances. + required: true + status: SUPPORTED + entry_schema: + type: string + untrusted_v6_vips: + type: list + description: List of service network 2 alternate virtual IP addresses for all instances. + required: true + status: SUPPORTED + entry_schema: + type: string + ha_sec_groups: + type: list + description: List of security groups to add on HA interfaces. + required: true + status: SUPPORTED + entry_schema: + type: string + trusted_a_ips: + type: list + description: List of fixed IP addresses to use as trusted fixed IPs of A instances. + required: true + status: SUPPORTED + entry_schema: + type: string + untrusted_num_vlans: + type: float + description: Number of VLANs to connect to on the untrusted/access network + required: true + status: SUPPORTED + system_names: + type: list + description: List of system names of Perimeta instances. Name of a specific instance is indexed by perimeta_instance_index + required: true + status: SUPPORTED + entry_schema: + type: string + vm_b_names: + type: list + description: List of names of Perimeta VM A instances, indexed by perimeta_instance_index + required: true + status: SUPPORTED + entry_schema: + type: string + trusted_sec_groups: + type: list + description: List of security groups to add on trusted interfaces. + required: true + status: SUPPORTED + entry_schema: + type: string + trusted_vips: + type: list + description: List of service network 1 virtual IP addresses for all instances. + required: true + status: SUPPORTED + entry_schema: + type: string + trusted_net_id: + type: string + description: Service network 1 network UUID + required: true + status: SUPPORTED + ha_b_ips: + type: list + description: List of fixed IP addresses to use as HA IPs of B instances. + required: true + status: SUPPORTED + entry_schema: + type: string + untrusted_a_v6_ips: + type: list + description: List of fixed IP addresses to use as untrusted alternate fixed IPs of A instances. + required: true + status: SUPPORTED + entry_schema: + type: string + untrusted_b_v6_ips: + type: list + description: List of fixed IP addresses to use as untrusted alternate fixed IPs of B instances. + required: true + status: SUPPORTED + entry_schema: + type: string + mgmt_a_ips: + type: list + description: List of fixed IP addresses to use as management IPs of A instances. + required: true + status: SUPPORTED + entry_schema: + type: string + vm_role: + type: string + description: Role of these VMs + required: true + status: SUPPORTED + trusted_b_ips: + type: list + description: List of fixed IP addresses to use as trusted fixed IPs of B instances. + required: true + status: SUPPORTED + entry_schema: + type: string + perimeta_image_name: + type: string + description: Glance image for Perimeta instance + required: true + status: SUPPORTED + mgmt_net_default_gateway: + type: string + description: IP address of management default gateway + required: true + status: SUPPORTED + untrusted_a_ips: + type: list + description: List of fixed IP addresses to use as untrusted fixed IPs of A instances. + required: true + status: SUPPORTED + entry_schema: + type: string + untrusted_sec_groups: + type: list + description: List of security groups to add on untrusted interfaces. + required: true + status: SUPPORTED + entry_schema: + type: string + mgmt_net_id: + type: string + description: Management network id + required: true + status: SUPPORTED + perimeta_flavor_name: + type: string + description: Flavor to use for creating VM instances + required: true + status: SUPPORTED + ha_network_plen: + type: float + required: true + status: SUPPORTED + constraints: + - in_range: + - 0 + - 32 + mgmt_b_ips: + type: list + description: List of fixed IP addresses to use as management IPs of B instances. + required: true + status: SUPPORTED + entry_schema: + type: string + attributes: + server_group_used: + type: string + description: Server group used for these VMs + requirements: + - link_perimeta_b_ha_0_port: + capability: tosca.capabilities.network.Linkable + node: tosca.nodes.Root + relationship: tosca.relationships.network.LinksTo + occurrences: + - 1 + - 1 + - link_contrail_vmi_subinterface_perimeta_a_untrusted_0_vlan_ports: + capability: tosca.capabilities.network.Linkable + node: tosca.nodes.Root + relationship: tosca.relationships.network.LinksTo + occurrences: + - 1 + - 1 + - local_storage_perimeta_a_server_0: + capability: tosca.capabilities.Attachment + node: tosca.nodes.BlockStorage + relationship: tosca.relationships.AttachesTo + occurrences: + - 0 + - UNBOUNDED + - link_perimeta_a_mgmt_0_port: + capability: tosca.capabilities.network.Linkable + node: tosca.nodes.Root + relationship: tosca.relationships.network.LinksTo + occurrences: + - 1 + - 1 + - link_perimeta_b_trusted_0_port: + capability: tosca.capabilities.network.Linkable + node: tosca.nodes.Root + relationship: tosca.relationships.network.LinksTo + occurrences: + - 1 + - 1 + - link_perimeta_b_untrusted_0_port: + capability: tosca.capabilities.network.Linkable + node: tosca.nodes.Root + relationship: tosca.relationships.network.LinksTo + occurrences: + - 1 + - 1 + - link_contrail_vmi_subinterface_perimeta_b_untrusted_0_vlan_ports: + capability: tosca.capabilities.network.Linkable + node: tosca.nodes.Root + relationship: tosca.relationships.network.LinksTo + occurrences: + - 1 + - 1 + - link_perimeta_a_ha_0_port: + capability: tosca.capabilities.network.Linkable + node: tosca.nodes.Root + relationship: tosca.relationships.network.LinksTo + occurrences: + - 1 + - 1 + - link_perimeta_a_trusted_0_port: + capability: tosca.capabilities.network.Linkable + node: tosca.nodes.Root + relationship: tosca.relationships.network.LinksTo + occurrences: + - 1 + - 1 + - link_perimeta_b_mgmt_0_port: + capability: tosca.capabilities.network.Linkable + node: tosca.nodes.Root + relationship: tosca.relationships.network.LinksTo + occurrences: + - 1 + - 1 + - link_perimeta_a_untrusted_0_port: + capability: tosca.capabilities.network.Linkable + node: tosca.nodes.Root + relationship: tosca.relationships.network.LinksTo + occurrences: + - 1 + - 1 + - local_storage_perimeta_b_server_0: + capability: tosca.capabilities.Attachment + node: tosca.nodes.BlockStorage + relationship: tosca.relationships.AttachesTo + occurrences: + - 0 + - UNBOUNDED + capabilities: + attachment_perimeta_a_mgmt_0_port: + type: tosca.capabilities.Attachment + occurrences: + - 1 + - UNBOUNDED + binding_perimeta_a_server_0: + type: tosca.capabilities.network.Bindable + occurrences: + - 1 + - UNBOUNDED + host_perimeta_a_server_0: + type: tosca.capabilities.Container + valid_source_types: + - tosca.nodes.SoftwareComponent + occurrences: + - 1 + - UNBOUNDED + binding_perimeta_b_untrusted_0_port: + type: tosca.capabilities.network.Bindable + valid_source_types: + - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface + occurrences: + - 0 + - UNBOUNDED + binding_perimeta_b_mgmt_0_port: + type: tosca.capabilities.network.Bindable + valid_source_types: + - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface + occurrences: + - 0 + - UNBOUNDED + binding_perimeta_a_mgmt_0_port: + type: tosca.capabilities.network.Bindable + valid_source_types: + - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface + occurrences: + - 0 + - UNBOUNDED + binding_perimeta_a_untrusted_0_port: + type: tosca.capabilities.network.Bindable + valid_source_types: + - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface + occurrences: + - 0 + - UNBOUNDED + endpoint_perimeta_a_server_0: + type: tosca.capabilities.Endpoint.Admin + occurrences: + - 1 + - UNBOUNDED + attachment_perimeta_b_ha_0_port: + type: tosca.capabilities.Attachment + occurrences: + - 1 + - UNBOUNDED + attachment_perimeta_b_trusted_0_port: + type: tosca.capabilities.Attachment + occurrences: + - 1 + - UNBOUNDED + attachment_perimeta_b_untrusted_0_port: + type: tosca.capabilities.Attachment + occurrences: + - 1 + - UNBOUNDED + scalable_perimeta_a_server_0: + type: tosca.capabilities.Scalable + occurrences: + - 1 + - UNBOUNDED + binding_perimeta_b_ha_0_port: + type: tosca.capabilities.network.Bindable + valid_source_types: + - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface + occurrences: + - 0 + - UNBOUNDED + binding_perimeta_b_trusted_0_port: + type: tosca.capabilities.network.Bindable + valid_source_types: + - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface + occurrences: + - 0 + - UNBOUNDED + attachment_perimeta_a_trusted_0_port: + type: tosca.capabilities.Attachment + occurrences: + - 1 + - UNBOUNDED + os_perimeta_b_server_0: + type: tosca.capabilities.OperatingSystem + occurrences: + - 1 + - UNBOUNDED + attachment_perimeta_a_untrusted_0_port: + type: tosca.capabilities.Attachment + occurrences: + - 1 + - UNBOUNDED + attachment_perimeta_a_ha_0_port: + type: tosca.capabilities.Attachment + occurrences: + - 1 + - UNBOUNDED + binding_perimeta_a_trusted_0_port: + type: tosca.capabilities.network.Bindable + valid_source_types: + - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface + occurrences: + - 0 + - UNBOUNDED + binding_perimeta_b_server_0: + type: tosca.capabilities.network.Bindable + occurrences: + - 1 + - UNBOUNDED + scalable_perimeta_b_server_0: + type: tosca.capabilities.Scalable + occurrences: + - 1 + - UNBOUNDED + endpoint_perimeta_b_server_0: + type: tosca.capabilities.Endpoint.Admin + occurrences: + - 1 + - UNBOUNDED + binding_perimeta_a_ha_0_port: + type: tosca.capabilities.network.Bindable + valid_source_types: + - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface + occurrences: + - 0 + - UNBOUNDED + os_perimeta_a_server_0: + type: tosca.capabilities.OperatingSystem + occurrences: + - 1 + - UNBOUNDED + host_perimeta_b_server_0: + type: tosca.capabilities.Container + valid_source_types: + - tosca.nodes.SoftwareComponent + occurrences: + - 1 + - UNBOUNDED + attachment_perimeta_b_mgmt_0_port: + type: tosca.capabilities.Attachment + occurrences: + - 1 + - UNBOUNDED + org.openecomp.resource.abstract.nodes.heat.perimeta_ha_sw_b: + derived_from: org.openecomp.resource.abstract.nodes.AbstractSubstitute + properties: + vf_module_id: + type: string + description: Unique ID for this VF Module instance + required: true + status: SUPPORTED + untrusted_net_id: + type: string + description: Service network 2 network UUID + required: true + status: SUPPORTED + mgmt_net_plen: + type: string + description: Prefix length of management network + required: true + status: SUPPORTED + perimeta_config: + type: string + description: Orchestration template configuration for instance. + required: true + status: SUPPORTED + vm_a_names: + type: list + description: List of names of Perimeta VM A instances, indexed by perimeta_instance_index + required: true + status: SUPPORTED + entry_schema: + type: string + untrusted_b_ips: + type: list + description: List of fixed IP addresses to use as untrusted fixed IPs of B instances. + required: true + status: SUPPORTED + entry_schema: + type: string + ha_net_id: + type: string + description: HA network id + required: true + status: SUPPORTED + perimeta_param_server_group: + type: string + description: Server group to use for these VMs - ignored + required: true + status: SUPPORTED + untrusted_vlan_networks: + type: 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. + required: true + status: SUPPORTED + entry_schema: + type: string + mgmt_sec_groups: + type: list + description: List of security groups to add on management interfaces. + required: true + status: SUPPORTED + entry_schema: + type: string + perimeta_instance_index: + type: float + description: Index of instance among multiple instances. Use to retrieve correct parameter for this instance when passed all parameters for all instances. + required: true + status: SUPPORTED + untrusted_vlan_ids: + type: list + description: List of VLAN IDs to use on the untrusted/access network + required: true + status: SUPPORTED + entry_schema: + type: string + perimeta_keypair: + type: string + description: Keypair to use for accessing this Perimeta instance + required: true + status: SUPPORTED + mgmt_vips: + type: list + description: List of management virtual IP addresses for all instances. + required: true + status: SUPPORTED + entry_schema: + type: string + untrusted_vips: + type: list + description: List of service network 2 virtual IP addresses for all instances. + required: true + status: SUPPORTED + entry_schema: + type: string + vnf_id: + type: string + description: VNF ID of this deployment + required: true + status: SUPPORTED + availability_zone_0: + type: string + description: Availability zone for A instances. + required: true + status: SUPPORTED + availability_zone_1: + type: string + description: Availability zone for B instances. May be the same as A instance. + required: true + status: SUPPORTED + ha_a_ips: + type: list + description: List of fixed IP addresses to use as HA IPs of A instances. + required: true + status: SUPPORTED + entry_schema: + type: string + untrusted_v6_vips: + type: list + description: List of service network 2 alternate virtual IP addresses for all instances. + required: true + status: SUPPORTED + entry_schema: + type: string + ha_sec_groups: + type: list + description: List of security groups to add on HA interfaces. + required: true + status: SUPPORTED + entry_schema: + type: string + trusted_a_ips: + type: list + description: List of fixed IP addresses to use as trusted fixed IPs of A instances. + required: true + status: SUPPORTED + entry_schema: + type: string + untrusted_num_vlans: + type: float + description: Number of VLANs to connect to on the untrusted/access network + required: true + status: SUPPORTED + system_names: + type: list + description: List of system names of Perimeta instances. Name of a specific instance is indexed by perimeta_instance_index + required: true + status: SUPPORTED + entry_schema: + type: string + vm_b_names: + type: list + description: List of names of Perimeta VM A instances, indexed by perimeta_instance_index + required: true + status: SUPPORTED + entry_schema: + type: string + trusted_sec_groups: + type: list + description: List of security groups to add on trusted interfaces. + required: true + status: SUPPORTED + entry_schema: + type: string + trusted_vips: + type: list + description: List of service network 1 virtual IP addresses for all instances. + required: true + status: SUPPORTED + entry_schema: + type: string + trusted_net_id: + type: string + description: Service network 1 network UUID + required: true + status: SUPPORTED + ha_b_ips: + type: list + description: List of fixed IP addresses to use as HA IPs of B instances. + required: true + status: SUPPORTED + entry_schema: + type: string + untrusted_a_v6_ips: + type: list + description: List of fixed IP addresses to use as untrusted alternate fixed IPs of A instances. + required: true + status: SUPPORTED + entry_schema: + type: string + untrusted_b_v6_ips: + type: list + description: List of fixed IP addresses to use as untrusted alternate fixed IPs of B instances. + required: true + status: SUPPORTED + entry_schema: + type: string + mgmt_a_ips: + type: list + description: List of fixed IP addresses to use as management IPs of A instances. + required: true + status: SUPPORTED + entry_schema: + type: string + vm_role: + type: string + description: Role of these VMs + required: true + status: SUPPORTED + trusted_b_ips: + type: list + description: List of fixed IP addresses to use as trusted fixed IPs of B instances. + required: true + status: SUPPORTED + entry_schema: + type: string + perimeta_image_name: + type: string + description: Glance image for Perimeta instance + required: true + status: SUPPORTED + mgmt_net_default_gateway: + type: string + description: IP address of management default gateway + required: true + status: SUPPORTED + untrusted_a_ips: + type: list + description: List of fixed IP addresses to use as untrusted fixed IPs of A instances. + required: true + status: SUPPORTED + entry_schema: + type: string + untrusted_sec_groups: + type: list + description: List of security groups to add on untrusted interfaces. + required: true + status: SUPPORTED + entry_schema: + type: string + mgmt_net_id: + type: string + description: Management network id + required: true + status: SUPPORTED + perimeta_flavor_name: + type: string + description: Flavor to use for creating VM instances + required: true + status: SUPPORTED + ha_network_plen: + type: float + required: true + status: SUPPORTED + constraints: + - in_range: + - 0 + - 32 + mgmt_b_ips: + type: list + description: List of fixed IP addresses to use as management IPs of B instances. + required: true + status: SUPPORTED + entry_schema: + type: string + attributes: + server_group_used: + type: string + description: Server group used for these VMs + requirements: + - link_perimeta_b_ha_0_port: + capability: tosca.capabilities.network.Linkable + node: tosca.nodes.Root + relationship: tosca.relationships.network.LinksTo + occurrences: + - 1 + - 1 + - link_perimeta_b_trusted_0_port: + capability: tosca.capabilities.network.Linkable + node: tosca.nodes.Root + relationship: tosca.relationships.network.LinksTo + occurrences: + - 1 + - 1 + - link_perimeta_b_untrusted_0_port: + capability: tosca.capabilities.network.Linkable + node: tosca.nodes.Root + relationship: tosca.relationships.network.LinksTo + occurrences: + - 1 + - 1 + - link_contrail_vmi_subinterface_perimeta_b_untrusted_0_vlan_ports: + capability: tosca.capabilities.network.Linkable + node: tosca.nodes.Root + relationship: tosca.relationships.network.LinksTo + occurrences: + - 1 + - 1 + - link_perimeta_b_mgmt_0_port: + capability: tosca.capabilities.network.Linkable + node: tosca.nodes.Root + relationship: tosca.relationships.network.LinksTo + occurrences: + - 1 + - 1 + - local_storage_perimeta_b_server_0: + capability: tosca.capabilities.Attachment + node: tosca.nodes.BlockStorage + relationship: tosca.relationships.AttachesTo + occurrences: + - 0 + - UNBOUNDED + capabilities: + binding_perimeta_b_ha_0_port: + type: tosca.capabilities.network.Bindable + valid_source_types: + - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface + occurrences: + - 0 + - UNBOUNDED + binding_perimeta_b_trusted_0_port: + type: tosca.capabilities.network.Bindable + valid_source_types: + - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface + occurrences: + - 0 + - UNBOUNDED + binding_perimeta_b_untrusted_0_port: + type: tosca.capabilities.network.Bindable + valid_source_types: + - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface + occurrences: + - 0 + - UNBOUNDED + os_perimeta_b_server_0: + type: tosca.capabilities.OperatingSystem + occurrences: + - 1 + - UNBOUNDED + binding_perimeta_b_mgmt_0_port: + type: tosca.capabilities.network.Bindable + valid_source_types: + - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface + occurrences: + - 0 + - UNBOUNDED + binding_perimeta_b_server_0: + type: tosca.capabilities.network.Bindable + occurrences: + - 1 + - UNBOUNDED + scalable_perimeta_b_server_0: + type: tosca.capabilities.Scalable + occurrences: + - 1 + - UNBOUNDED + attachment_perimeta_b_ha_0_port: + type: tosca.capabilities.Attachment + occurrences: + - 1 + - UNBOUNDED + attachment_perimeta_b_trusted_0_port: + type: tosca.capabilities.Attachment + occurrences: + - 1 + - UNBOUNDED + endpoint_perimeta_b_server_0: + type: tosca.capabilities.Endpoint.Admin + occurrences: + - 1 + - UNBOUNDED + attachment_perimeta_b_untrusted_0_port: + type: tosca.capabilities.Attachment + occurrences: + - 1 + - UNBOUNDED + host_perimeta_b_server_0: + type: tosca.capabilities.Container + valid_source_types: + - tosca.nodes.SoftwareComponent + occurrences: + - 1 + - UNBOUNDED + attachment_perimeta_b_mgmt_0_port: + type: tosca.capabilities.Attachment + occurrences: + - 1 + - UNBOUNDED + org.openecomp.resource.abstract.nodes.heat.vlan_subinterface_dual: + derived_from: org.openecomp.resource.abstract.nodes.AbstractSubstitute + properties: + vlan_ids: + type: list + description: List of VLAN IDs to use for subinterfaces + required: true + status: SUPPORTED + entry_schema: + type: string + parent_interface: + type: string + description: Parent Contrail interface + required: true + status: SUPPORTED + virtual_ipv6_address: + type: string + description: virtual IPv6 address associated with subinterfaces + required: true + status: SUPPORTED + virtual_ip_address: + type: string + description: virtual IPv4 address associated with subinterfaces + required: true + status: SUPPORTED + mac_address: + type: string + description: MAC address to use for subinterface + required: true + status: SUPPORTED + ipv6_address: + type: string + description: IPv6 address associated with subinterfaces + required: true + status: SUPPORTED + subinterface_name_prefix: + type: string + description: Combined with subinterface_instance_index, this is used as the name of the subinterface resource + required: true + status: SUPPORTED + subinterface_instance_index: + type: float + description: Index of instance among multiple instances. Use to retrieve correct parameter for this instance when passed all parameters for all instances. + required: true + status: SUPPORTED + ip_address: + type: string + description: IPv4 address associated with subinterfaces + required: true + status: SUPPORTED + vlan_networks: + type: list + description: List of Contrail VLAN networks to use for the subinterfaces. The order and number of these must match the VLAN ID list + required: true + status: SUPPORTED + entry_schema: + type: string + requirements: + - link_contrail_vmi_subinterface: + capability: tosca.capabilities.network.Linkable + node: tosca.nodes.Root + relationship: tosca.relationships.network.LinksTo + occurrences: + - 1 + - 1 + - binding_contrail_vmi_subinterface: + capability: tosca.capabilities.network.Bindable + node: org.openecomp.resource.cp.nodes.network.Port + relationship: tosca.relationships.network.BindsTo + occurrences: + - 1 + - 1 + org.openecomp.resource.abstract.nodes.heat.perimeta_ha_sw_a: + derived_from: org.openecomp.resource.abstract.nodes.AbstractSubstitute + properties: + vf_module_id: + type: string + description: Unique ID for this VF Module instance + required: true + status: SUPPORTED + untrusted_net_id: + type: string + description: Service network 2 network UUID + required: true + status: SUPPORTED + mgmt_net_plen: + type: string + description: Prefix length of management network + required: true + status: SUPPORTED + perimeta_config: + type: string + description: Orchestration template configuration for instance. + required: true + status: SUPPORTED + vm_a_names: + type: list + description: List of names of Perimeta VM A instances, indexed by perimeta_instance_index + required: true + status: SUPPORTED + entry_schema: + type: string + untrusted_b_ips: + type: list + description: List of fixed IP addresses to use as untrusted fixed IPs of B instances. + required: true + status: SUPPORTED + entry_schema: + type: string + ha_net_id: + type: string + description: HA network id + required: true + status: SUPPORTED + perimeta_param_server_group: + type: string + description: Server group to use for these VMs - ignored + required: true + status: SUPPORTED + untrusted_vlan_networks: + type: 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. + required: true + status: SUPPORTED + entry_schema: + type: string + mgmt_sec_groups: + type: list + description: List of security groups to add on management interfaces. + required: true + status: SUPPORTED + entry_schema: + type: string + perimeta_instance_index: + type: float + description: Index of instance among multiple instances. Use to retrieve correct parameter for this instance when passed all parameters for all instances. + required: true + status: SUPPORTED + untrusted_vlan_ids: + type: list + description: List of VLAN IDs to use on the untrusted/access network + required: true + status: SUPPORTED + entry_schema: + type: string + perimeta_keypair: + type: string + description: Keypair to use for accessing this Perimeta instance + required: true + status: SUPPORTED + mgmt_vips: + type: list + description: List of management virtual IP addresses for all instances. + required: true + status: SUPPORTED + entry_schema: + type: string + untrusted_vips: + type: list + description: List of service network 2 virtual IP addresses for all instances. + required: true + status: SUPPORTED + entry_schema: + type: string + vnf_id: + type: string + description: VNF ID of this deployment + required: true + status: SUPPORTED + availability_zone_0: + type: string + description: Availability zone for A instances. + required: true + status: SUPPORTED + availability_zone_1: + type: string + description: Availability zone for B instances. May be the same as A instance. + required: true + status: SUPPORTED + ha_a_ips: + type: list + description: List of fixed IP addresses to use as HA IPs of A instances. + required: true + status: SUPPORTED + entry_schema: + type: string + untrusted_v6_vips: + type: list + description: List of service network 2 alternate virtual IP addresses for all instances. + required: true + status: SUPPORTED + entry_schema: + type: string + ha_sec_groups: + type: list + description: List of security groups to add on HA interfaces. + required: true + status: SUPPORTED + entry_schema: + type: string + trusted_a_ips: + type: list + description: List of fixed IP addresses to use as trusted fixed IPs of A instances. + required: true + status: SUPPORTED + entry_schema: + type: string + untrusted_num_vlans: + type: float + description: Number of VLANs to connect to on the untrusted/access network + required: true + status: SUPPORTED + system_names: + type: list + description: List of system names of Perimeta instances. Name of a specific instance is indexed by perimeta_instance_index + required: true + status: SUPPORTED + entry_schema: + type: string + vm_b_names: + type: list + description: List of names of Perimeta VM A instances, indexed by perimeta_instance_index + required: true + status: SUPPORTED + entry_schema: + type: string + trusted_sec_groups: + type: list + description: List of security groups to add on trusted interfaces. + required: true + status: SUPPORTED + entry_schema: + type: string + trusted_vips: + type: list + description: List of service network 1 virtual IP addresses for all instances. + required: true + status: SUPPORTED + entry_schema: + type: string + trusted_net_id: + type: string + description: Service network 1 network UUID + required: true + status: SUPPORTED + ha_b_ips: + type: list + description: List of fixed IP addresses to use as HA IPs of B instances. + required: true + status: SUPPORTED + entry_schema: + type: string + untrusted_a_v6_ips: + type: list + description: List of fixed IP addresses to use as untrusted alternate fixed IPs of A instances. + required: true + status: SUPPORTED + entry_schema: + type: string + untrusted_b_v6_ips: + type: list + description: List of fixed IP addresses to use as untrusted alternate fixed IPs of B instances. + required: true + status: SUPPORTED + entry_schema: + type: string + mgmt_a_ips: + type: list + description: List of fixed IP addresses to use as management IPs of A instances. + required: true + status: SUPPORTED + entry_schema: + type: string + vm_role: + type: string + description: Role of these VMs + required: true + status: SUPPORTED + trusted_b_ips: + type: list + description: List of fixed IP addresses to use as trusted fixed IPs of B instances. + required: true + status: SUPPORTED + entry_schema: + type: string + perimeta_image_name: + type: string + description: Glance image for Perimeta instance + required: true + status: SUPPORTED + mgmt_net_default_gateway: + type: string + description: IP address of management default gateway + required: true + status: SUPPORTED + untrusted_a_ips: + type: list + description: List of fixed IP addresses to use as untrusted fixed IPs of A instances. + required: true + status: SUPPORTED + entry_schema: + type: string + untrusted_sec_groups: + type: list + description: List of security groups to add on untrusted interfaces. + required: true + status: SUPPORTED + entry_schema: + type: string + mgmt_net_id: + type: string + description: Management network id + required: true + status: SUPPORTED + perimeta_flavor_name: + type: string + description: Flavor to use for creating VM instances + required: true + status: SUPPORTED + ha_network_plen: + type: float + required: true + status: SUPPORTED + constraints: + - in_range: + - 0 + - 32 + mgmt_b_ips: + type: list + description: List of fixed IP addresses to use as management IPs of B instances. + required: true + status: SUPPORTED + entry_schema: + type: string + attributes: + server_group_used: + type: string + description: Server group used for these VMs + requirements: + - link_contrail_vmi_subinterface_perimeta_a_untrusted_0_vlan_ports: + capability: tosca.capabilities.network.Linkable + node: tosca.nodes.Root + relationship: tosca.relationships.network.LinksTo + occurrences: + - 1 + - 1 + - local_storage_perimeta_a_server_0: + capability: tosca.capabilities.Attachment + node: tosca.nodes.BlockStorage + relationship: tosca.relationships.AttachesTo + occurrences: + - 0 + - UNBOUNDED + - link_perimeta_a_mgmt_0_port: + capability: tosca.capabilities.network.Linkable + node: tosca.nodes.Root + relationship: tosca.relationships.network.LinksTo + occurrences: + - 1 + - 1 + - link_perimeta_a_ha_0_port: + capability: tosca.capabilities.network.Linkable + node: tosca.nodes.Root + relationship: tosca.relationships.network.LinksTo + occurrences: + - 1 + - 1 + - link_perimeta_a_trusted_0_port: + capability: tosca.capabilities.network.Linkable + node: tosca.nodes.Root + relationship: tosca.relationships.network.LinksTo + occurrences: + - 1 + - 1 + - link_perimeta_a_untrusted_0_port: + capability: tosca.capabilities.network.Linkable + node: tosca.nodes.Root + relationship: tosca.relationships.network.LinksTo + occurrences: + - 1 + - 1 + capabilities: + scalable_perimeta_a_server_0: + type: tosca.capabilities.Scalable + occurrences: + - 1 + - UNBOUNDED + attachment_perimeta_a_mgmt_0_port: + type: tosca.capabilities.Attachment + occurrences: + - 1 + - UNBOUNDED + binding_perimeta_a_server_0: + type: tosca.capabilities.network.Bindable + occurrences: + - 1 + - UNBOUNDED + host_perimeta_a_server_0: + type: tosca.capabilities.Container + valid_source_types: + - tosca.nodes.SoftwareComponent + occurrences: + - 1 + - UNBOUNDED + attachment_perimeta_a_trusted_0_port: + type: tosca.capabilities.Attachment + occurrences: + - 1 + - UNBOUNDED + attachment_perimeta_a_untrusted_0_port: + type: tosca.capabilities.Attachment + occurrences: + - 1 + - UNBOUNDED + attachment_perimeta_a_ha_0_port: + type: tosca.capabilities.Attachment + occurrences: + - 1 + - UNBOUNDED + binding_perimeta_a_mgmt_0_port: + type: tosca.capabilities.network.Bindable + valid_source_types: + - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface + occurrences: + - 0 + - UNBOUNDED + binding_perimeta_a_trusted_0_port: + type: tosca.capabilities.network.Bindable + valid_source_types: + - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface + occurrences: + - 0 + - UNBOUNDED + binding_perimeta_a_untrusted_0_port: + type: tosca.capabilities.network.Bindable + valid_source_types: + - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface + occurrences: + - 0 + - UNBOUNDED + endpoint_perimeta_a_server_0: + type: tosca.capabilities.Endpoint.Admin + occurrences: + - 1 + - UNBOUNDED + binding_perimeta_a_ha_0_port: + type: tosca.capabilities.network.Bindable + valid_source_types: + - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface + occurrences: + - 0 + - UNBOUNDED + os_perimeta_a_server_0: + type: tosca.capabilities.OperatingSystem + occurrences: + - 1 + - UNBOUNDED + org.openecomp.resource.abstract.nodes.heat.perimeta_ha_swmu_a: + derived_from: org.openecomp.resource.abstract.nodes.AbstractSubstitute + properties: + vf_module_id: + type: string + description: Unique ID for this VF Module instance + required: true + status: SUPPORTED + untrusted_net_id: + type: string + description: Service network 2 network UUID + required: true + status: SUPPORTED + mgmt_net_plen: + type: string + description: Prefix length of management network + required: true + status: SUPPORTED + perimeta_config: + type: string + description: Orchestration template configuration for instance. + required: true + status: SUPPORTED + vm_a_names: + type: list + description: List of names of Perimeta VM A instances, indexed by perimeta_instance_index + required: true + status: SUPPORTED + entry_schema: + type: string + serv3_vips: + type: list + description: List of service network 3 virtual IP addresses for all instances. + required: true + status: SUPPORTED + entry_schema: + type: string + untrusted_b_ips: + type: list + description: List of fixed IP addresses to use as untrusted fixed IPs of B instances. + required: true + status: SUPPORTED + entry_schema: + type: string + ha_net_id: + type: string + description: HA network id + required: true + status: SUPPORTED + perimeta_param_server_group: + type: string + description: Server group to use for these VMs - ignored + required: true + status: SUPPORTED + untrusted_vlan_networks: + type: 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. + required: true + status: SUPPORTED + entry_schema: + type: string + mgmt_sec_groups: + type: list + description: List of security groups to add on management interfaces. + required: true + status: SUPPORTED + entry_schema: + type: string + perimeta_instance_index: + type: float + description: Index of instance among multiple instances. Use to retrieve correct parameter for this instance when passed all parameters for all instances. + required: true + status: SUPPORTED + untrusted_vlan_ids: + type: list + description: List of VLAN IDs to use on the untrusted/access network + required: true + status: SUPPORTED + entry_schema: + type: string + serv3_net_id: + type: string + description: Service network 3 network UUID + required: true + status: SUPPORTED + perimeta_keypair: + type: string + description: Keypair to use for accessing this Perimeta instance + required: true + status: SUPPORTED + mgmt_vips: + type: list + description: List of management virtual IP addresses for all instances. + required: true + status: SUPPORTED + entry_schema: + type: string + untrusted_vips: + type: list + description: List of service network 2 virtual IP addresses for all instances. + required: true + status: SUPPORTED + entry_schema: + type: string + vnf_id: + type: string + description: VNF ID of this deployment + required: true + status: SUPPORTED + availability_zone_0: + type: string + description: Availability zone for A instances. + required: true + status: SUPPORTED + availability_zone_1: + type: string + description: Availability zone for B instances. May be the same as A instance. + required: true + status: SUPPORTED + serv3_a_ips: + type: list + description: List of fixed IP addresses to use as serv3 fixed IPs of A instances. + required: true + status: SUPPORTED + entry_schema: + type: string + unused_net_id: + type: string + description: Service network unused port network UUID + required: true + status: SUPPORTED + ha_a_ips: + type: list + description: List of fixed IP addresses to use as HA IPs of A instances. + required: true + status: SUPPORTED + entry_schema: + type: string + untrusted_v6_vips: + type: list + description: List of service network 2 alternate virtual IP addresses for all instances. + required: true + status: SUPPORTED + entry_schema: + type: string + ha_sec_groups: + type: list + description: List of security groups to add on HA interfaces. + required: true + status: SUPPORTED + entry_schema: + type: string + trusted_a_ips: + type: list + description: List of fixed IP addresses to use as trusted fixed IPs of A instances. + required: true + status: SUPPORTED + entry_schema: + type: string + untrusted_num_vlans: + type: float + description: Number of VLANs to connect to on the untrusted/access network + required: true + status: SUPPORTED + system_names: + type: list + description: List of system names of Perimeta instances. Name of a specific instance is indexed by perimeta_instance_index + required: true + status: SUPPORTED + entry_schema: + type: string + vm_b_names: + type: list + description: List of names of Perimeta VM A instances, indexed by perimeta_instance_index + required: true + status: SUPPORTED + entry_schema: + type: string + trusted_sec_groups: + type: list + description: List of security groups to add on trusted interfaces. + required: true + status: SUPPORTED + entry_schema: + type: string + serv3_sec_groups: + type: list + description: List of security groups to add on serv3 interfaces. + required: true + status: SUPPORTED + entry_schema: + type: string + trusted_vips: + type: list + description: List of service network 1 virtual IP addresses for all instances. + required: true + status: SUPPORTED + entry_schema: + type: string + trusted_net_id: + type: string + description: Service network 1 network UUID + required: true + status: SUPPORTED + serv3_b_ips: + type: list + description: List of fixed IP addresses to use as serv3 fixed IPs of B instances. + required: true + status: SUPPORTED + entry_schema: + type: string + ha_b_ips: + type: list + description: List of fixed IP addresses to use as HA IPs of B instances. + required: true + status: SUPPORTED + entry_schema: + type: string + untrusted_a_v6_ips: + type: list + description: List of fixed IP addresses to use as untrusted alternate fixed IPs of A instances. + required: true + status: SUPPORTED + entry_schema: + type: string + untrusted_b_v6_ips: + type: list + description: List of fixed IP addresses to use as untrusted alternate fixed IPs of B instances. + required: true + status: SUPPORTED + entry_schema: + type: string + mgmt_a_ips: + type: list + description: List of fixed IP addresses to use as management IPs of A instances. + required: true + status: SUPPORTED + entry_schema: + type: string + vm_role: + type: string + description: Role of these VMs + required: true + status: SUPPORTED + trusted_b_ips: + type: list + description: List of fixed IP addresses to use as trusted fixed IPs of B instances. + required: true + status: SUPPORTED + entry_schema: + type: string + perimeta_image_name: + type: string + description: Glance image for Perimeta instance + required: true + status: SUPPORTED + mgmt_net_default_gateway: + type: string + description: IP address of management default gateway + required: true + status: SUPPORTED + untrusted_a_ips: + type: list + description: List of fixed IP addresses to use as untrusted fixed IPs of A instances. + required: true + status: SUPPORTED + entry_schema: + type: string + untrusted_sec_groups: + type: list + description: List of security groups to add on untrusted interfaces. + required: true + status: SUPPORTED + entry_schema: + type: string + mgmt_net_id: + type: string + description: Management network id + required: true + status: SUPPORTED + perimeta_flavor_name: + type: string + description: Flavor to use for creating VM instances + required: true + status: SUPPORTED + ha_network_plen: + type: float + required: true + status: SUPPORTED + constraints: + - in_range: + - 0 + - 32 + mgmt_b_ips: + type: list + description: List of fixed IP addresses to use as management IPs of B instances. + required: true + status: SUPPORTED + entry_schema: + type: string + attributes: + server_group_used: + type: string + description: Server group used for these VMs + requirements: + - link_perimeta_a_unused_0_port: + capability: tosca.capabilities.network.Linkable + node: tosca.nodes.Root + relationship: tosca.relationships.network.LinksTo + occurrences: + - 1 + - 1 + - link_contrail_vmi_subinterface_perimeta_a_untrusted_0_vlan_ports: + capability: tosca.capabilities.network.Linkable + node: tosca.nodes.Root + relationship: tosca.relationships.network.LinksTo + occurrences: + - 1 + - 1 + - link_perimeta_a_serv3_0_port: + capability: tosca.capabilities.network.Linkable + node: tosca.nodes.Root + relationship: tosca.relationships.network.LinksTo + occurrences: + - 1 + - 1 + - local_storage_perimeta_a_server_0: + capability: tosca.capabilities.Attachment + node: tosca.nodes.BlockStorage + relationship: tosca.relationships.AttachesTo + occurrences: + - 0 + - UNBOUNDED + - link_perimeta_a_mgmt_0_port: + capability: tosca.capabilities.network.Linkable + node: tosca.nodes.Root + relationship: tosca.relationships.network.LinksTo + occurrences: + - 1 + - 1 + - link_perimeta_a_ha_0_port: + capability: tosca.capabilities.network.Linkable + node: tosca.nodes.Root + relationship: tosca.relationships.network.LinksTo + occurrences: + - 1 + - 1 + - link_perimeta_a_trusted_0_port: + capability: tosca.capabilities.network.Linkable + node: tosca.nodes.Root + relationship: tosca.relationships.network.LinksTo + occurrences: + - 1 + - 1 + - link_perimeta_a_untrusted_0_port: + capability: tosca.capabilities.network.Linkable + node: tosca.nodes.Root + relationship: tosca.relationships.network.LinksTo + occurrences: + - 1 + - 1 + capabilities: + scalable_perimeta_a_server_0: + type: tosca.capabilities.Scalable + occurrences: + - 1 + - UNBOUNDED + attachment_perimeta_a_mgmt_0_port: + type: tosca.capabilities.Attachment + occurrences: + - 1 + - UNBOUNDED + binding_perimeta_a_server_0: + type: tosca.capabilities.network.Bindable + occurrences: + - 1 + - UNBOUNDED + host_perimeta_a_server_0: + type: tosca.capabilities.Container + valid_source_types: + - tosca.nodes.SoftwareComponent + occurrences: + - 1 + - UNBOUNDED + attachment_perimeta_a_trusted_0_port: + type: tosca.capabilities.Attachment + occurrences: + - 1 + - UNBOUNDED + attachment_perimeta_a_untrusted_0_port: + type: tosca.capabilities.Attachment + occurrences: + - 1 + - UNBOUNDED + attachment_perimeta_a_ha_0_port: + type: tosca.capabilities.Attachment + occurrences: + - 1 + - UNBOUNDED + binding_perimeta_a_mgmt_0_port: + type: tosca.capabilities.network.Bindable + valid_source_types: + - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface + occurrences: + - 0 + - UNBOUNDED + binding_perimeta_a_trusted_0_port: + type: tosca.capabilities.network.Bindable + valid_source_types: + - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface + occurrences: + - 0 + - UNBOUNDED + binding_perimeta_a_untrusted_0_port: + type: tosca.capabilities.network.Bindable + valid_source_types: + - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface + occurrences: + - 0 + - UNBOUNDED + endpoint_perimeta_a_server_0: + type: tosca.capabilities.Endpoint.Admin + occurrences: + - 1 + - UNBOUNDED + binding_perimeta_a_unused_0_port: + type: tosca.capabilities.network.Bindable + valid_source_types: + - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface + occurrences: + - 0 + - UNBOUNDED + attachment_perimeta_a_serv3_0_port: + type: tosca.capabilities.Attachment + occurrences: + - 1 + - UNBOUNDED + attachment_perimeta_a_unused_0_port: + type: tosca.capabilities.Attachment + occurrences: + - 1 + - UNBOUNDED + binding_perimeta_a_ha_0_port: + type: tosca.capabilities.network.Bindable + valid_source_types: + - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface + occurrences: + - 0 + - UNBOUNDED + os_perimeta_a_server_0: + type: tosca.capabilities.OperatingSystem + occurrences: + - 1 + - UNBOUNDED + binding_perimeta_a_serv3_0_port: + type: tosca.capabilities.network.Bindable + valid_source_types: + - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface + occurrences: + - 0 + - UNBOUNDED + org.openecomp.resource.abstract.nodes.heat.perimeta_ha_swmu_b: + derived_from: org.openecomp.resource.abstract.nodes.AbstractSubstitute + properties: + vf_module_id: + type: string + description: Unique ID for this VF Module instance + required: true + status: SUPPORTED + untrusted_net_id: + type: string + description: Service network 2 network UUID + required: true + status: SUPPORTED + mgmt_net_plen: + type: string + description: Prefix length of management network + required: true + status: SUPPORTED + perimeta_config: + type: string + description: Orchestration template configuration for instance. + required: true + status: SUPPORTED + vm_a_names: + type: list + description: List of names of Perimeta VM A instances, indexed by perimeta_instance_index + required: true + status: SUPPORTED + entry_schema: + type: string + serv3_vips: + type: list + description: List of service network 3 virtual IP addresses for all instances. + required: true + status: SUPPORTED + entry_schema: + type: string + untrusted_b_ips: + type: list + description: List of fixed IP addresses to use as untrusted fixed IPs of B instances. + required: true + status: SUPPORTED + entry_schema: + type: string + ha_net_id: + type: string + description: HA network id + required: true + status: SUPPORTED + perimeta_param_server_group: + type: string + description: Server group to use for these VMs - ignored + required: true + status: SUPPORTED + untrusted_vlan_networks: + type: 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. + required: true + status: SUPPORTED + entry_schema: + type: string + mgmt_sec_groups: + type: list + description: List of security groups to add on management interfaces. + required: true + status: SUPPORTED + entry_schema: + type: string + perimeta_instance_index: + type: float + description: Index of instance among multiple instances. Use to retrieve correct parameter for this instance when passed all parameters for all instances. + required: true + status: SUPPORTED + untrusted_vlan_ids: + type: list + description: List of VLAN IDs to use on the untrusted/access network + required: true + status: SUPPORTED + entry_schema: + type: string + serv3_net_id: + type: string + description: Service network 3 network UUID + required: true + status: SUPPORTED + perimeta_keypair: + type: string + description: Keypair to use for accessing this Perimeta instance + required: true + status: SUPPORTED + mgmt_vips: + type: list + description: List of management virtual IP addresses for all instances. + required: true + status: SUPPORTED + entry_schema: + type: string + untrusted_vips: + type: list + description: List of service network 2 virtual IP addresses for all instances. + required: true + status: SUPPORTED + entry_schema: + type: string + vnf_id: + type: string + description: VNF ID of this deployment + required: true + status: SUPPORTED + availability_zone_0: + type: string + description: Availability zone for A instances. + required: true + status: SUPPORTED + availability_zone_1: + type: string + description: Availability zone for B instances. May be the same as A instance. + required: true + status: SUPPORTED + serv3_a_ips: + type: list + description: List of fixed IP addresses to use as serv3 fixed IPs of A instances. + required: true + status: SUPPORTED + entry_schema: + type: string + unused_net_id: + type: string + description: Service network unused port network UUID + required: true + status: SUPPORTED + ha_a_ips: + type: list + description: List of fixed IP addresses to use as HA IPs of A instances. + required: true + status: SUPPORTED + entry_schema: + type: string + untrusted_v6_vips: + type: list + description: List of service network 2 alternate virtual IP addresses for all instances. + required: true + status: SUPPORTED + entry_schema: + type: string + ha_sec_groups: + type: list + description: List of security groups to add on HA interfaces. + required: true + status: SUPPORTED + entry_schema: + type: string + trusted_a_ips: + type: list + description: List of fixed IP addresses to use as trusted fixed IPs of A instances. + required: true + status: SUPPORTED + entry_schema: + type: string + untrusted_num_vlans: + type: float + description: Number of VLANs to connect to on the untrusted/access network + required: true + status: SUPPORTED + system_names: + type: list + description: List of system names of Perimeta instances. Name of a specific instance is indexed by perimeta_instance_index + required: true + status: SUPPORTED + entry_schema: + type: string + vm_b_names: + type: list + description: List of names of Perimeta VM A instances, indexed by perimeta_instance_index + required: true + status: SUPPORTED + entry_schema: + type: string + trusted_sec_groups: + type: list + description: List of security groups to add on trusted interfaces. + required: true + status: SUPPORTED + entry_schema: + type: string + serv3_sec_groups: + type: list + description: List of security groups to add on serv3 interfaces. + required: true + status: SUPPORTED + entry_schema: + type: string + trusted_vips: + type: list + description: List of service network 1 virtual IP addresses for all instances. + required: true + status: SUPPORTED + entry_schema: + type: string + trusted_net_id: + type: string + description: Service network 1 network UUID + required: true + status: SUPPORTED + serv3_b_ips: + type: list + description: List of fixed IP addresses to use as serv3 fixed IPs of B instances. + required: true + status: SUPPORTED + entry_schema: + type: string + ha_b_ips: + type: list + description: List of fixed IP addresses to use as HA IPs of B instances. + required: true + status: SUPPORTED + entry_schema: + type: string + untrusted_a_v6_ips: + type: list + description: List of fixed IP addresses to use as untrusted alternate fixed IPs of A instances. + required: true + status: SUPPORTED + entry_schema: + type: string + untrusted_b_v6_ips: + type: list + description: List of fixed IP addresses to use as untrusted alternate fixed IPs of B instances. + required: true + status: SUPPORTED + entry_schema: + type: string + mgmt_a_ips: + type: list + description: List of fixed IP addresses to use as management IPs of A instances. + required: true + status: SUPPORTED + entry_schema: + type: string + vm_role: + type: string + description: Role of these VMs + required: true + status: SUPPORTED + trusted_b_ips: + type: list + description: List of fixed IP addresses to use as trusted fixed IPs of B instances. + required: true + status: SUPPORTED + entry_schema: + type: string + perimeta_image_name: + type: string + description: Glance image for Perimeta instance + required: true + status: SUPPORTED + mgmt_net_default_gateway: + type: string + description: IP address of management default gateway + required: true + status: SUPPORTED + untrusted_a_ips: + type: list + description: List of fixed IP addresses to use as untrusted fixed IPs of A instances. + required: true + status: SUPPORTED + entry_schema: + type: string + untrusted_sec_groups: + type: list + description: List of security groups to add on untrusted interfaces. + required: true + status: SUPPORTED + entry_schema: + type: string + mgmt_net_id: + type: string + description: Management network id + required: true + status: SUPPORTED + perimeta_flavor_name: + type: string + description: Flavor to use for creating VM instances + required: true + status: SUPPORTED + ha_network_plen: + type: float + required: true + status: SUPPORTED + constraints: + - in_range: + - 0 + - 32 + mgmt_b_ips: + type: list + description: List of fixed IP addresses to use as management IPs of B instances. + required: true + status: SUPPORTED + entry_schema: + type: string + attributes: + server_group_used: + type: string + description: Server group used for these VMs + requirements: + - link_perimeta_b_ha_0_port: + capability: tosca.capabilities.network.Linkable + node: tosca.nodes.Root + relationship: tosca.relationships.network.LinksTo + occurrences: + - 1 + - 1 + - link_perimeta_b_serv3_0_port: + capability: tosca.capabilities.network.Linkable + node: tosca.nodes.Root + relationship: tosca.relationships.network.LinksTo + occurrences: + - 1 + - 1 + - link_perimeta_b_trusted_0_port: + capability: tosca.capabilities.network.Linkable + node: tosca.nodes.Root + relationship: tosca.relationships.network.LinksTo + occurrences: + - 1 + - 1 + - link_perimeta_b_untrusted_0_port: + capability: tosca.capabilities.network.Linkable + node: tosca.nodes.Root + relationship: tosca.relationships.network.LinksTo + occurrences: + - 1 + - 1 + - link_contrail_vmi_subinterface_perimeta_b_untrusted_0_vlan_ports: + capability: tosca.capabilities.network.Linkable + node: tosca.nodes.Root + relationship: tosca.relationships.network.LinksTo + occurrences: + - 1 + - 1 + - link_perimeta_b_unused_0_port: + capability: tosca.capabilities.network.Linkable + node: tosca.nodes.Root + relationship: tosca.relationships.network.LinksTo + occurrences: + - 1 + - 1 + - link_perimeta_b_mgmt_0_port: + capability: tosca.capabilities.network.Linkable + node: tosca.nodes.Root + relationship: tosca.relationships.network.LinksTo + occurrences: + - 1 + - 1 + - local_storage_perimeta_b_server_0: + capability: tosca.capabilities.Attachment + node: tosca.nodes.BlockStorage + relationship: tosca.relationships.AttachesTo + occurrences: + - 0 + - UNBOUNDED + capabilities: + binding_perimeta_b_ha_0_port: + type: tosca.capabilities.network.Bindable + valid_source_types: + - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface + occurrences: + - 0 + - UNBOUNDED + binding_perimeta_b_trusted_0_port: + type: tosca.capabilities.network.Bindable + valid_source_types: + - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface + occurrences: + - 0 + - UNBOUNDED + binding_perimeta_b_untrusted_0_port: + type: tosca.capabilities.network.Bindable + valid_source_types: + - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface + occurrences: + - 0 + - UNBOUNDED + os_perimeta_b_server_0: + type: tosca.capabilities.OperatingSystem + occurrences: + - 1 + - UNBOUNDED + binding_perimeta_b_unused_0_port: + type: tosca.capabilities.network.Bindable + valid_source_types: + - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface + occurrences: + - 0 + - UNBOUNDED + binding_perimeta_b_mgmt_0_port: + type: tosca.capabilities.network.Bindable + valid_source_types: + - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface + occurrences: + - 0 + - UNBOUNDED + attachment_perimeta_b_unused_0_port: + type: tosca.capabilities.Attachment + occurrences: + - 1 + - UNBOUNDED + binding_perimeta_b_server_0: + type: tosca.capabilities.network.Bindable + occurrences: + - 1 + - UNBOUNDED + attachment_perimeta_b_serv3_0_port: + type: tosca.capabilities.Attachment + occurrences: + - 1 + - UNBOUNDED + scalable_perimeta_b_server_0: + type: tosca.capabilities.Scalable + occurrences: + - 1 + - UNBOUNDED + attachment_perimeta_b_ha_0_port: + type: tosca.capabilities.Attachment + occurrences: + - 1 + - UNBOUNDED + attachment_perimeta_b_trusted_0_port: + type: tosca.capabilities.Attachment + occurrences: + - 1 + - UNBOUNDED + endpoint_perimeta_b_server_0: + type: tosca.capabilities.Endpoint.Admin + occurrences: + - 1 + - UNBOUNDED + binding_perimeta_b_serv3_0_port: + type: tosca.capabilities.network.Bindable + valid_source_types: + - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface + occurrences: + - 0 + - UNBOUNDED + attachment_perimeta_b_untrusted_0_port: + type: tosca.capabilities.Attachment + occurrences: + - 1 + - UNBOUNDED + host_perimeta_b_server_0: + type: tosca.capabilities.Container + valid_source_types: + - tosca.nodes.SoftwareComponent + occurrences: + - 1 + - UNBOUNDED + attachment_perimeta_b_mgmt_0_port: + type: tosca.capabilities.Attachment + occurrences: + - 1 + - UNBOUNDED
\ No newline at end of file diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/subInterfaceToInterfaceConnection/vTSBC_AIC/expectedoutputfiles/MainServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/subInterfaceToInterfaceConnection/vTSBC_AIC/expectedoutputfiles/MainServiceTemplate.yaml new file mode 100644 index 0000000000..d0f309e423 --- /dev/null +++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/subInterfaceToInterfaceConnection/vTSBC_AIC/expectedoutputfiles/MainServiceTemplate.yaml @@ -0,0 +1,737 @@ +tosca_definitions_version: tosca_simple_yaml_1_0_0 +metadata: + template_name: Main +imports: +- CommonGlobalTypes: + file: CommonGlobalTypesServiceTemplate.yaml +- NovaServerGlobalTypes: + file: NovaServerGlobalTypesServiceTemplate.yaml +- NeutronPortGlobalTypes: + file: NeutronPortGlobalTypesServiceTemplate.yaml +- NeutronSecurityRulesGlobalTypes: + file: NeutronSecurityRulesGlobalTypesServiceTemplate.yaml +- NeutronNetGlobalTypes: + file: NeutronNetGlobalTypesServiceTemplate.yaml +- CinderVolumeGlobalTypes: + file: CinderVolumeGlobalTypesServiceTemplate.yaml +- ContrailVirtualNetworkGlobalType: + file: ContrailVirtualNetworkGlobalTypeServiceTemplate.yaml +- ContrailNetworkRuleGlobalType: + file: ContrailNetworkRuleGlobalTypeServiceTemplate.yaml +- AbstractSubstituteGlobalTypes: + file: AbstractSubstituteGlobalTypesServiceTemplate.yaml +- ContrailV2VirtualMachineInterfaceGlobalType: + file: ContrailV2VirtualMachineInterfaceGlobalTypeServiceTemplate.yaml +- ContrailComputeGlobalTypes: + file: ContrailComputeGlobalTypesServiceTemplate.yaml +- ContrailPortGlobalTypes: + file: ContrailPortGlobalTypesServiceTemplate.yaml +- ContrailAbstractSubstituteGlobalTypes: + file: ContrailAbstractSubstituteGlobalTypesServiceTemplate.yaml +- ContrailV2VirtualNetworkGlobalType: + file: ContrailV2VirtualNetworkGlobalTypeServiceTemplate.yaml +- ContrailV2NetworkRuleGlobalType: + file: ContrailV2NetworkRuleGlobalTypeServiceTemplate.yaml +- ContrailV2VLANSubInterfaceGlobalType: + file: ContrailV2VLANSubInterfaceGlobalTypeServiceTemplate.yaml +- GlobalSubstitutionTypes: + file: GlobalSubstitutionTypesServiceTemplate.yaml +topology_template: + inputs: + ssc_a_name_0: + hidden: false + immutable: false + type: string + description: Name of VM A of SSC + constraints: + - pattern: '[a-zA-Z0-9][a-zA-Z0-9-]{0,31}$' + mgmt_net_plen: + hidden: false + immutable: false + type: float + description: Management network prefix length + constraints: + - in_range: + - 0 + - 32 + ssc_b_name_0: + hidden: false + immutable: false + type: string + description: Name of VM B of SSC + constraints: + - pattern: '[a-zA-Z0-9][a-zA-Z0-9-]{0,31}$' + rtp_msc_count: + hidden: false + immutable: false + type: float + description: Count of required RTP MSCs + ssc_b_untrusted_ip_0: + hidden: false + immutable: false + type: string + description: Fixed IPv4 address on untrusted/access network for SSC B. Only required when predefining fixed IPs. + perimeta_param_server_group: + hidden: false + immutable: false + type: string + description: UUID of server group to set anti-affinity policy for Perimeta instance. Only used when doing healing. + int_ha_net_plen: + hidden: false + immutable: false + type: float + description: Intermal HA network prefix length. + constraints: + - in_range: + - 0 + - 32 + untrusted_vlan_networks: + hidden: false + immutable: false + type: 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 + entry_schema: + type: string + ssc_mgmt_vip_0: + hidden: false + immutable: false + type: string + description: Management virtual IP address to use for SSC. Only required when predefining VIPs. + untrusted_vlan_ids: + hidden: false + immutable: false + type: list + description: List of VLAN IDs to use on the untrusted/access network + entry_schema: + type: string + perimeta_keypair: + hidden: false + immutable: false + type: string + description: Keypair to use for accessing these Perimeta instances + constraints: [ + ] + mgmt_net_sec_groups: + hidden: false + immutable: false + type: list + description: Management network security groups + entry_schema: + type: string + ssc_trusted_vip_0: + hidden: false + immutable: false + type: string + description: Virtual IPv4 address on trusted/core network for SSC. + ssc_untrusted_vip_0: + hidden: false + immutable: false + type: string + description: Virtual IPv4 address on untrusted/access network for SSC. Only required when predefining virtual IPs. + rtp_msc_mgmt_vips: + hidden: false + immutable: false + type: list + description: Management virtual IP addresses to use for RTP MSC instances. There must be at least as many as the number of RTP MSCs. + entry_schema: + type: string + ssc_b_trusted_ip_0: + hidden: false + immutable: false + type: string + description: Fixed IPv4 address on trusted/core network for SSC B. Only required when predefining fixed IPs. + untrusted_num_vlans: + hidden: false + immutable: false + type: float + description: Number of VLANs to connect to on the untrusted/access network + rtp_msc_untrusted_vips: + hidden: false + immutable: false + type: list + description: Virtual IPv4 address on untrusted/access network for RTP MSC instances. There must be at least as many as the number of RTP MSCs. + entry_schema: + type: string + rtp_msc_system_names: + hidden: false + immutable: false + type: list + description: List of system names of RTP MSC instances + entry_schema: + type: string + ssc_image_name: + hidden: false + immutable: false + type: string + description: Glance image to use for launching SSC Perimeta instances. + constraints: [ + ] + trusted_net_id: + hidden: false + immutable: false + type: string + description: Network ID of trusted/core network. + constraints: [ + ] + ntp_server_ip_addrs: + hidden: false + immutable: false + type: string + description: NTP server IPv4 addresses, separated by commas. These must be accessible from the management network + constraints: + - pattern: ((?:\d{1,3}\.){3}\d{1,3},)*((?:\d{1,3}\.){3}\d{1,3}) + ssc_b_untrusted_v6_ip_0: + hidden: false + immutable: false + type: string + description: Fixed IPv6 address on untrusted/access network for SSC B. Only required when predefining fixed IPs. + rtp_msc_untrusted_v6_vips: + hidden: false + immutable: false + type: list + description: Virtual IPv6 address on untrusted/access network for RTP MSC instances. There must be at least as many as the number of RTP MSCs. + entry_schema: + type: string + ssc_system_name_0: + hidden: false + immutable: false + type: string + description: System name of SSC + constraints: + - pattern: '[a-zA-Z0-9][a-zA-Z0-9-]{0,31}$' + ssc_b_rf_ip_0: + hidden: false + immutable: false + type: string + description: Fixed IPv4 address on management/Rf network for SSC B. Only required when predefining fixed IPs. + ssc_flavor_name: + hidden: false + immutable: false + type: string + description: Flavor to use for creating SSC VM instance + constraints: [ + ] + mgmt_net_id: + hidden: false + immutable: false + type: string + description: Management network ID + constraints: [ + ] + rtp_msc_a_names: + hidden: false + immutable: false + type: list + description: List of names of RTP MSC VM A instances + entry_schema: + type: string + rtp_msc_trusted_vips: + hidden: false + immutable: false + type: list + description: Virtual IPv4 addresses on trusted/core network for RTP MSC instances. There must be at least as many as the number of RTP MSCs. + entry_schema: + type: string + vf_module_id: + hidden: false + immutable: false + type: string + description: Unique ID for this VF Module instance + untrusted_net_id: + hidden: false + immutable: false + type: string + description: Network ID of untrusted/access network. + constraints: [ + ] + unused_port_net_id: + hidden: false + immutable: false + type: string + description: Unused network ID + constraints: [ + ] + rtp_msc_b_untrusted_v6_ips: + hidden: false + immutable: false + type: list + description: Fixed IPv6 address on untrusted/access network for RTP MSC B instances. There must be at least as many as the number of RTP MSCs. + entry_schema: + type: string + rtp_msc_b_mgmt_ips: + hidden: false + immutable: false + type: list + description: Management fixed IP addresses to use for RTP MSC B instances. There must be at least as many as the number of RTP MSCs. + entry_schema: + type: string + ssc_a_int_ha_ip_0: + hidden: false + immutable: false + type: string + description: HA fixed IP address to use for SSC A. Only required when predefining fixed IPs. + ssc_b_mgmt_ip_0: + hidden: false + immutable: false + type: string + description: Management fixed IP address to use for SSC B. Only required when predefining fixed IPs. + rtp_msc_flavor_name: + hidden: false + immutable: false + type: string + description: Flavor to use for creating RTP MSC VM instances + constraints: [ + ] + rtp_msc_b_names: + hidden: false + immutable: false + type: list + description: List of names of RTP MSC VM B instances + entry_schema: + type: string + rtp_msc_b_untrusted_ips: + hidden: false + immutable: false + type: list + description: Fixed IPv4 address on untrusted/access network for RTP MSC B instances. There must be at least as many as the number of RTP MSCs. + entry_schema: + type: string + int_ha_net_id: + hidden: false + immutable: false + type: string + description: Internal HA network ID + constraints: [ + ] + ssc_b_int_ha_ip_0: + hidden: false + immutable: false + type: string + description: HA fixed IP address to use for SSC B. Only required when predefining fixed IPs. + ssc_a_trusted_ip_0: + hidden: false + immutable: false + type: string + description: Fixed IPv4 address on trusted/core network for SSC A. Only required when predefining fixed IPs. + vnf_id: + hidden: false + immutable: false + type: string + description: ID of VNF + availability_zone_0: + hidden: false + immutable: false + type: string + description: Availability zone for A instances. + availability_zone_1: + hidden: false + immutable: false + type: string + description: Availability zone for B instances. + untrusted_net_sec_groups: + hidden: false + immutable: false + type: list + description: Security groups associated with untrusted/access network + entry_schema: + type: string + ssc_a_untrusted_v6_ip_0: + hidden: false + immutable: false + type: string + description: Fixed IPv6 address on untrusted/access network for SSC A. Only required when predefining fixed IPs. + ssc_rf_vip_0: + hidden: false + immutable: false + type: string + description: Virtual IPv4 address on management/Rf network for SSC. Only required when predefining virtual IPs. + rtp_msc_a_int_ha_ips: + hidden: false + immutable: false + type: list + description: HA fixed IP addresses to use for RTP MSC A instances. There must be at least as many as the number of RTP MSCs. + entry_schema: + type: string + rtp_msc_b_trusted_ips: + hidden: false + immutable: false + type: list + description: Fixed IPv4 address on trusted/core network for RTP MSC B instances. There must be at least as many as the number of RTP MSCs. + entry_schema: + type: string + rtp_msc_a_trusted_ips: + hidden: false + immutable: false + type: list + description: Fixed IPv4 addresses on trusted/core network for RTP MSC A instances. There must be at least as many as the number of RTP MSCs. + entry_schema: + type: string + rtp_msc_image_name: + hidden: false + immutable: false + type: string + description: Glance image to use for launching RTP MSC Perimeta instances. + constraints: [ + ] + ssc_a_mgmt_ip_0: + hidden: false + immutable: false + type: string + description: Management fixed IP address to use for SSC A. Only required when predefining fixed IPs. + rtp_msc_b_int_ha_ips: + hidden: false + immutable: false + type: list + description: HA fixed IP addresses to use for RTP MSC B instances. There must be at least as many as the number of RTP MSCs. + entry_schema: + type: string + ssc_untrusted_v6_vip_0: + hidden: false + immutable: false + type: string + description: Virtual IPv6 address on untrusted/access network for SSC. Only required when predefining virtual IPs. + rtp_msc_a_mgmt_ips: + hidden: false + immutable: false + type: list + description: Management fixed IP addresses to use for RTP MSC A instances. There must be at least as many as the number of RTP MSCs. + entry_schema: + type: string + rtp_msc_a_untrusted_ips: + hidden: false + immutable: false + type: list + description: Fixed IPv4 address on untrusted/access network for RTP MSC A instances. There must be at least as many as the number of RTP MSCs. + entry_schema: + type: string + rtp_msc_index: + hidden: false + immutable: false + type: float + description: Index of RTP MSC to create/heal. + ssc_a_rf_ip_0: + hidden: false + immutable: false + type: string + description: Fixed IPv4 address on management/Rf network for SSC A. Only required when predefining fixed IPs. + ssc_a_untrusted_ip_0: + hidden: false + immutable: false + type: string + description: Fixed IPv4 address on untrusted/access network for SSC A. Only required when predefining fixed IPs. + rtp_msc_a_untrusted_v6_ips: + hidden: false + immutable: false + type: list + description: Fixed IPv6 address on untrusted/access network for RTP MSC A instances. There must be at least as many as the number of RTP MSCs. + entry_schema: + type: string + mgmt_net_default_gateway: + hidden: false + immutable: false + type: string + description: Default gateway for management network + trusted_net_sec_groups: + hidden: false + immutable: false + type: list + description: Security groups associated with trusted/core network + entry_schema: + type: string + int_ha_net_sec_groups: + hidden: false + immutable: false + type: list + description: Security groups associated with internal HA network + entry_schema: + type: string + node_templates: + perimeta_ssc: + type: org.openecomp.resource.abstract.nodes.heat.perimeta_ha_swmu_a + directives: + - substitutable + properties: + mgmt_net_plen: + get_input: mgmt_net_plen + untrusted_b_ips: + - get_input: ssc_b_untrusted_ip_0 + ha_net_id: + get_input: int_ha_net_id + perimeta_param_server_group: + get_input: perimeta_param_server_group + untrusted_vlan_networks: + get_input: untrusted_vlan_networks + perimeta_instance_index: 0 + untrusted_vlan_ids: + get_input: untrusted_vlan_ids + service_template_filter: + substitute_service_template: perimeta_ha_swmu_aServiceTemplate.yaml + serv3_net_id: + get_input: mgmt_net_id + perimeta_keypair: + get_input: perimeta_keypair + mgmt_vips: + - get_input: ssc_mgmt_vip_0 + untrusted_vips: + - get_input: ssc_untrusted_vip_0 + serv3_a_ips: + - get_input: ssc_a_rf_ip_0 + unused_net_id: + get_input: unused_port_net_id + untrusted_v6_vips: + - get_input: ssc_untrusted_v6_vip_0 + ha_sec_groups: + get_input: int_ha_net_sec_groups + untrusted_num_vlans: + get_input: untrusted_num_vlans + system_names: + - get_input: ssc_system_name_0 + vm_b_names: + - get_input: ssc_b_name_0 + trusted_vips: + - get_input: ssc_trusted_vip_0 + trusted_net_id: + get_input: trusted_net_id + untrusted_a_v6_ips: + - get_input: ssc_a_untrusted_v6_ip_0 + mgmt_net_id: + get_input: mgmt_net_id + perimeta_flavor_name: + get_input: ssc_flavor_name + ha_network_plen: + get_input: int_ha_net_plen + vf_module_id: + get_input: vf_module_id + untrusted_net_id: + get_input: untrusted_net_id + perimeta_config: + str_replace: + template: + get_artifact: + - SELF + - ssc_a_template + params: + $COMPLETION_PARAMS: '' + $NTP_SERVER_IP_ADDRS: + get_input: ntp_server_ip_addrs + vm_a_names: + - get_input: ssc_a_name_0 + serv3_vips: + - get_input: ssc_rf_vip_0 + mgmt_sec_groups: + get_input: mgmt_net_sec_groups + vnf_id: + get_input: vnf_id + availability_zone_0: + get_input: availability_zone_0 + availability_zone_1: + get_input: availability_zone_1 + ha_a_ips: + - get_input: ssc_a_int_ha_ip_0 + trusted_a_ips: + - get_input: ssc_a_trusted_ip_0 + trusted_sec_groups: + get_input: trusted_net_sec_groups + serv3_sec_groups: + get_input: mgmt_net_sec_groups + serv3_b_ips: + - get_input: ssc_b_rf_ip_0 + ha_b_ips: + - get_input: ssc_b_int_ha_ip_0 + untrusted_b_v6_ips: + - get_input: ssc_b_untrusted_v6_ip_0 + mgmt_a_ips: + - get_input: ssc_a_mgmt_ip_0 + vm_role: ssc + trusted_b_ips: + - get_input: ssc_b_trusted_ip_0 + perimeta_image_name: + get_input: ssc_image_name + mgmt_net_default_gateway: + get_input: mgmt_net_default_gateway + untrusted_a_ips: + - get_input: ssc_a_untrusted_ip_0 + untrusted_sec_groups: + get_input: untrusted_net_sec_groups + mgmt_b_ips: + - get_input: ssc_b_mgmt_ip_0 + artifacts: + ssc_a_template: + type: tosca.artifacts.Deployment + file: ../Artifacts/ssc_a_template.json + perimeta_rtp_mscs: + type: org.openecomp.resource.abstract.nodes.heat.perimeta_ha_sw_a + directives: + - substitutable + properties: + vf_module_id: + get_input: vf_module_id + untrusted_net_id: + get_input: untrusted_net_id + mgmt_net_plen: + get_input: mgmt_net_plen + perimeta_config: + str_replace: + template: + get_artifact: + - SELF + - msc_a_template + params: + $COMPLETION_PARAMS: '' + $NTP_SERVER_IP_ADDRS: + get_input: ntp_server_ip_addrs + vm_a_names: + get_input: rtp_msc_a_names + untrusted_b_ips: + get_input: rtp_msc_b_untrusted_ips + ha_net_id: + get_input: int_ha_net_id + perimeta_param_server_group: + get_input: perimeta_param_server_group + untrusted_vlan_networks: + get_input: untrusted_vlan_networks + mgmt_sec_groups: + get_input: mgmt_net_sec_groups + perimeta_instance_index: + get_input: rtp_msc_index + untrusted_vlan_ids: + get_input: untrusted_vlan_ids + service_template_filter: + substitute_service_template: perimeta_ha_sw_aServiceTemplate.yaml + perimeta_keypair: + get_input: perimeta_keypair + mgmt_vips: + get_input: rtp_msc_mgmt_vips + untrusted_vips: + get_input: rtp_msc_untrusted_vips + vnf_id: + get_input: vnf_id + availability_zone_0: + get_input: availability_zone_0 + availability_zone_1: + get_input: availability_zone_1 + ha_a_ips: + get_input: rtp_msc_a_int_ha_ips + untrusted_v6_vips: + get_input: rtp_msc_untrusted_v6_vips + ha_sec_groups: + get_input: int_ha_net_sec_groups + trusted_a_ips: + get_input: rtp_msc_a_trusted_ips + untrusted_num_vlans: + get_input: untrusted_num_vlans + system_names: + get_input: rtp_msc_system_names + vm_b_names: + get_input: rtp_msc_b_names + trusted_sec_groups: + get_input: trusted_net_sec_groups + trusted_vips: + get_input: rtp_msc_trusted_vips + trusted_net_id: + get_input: trusted_net_id + ha_b_ips: + get_input: rtp_msc_b_int_ha_ips + untrusted_a_v6_ips: + get_input: rtp_msc_a_untrusted_v6_ips + untrusted_b_v6_ips: + get_input: rtp_msc_b_untrusted_v6_ips + mgmt_a_ips: + get_input: rtp_msc_a_mgmt_ips + vm_role: rtp_msc + trusted_b_ips: + get_input: rtp_msc_b_trusted_ips + perimeta_image_name: + get_input: rtp_msc_image_name + mgmt_net_default_gateway: + get_input: mgmt_net_default_gateway + untrusted_a_ips: + get_input: rtp_msc_a_untrusted_ips + untrusted_sec_groups: + get_input: untrusted_net_sec_groups + mgmt_net_id: + get_input: mgmt_net_id + perimeta_flavor_name: + get_input: rtp_msc_flavor_name + ha_network_plen: + get_input: int_ha_net_plen + mgmt_b_ips: + get_input: rtp_msc_b_mgmt_ips + artifacts: + msc_a_template: + type: tosca.artifacts.Deployment + file: ../Artifacts/msc_a_template.json + groups: + base_perimeta_deployment_create_group: + type: org.openecomp.groups.heat.HeatStack + properties: + heat_file: ../Artifacts/base_perimeta_deployment_create.yaml + description: | + HOT template to instantiate a Perimeta SSC plus MxRTP MSCs plus NxMSRP MSCs + members: + - perimeta_ssc + - perimeta_rtp_mscs + module_2_perimeta_rtp_msc_rebuild_scaling_group: + type: org.openecomp.groups.heat.HeatStack + properties: + heat_file: ../Artifacts/module_2_perimeta_rtp_msc_rebuild_scaling.yaml + description: | + HOT template to instantiate a Perimeta SSC plus MxRTP MSCs plus NxMSRP MSCs + members: + - perimeta_rtp_mscs + module_2_perimeta_rtp_msc_a_healing_group: + type: org.openecomp.groups.heat.HeatStack + properties: + heat_file: ../Artifacts/module_2_perimeta_rtp_msc_a_healing.yaml + description: | + HOT template to instantiate a Perimeta SSC plus MxRTP MSCs plus NxMSRP MSCs + members: + - perimeta_rtp_mscs + module_1_perimeta_ssc_rebuild_group: + type: org.openecomp.groups.heat.HeatStack + properties: + heat_file: ../Artifacts/module_1_perimeta_ssc_rebuild.yaml + description: | + HOT template to instantiate a Perimeta SSC plus MxRTP MSCs plus NxMSRP MSCs + members: + - perimeta_ssc + module_1_perimeta_ssc_b_healing_group: + type: org.openecomp.groups.heat.HeatStack + properties: + heat_file: ../Artifacts/module_1_perimeta_ssc_b_healing.yaml + description: | + HOT template to instantiate a Perimeta SSC plus MxRTP MSCs plus NxMSRP MSCs + members: + - perimeta_ssc + module_2_perimeta_rtp_msc_b_healing_group: + type: org.openecomp.groups.heat.HeatStack + properties: + heat_file: ../Artifacts/module_2_perimeta_rtp_msc_b_healing.yaml + description: | + HOT template to instantiate a Perimeta SSC plus MxRTP MSCs plus NxMSRP MSCs + members: + - perimeta_rtp_mscs + module_1_perimeta_ssc_a_healing_group: + type: org.openecomp.groups.heat.HeatStack + properties: + heat_file: ../Artifacts/module_1_perimeta_ssc_a_healing.yaml + description: | + HOT template to instantiate a Perimeta SSC plus MxRTP MSCs plus NxMSRP MSCs + members: + - perimeta_ssc + outputs: + ssc_server_group: + description: Server group for SSC pair + value: + get_attribute: + - perimeta_ssc + - server_group_used + rtp_msc_server_groups: + description: Server groups for RTP MSC pairs + value: + get_attribute: + - perimeta_rtp_mscs + - server_group_used + msw_template_version: + description: Version of the heat templates used to instantiate the VMs + value: 4.0.1 - 2016-10-28
\ No newline at end of file diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/subInterfaceToInterfaceConnection/vTSBC_AIC/expectedoutputfiles/perimeta_ha_swServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/subInterfaceToInterfaceConnection/vTSBC_AIC/expectedoutputfiles/perimeta_ha_swServiceTemplate.yaml new file mode 100644 index 0000000000..3b4f112371 --- /dev/null +++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/subInterfaceToInterfaceConnection/vTSBC_AIC/expectedoutputfiles/perimeta_ha_swServiceTemplate.yaml @@ -0,0 +1,902 @@ +tosca_definitions_version: tosca_simple_yaml_1_0_0 +metadata: + template_name: perimeta_ha_sw +imports: +- CommonGlobalTypes: + file: CommonGlobalTypesServiceTemplate.yaml +- NovaServerGlobalTypes: + file: NovaServerGlobalTypesServiceTemplate.yaml +- NeutronPortGlobalTypes: + file: NeutronPortGlobalTypesServiceTemplate.yaml +- NeutronSecurityRulesGlobalTypes: + file: NeutronSecurityRulesGlobalTypesServiceTemplate.yaml +- NeutronNetGlobalTypes: + file: NeutronNetGlobalTypesServiceTemplate.yaml +- CinderVolumeGlobalTypes: + file: CinderVolumeGlobalTypesServiceTemplate.yaml +- ContrailVirtualNetworkGlobalType: + file: ContrailVirtualNetworkGlobalTypeServiceTemplate.yaml +- ContrailNetworkRuleGlobalType: + file: ContrailNetworkRuleGlobalTypeServiceTemplate.yaml +- AbstractSubstituteGlobalTypes: + file: AbstractSubstituteGlobalTypesServiceTemplate.yaml +- ContrailV2VirtualMachineInterfaceGlobalType: + file: ContrailV2VirtualMachineInterfaceGlobalTypeServiceTemplate.yaml +- ContrailComputeGlobalTypes: + file: ContrailComputeGlobalTypesServiceTemplate.yaml +- ContrailPortGlobalTypes: + file: ContrailPortGlobalTypesServiceTemplate.yaml +- ContrailAbstractSubstituteGlobalTypes: + file: ContrailAbstractSubstituteGlobalTypesServiceTemplate.yaml +- ContrailV2VirtualNetworkGlobalType: + file: ContrailV2VirtualNetworkGlobalTypeServiceTemplate.yaml +- ContrailV2NetworkRuleGlobalType: + file: ContrailV2NetworkRuleGlobalTypeServiceTemplate.yaml +- ContrailV2VLANSubInterfaceGlobalType: + file: ContrailV2VLANSubInterfaceGlobalTypeServiceTemplate.yaml +- GlobalSubstitutionTypes: + file: GlobalSubstitutionTypesServiceTemplate.yaml +node_types: + org.openecomp.resource.vfc.nodes.heat.vm_b: + derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server + org.openecomp.resource.vfc.nodes.heat.vm_a: + derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server +topology_template: + inputs: + vf_module_id: + hidden: false + immutable: false + type: string + description: Unique ID for this VF Module instance + untrusted_net_id: + hidden: false + immutable: false + type: string + description: Service network 2 network UUID + constraints: [ + ] + mgmt_net_plen: + hidden: false + immutable: false + type: string + description: Prefix length of management network + perimeta_config: + hidden: false + immutable: false + type: string + description: Orchestration template configuration for instance. + vm_a_names: + hidden: false + immutable: false + type: list + description: List of names of Perimeta VM A instances, indexed by perimeta_instance_index + entry_schema: + type: string + untrusted_b_ips: + hidden: false + immutable: false + type: list + description: List of fixed IP addresses to use as untrusted fixed IPs of B instances. + entry_schema: + type: string + ha_net_id: + hidden: false + immutable: false + type: string + description: HA network id + constraints: [ + ] + perimeta_param_server_group: + hidden: false + immutable: false + type: string + description: Server group to use for these VMs - ignored + untrusted_vlan_networks: + hidden: false + immutable: false + type: 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. + entry_schema: + type: string + mgmt_sec_groups: + hidden: false + immutable: false + type: list + description: List of security groups to add on management interfaces. + entry_schema: + type: string + perimeta_instance_index: + hidden: false + immutable: false + type: float + description: Index of instance among multiple instances. Use to retrieve correct parameter for this instance when passed all parameters for all instances. + untrusted_vlan_ids: + hidden: false + immutable: false + type: list + description: List of VLAN IDs to use on the untrusted/access network + entry_schema: + type: string + perimeta_keypair: + hidden: false + immutable: false + type: string + description: Keypair to use for accessing this Perimeta instance + constraints: [ + ] + mgmt_vips: + hidden: false + immutable: false + type: list + description: List of management virtual IP addresses for all instances. + entry_schema: + type: string + untrusted_vips: + hidden: false + immutable: false + type: list + description: List of service network 2 virtual IP addresses for all instances. + entry_schema: + type: string + vnf_id: + hidden: false + immutable: false + type: string + description: VNF ID of this deployment + availability_zone_0: + hidden: false + immutable: false + type: string + description: Availability zone for A instances. + availability_zone_1: + hidden: false + immutable: false + type: string + description: Availability zone for B instances. May be the same as A instance. + ha_a_ips: + hidden: false + immutable: false + type: list + description: List of fixed IP addresses to use as HA IPs of A instances. + entry_schema: + type: string + untrusted_v6_vips: + hidden: false + immutable: false + type: list + description: List of service network 2 alternate virtual IP addresses for all instances. + entry_schema: + type: string + ha_sec_groups: + hidden: false + immutable: false + type: list + description: List of security groups to add on HA interfaces. + entry_schema: + type: string + trusted_a_ips: + hidden: false + immutable: false + type: list + description: List of fixed IP addresses to use as trusted fixed IPs of A instances. + entry_schema: + type: string + untrusted_num_vlans: + hidden: false + immutable: false + type: float + description: Number of VLANs to connect to on the untrusted/access network + system_names: + hidden: false + immutable: false + type: list + description: List of system names of Perimeta instances. Name of a specific instance is indexed by perimeta_instance_index + entry_schema: + type: string + vm_b_names: + hidden: false + immutable: false + type: list + description: List of names of Perimeta VM A instances, indexed by perimeta_instance_index + entry_schema: + type: string + trusted_sec_groups: + hidden: false + immutable: false + type: list + description: List of security groups to add on trusted interfaces. + entry_schema: + type: string + trusted_vips: + hidden: false + immutable: false + type: list + description: List of service network 1 virtual IP addresses for all instances. + entry_schema: + type: string + trusted_net_id: + hidden: false + immutable: false + type: string + description: Service network 1 network UUID + constraints: [ + ] + ha_b_ips: + hidden: false + immutable: false + type: list + description: List of fixed IP addresses to use as HA IPs of B instances. + entry_schema: + type: string + untrusted_a_v6_ips: + hidden: false + immutable: false + type: list + description: List of fixed IP addresses to use as untrusted alternate fixed IPs of A instances. + entry_schema: + type: string + untrusted_b_v6_ips: + hidden: false + immutable: false + type: list + description: List of fixed IP addresses to use as untrusted alternate fixed IPs of B instances. + entry_schema: + type: string + mgmt_a_ips: + hidden: false + immutable: false + type: list + description: List of fixed IP addresses to use as management IPs of A instances. + entry_schema: + type: string + vm_role: + hidden: false + immutable: false + type: string + description: Role of these VMs + trusted_b_ips: + hidden: false + immutable: false + type: list + description: List of fixed IP addresses to use as trusted fixed IPs of B instances. + entry_schema: + type: string + perimeta_image_name: + hidden: false + immutable: false + type: string + description: Glance image for Perimeta instance + constraints: [ + ] + mgmt_net_default_gateway: + hidden: false + immutable: false + type: string + description: IP address of management default gateway + untrusted_a_ips: + hidden: false + immutable: false + type: list + description: List of fixed IP addresses to use as untrusted fixed IPs of A instances. + entry_schema: + type: string + untrusted_sec_groups: + hidden: false + immutable: false + type: list + description: List of security groups to add on untrusted interfaces. + entry_schema: + type: string + mgmt_net_id: + hidden: false + immutable: false + type: string + description: Management network id + constraints: [ + ] + perimeta_flavor_name: + hidden: false + immutable: false + type: string + description: Flavor to use for creating VM instances + constraints: [ + ] + ha_network_plen: + hidden: false + immutable: false + type: float + constraints: + - in_range: + - 0 + - 32 + mgmt_b_ips: + hidden: false + immutable: false + type: list + description: List of fixed IP addresses to use as management IPs of B instances. + entry_schema: + type: string + node_templates: + perimeta_b_ha_0_port: + type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port + properties: + security_groups: + get_input: ha_sec_groups + fixed_ips: + - ip_address: + get_input: + - ha_b_ips + - get_input: perimeta_instance_index + name: + str_replace: + template: $VM_ha_port + params: + $VM: + get_input: + - vm_b_names + - get_input: perimeta_instance_index + network: + get_input: ha_net_id + requirements: + - binding: + capability: tosca.capabilities.network.Bindable + node: perimeta_b_server_0 + relationship: tosca.relationships.network.BindsTo + perimeta_a_untrusted_0_vlan_ports: + type: org.openecomp.resource.abstract.nodes.heat.vlan_subinterface_dual + directives: + - substitutable + properties: + vlan_ids: + get_input: untrusted_vlan_ids + service_template_filter: + substitute_service_template: vlan_subinterface_dualServiceTemplate.yaml + count: + get_input: untrusted_num_vlans + mandatory: false + parent_interface: perimeta_a_untrusted_0_port + virtual_ipv6_address: + get_input: + - untrusted_v6_vips + - get_input: perimeta_instance_index + virtual_ip_address: + get_input: + - untrusted_vips + - get_input: perimeta_instance_index + mac_address: + get_attribute: + - perimeta_a_untrusted_0_port + - mac_address + ipv6_address: + get_input: + - untrusted_a_v6_ips + - get_input: perimeta_instance_index + subinterface_name_prefix: + str_replace: + template: $VM_untrusted_port_vlan_ + params: + $VM: + get_input: + - vm_a_names + - get_input: perimeta_instance_index + subinterface_instance_index: + get_property: + - SELF + - service_template_filter + - index_value + ip_address: + get_input: + - untrusted_a_ips + - get_input: perimeta_instance_index + vlan_networks: + get_input: untrusted_vlan_networks + requirements: + - binding_contrail_vmi_subinterface: + capability: tosca.capabilities.network.Bindable + node: perimeta_a_untrusted_0_port + relationship: tosca.relationships.network.BindsTo + perimeta_a_server_0: + type: org.openecomp.resource.vfc.nodes.heat.vm_a + properties: + flavor: + get_input: perimeta_flavor_name + key_name: + get_input: perimeta_keypair + availability_zone: + get_input: availability_zone_0 + image: + get_input: perimeta_image_name + metadata: + vf_module_id: + get_input: vf_module_id + vm_role: + str_replace: + template: $ROLE_a + params: + $ROLE: + get_input: vm_role + vnf_id: + get_input: vnf_id + config_drive: true + personality: + /opt/MetaSwitch/init/custom.ini: + get_artifact: + - SELF + - custom + user_data_format: RAW + name: + get_input: + - vm_a_names + - get_input: perimeta_instance_index + scheduler_hints: + group: perimeta_server_group_group + artifacts: + custom: + type: tosca.artifacts.Deployment + file: ../Artifacts/custom.ini + perimeta_a_mgmt_0_port: + type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port + properties: + security_groups: + get_input: mgmt_sec_groups + fixed_ips: + - ip_address: + get_input: + - mgmt_a_ips + - get_input: perimeta_instance_index + allowed_address_pairs: + - ip_address: + get_input: + - mgmt_vips + - get_input: perimeta_instance_index + name: + str_replace: + template: $VM_mgmt_port + params: + $VM: + get_input: + - vm_a_names + - get_input: perimeta_instance_index + network: + get_input: mgmt_net_id + requirements: + - binding: + capability: tosca.capabilities.network.Bindable + node: perimeta_a_server_0 + relationship: tosca.relationships.network.BindsTo + perimeta_b_trusted_0_port: + type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port + properties: + security_groups: + get_input: trusted_sec_groups + fixed_ips: + - ip_address: + get_input: + - trusted_b_ips + - get_input: perimeta_instance_index + allowed_address_pairs: + - ip_address: + get_input: + - trusted_vips + - get_input: perimeta_instance_index + name: + str_replace: + template: $VM_trusted_port + params: + $VM: + get_input: + - vm_b_names + - get_input: perimeta_instance_index + network: + get_input: trusted_net_id + requirements: + - binding: + capability: tosca.capabilities.network.Bindable + node: perimeta_b_server_0 + relationship: tosca.relationships.network.BindsTo + perimeta_b_untrusted_0_port: + type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port + properties: + security_groups: + get_input: untrusted_sec_groups + fixed_ips: + - ip_address: + get_input: + - untrusted_b_ips + - get_input: perimeta_instance_index + - ip_address: + get_input: + - untrusted_b_v6_ips + - get_input: perimeta_instance_index + allowed_address_pairs: + - ip_address: + get_input: + - untrusted_vips + - get_input: perimeta_instance_index + - ip_address: + get_input: + - untrusted_v6_vips + - get_input: perimeta_instance_index + name: + str_replace: + template: $VM_untrusted_port + params: + $VM: + get_input: + - vm_b_names + - get_input: perimeta_instance_index + network: + get_input: untrusted_net_id + requirements: + - binding: + capability: tosca.capabilities.network.Bindable + node: perimeta_b_server_0 + relationship: tosca.relationships.network.BindsTo + perimeta_b_untrusted_0_vlan_ports: + type: org.openecomp.resource.abstract.nodes.heat.vlan_subinterface_dual + directives: + - substitutable + properties: + vlan_ids: + get_input: untrusted_vlan_ids + service_template_filter: + substitute_service_template: vlan_subinterface_dualServiceTemplate.yaml + count: + get_input: untrusted_num_vlans + mandatory: false + parent_interface: perimeta_b_untrusted_0_port + virtual_ipv6_address: + get_input: + - untrusted_v6_vips + - get_input: perimeta_instance_index + virtual_ip_address: + get_input: + - untrusted_vips + - get_input: perimeta_instance_index + mac_address: + get_attribute: + - perimeta_b_untrusted_0_port + - mac_address + ipv6_address: + get_input: + - untrusted_b_v6_ips + - get_input: perimeta_instance_index + subinterface_name_prefix: + str_replace: + template: $VM_untrusted_port_vlan_ + params: + $VM: + get_input: + - vm_b_names + - get_input: perimeta_instance_index + subinterface_instance_index: + get_property: + - SELF + - service_template_filter + - index_value + ip_address: + get_input: + - untrusted_b_ips + - get_input: perimeta_instance_index + vlan_networks: + get_input: untrusted_vlan_networks + requirements: + - binding_contrail_vmi_subinterface: + capability: tosca.capabilities.network.Bindable + node: perimeta_b_untrusted_0_port + relationship: tosca.relationships.network.BindsTo + perimeta_a_ha_0_port: + type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port + properties: + security_groups: + get_input: ha_sec_groups + fixed_ips: + - ip_address: + get_input: + - ha_a_ips + - get_input: perimeta_instance_index + name: + str_replace: + template: $VM_ha_port + params: + $VM: + get_input: + - vm_a_names + - get_input: perimeta_instance_index + network: + get_input: ha_net_id + requirements: + - binding: + capability: tosca.capabilities.network.Bindable + node: perimeta_a_server_0 + relationship: tosca.relationships.network.BindsTo + perimeta_a_trusted_0_port: + type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port + properties: + security_groups: + get_input: trusted_sec_groups + fixed_ips: + - ip_address: + get_input: + - trusted_a_ips + - get_input: perimeta_instance_index + allowed_address_pairs: + - ip_address: + get_input: + - trusted_vips + - get_input: perimeta_instance_index + name: + str_replace: + template: $VM_trusted_port + params: + $VM: + get_input: + - vm_a_names + - get_input: perimeta_instance_index + network: + get_input: trusted_net_id + requirements: + - binding: + capability: tosca.capabilities.network.Bindable + node: perimeta_a_server_0 + relationship: tosca.relationships.network.BindsTo + perimeta_b_mgmt_0_port: + type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port + properties: + security_groups: + get_input: mgmt_sec_groups + fixed_ips: + - ip_address: + get_input: + - mgmt_b_ips + - get_input: perimeta_instance_index + allowed_address_pairs: + - ip_address: + get_input: + - mgmt_vips + - get_input: perimeta_instance_index + name: + str_replace: + template: $VM_mgmt_port + params: + $VM: + get_input: + - vm_b_names + - get_input: perimeta_instance_index + network: + get_input: mgmt_net_id + requirements: + - binding: + capability: tosca.capabilities.network.Bindable + node: perimeta_b_server_0 + relationship: tosca.relationships.network.BindsTo + perimeta_a_untrusted_0_port: + type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port + properties: + security_groups: + get_input: untrusted_sec_groups + fixed_ips: + - ip_address: + get_input: + - untrusted_a_ips + - get_input: perimeta_instance_index + - ip_address: + get_input: + - untrusted_a_v6_ips + - get_input: perimeta_instance_index + allowed_address_pairs: + - ip_address: + get_input: + - untrusted_vips + - get_input: perimeta_instance_index + - ip_address: + get_input: + - untrusted_v6_vips + - get_input: perimeta_instance_index + name: + str_replace: + template: $VM_untrusted_port + params: + $VM: + get_input: + - vm_a_names + - get_input: perimeta_instance_index + network: + get_input: untrusted_net_id + requirements: + - binding: + capability: tosca.capabilities.network.Bindable + node: perimeta_a_server_0 + relationship: tosca.relationships.network.BindsTo + perimeta_b_server_0: + type: org.openecomp.resource.vfc.nodes.heat.vm_b + properties: + flavor: + get_input: perimeta_flavor_name + key_name: + get_input: perimeta_keypair + availability_zone: + get_input: availability_zone_1 + image: + get_input: perimeta_image_name + metadata: + vf_module_id: + get_input: vf_module_id + vm_role: + str_replace: + template: $ROLE_b + params: + $ROLE: + get_input: vm_role + vnf_id: + get_input: vnf_id + config_drive: true + user_data_format: RAW + name: + get_input: + - vm_b_names + - get_input: perimeta_instance_index + scheduler_hints: + group: perimeta_server_group_group + groups: + perimeta_server_group_group: + type: tosca.groups.Root + members: + - perimeta_a_server_0 + - perimeta_b_server_0 + perimeta_ha_sw_group: + type: org.openecomp.groups.heat.HeatStack + properties: + heat_file: ../Artifacts/perimeta_ha_sw.yaml + description: | + HOT template to instantiate a Perimeta 1+1 HA instance with 4vNICs as part of a nested template + members: + - perimeta_b_ha_0_port + - perimeta_a_untrusted_0_vlan_ports + - perimeta_a_server_0 + - perimeta_a_mgmt_0_port + - perimeta_b_trusted_0_port + - perimeta_b_untrusted_0_port + - perimeta_b_untrusted_0_vlan_ports + - perimeta_a_ha_0_port + - perimeta_a_trusted_0_port + - perimeta_b_mgmt_0_port + - perimeta_a_untrusted_0_port + - perimeta_b_server_0 + outputs: + server_group_used: + description: Server group used for these VMs + value: perimeta_server_group_group + substitution_mappings: + node_type: org.openecomp.resource.abstract.nodes.heat.perimeta_ha_sw + capabilities: + attachment_perimeta_a_mgmt_0_port: + - perimeta_a_mgmt_0_port + - attachment + binding_perimeta_a_server_0: + - perimeta_a_server_0 + - binding + host_perimeta_a_server_0: + - perimeta_a_server_0 + - host + binding_perimeta_b_untrusted_0_port: + - perimeta_b_untrusted_0_port + - binding + binding_perimeta_b_mgmt_0_port: + - perimeta_b_mgmt_0_port + - binding + binding_perimeta_a_mgmt_0_port: + - perimeta_a_mgmt_0_port + - binding + binding_perimeta_a_untrusted_0_port: + - perimeta_a_untrusted_0_port + - binding + endpoint_perimeta_a_server_0: + - perimeta_a_server_0 + - endpoint + attachment_perimeta_b_ha_0_port: + - perimeta_b_ha_0_port + - attachment + attachment_perimeta_b_trusted_0_port: + - perimeta_b_trusted_0_port + - attachment + attachment_perimeta_b_untrusted_0_port: + - perimeta_b_untrusted_0_port + - attachment + scalable_perimeta_a_server_0: + - perimeta_a_server_0 + - scalable + binding_perimeta_b_ha_0_port: + - perimeta_b_ha_0_port + - binding + binding_perimeta_b_trusted_0_port: + - perimeta_b_trusted_0_port + - binding + attachment_perimeta_a_trusted_0_port: + - perimeta_a_trusted_0_port + - attachment + os_perimeta_b_server_0: + - perimeta_b_server_0 + - os + attachment_perimeta_a_untrusted_0_port: + - perimeta_a_untrusted_0_port + - attachment + attachment_perimeta_a_ha_0_port: + - perimeta_a_ha_0_port + - attachment + binding_perimeta_a_trusted_0_port: + - perimeta_a_trusted_0_port + - binding + binding_perimeta_b_server_0: + - perimeta_b_server_0 + - binding + scalable_perimeta_b_server_0: + - perimeta_b_server_0 + - scalable + endpoint_perimeta_b_server_0: + - perimeta_b_server_0 + - endpoint + binding_perimeta_a_ha_0_port: + - perimeta_a_ha_0_port + - binding + os_perimeta_a_server_0: + - perimeta_a_server_0 + - os + host_perimeta_b_server_0: + - perimeta_b_server_0 + - host + attachment_perimeta_b_mgmt_0_port: + - perimeta_b_mgmt_0_port + - attachment + requirements: + link_perimeta_a_trusted_0_port: + - perimeta_a_trusted_0_port + - link + link_perimeta_b_untrusted_0_port: + - perimeta_b_untrusted_0_port + - link + link_perimeta_a_mgmt_0_port: + - perimeta_a_mgmt_0_port + - link + link_perimeta_b_ha_0_port: + - perimeta_b_ha_0_port + - link + link_contrail_vmi_subinterface_perimeta_b_untrusted_0_vlan_ports: + - perimeta_b_untrusted_0_vlan_ports + - link_contrail_vmi_subinterface + local_storage_perimeta_b_server_0: + - perimeta_b_server_0 + - local_storage + link_contrail_vmi_subinterface_perimeta_a_untrusted_0_vlan_ports: + - perimeta_a_untrusted_0_vlan_ports + - link_contrail_vmi_subinterface + link_perimeta_a_untrusted_0_port: + - perimeta_a_untrusted_0_port + - link + link_perimeta_b_mgmt_0_port: + - perimeta_b_mgmt_0_port + - link + link_perimeta_a_ha_0_port: + - perimeta_a_ha_0_port + - link + link_perimeta_b_trusted_0_port: + - perimeta_b_trusted_0_port + - link + local_storage_perimeta_a_server_0: + - perimeta_a_server_0 + - local_storage + policies: + perimeta_server_group_policy: + type: org.openecomp.policies.placement.Antilocate + properties: + name: + str_replace: + template: $SYSTEM_server_group + params: + $SYSTEM: + get_input: + - system_names + - get_input: perimeta_instance_index + container_type: host + targets: + - perimeta_server_group_group
\ No newline at end of file diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/subInterfaceToInterfaceConnection/vTSBC_AIC/expectedoutputfiles/perimeta_ha_sw_aServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/subInterfaceToInterfaceConnection/vTSBC_AIC/expectedoutputfiles/perimeta_ha_sw_aServiceTemplate.yaml new file mode 100644 index 0000000000..31ae5e5dec --- /dev/null +++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/subInterfaceToInterfaceConnection/vTSBC_AIC/expectedoutputfiles/perimeta_ha_sw_aServiceTemplate.yaml @@ -0,0 +1,613 @@ +tosca_definitions_version: tosca_simple_yaml_1_0_0 +metadata: + template_name: perimeta_ha_sw_a +imports: +- CommonGlobalTypes: + file: CommonGlobalTypesServiceTemplate.yaml +- NovaServerGlobalTypes: + file: NovaServerGlobalTypesServiceTemplate.yaml +- NeutronPortGlobalTypes: + file: NeutronPortGlobalTypesServiceTemplate.yaml +- NeutronSecurityRulesGlobalTypes: + file: NeutronSecurityRulesGlobalTypesServiceTemplate.yaml +- NeutronNetGlobalTypes: + file: NeutronNetGlobalTypesServiceTemplate.yaml +- CinderVolumeGlobalTypes: + file: CinderVolumeGlobalTypesServiceTemplate.yaml +- ContrailVirtualNetworkGlobalType: + file: ContrailVirtualNetworkGlobalTypeServiceTemplate.yaml +- ContrailNetworkRuleGlobalType: + file: ContrailNetworkRuleGlobalTypeServiceTemplate.yaml +- AbstractSubstituteGlobalTypes: + file: AbstractSubstituteGlobalTypesServiceTemplate.yaml +- ContrailV2VirtualMachineInterfaceGlobalType: + file: ContrailV2VirtualMachineInterfaceGlobalTypeServiceTemplate.yaml +- ContrailComputeGlobalTypes: + file: ContrailComputeGlobalTypesServiceTemplate.yaml +- ContrailPortGlobalTypes: + file: ContrailPortGlobalTypesServiceTemplate.yaml +- ContrailAbstractSubstituteGlobalTypes: + file: ContrailAbstractSubstituteGlobalTypesServiceTemplate.yaml +- ContrailV2VirtualNetworkGlobalType: + file: ContrailV2VirtualNetworkGlobalTypeServiceTemplate.yaml +- ContrailV2NetworkRuleGlobalType: + file: ContrailV2NetworkRuleGlobalTypeServiceTemplate.yaml +- ContrailV2VLANSubInterfaceGlobalType: + file: ContrailV2VLANSubInterfaceGlobalTypeServiceTemplate.yaml +- GlobalSubstitutionTypes: + file: GlobalSubstitutionTypesServiceTemplate.yaml +node_types: + org.openecomp.resource.vfc.nodes.heat.vm_a: + derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server +topology_template: + inputs: + vf_module_id: + hidden: false + immutable: false + type: string + description: Unique ID for this VF Module instance + untrusted_net_id: + hidden: false + immutable: false + type: string + description: Service network 2 network UUID + constraints: [ + ] + mgmt_net_plen: + hidden: false + immutable: false + type: string + description: Prefix length of management network + perimeta_config: + hidden: false + immutable: false + type: string + description: Orchestration template configuration for instance. + vm_a_names: + hidden: false + immutable: false + type: list + description: List of names of Perimeta VM A instances, indexed by perimeta_instance_index + entry_schema: + type: string + untrusted_b_ips: + hidden: false + immutable: false + type: list + description: List of fixed IP addresses to use as untrusted fixed IPs of B instances. + entry_schema: + type: string + ha_net_id: + hidden: false + immutable: false + type: string + description: HA network id + constraints: [ + ] + perimeta_param_server_group: + hidden: false + immutable: false + type: string + description: Server group to use for these VMs - ignored + untrusted_vlan_networks: + hidden: false + immutable: false + type: 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. + entry_schema: + type: string + mgmt_sec_groups: + hidden: false + immutable: false + type: list + description: List of security groups to add on management interfaces. + entry_schema: + type: string + perimeta_instance_index: + hidden: false + immutable: false + type: float + description: Index of instance among multiple instances. Use to retrieve correct parameter for this instance when passed all parameters for all instances. + untrusted_vlan_ids: + hidden: false + immutable: false + type: list + description: List of VLAN IDs to use on the untrusted/access network + entry_schema: + type: string + perimeta_keypair: + hidden: false + immutable: false + type: string + description: Keypair to use for accessing this Perimeta instance + constraints: [ + ] + mgmt_vips: + hidden: false + immutable: false + type: list + description: List of management virtual IP addresses for all instances. + entry_schema: + type: string + untrusted_vips: + hidden: false + immutable: false + type: list + description: List of service network 2 virtual IP addresses for all instances. + entry_schema: + type: string + vnf_id: + hidden: false + immutable: false + type: string + description: VNF ID of this deployment + availability_zone_0: + hidden: false + immutable: false + type: string + description: Availability zone for A instances. + availability_zone_1: + hidden: false + immutable: false + type: string + description: Availability zone for B instances. May be the same as A instance. + ha_a_ips: + hidden: false + immutable: false + type: list + description: List of fixed IP addresses to use as HA IPs of A instances. + entry_schema: + type: string + untrusted_v6_vips: + hidden: false + immutable: false + type: list + description: List of service network 2 alternate virtual IP addresses for all instances. + entry_schema: + type: string + ha_sec_groups: + hidden: false + immutable: false + type: list + description: List of security groups to add on HA interfaces. + entry_schema: + type: string + trusted_a_ips: + hidden: false + immutable: false + type: list + description: List of fixed IP addresses to use as trusted fixed IPs of A instances. + entry_schema: + type: string + untrusted_num_vlans: + hidden: false + immutable: false + type: float + description: Number of VLANs to connect to on the untrusted/access network + system_names: + hidden: false + immutable: false + type: list + description: List of system names of Perimeta instances. Name of a specific instance is indexed by perimeta_instance_index + entry_schema: + type: string + vm_b_names: + hidden: false + immutable: false + type: list + description: List of names of Perimeta VM A instances, indexed by perimeta_instance_index + entry_schema: + type: string + trusted_sec_groups: + hidden: false + immutable: false + type: list + description: List of security groups to add on trusted interfaces. + entry_schema: + type: string + trusted_vips: + hidden: false + immutable: false + type: list + description: List of service network 1 virtual IP addresses for all instances. + entry_schema: + type: string + trusted_net_id: + hidden: false + immutable: false + type: string + description: Service network 1 network UUID + constraints: [ + ] + ha_b_ips: + hidden: false + immutable: false + type: list + description: List of fixed IP addresses to use as HA IPs of B instances. + entry_schema: + type: string + untrusted_a_v6_ips: + hidden: false + immutable: false + type: list + description: List of fixed IP addresses to use as untrusted alternate fixed IPs of A instances. + entry_schema: + type: string + untrusted_b_v6_ips: + hidden: false + immutable: false + type: list + description: List of fixed IP addresses to use as untrusted alternate fixed IPs of B instances. + entry_schema: + type: string + mgmt_a_ips: + hidden: false + immutable: false + type: list + description: List of fixed IP addresses to use as management IPs of A instances. + entry_schema: + type: string + vm_role: + hidden: false + immutable: false + type: string + description: Role of these VMs + trusted_b_ips: + hidden: false + immutable: false + type: list + description: List of fixed IP addresses to use as trusted fixed IPs of B instances. + entry_schema: + type: string + perimeta_image_name: + hidden: false + immutable: false + type: string + description: Glance image for Perimeta instance + constraints: [ + ] + mgmt_net_default_gateway: + hidden: false + immutable: false + type: string + description: IP address of management default gateway + untrusted_a_ips: + hidden: false + immutable: false + type: list + description: List of fixed IP addresses to use as untrusted fixed IPs of A instances. + entry_schema: + type: string + untrusted_sec_groups: + hidden: false + immutable: false + type: list + description: List of security groups to add on untrusted interfaces. + entry_schema: + type: string + mgmt_net_id: + hidden: false + immutable: false + type: string + description: Management network id + constraints: [ + ] + perimeta_flavor_name: + hidden: false + immutable: false + type: string + description: Flavor to use for creating VM instances + constraints: [ + ] + ha_network_plen: + hidden: false + immutable: false + type: float + constraints: + - in_range: + - 0 + - 32 + mgmt_b_ips: + hidden: false + immutable: false + type: list + description: List of fixed IP addresses to use as management IPs of B instances. + entry_schema: + type: string + node_templates: + perimeta_a_untrusted_0_vlan_ports: + type: org.openecomp.resource.abstract.nodes.heat.vlan_subinterface_dual + directives: + - substitutable + properties: + vlan_ids: + get_input: untrusted_vlan_ids + service_template_filter: + substitute_service_template: vlan_subinterface_dualServiceTemplate.yaml + count: + get_input: untrusted_num_vlans + mandatory: false + parent_interface: perimeta_a_untrusted_0_port + virtual_ipv6_address: + get_input: + - untrusted_v6_vips + - get_input: perimeta_instance_index + virtual_ip_address: + get_input: + - untrusted_vips + - get_input: perimeta_instance_index + mac_address: + get_attribute: + - perimeta_a_untrusted_0_port + - mac_address + ipv6_address: + get_input: + - untrusted_a_v6_ips + - get_input: perimeta_instance_index + subinterface_name_prefix: + str_replace: + template: $VM_untrusted_port_vlan_ + params: + $VM: + get_input: + - vm_a_names + - get_input: perimeta_instance_index + subinterface_instance_index: + get_property: + - SELF + - service_template_filter + - index_value + ip_address: + get_input: + - untrusted_a_ips + - get_input: perimeta_instance_index + vlan_networks: + get_input: untrusted_vlan_networks + requirements: + - binding_contrail_vmi_subinterface: + capability: tosca.capabilities.network.Bindable + node: perimeta_a_untrusted_0_port + relationship: tosca.relationships.network.BindsTo + perimeta_a_server_0: + type: org.openecomp.resource.vfc.nodes.heat.vm_a + properties: + flavor: + get_input: perimeta_flavor_name + key_name: + get_input: perimeta_keypair + availability_zone: + get_input: availability_zone_0 + image: + get_input: perimeta_image_name + metadata: + vf_module_id: + get_input: vf_module_id + vm_role: + str_replace: + template: $ROLE_a + params: + $ROLE: + get_input: vm_role + vnf_id: + get_input: vnf_id + config_drive: true + personality: + /opt/MetaSwitch/init/custom.ini: + get_artifact: + - SELF + - custom + user_data_format: RAW + name: + get_input: + - vm_a_names + - get_input: perimeta_instance_index + scheduler_hints: + group: + get_input: perimeta_param_server_group + artifacts: + custom: + type: tosca.artifacts.Deployment + file: ../Artifacts/custom.ini + perimeta_a_mgmt_0_port: + type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port + properties: + security_groups: + get_input: mgmt_sec_groups + fixed_ips: + - ip_address: + get_input: + - mgmt_a_ips + - get_input: perimeta_instance_index + allowed_address_pairs: + - ip_address: + get_input: + - mgmt_vips + - get_input: perimeta_instance_index + name: + str_replace: + template: $VM_mgmt_port + params: + $VM: + get_input: + - vm_a_names + - get_input: perimeta_instance_index + network: + get_input: mgmt_net_id + requirements: + - binding: + capability: tosca.capabilities.network.Bindable + node: perimeta_a_server_0 + relationship: tosca.relationships.network.BindsTo + perimeta_a_ha_0_port: + type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port + properties: + security_groups: + get_input: ha_sec_groups + fixed_ips: + - ip_address: + get_input: + - ha_a_ips + - get_input: perimeta_instance_index + name: + str_replace: + template: $VM_ha_port + params: + $VM: + get_input: + - vm_a_names + - get_input: perimeta_instance_index + network: + get_input: ha_net_id + requirements: + - binding: + capability: tosca.capabilities.network.Bindable + node: perimeta_a_server_0 + relationship: tosca.relationships.network.BindsTo + perimeta_a_trusted_0_port: + type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port + properties: + security_groups: + get_input: trusted_sec_groups + fixed_ips: + - ip_address: + get_input: + - trusted_a_ips + - get_input: perimeta_instance_index + allowed_address_pairs: + - ip_address: + get_input: + - trusted_vips + - get_input: perimeta_instance_index + name: + str_replace: + template: $VM_trusted_port + params: + $VM: + get_input: + - vm_a_names + - get_input: perimeta_instance_index + network: + get_input: trusted_net_id + requirements: + - binding: + capability: tosca.capabilities.network.Bindable + node: perimeta_a_server_0 + relationship: tosca.relationships.network.BindsTo + perimeta_a_untrusted_0_port: + type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port + properties: + security_groups: + get_input: untrusted_sec_groups + fixed_ips: + - ip_address: + get_input: + - untrusted_a_ips + - get_input: perimeta_instance_index + - ip_address: + get_input: + - untrusted_a_v6_ips + - get_input: perimeta_instance_index + allowed_address_pairs: + - ip_address: + get_input: + - untrusted_vips + - get_input: perimeta_instance_index + - ip_address: + get_input: + - untrusted_v6_vips + - get_input: perimeta_instance_index + name: + str_replace: + template: $VM_untrusted_port + params: + $VM: + get_input: + - vm_a_names + - get_input: perimeta_instance_index + network: + get_input: untrusted_net_id + requirements: + - binding: + capability: tosca.capabilities.network.Bindable + node: perimeta_a_server_0 + relationship: tosca.relationships.network.BindsTo + groups: + perimeta_ha_sw_a_group: + type: org.openecomp.groups.heat.HeatStack + properties: + heat_file: ../Artifacts/perimeta_ha_sw_a.yaml + description: | + HOT template to instantiate a Perimeta 1+1 HA instance with 4vNICs as part of a nested template + members: + - perimeta_a_untrusted_0_vlan_ports + - perimeta_a_server_0 + - perimeta_a_mgmt_0_port + - perimeta_a_ha_0_port + - perimeta_a_trusted_0_port + - perimeta_a_untrusted_0_port + outputs: + server_group_used: + description: Server group used for these VMs + value: + get_input: perimeta_param_server_group + substitution_mappings: + node_type: org.openecomp.resource.abstract.nodes.heat.perimeta_ha_sw_a + capabilities: + scalable_perimeta_a_server_0: + - perimeta_a_server_0 + - scalable + attachment_perimeta_a_mgmt_0_port: + - perimeta_a_mgmt_0_port + - attachment + binding_perimeta_a_server_0: + - perimeta_a_server_0 + - binding + host_perimeta_a_server_0: + - perimeta_a_server_0 + - host + attachment_perimeta_a_trusted_0_port: + - perimeta_a_trusted_0_port + - attachment + attachment_perimeta_a_untrusted_0_port: + - perimeta_a_untrusted_0_port + - attachment + attachment_perimeta_a_ha_0_port: + - perimeta_a_ha_0_port + - attachment + binding_perimeta_a_mgmt_0_port: + - perimeta_a_mgmt_0_port + - binding + binding_perimeta_a_trusted_0_port: + - perimeta_a_trusted_0_port + - binding + binding_perimeta_a_untrusted_0_port: + - perimeta_a_untrusted_0_port + - binding + endpoint_perimeta_a_server_0: + - perimeta_a_server_0 + - endpoint + binding_perimeta_a_ha_0_port: + - perimeta_a_ha_0_port + - binding + os_perimeta_a_server_0: + - perimeta_a_server_0 + - os + requirements: + link_perimeta_a_trusted_0_port: + - perimeta_a_trusted_0_port + - link + link_perimeta_a_mgmt_0_port: + - perimeta_a_mgmt_0_port + - link + link_contrail_vmi_subinterface_perimeta_a_untrusted_0_vlan_ports: + - perimeta_a_untrusted_0_vlan_ports + - link_contrail_vmi_subinterface + link_perimeta_a_untrusted_0_port: + - perimeta_a_untrusted_0_port + - link + link_perimeta_a_ha_0_port: + - perimeta_a_ha_0_port + - link + local_storage_perimeta_a_server_0: + - perimeta_a_server_0 + - local_storage
\ No newline at end of file diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/subInterfaceToInterfaceConnection/vTSBC_AIC/expectedoutputfiles/perimeta_ha_sw_bServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/subInterfaceToInterfaceConnection/vTSBC_AIC/expectedoutputfiles/perimeta_ha_sw_bServiceTemplate.yaml new file mode 100644 index 0000000000..76916a7ed6 --- /dev/null +++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/subInterfaceToInterfaceConnection/vTSBC_AIC/expectedoutputfiles/perimeta_ha_sw_bServiceTemplate.yaml @@ -0,0 +1,604 @@ +tosca_definitions_version: tosca_simple_yaml_1_0_0 +metadata: + template_name: perimeta_ha_sw_b +imports: +- CommonGlobalTypes: + file: CommonGlobalTypesServiceTemplate.yaml +- NovaServerGlobalTypes: + file: NovaServerGlobalTypesServiceTemplate.yaml +- NeutronPortGlobalTypes: + file: NeutronPortGlobalTypesServiceTemplate.yaml +- NeutronSecurityRulesGlobalTypes: + file: NeutronSecurityRulesGlobalTypesServiceTemplate.yaml +- NeutronNetGlobalTypes: + file: NeutronNetGlobalTypesServiceTemplate.yaml +- CinderVolumeGlobalTypes: + file: CinderVolumeGlobalTypesServiceTemplate.yaml +- ContrailVirtualNetworkGlobalType: + file: ContrailVirtualNetworkGlobalTypeServiceTemplate.yaml +- ContrailNetworkRuleGlobalType: + file: ContrailNetworkRuleGlobalTypeServiceTemplate.yaml +- AbstractSubstituteGlobalTypes: + file: AbstractSubstituteGlobalTypesServiceTemplate.yaml +- ContrailV2VirtualMachineInterfaceGlobalType: + file: ContrailV2VirtualMachineInterfaceGlobalTypeServiceTemplate.yaml +- ContrailComputeGlobalTypes: + file: ContrailComputeGlobalTypesServiceTemplate.yaml +- ContrailPortGlobalTypes: + file: ContrailPortGlobalTypesServiceTemplate.yaml +- ContrailAbstractSubstituteGlobalTypes: + file: ContrailAbstractSubstituteGlobalTypesServiceTemplate.yaml +- ContrailV2VirtualNetworkGlobalType: + file: ContrailV2VirtualNetworkGlobalTypeServiceTemplate.yaml +- ContrailV2NetworkRuleGlobalType: + file: ContrailV2NetworkRuleGlobalTypeServiceTemplate.yaml +- ContrailV2VLANSubInterfaceGlobalType: + file: ContrailV2VLANSubInterfaceGlobalTypeServiceTemplate.yaml +- GlobalSubstitutionTypes: + file: GlobalSubstitutionTypesServiceTemplate.yaml +node_types: + org.openecomp.resource.vfc.nodes.heat.vm_b: + derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server +topology_template: + inputs: + vf_module_id: + hidden: false + immutable: false + type: string + description: Unique ID for this VF Module instance + untrusted_net_id: + hidden: false + immutable: false + type: string + description: Service network 2 network UUID + constraints: [ + ] + mgmt_net_plen: + hidden: false + immutable: false + type: string + description: Prefix length of management network + perimeta_config: + hidden: false + immutable: false + type: string + description: Orchestration template configuration for instance. + vm_a_names: + hidden: false + immutable: false + type: list + description: List of names of Perimeta VM A instances, indexed by perimeta_instance_index + entry_schema: + type: string + untrusted_b_ips: + hidden: false + immutable: false + type: list + description: List of fixed IP addresses to use as untrusted fixed IPs of B instances. + entry_schema: + type: string + ha_net_id: + hidden: false + immutable: false + type: string + description: HA network id + constraints: [ + ] + perimeta_param_server_group: + hidden: false + immutable: false + type: string + description: Server group to use for these VMs - ignored + untrusted_vlan_networks: + hidden: false + immutable: false + type: 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. + entry_schema: + type: string + mgmt_sec_groups: + hidden: false + immutable: false + type: list + description: List of security groups to add on management interfaces. + entry_schema: + type: string + perimeta_instance_index: + hidden: false + immutable: false + type: float + description: Index of instance among multiple instances. Use to retrieve correct parameter for this instance when passed all parameters for all instances. + untrusted_vlan_ids: + hidden: false + immutable: false + type: list + description: List of VLAN IDs to use on the untrusted/access network + entry_schema: + type: string + perimeta_keypair: + hidden: false + immutable: false + type: string + description: Keypair to use for accessing this Perimeta instance + constraints: [ + ] + mgmt_vips: + hidden: false + immutable: false + type: list + description: List of management virtual IP addresses for all instances. + entry_schema: + type: string + untrusted_vips: + hidden: false + immutable: false + type: list + description: List of service network 2 virtual IP addresses for all instances. + entry_schema: + type: string + vnf_id: + hidden: false + immutable: false + type: string + description: VNF ID of this deployment + availability_zone_0: + hidden: false + immutable: false + type: string + description: Availability zone for A instances. + availability_zone_1: + hidden: false + immutable: false + type: string + description: Availability zone for B instances. May be the same as A instance. + ha_a_ips: + hidden: false + immutable: false + type: list + description: List of fixed IP addresses to use as HA IPs of A instances. + entry_schema: + type: string + untrusted_v6_vips: + hidden: false + immutable: false + type: list + description: List of service network 2 alternate virtual IP addresses for all instances. + entry_schema: + type: string + ha_sec_groups: + hidden: false + immutable: false + type: list + description: List of security groups to add on HA interfaces. + entry_schema: + type: string + trusted_a_ips: + hidden: false + immutable: false + type: list + description: List of fixed IP addresses to use as trusted fixed IPs of A instances. + entry_schema: + type: string + untrusted_num_vlans: + hidden: false + immutable: false + type: float + description: Number of VLANs to connect to on the untrusted/access network + system_names: + hidden: false + immutable: false + type: list + description: List of system names of Perimeta instances. Name of a specific instance is indexed by perimeta_instance_index + entry_schema: + type: string + vm_b_names: + hidden: false + immutable: false + type: list + description: List of names of Perimeta VM A instances, indexed by perimeta_instance_index + entry_schema: + type: string + trusted_sec_groups: + hidden: false + immutable: false + type: list + description: List of security groups to add on trusted interfaces. + entry_schema: + type: string + trusted_vips: + hidden: false + immutable: false + type: list + description: List of service network 1 virtual IP addresses for all instances. + entry_schema: + type: string + trusted_net_id: + hidden: false + immutable: false + type: string + description: Service network 1 network UUID + constraints: [ + ] + ha_b_ips: + hidden: false + immutable: false + type: list + description: List of fixed IP addresses to use as HA IPs of B instances. + entry_schema: + type: string + untrusted_a_v6_ips: + hidden: false + immutable: false + type: list + description: List of fixed IP addresses to use as untrusted alternate fixed IPs of A instances. + entry_schema: + type: string + untrusted_b_v6_ips: + hidden: false + immutable: false + type: list + description: List of fixed IP addresses to use as untrusted alternate fixed IPs of B instances. + entry_schema: + type: string + mgmt_a_ips: + hidden: false + immutable: false + type: list + description: List of fixed IP addresses to use as management IPs of A instances. + entry_schema: + type: string + vm_role: + hidden: false + immutable: false + type: string + description: Role of these VMs + trusted_b_ips: + hidden: false + immutable: false + type: list + description: List of fixed IP addresses to use as trusted fixed IPs of B instances. + entry_schema: + type: string + perimeta_image_name: + hidden: false + immutable: false + type: string + description: Glance image for Perimeta instance + constraints: [ + ] + mgmt_net_default_gateway: + hidden: false + immutable: false + type: string + description: IP address of management default gateway + untrusted_a_ips: + hidden: false + immutable: false + type: list + description: List of fixed IP addresses to use as untrusted fixed IPs of A instances. + entry_schema: + type: string + untrusted_sec_groups: + hidden: false + immutable: false + type: list + description: List of security groups to add on untrusted interfaces. + entry_schema: + type: string + mgmt_net_id: + hidden: false + immutable: false + type: string + description: Management network id + constraints: [ + ] + perimeta_flavor_name: + hidden: false + immutable: false + type: string + description: Flavor to use for creating VM instances + constraints: [ + ] + ha_network_plen: + hidden: false + immutable: false + type: float + constraints: + - in_range: + - 0 + - 32 + mgmt_b_ips: + hidden: false + immutable: false + type: list + description: List of fixed IP addresses to use as management IPs of B instances. + entry_schema: + type: string + node_templates: + perimeta_b_ha_0_port: + type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port + properties: + security_groups: + get_input: ha_sec_groups + fixed_ips: + - ip_address: + get_input: + - ha_b_ips + - get_input: perimeta_instance_index + name: + str_replace: + template: $VM_ha_port + params: + $VM: + get_input: + - vm_b_names + - get_input: perimeta_instance_index + network: + get_input: ha_net_id + requirements: + - binding: + capability: tosca.capabilities.network.Bindable + node: perimeta_b_server_0 + relationship: tosca.relationships.network.BindsTo + perimeta_b_trusted_0_port: + type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port + properties: + security_groups: + get_input: trusted_sec_groups + fixed_ips: + - ip_address: + get_input: + - trusted_b_ips + - get_input: perimeta_instance_index + allowed_address_pairs: + - ip_address: + get_input: + - trusted_vips + - get_input: perimeta_instance_index + name: + str_replace: + template: $VM_trusted_port + params: + $VM: + get_input: + - vm_b_names + - get_input: perimeta_instance_index + network: + get_input: trusted_net_id + requirements: + - binding: + capability: tosca.capabilities.network.Bindable + node: perimeta_b_server_0 + relationship: tosca.relationships.network.BindsTo + perimeta_b_untrusted_0_port: + type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port + properties: + security_groups: + get_input: untrusted_sec_groups + fixed_ips: + - ip_address: + get_input: + - untrusted_b_ips + - get_input: perimeta_instance_index + - ip_address: + get_input: + - untrusted_b_v6_ips + - get_input: perimeta_instance_index + allowed_address_pairs: + - ip_address: + get_input: + - untrusted_vips + - get_input: perimeta_instance_index + - ip_address: + get_input: + - untrusted_v6_vips + - get_input: perimeta_instance_index + name: + str_replace: + template: $VM_untrusted_port + params: + $VM: + get_input: + - vm_b_names + - get_input: perimeta_instance_index + network: + get_input: untrusted_net_id + requirements: + - binding: + capability: tosca.capabilities.network.Bindable + node: perimeta_b_server_0 + relationship: tosca.relationships.network.BindsTo + perimeta_b_untrusted_0_vlan_ports: + type: org.openecomp.resource.abstract.nodes.heat.vlan_subinterface_dual + directives: + - substitutable + properties: + vlan_ids: + get_input: untrusted_vlan_ids + service_template_filter: + substitute_service_template: vlan_subinterface_dualServiceTemplate.yaml + count: + get_input: untrusted_num_vlans + mandatory: false + parent_interface: perimeta_b_untrusted_0_port + virtual_ipv6_address: + get_input: + - untrusted_v6_vips + - get_input: perimeta_instance_index + virtual_ip_address: + get_input: + - untrusted_vips + - get_input: perimeta_instance_index + mac_address: + get_attribute: + - perimeta_b_untrusted_0_port + - mac_address + ipv6_address: + get_input: + - untrusted_b_v6_ips + - get_input: perimeta_instance_index + subinterface_name_prefix: + str_replace: + template: $VM_untrusted_port_vlan_ + params: + $VM: + get_input: + - vm_b_names + - get_input: perimeta_instance_index + subinterface_instance_index: + get_property: + - SELF + - service_template_filter + - index_value + ip_address: + get_input: + - untrusted_b_ips + - get_input: perimeta_instance_index + vlan_networks: + get_input: untrusted_vlan_networks + requirements: + - binding_contrail_vmi_subinterface: + capability: tosca.capabilities.network.Bindable + node: perimeta_b_untrusted_0_port + relationship: tosca.relationships.network.BindsTo + perimeta_b_mgmt_0_port: + type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port + properties: + security_groups: + get_input: mgmt_sec_groups + fixed_ips: + - ip_address: + get_input: + - mgmt_b_ips + - get_input: perimeta_instance_index + allowed_address_pairs: + - ip_address: + get_input: + - mgmt_vips + - get_input: perimeta_instance_index + name: + str_replace: + template: $VM_mgmt_port + params: + $VM: + get_input: + - vm_b_names + - get_input: perimeta_instance_index + network: + get_input: mgmt_net_id + requirements: + - binding: + capability: tosca.capabilities.network.Bindable + node: perimeta_b_server_0 + relationship: tosca.relationships.network.BindsTo + perimeta_b_server_0: + type: org.openecomp.resource.vfc.nodes.heat.vm_b + properties: + flavor: + get_input: perimeta_flavor_name + key_name: + get_input: perimeta_keypair + availability_zone: + get_input: availability_zone_1 + image: + get_input: perimeta_image_name + metadata: + vf_module_id: + get_input: vf_module_id + vm_role: + str_replace: + template: $ROLE_b + params: + $ROLE: + get_input: vm_role + vnf_id: + get_input: vnf_id + config_drive: true + user_data_format: RAW + name: + get_input: + - vm_b_names + - get_input: perimeta_instance_index + scheduler_hints: + group: + get_input: perimeta_param_server_group + groups: + perimeta_ha_sw_b_group: + type: org.openecomp.groups.heat.HeatStack + properties: + heat_file: ../Artifacts/perimeta_ha_sw_b.yaml + description: | + HOT template to instantiate a Perimeta 1+1 HA instance with 4vNICs as part of a nested template + members: + - perimeta_b_ha_0_port + - perimeta_b_trusted_0_port + - perimeta_b_untrusted_0_port + - perimeta_b_untrusted_0_vlan_ports + - perimeta_b_mgmt_0_port + - perimeta_b_server_0 + outputs: + server_group_used: + description: Server group used for these VMs + value: + get_input: perimeta_param_server_group + substitution_mappings: + node_type: org.openecomp.resource.abstract.nodes.heat.perimeta_ha_sw_b + capabilities: + binding_perimeta_b_ha_0_port: + - perimeta_b_ha_0_port + - binding + binding_perimeta_b_trusted_0_port: + - perimeta_b_trusted_0_port + - binding + binding_perimeta_b_untrusted_0_port: + - perimeta_b_untrusted_0_port + - binding + os_perimeta_b_server_0: + - perimeta_b_server_0 + - os + binding_perimeta_b_mgmt_0_port: + - perimeta_b_mgmt_0_port + - binding + binding_perimeta_b_server_0: + - perimeta_b_server_0 + - binding + scalable_perimeta_b_server_0: + - perimeta_b_server_0 + - scalable + attachment_perimeta_b_ha_0_port: + - perimeta_b_ha_0_port + - attachment + attachment_perimeta_b_trusted_0_port: + - perimeta_b_trusted_0_port + - attachment + endpoint_perimeta_b_server_0: + - perimeta_b_server_0 + - endpoint + attachment_perimeta_b_untrusted_0_port: + - perimeta_b_untrusted_0_port + - attachment + host_perimeta_b_server_0: + - perimeta_b_server_0 + - host + attachment_perimeta_b_mgmt_0_port: + - perimeta_b_mgmt_0_port + - attachment + requirements: + link_perimeta_b_untrusted_0_port: + - perimeta_b_untrusted_0_port + - link + link_perimeta_b_ha_0_port: + - perimeta_b_ha_0_port + - link + link_contrail_vmi_subinterface_perimeta_b_untrusted_0_vlan_ports: + - perimeta_b_untrusted_0_vlan_ports + - link_contrail_vmi_subinterface + local_storage_perimeta_b_server_0: + - perimeta_b_server_0 + - local_storage + link_perimeta_b_mgmt_0_port: + - perimeta_b_mgmt_0_port + - link + link_perimeta_b_trusted_0_port: + - perimeta_b_trusted_0_port + - link
\ No newline at end of file diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/subInterfaceToInterfaceConnection/vTSBC_AIC/expectedoutputfiles/perimeta_ha_swmuServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/subInterfaceToInterfaceConnection/vTSBC_AIC/expectedoutputfiles/perimeta_ha_swmuServiceTemplate.yaml new file mode 100644 index 0000000000..841e26b953 --- /dev/null +++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/subInterfaceToInterfaceConnection/vTSBC_AIC/expectedoutputfiles/perimeta_ha_swmuServiceTemplate.yaml @@ -0,0 +1,1076 @@ +tosca_definitions_version: tosca_simple_yaml_1_0_0 +metadata: + template_name: perimeta_ha_swmu +imports: +- CommonGlobalTypes: + file: CommonGlobalTypesServiceTemplate.yaml +- NovaServerGlobalTypes: + file: NovaServerGlobalTypesServiceTemplate.yaml +- NeutronPortGlobalTypes: + file: NeutronPortGlobalTypesServiceTemplate.yaml +- NeutronSecurityRulesGlobalTypes: + file: NeutronSecurityRulesGlobalTypesServiceTemplate.yaml +- NeutronNetGlobalTypes: + file: NeutronNetGlobalTypesServiceTemplate.yaml +- CinderVolumeGlobalTypes: + file: CinderVolumeGlobalTypesServiceTemplate.yaml +- ContrailVirtualNetworkGlobalType: + file: ContrailVirtualNetworkGlobalTypeServiceTemplate.yaml +- ContrailNetworkRuleGlobalType: + file: ContrailNetworkRuleGlobalTypeServiceTemplate.yaml +- AbstractSubstituteGlobalTypes: + file: AbstractSubstituteGlobalTypesServiceTemplate.yaml +- ContrailV2VirtualMachineInterfaceGlobalType: + file: ContrailV2VirtualMachineInterfaceGlobalTypeServiceTemplate.yaml +- ContrailComputeGlobalTypes: + file: ContrailComputeGlobalTypesServiceTemplate.yaml +- ContrailPortGlobalTypes: + file: ContrailPortGlobalTypesServiceTemplate.yaml +- ContrailAbstractSubstituteGlobalTypes: + file: ContrailAbstractSubstituteGlobalTypesServiceTemplate.yaml +- ContrailV2VirtualNetworkGlobalType: + file: ContrailV2VirtualNetworkGlobalTypeServiceTemplate.yaml +- ContrailV2NetworkRuleGlobalType: + file: ContrailV2NetworkRuleGlobalTypeServiceTemplate.yaml +- ContrailV2VLANSubInterfaceGlobalType: + file: ContrailV2VLANSubInterfaceGlobalTypeServiceTemplate.yaml +- GlobalSubstitutionTypes: + file: GlobalSubstitutionTypesServiceTemplate.yaml +node_types: + org.openecomp.resource.vfc.nodes.heat.vm_b: + derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server + org.openecomp.resource.vfc.nodes.heat.vm_a: + derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server +topology_template: + inputs: + vf_module_id: + hidden: false + immutable: false + type: string + description: Unique ID for this VF Module instance + untrusted_net_id: + hidden: false + immutable: false + type: string + description: Service network 2 network UUID + constraints: [ + ] + mgmt_net_plen: + hidden: false + immutable: false + type: string + description: Prefix length of management network + perimeta_config: + hidden: false + immutable: false + type: string + description: Orchestration template configuration for instance. + vm_a_names: + hidden: false + immutable: false + type: list + description: List of names of Perimeta VM A instances, indexed by perimeta_instance_index + entry_schema: + type: string + serv3_vips: + hidden: false + immutable: false + type: list + description: List of service network 3 virtual IP addresses for all instances. + entry_schema: + type: string + untrusted_b_ips: + hidden: false + immutable: false + type: list + description: List of fixed IP addresses to use as untrusted fixed IPs of B instances. + entry_schema: + type: string + ha_net_id: + hidden: false + immutable: false + type: string + description: HA network id + constraints: [ + ] + perimeta_param_server_group: + hidden: false + immutable: false + type: string + description: Server group to use for these VMs - ignored + untrusted_vlan_networks: + hidden: false + immutable: false + type: 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. + entry_schema: + type: string + mgmt_sec_groups: + hidden: false + immutable: false + type: list + description: List of security groups to add on management interfaces. + entry_schema: + type: string + perimeta_instance_index: + hidden: false + immutable: false + type: float + description: Index of instance among multiple instances. Use to retrieve correct parameter for this instance when passed all parameters for all instances. + untrusted_vlan_ids: + hidden: false + immutable: false + type: list + description: List of VLAN IDs to use on the untrusted/access network + entry_schema: + type: string + serv3_net_id: + hidden: false + immutable: false + type: string + description: Service network 3 network UUID + perimeta_keypair: + hidden: false + immutable: false + type: string + description: Keypair to use for accessing this Perimeta instance + constraints: [ + ] + mgmt_vips: + hidden: false + immutable: false + type: list + description: List of management virtual IP addresses for all instances. + entry_schema: + type: string + untrusted_vips: + hidden: false + immutable: false + type: list + description: List of service network 2 virtual IP addresses for all instances. + entry_schema: + type: string + vnf_id: + hidden: false + immutable: false + type: string + description: VNF ID of this deployment + availability_zone_0: + hidden: false + immutable: false + type: string + description: Availability zone for A instances. + availability_zone_1: + hidden: false + immutable: false + type: string + description: Availability zone for B instances. May be the same as A instance. + serv3_a_ips: + hidden: false + immutable: false + type: list + description: List of fixed IP addresses to use as serv3 fixed IPs of A instances. + entry_schema: + type: string + unused_net_id: + hidden: false + immutable: false + type: string + description: Service network unused port network UUID + ha_a_ips: + hidden: false + immutable: false + type: list + description: List of fixed IP addresses to use as HA IPs of A instances. + entry_schema: + type: string + untrusted_v6_vips: + hidden: false + immutable: false + type: list + description: List of service network 2 alternate virtual IP addresses for all instances. + entry_schema: + type: string + ha_sec_groups: + hidden: false + immutable: false + type: list + description: List of security groups to add on HA interfaces. + entry_schema: + type: string + trusted_a_ips: + hidden: false + immutable: false + type: list + description: List of fixed IP addresses to use as trusted fixed IPs of A instances. + entry_schema: + type: string + untrusted_num_vlans: + hidden: false + immutable: false + type: float + description: Number of VLANs to connect to on the untrusted/access network + system_names: + hidden: false + immutable: false + type: list + description: List of system names of Perimeta instances. Name of a specific instance is indexed by perimeta_instance_index + entry_schema: + type: string + vm_b_names: + hidden: false + immutable: false + type: list + description: List of names of Perimeta VM A instances, indexed by perimeta_instance_index + entry_schema: + type: string + trusted_sec_groups: + hidden: false + immutable: false + type: list + description: List of security groups to add on trusted interfaces. + entry_schema: + type: string + serv3_sec_groups: + hidden: false + immutable: false + type: list + description: List of security groups to add on serv3 interfaces. + entry_schema: + type: string + trusted_vips: + hidden: false + immutable: false + type: list + description: List of service network 1 virtual IP addresses for all instances. + entry_schema: + type: string + trusted_net_id: + hidden: false + immutable: false + type: string + description: Service network 1 network UUID + constraints: [ + ] + serv3_b_ips: + hidden: false + immutable: false + type: list + description: List of fixed IP addresses to use as serv3 fixed IPs of B instances. + entry_schema: + type: string + ha_b_ips: + hidden: false + immutable: false + type: list + description: List of fixed IP addresses to use as HA IPs of B instances. + entry_schema: + type: string + untrusted_a_v6_ips: + hidden: false + immutable: false + type: list + description: List of fixed IP addresses to use as untrusted alternate fixed IPs of A instances. + entry_schema: + type: string + untrusted_b_v6_ips: + hidden: false + immutable: false + type: list + description: List of fixed IP addresses to use as untrusted alternate fixed IPs of B instances. + entry_schema: + type: string + mgmt_a_ips: + hidden: false + immutable: false + type: list + description: List of fixed IP addresses to use as management IPs of A instances. + entry_schema: + type: string + vm_role: + hidden: false + immutable: false + type: string + description: Role of these VMs + trusted_b_ips: + hidden: false + immutable: false + type: list + description: List of fixed IP addresses to use as trusted fixed IPs of B instances. + entry_schema: + type: string + perimeta_image_name: + hidden: false + immutable: false + type: string + description: Glance image for Perimeta instance + constraints: [ + ] + mgmt_net_default_gateway: + hidden: false + immutable: false + type: string + description: IP address of management default gateway + untrusted_a_ips: + hidden: false + immutable: false + type: list + description: List of fixed IP addresses to use as untrusted fixed IPs of A instances. + entry_schema: + type: string + untrusted_sec_groups: + hidden: false + immutable: false + type: list + description: List of security groups to add on untrusted interfaces. + entry_schema: + type: string + mgmt_net_id: + hidden: false + immutable: false + type: string + description: Management network id + constraints: [ + ] + perimeta_flavor_name: + hidden: false + immutable: false + type: string + description: Flavor to use for creating VM instances + constraints: [ + ] + ha_network_plen: + hidden: false + immutable: false + type: float + constraints: + - in_range: + - 0 + - 32 + mgmt_b_ips: + hidden: false + immutable: false + type: list + description: List of fixed IP addresses to use as management IPs of B instances. + entry_schema: + type: string + node_templates: + perimeta_a_unused_0_port: + type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port + properties: + name: + str_replace: + template: $VM_unused_port + params: + $VM: + get_input: + - vm_a_names + - get_input: perimeta_instance_index + network: + get_input: unused_net_id + requirements: + - binding: + capability: tosca.capabilities.network.Bindable + node: perimeta_a_server_0 + relationship: tosca.relationships.network.BindsTo + perimeta_a_untrusted_0_vlan_ports: + type: org.openecomp.resource.abstract.nodes.heat.vlan_subinterface_dual + directives: + - substitutable + properties: + vlan_ids: + get_input: untrusted_vlan_ids + service_template_filter: + substitute_service_template: vlan_subinterface_dualServiceTemplate.yaml + count: + get_input: untrusted_num_vlans + mandatory: false + parent_interface: perimeta_a_untrusted_0_port + virtual_ipv6_address: + get_input: + - untrusted_v6_vips + - get_input: perimeta_instance_index + virtual_ip_address: + get_input: + - untrusted_vips + - get_input: perimeta_instance_index + mac_address: + get_attribute: + - perimeta_a_untrusted_0_port + - mac_address + ipv6_address: + get_input: + - untrusted_a_v6_ips + - get_input: perimeta_instance_index + subinterface_name_prefix: + str_replace: + template: $VM_untrusted_port_vlan_ + params: + $VM: + get_input: + - vm_a_names + - get_input: perimeta_instance_index + subinterface_instance_index: + get_property: + - SELF + - service_template_filter + - index_value + ip_address: + get_input: + - untrusted_a_ips + - get_input: perimeta_instance_index + vlan_networks: + get_input: untrusted_vlan_networks + requirements: + - binding_contrail_vmi_subinterface: + capability: tosca.capabilities.network.Bindable + node: perimeta_a_untrusted_0_port + relationship: tosca.relationships.network.BindsTo + perimeta_a_mgmt_0_port: + type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port + properties: + security_groups: + get_input: mgmt_sec_groups + fixed_ips: + - ip_address: + get_input: + - mgmt_a_ips + - get_input: perimeta_instance_index + allowed_address_pairs: + - ip_address: + get_input: + - mgmt_vips + - get_input: perimeta_instance_index + name: + str_replace: + template: $VM_mgmt_port + params: + $VM: + get_input: + - vm_a_names + - get_input: perimeta_instance_index + network: + get_input: mgmt_net_id + requirements: + - binding: + capability: tosca.capabilities.network.Bindable + node: perimeta_a_server_0 + relationship: tosca.relationships.network.BindsTo + perimeta_b_untrusted_0_port: + type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port + properties: + security_groups: + get_input: untrusted_sec_groups + fixed_ips: + - ip_address: + get_input: + - untrusted_b_ips + - get_input: perimeta_instance_index + - ip_address: + get_input: + - untrusted_b_v6_ips + - get_input: perimeta_instance_index + allowed_address_pairs: + - ip_address: + get_input: + - untrusted_vips + - get_input: perimeta_instance_index + - ip_address: + get_input: + - untrusted_v6_vips + - get_input: perimeta_instance_index + name: + str_replace: + template: $VM_untrusted_port + params: + $VM: + get_input: + - vm_b_names + - get_input: perimeta_instance_index + network: + get_input: untrusted_net_id + requirements: + - binding: + capability: tosca.capabilities.network.Bindable + node: perimeta_b_server_0 + relationship: tosca.relationships.network.BindsTo + perimeta_b_untrusted_0_vlan_ports: + type: org.openecomp.resource.abstract.nodes.heat.vlan_subinterface_dual + directives: + - substitutable + properties: + vlan_ids: + get_input: untrusted_vlan_ids + service_template_filter: + substitute_service_template: vlan_subinterface_dualServiceTemplate.yaml + count: + get_input: untrusted_num_vlans + mandatory: false + parent_interface: perimeta_b_untrusted_0_port + virtual_ipv6_address: + get_input: + - untrusted_v6_vips + - get_input: perimeta_instance_index + virtual_ip_address: + get_input: + - untrusted_vips + - get_input: perimeta_instance_index + mac_address: + get_attribute: + - perimeta_b_untrusted_0_port + - mac_address + ipv6_address: + get_input: + - untrusted_b_v6_ips + - get_input: perimeta_instance_index + subinterface_name_prefix: + str_replace: + template: $VM_untrusted_port_vlan_ + params: + $VM: + get_input: + - vm_b_names + - get_input: perimeta_instance_index + subinterface_instance_index: + get_property: + - SELF + - service_template_filter + - index_value + ip_address: + get_input: + - untrusted_b_ips + - get_input: perimeta_instance_index + vlan_networks: + get_input: untrusted_vlan_networks + requirements: + - binding_contrail_vmi_subinterface: + capability: tosca.capabilities.network.Bindable + node: perimeta_b_untrusted_0_port + relationship: tosca.relationships.network.BindsTo + perimeta_b_unused_0_port: + type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port + properties: + name: + str_replace: + template: $VM_unused_port + params: + $VM: + get_input: + - vm_b_names + - get_input: perimeta_instance_index + network: + get_input: unused_net_id + requirements: + - binding: + capability: tosca.capabilities.network.Bindable + node: perimeta_b_server_0 + relationship: tosca.relationships.network.BindsTo + perimeta_a_trusted_0_port: + type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port + properties: + security_groups: + get_input: trusted_sec_groups + fixed_ips: + - ip_address: + get_input: + - trusted_a_ips + - get_input: perimeta_instance_index + allowed_address_pairs: + - ip_address: + get_input: + - trusted_vips + - get_input: perimeta_instance_index + name: + str_replace: + template: $VM_trusted_port + params: + $VM: + get_input: + - vm_a_names + - get_input: perimeta_instance_index + network: + get_input: trusted_net_id + requirements: + - binding: + capability: tosca.capabilities.network.Bindable + node: perimeta_a_server_0 + relationship: tosca.relationships.network.BindsTo + perimeta_b_mgmt_0_port: + type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port + properties: + security_groups: + get_input: mgmt_sec_groups + fixed_ips: + - ip_address: + get_input: + - mgmt_b_ips + - get_input: perimeta_instance_index + allowed_address_pairs: + - ip_address: + get_input: + - mgmt_vips + - get_input: perimeta_instance_index + name: + str_replace: + template: $VM_mgmt_port + params: + $VM: + get_input: + - vm_b_names + - get_input: perimeta_instance_index + network: + get_input: mgmt_net_id + requirements: + - binding: + capability: tosca.capabilities.network.Bindable + node: perimeta_b_server_0 + relationship: tosca.relationships.network.BindsTo + perimeta_b_ha_0_port: + type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port + properties: + security_groups: + get_input: ha_sec_groups + fixed_ips: + - ip_address: + get_input: + - ha_b_ips + - get_input: perimeta_instance_index + name: + str_replace: + template: $VM_ha_port + params: + $VM: + get_input: + - vm_b_names + - get_input: perimeta_instance_index + network: + get_input: ha_net_id + requirements: + - binding: + capability: tosca.capabilities.network.Bindable + node: perimeta_b_server_0 + relationship: tosca.relationships.network.BindsTo + perimeta_b_serv3_0_port: + type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port + properties: + security_groups: + get_input: serv3_sec_groups + fixed_ips: + - ip_address: + get_input: + - serv3_b_ips + - get_input: perimeta_instance_index + allowed_address_pairs: + - ip_address: + get_input: + - serv3_vips + - get_input: perimeta_instance_index + name: + str_replace: + template: $VM_serv3_port + params: + $VM: + get_input: + - vm_b_names + - get_input: perimeta_instance_index + network: + get_input: serv3_net_id + requirements: + - binding: + capability: tosca.capabilities.network.Bindable + node: perimeta_b_server_0 + relationship: tosca.relationships.network.BindsTo + perimeta_a_serv3_0_port: + type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port + properties: + security_groups: + get_input: serv3_sec_groups + fixed_ips: + - ip_address: + get_input: + - serv3_a_ips + - get_input: perimeta_instance_index + allowed_address_pairs: + - ip_address: + get_input: + - serv3_vips + - get_input: perimeta_instance_index + name: + str_replace: + template: $VM_serv3_port + params: + $VM: + get_input: + - vm_a_names + - get_input: perimeta_instance_index + network: + get_input: serv3_net_id + requirements: + - binding: + capability: tosca.capabilities.network.Bindable + node: perimeta_a_server_0 + relationship: tosca.relationships.network.BindsTo + perimeta_a_server_0: + type: org.openecomp.resource.vfc.nodes.heat.vm_a + properties: + flavor: + get_input: perimeta_flavor_name + key_name: + get_input: perimeta_keypair + availability_zone: + get_input: availability_zone_0 + image: + get_input: perimeta_image_name + metadata: + vf_module_id: + get_input: vf_module_id + vm_role: + str_replace: + template: $ROLE_a + params: + $ROLE: + get_input: vm_role + vnf_id: + get_input: vnf_id + config_drive: true + personality: + /opt/MetaSwitch/init/custom.ini: + get_artifact: + - SELF + - custom + user_data_format: RAW + name: + get_input: + - vm_a_names + - get_input: perimeta_instance_index + scheduler_hints: + group: perimeta_server_group_group + artifacts: + custom: + type: tosca.artifacts.Deployment + file: ../Artifacts/custom.ini + perimeta_b_trusted_0_port: + type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port + properties: + security_groups: + get_input: trusted_sec_groups + fixed_ips: + - ip_address: + get_input: + - trusted_b_ips + - get_input: perimeta_instance_index + allowed_address_pairs: + - ip_address: + get_input: + - trusted_vips + - get_input: perimeta_instance_index + name: + str_replace: + template: $VM_trusted_port + params: + $VM: + get_input: + - vm_b_names + - get_input: perimeta_instance_index + network: + get_input: trusted_net_id + requirements: + - binding: + capability: tosca.capabilities.network.Bindable + node: perimeta_b_server_0 + relationship: tosca.relationships.network.BindsTo + perimeta_a_ha_0_port: + type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port + properties: + security_groups: + get_input: ha_sec_groups + fixed_ips: + - ip_address: + get_input: + - ha_a_ips + - get_input: perimeta_instance_index + name: + str_replace: + template: $VM_ha_port + params: + $VM: + get_input: + - vm_a_names + - get_input: perimeta_instance_index + network: + get_input: ha_net_id + requirements: + - binding: + capability: tosca.capabilities.network.Bindable + node: perimeta_a_server_0 + relationship: tosca.relationships.network.BindsTo + perimeta_a_untrusted_0_port: + type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port + properties: + security_groups: + get_input: untrusted_sec_groups + fixed_ips: + - ip_address: + get_input: + - untrusted_a_ips + - get_input: perimeta_instance_index + - ip_address: + get_input: + - untrusted_a_v6_ips + - get_input: perimeta_instance_index + allowed_address_pairs: + - ip_address: + get_input: + - untrusted_vips + - get_input: perimeta_instance_index + - ip_address: + get_input: + - untrusted_v6_vips + - get_input: perimeta_instance_index + name: + str_replace: + template: $VM_untrusted_port + params: + $VM: + get_input: + - vm_a_names + - get_input: perimeta_instance_index + network: + get_input: untrusted_net_id + requirements: + - binding: + capability: tosca.capabilities.network.Bindable + node: perimeta_a_server_0 + relationship: tosca.relationships.network.BindsTo + perimeta_b_server_0: + type: org.openecomp.resource.vfc.nodes.heat.vm_b + properties: + flavor: + get_input: perimeta_flavor_name + key_name: + get_input: perimeta_keypair + availability_zone: + get_input: availability_zone_1 + image: + get_input: perimeta_image_name + metadata: + vf_module_id: + get_input: vf_module_id + vm_role: + str_replace: + template: $ROLE_b + params: + $ROLE: + get_input: vm_role + vnf_id: + get_input: vnf_id + config_drive: true + user_data_format: RAW + name: + get_input: + - vm_b_names + - get_input: perimeta_instance_index + scheduler_hints: + group: perimeta_server_group_group + groups: + perimeta_ha_swmu_group: + type: org.openecomp.groups.heat.HeatStack + properties: + heat_file: ../Artifacts/perimeta_ha_swmu.yaml + description: | + HOT template to instantiate a Perimeta 1+1 HA instance with 4vNICs as part of a nested template + members: + - perimeta_a_unused_0_port + - perimeta_a_untrusted_0_vlan_ports + - perimeta_a_mgmt_0_port + - perimeta_b_untrusted_0_port + - perimeta_b_untrusted_0_vlan_ports + - perimeta_b_unused_0_port + - perimeta_a_trusted_0_port + - perimeta_b_mgmt_0_port + - perimeta_b_ha_0_port + - perimeta_b_serv3_0_port + - perimeta_a_serv3_0_port + - perimeta_a_server_0 + - perimeta_b_trusted_0_port + - perimeta_a_ha_0_port + - perimeta_a_untrusted_0_port + - perimeta_b_server_0 + perimeta_server_group_group: + type: tosca.groups.Root + members: + - perimeta_a_server_0 + - perimeta_b_server_0 + outputs: + server_group_used: + description: Server group used for these VMs + value: perimeta_server_group_group + substitution_mappings: + node_type: org.openecomp.resource.abstract.nodes.heat.perimeta_ha_swmu + capabilities: + attachment_perimeta_a_mgmt_0_port: + - perimeta_a_mgmt_0_port + - attachment + binding_perimeta_a_server_0: + - perimeta_a_server_0 + - binding + host_perimeta_a_server_0: + - perimeta_a_server_0 + - host + binding_perimeta_b_untrusted_0_port: + - perimeta_b_untrusted_0_port + - binding + binding_perimeta_b_unused_0_port: + - perimeta_b_unused_0_port + - binding + binding_perimeta_b_mgmt_0_port: + - perimeta_b_mgmt_0_port + - binding + binding_perimeta_a_mgmt_0_port: + - perimeta_a_mgmt_0_port + - binding + binding_perimeta_a_untrusted_0_port: + - perimeta_a_untrusted_0_port + - binding + endpoint_perimeta_a_server_0: + - perimeta_a_server_0 + - endpoint + attachment_perimeta_b_unused_0_port: + - perimeta_b_unused_0_port + - attachment + attachment_perimeta_a_serv3_0_port: + - perimeta_a_serv3_0_port + - attachment + attachment_perimeta_b_serv3_0_port: + - perimeta_b_serv3_0_port + - attachment + attachment_perimeta_b_ha_0_port: + - perimeta_b_ha_0_port + - attachment + attachment_perimeta_b_trusted_0_port: + - perimeta_b_trusted_0_port + - attachment + attachment_perimeta_b_untrusted_0_port: + - perimeta_b_untrusted_0_port + - attachment + binding_perimeta_b_serv3_0_port: + - perimeta_b_serv3_0_port + - binding + binding_perimeta_a_serv3_0_port: + - perimeta_a_serv3_0_port + - binding + scalable_perimeta_a_server_0: + - perimeta_a_server_0 + - scalable + binding_perimeta_b_ha_0_port: + - perimeta_b_ha_0_port + - binding + binding_perimeta_b_trusted_0_port: + - perimeta_b_trusted_0_port + - binding + attachment_perimeta_a_trusted_0_port: + - perimeta_a_trusted_0_port + - attachment + os_perimeta_b_server_0: + - perimeta_b_server_0 + - os + attachment_perimeta_a_untrusted_0_port: + - perimeta_a_untrusted_0_port + - attachment + attachment_perimeta_a_ha_0_port: + - perimeta_a_ha_0_port + - attachment + binding_perimeta_a_trusted_0_port: + - perimeta_a_trusted_0_port + - binding + binding_perimeta_a_unused_0_port: + - perimeta_a_unused_0_port + - binding + binding_perimeta_b_server_0: + - perimeta_b_server_0 + - binding + scalable_perimeta_b_server_0: + - perimeta_b_server_0 + - scalable + attachment_perimeta_a_unused_0_port: + - perimeta_a_unused_0_port + - attachment + endpoint_perimeta_b_server_0: + - perimeta_b_server_0 + - endpoint + binding_perimeta_a_ha_0_port: + - perimeta_a_ha_0_port + - binding + os_perimeta_a_server_0: + - perimeta_a_server_0 + - os + host_perimeta_b_server_0: + - perimeta_b_server_0 + - host + attachment_perimeta_b_mgmt_0_port: + - perimeta_b_mgmt_0_port + - attachment + requirements: + link_perimeta_a_trusted_0_port: + - perimeta_a_trusted_0_port + - link + link_perimeta_b_untrusted_0_port: + - perimeta_b_untrusted_0_port + - link + link_perimeta_a_unused_0_port: + - perimeta_a_unused_0_port + - link + link_perimeta_b_serv3_0_port: + - perimeta_b_serv3_0_port + - link + link_perimeta_b_ha_0_port: + - perimeta_b_ha_0_port + - link + link_perimeta_b_trusted_0_port: + - perimeta_b_trusted_0_port + - link + local_storage_perimeta_a_server_0: + - perimeta_a_server_0 + - local_storage + link_perimeta_a_mgmt_0_port: + - perimeta_a_mgmt_0_port + - link + link_contrail_vmi_subinterface_perimeta_b_untrusted_0_vlan_ports: + - perimeta_b_untrusted_0_vlan_ports + - link_contrail_vmi_subinterface + local_storage_perimeta_b_server_0: + - perimeta_b_server_0 + - local_storage + link_contrail_vmi_subinterface_perimeta_a_untrusted_0_vlan_ports: + - perimeta_a_untrusted_0_vlan_ports + - link_contrail_vmi_subinterface + link_perimeta_a_untrusted_0_port: + - perimeta_a_untrusted_0_port + - link + link_perimeta_a_serv3_0_port: + - perimeta_a_serv3_0_port + - link + link_perimeta_b_unused_0_port: + - perimeta_b_unused_0_port + - link + link_perimeta_b_mgmt_0_port: + - perimeta_b_mgmt_0_port + - link + link_perimeta_a_ha_0_port: + - perimeta_a_ha_0_port + - link + policies: + perimeta_server_group_policy: + type: org.openecomp.policies.placement.Antilocate + properties: + name: + str_replace: + template: $SYSTEM_server_group + params: + $SYSTEM: + get_input: + - system_names + - get_input: perimeta_instance_index + container_type: host + targets: + - perimeta_server_group_group
\ No newline at end of file diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/subInterfaceToInterfaceConnection/vTSBC_AIC/expectedoutputfiles/perimeta_ha_swmu_aServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/subInterfaceToInterfaceConnection/vTSBC_AIC/expectedoutputfiles/perimeta_ha_swmu_aServiceTemplate.yaml new file mode 100644 index 0000000000..1c2a0473a7 --- /dev/null +++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/subInterfaceToInterfaceConnection/vTSBC_AIC/expectedoutputfiles/perimeta_ha_swmu_aServiceTemplate.yaml @@ -0,0 +1,719 @@ +tosca_definitions_version: tosca_simple_yaml_1_0_0 +metadata: + template_name: perimeta_ha_swmu_a +imports: +- CommonGlobalTypes: + file: CommonGlobalTypesServiceTemplate.yaml +- NovaServerGlobalTypes: + file: NovaServerGlobalTypesServiceTemplate.yaml +- NeutronPortGlobalTypes: + file: NeutronPortGlobalTypesServiceTemplate.yaml +- NeutronSecurityRulesGlobalTypes: + file: NeutronSecurityRulesGlobalTypesServiceTemplate.yaml +- NeutronNetGlobalTypes: + file: NeutronNetGlobalTypesServiceTemplate.yaml +- CinderVolumeGlobalTypes: + file: CinderVolumeGlobalTypesServiceTemplate.yaml +- ContrailVirtualNetworkGlobalType: + file: ContrailVirtualNetworkGlobalTypeServiceTemplate.yaml +- ContrailNetworkRuleGlobalType: + file: ContrailNetworkRuleGlobalTypeServiceTemplate.yaml +- AbstractSubstituteGlobalTypes: + file: AbstractSubstituteGlobalTypesServiceTemplate.yaml +- ContrailV2VirtualMachineInterfaceGlobalType: + file: ContrailV2VirtualMachineInterfaceGlobalTypeServiceTemplate.yaml +- ContrailComputeGlobalTypes: + file: ContrailComputeGlobalTypesServiceTemplate.yaml +- ContrailPortGlobalTypes: + file: ContrailPortGlobalTypesServiceTemplate.yaml +- ContrailAbstractSubstituteGlobalTypes: + file: ContrailAbstractSubstituteGlobalTypesServiceTemplate.yaml +- ContrailV2VirtualNetworkGlobalType: + file: ContrailV2VirtualNetworkGlobalTypeServiceTemplate.yaml +- ContrailV2NetworkRuleGlobalType: + file: ContrailV2NetworkRuleGlobalTypeServiceTemplate.yaml +- ContrailV2VLANSubInterfaceGlobalType: + file: ContrailV2VLANSubInterfaceGlobalTypeServiceTemplate.yaml +- GlobalSubstitutionTypes: + file: GlobalSubstitutionTypesServiceTemplate.yaml +node_types: + org.openecomp.resource.vfc.nodes.heat.vm_a: + derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server +topology_template: + inputs: + vf_module_id: + hidden: false + immutable: false + type: string + description: Unique ID for this VF Module instance + untrusted_net_id: + hidden: false + immutable: false + type: string + description: Service network 2 network UUID + constraints: [ + ] + mgmt_net_plen: + hidden: false + immutable: false + type: string + description: Prefix length of management network + perimeta_config: + hidden: false + immutable: false + type: string + description: Orchestration template configuration for instance. + vm_a_names: + hidden: false + immutable: false + type: list + description: List of names of Perimeta VM A instances, indexed by perimeta_instance_index + entry_schema: + type: string + serv3_vips: + hidden: false + immutable: false + type: list + description: List of service network 3 virtual IP addresses for all instances. + entry_schema: + type: string + untrusted_b_ips: + hidden: false + immutable: false + type: list + description: List of fixed IP addresses to use as untrusted fixed IPs of B instances. + entry_schema: + type: string + ha_net_id: + hidden: false + immutable: false + type: string + description: HA network id + constraints: [ + ] + perimeta_param_server_group: + hidden: false + immutable: false + type: string + description: Server group to use for these VMs - ignored + untrusted_vlan_networks: + hidden: false + immutable: false + type: 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. + entry_schema: + type: string + mgmt_sec_groups: + hidden: false + immutable: false + type: list + description: List of security groups to add on management interfaces. + entry_schema: + type: string + perimeta_instance_index: + hidden: false + immutable: false + type: float + description: Index of instance among multiple instances. Use to retrieve correct parameter for this instance when passed all parameters for all instances. + untrusted_vlan_ids: + hidden: false + immutable: false + type: list + description: List of VLAN IDs to use on the untrusted/access network + entry_schema: + type: string + serv3_net_id: + hidden: false + immutable: false + type: string + description: Service network 3 network UUID + perimeta_keypair: + hidden: false + immutable: false + type: string + description: Keypair to use for accessing this Perimeta instance + constraints: [ + ] + mgmt_vips: + hidden: false + immutable: false + type: list + description: List of management virtual IP addresses for all instances. + entry_schema: + type: string + untrusted_vips: + hidden: false + immutable: false + type: list + description: List of service network 2 virtual IP addresses for all instances. + entry_schema: + type: string + vnf_id: + hidden: false + immutable: false + type: string + description: VNF ID of this deployment + availability_zone_0: + hidden: false + immutable: false + type: string + description: Availability zone for A instances. + availability_zone_1: + hidden: false + immutable: false + type: string + description: Availability zone for B instances. May be the same as A instance. + serv3_a_ips: + hidden: false + immutable: false + type: list + description: List of fixed IP addresses to use as serv3 fixed IPs of A instances. + entry_schema: + type: string + unused_net_id: + hidden: false + immutable: false + type: string + description: Service network unused port network UUID + ha_a_ips: + hidden: false + immutable: false + type: list + description: List of fixed IP addresses to use as HA IPs of A instances. + entry_schema: + type: string + untrusted_v6_vips: + hidden: false + immutable: false + type: list + description: List of service network 2 alternate virtual IP addresses for all instances. + entry_schema: + type: string + ha_sec_groups: + hidden: false + immutable: false + type: list + description: List of security groups to add on HA interfaces. + entry_schema: + type: string + trusted_a_ips: + hidden: false + immutable: false + type: list + description: List of fixed IP addresses to use as trusted fixed IPs of A instances. + entry_schema: + type: string + untrusted_num_vlans: + hidden: false + immutable: false + type: float + description: Number of VLANs to connect to on the untrusted/access network + system_names: + hidden: false + immutable: false + type: list + description: List of system names of Perimeta instances. Name of a specific instance is indexed by perimeta_instance_index + entry_schema: + type: string + vm_b_names: + hidden: false + immutable: false + type: list + description: List of names of Perimeta VM A instances, indexed by perimeta_instance_index + entry_schema: + type: string + trusted_sec_groups: + hidden: false + immutable: false + type: list + description: List of security groups to add on trusted interfaces. + entry_schema: + type: string + serv3_sec_groups: + hidden: false + immutable: false + type: list + description: List of security groups to add on serv3 interfaces. + entry_schema: + type: string + trusted_vips: + hidden: false + immutable: false + type: list + description: List of service network 1 virtual IP addresses for all instances. + entry_schema: + type: string + trusted_net_id: + hidden: false + immutable: false + type: string + description: Service network 1 network UUID + constraints: [ + ] + serv3_b_ips: + hidden: false + immutable: false + type: list + description: List of fixed IP addresses to use as serv3 fixed IPs of B instances. + entry_schema: + type: string + ha_b_ips: + hidden: false + immutable: false + type: list + description: List of fixed IP addresses to use as HA IPs of B instances. + entry_schema: + type: string + untrusted_a_v6_ips: + hidden: false + immutable: false + type: list + description: List of fixed IP addresses to use as untrusted alternate fixed IPs of A instances. + entry_schema: + type: string + untrusted_b_v6_ips: + hidden: false + immutable: false + type: list + description: List of fixed IP addresses to use as untrusted alternate fixed IPs of B instances. + entry_schema: + type: string + mgmt_a_ips: + hidden: false + immutable: false + type: list + description: List of fixed IP addresses to use as management IPs of A instances. + entry_schema: + type: string + vm_role: + hidden: false + immutable: false + type: string + description: Role of these VMs + trusted_b_ips: + hidden: false + immutable: false + type: list + description: List of fixed IP addresses to use as trusted fixed IPs of B instances. + entry_schema: + type: string + perimeta_image_name: + hidden: false + immutable: false + type: string + description: Glance image for Perimeta instance + constraints: [ + ] + mgmt_net_default_gateway: + hidden: false + immutable: false + type: string + description: IP address of management default gateway + untrusted_a_ips: + hidden: false + immutable: false + type: list + description: List of fixed IP addresses to use as untrusted fixed IPs of A instances. + entry_schema: + type: string + untrusted_sec_groups: + hidden: false + immutable: false + type: list + description: List of security groups to add on untrusted interfaces. + entry_schema: + type: string + mgmt_net_id: + hidden: false + immutable: false + type: string + description: Management network id + constraints: [ + ] + perimeta_flavor_name: + hidden: false + immutable: false + type: string + description: Flavor to use for creating VM instances + constraints: [ + ] + ha_network_plen: + hidden: false + immutable: false + type: float + constraints: + - in_range: + - 0 + - 32 + mgmt_b_ips: + hidden: false + immutable: false + type: list + description: List of fixed IP addresses to use as management IPs of B instances. + entry_schema: + type: string + node_templates: + perimeta_a_unused_0_port: + type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port + properties: + name: + str_replace: + template: $VM_unused_port + params: + $VM: + get_input: + - vm_a_names + - get_input: perimeta_instance_index + network: + get_input: unused_net_id + requirements: + - binding: + capability: tosca.capabilities.network.Bindable + node: perimeta_a_server_0 + relationship: tosca.relationships.network.BindsTo + perimeta_a_untrusted_0_vlan_ports: + type: org.openecomp.resource.abstract.nodes.heat.vlan_subinterface_dual + directives: + - substitutable + properties: + vlan_ids: + get_input: untrusted_vlan_ids + service_template_filter: + substitute_service_template: vlan_subinterface_dualServiceTemplate.yaml + count: + get_input: untrusted_num_vlans + mandatory: false + parent_interface: perimeta_a_untrusted_0_port + virtual_ipv6_address: + get_input: + - untrusted_v6_vips + - get_input: perimeta_instance_index + virtual_ip_address: + get_input: + - untrusted_vips + - get_input: perimeta_instance_index + mac_address: + get_attribute: + - perimeta_a_untrusted_0_port + - mac_address + ipv6_address: + get_input: + - untrusted_a_v6_ips + - get_input: perimeta_instance_index + subinterface_name_prefix: + str_replace: + template: $VM_untrusted_port_vlan_ + params: + $VM: + get_input: + - vm_a_names + - get_input: perimeta_instance_index + subinterface_instance_index: + get_property: + - SELF + - service_template_filter + - index_value + ip_address: + get_input: + - untrusted_a_ips + - get_input: perimeta_instance_index + vlan_networks: + get_input: untrusted_vlan_networks + requirements: + - binding_contrail_vmi_subinterface: + capability: tosca.capabilities.network.Bindable + node: perimeta_a_untrusted_0_port + relationship: tosca.relationships.network.BindsTo + perimeta_a_serv3_0_port: + type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port + properties: + security_groups: + get_input: serv3_sec_groups + fixed_ips: + - ip_address: + get_input: + - serv3_a_ips + - get_input: perimeta_instance_index + allowed_address_pairs: + - ip_address: + get_input: + - serv3_vips + - get_input: perimeta_instance_index + name: + str_replace: + template: $VM_serv3_port + params: + $VM: + get_input: + - vm_a_names + - get_input: perimeta_instance_index + network: + get_input: serv3_net_id + requirements: + - binding: + capability: tosca.capabilities.network.Bindable + node: perimeta_a_server_0 + relationship: tosca.relationships.network.BindsTo + perimeta_a_server_0: + type: org.openecomp.resource.vfc.nodes.heat.vm_a + properties: + flavor: + get_input: perimeta_flavor_name + key_name: + get_input: perimeta_keypair + availability_zone: + get_input: availability_zone_0 + image: + get_input: perimeta_image_name + metadata: + vf_module_id: + get_input: vf_module_id + vm_role: + str_replace: + template: $ROLE_a + params: + $ROLE: + get_input: vm_role + vnf_id: + get_input: vnf_id + config_drive: true + personality: + /opt/MetaSwitch/init/custom.ini: + get_artifact: + - SELF + - custom + user_data_format: RAW + name: + get_input: + - vm_a_names + - get_input: perimeta_instance_index + scheduler_hints: + group: + get_input: perimeta_param_server_group + artifacts: + custom: + type: tosca.artifacts.Deployment + file: ../Artifacts/custom.ini + perimeta_a_mgmt_0_port: + type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port + properties: + security_groups: + get_input: mgmt_sec_groups + fixed_ips: + - ip_address: + get_input: + - mgmt_a_ips + - get_input: perimeta_instance_index + allowed_address_pairs: + - ip_address: + get_input: + - mgmt_vips + - get_input: perimeta_instance_index + name: + str_replace: + template: $VM_mgmt_port + params: + $VM: + get_input: + - vm_a_names + - get_input: perimeta_instance_index + network: + get_input: mgmt_net_id + requirements: + - binding: + capability: tosca.capabilities.network.Bindable + node: perimeta_a_server_0 + relationship: tosca.relationships.network.BindsTo + perimeta_a_ha_0_port: + type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port + properties: + security_groups: + get_input: ha_sec_groups + fixed_ips: + - ip_address: + get_input: + - ha_a_ips + - get_input: perimeta_instance_index + name: + str_replace: + template: $VM_ha_port + params: + $VM: + get_input: + - vm_a_names + - get_input: perimeta_instance_index + network: + get_input: ha_net_id + requirements: + - binding: + capability: tosca.capabilities.network.Bindable + node: perimeta_a_server_0 + relationship: tosca.relationships.network.BindsTo + perimeta_a_trusted_0_port: + type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port + properties: + security_groups: + get_input: trusted_sec_groups + fixed_ips: + - ip_address: + get_input: + - trusted_a_ips + - get_input: perimeta_instance_index + allowed_address_pairs: + - ip_address: + get_input: + - trusted_vips + - get_input: perimeta_instance_index + name: + str_replace: + template: $VM_trusted_port + params: + $VM: + get_input: + - vm_a_names + - get_input: perimeta_instance_index + network: + get_input: trusted_net_id + requirements: + - binding: + capability: tosca.capabilities.network.Bindable + node: perimeta_a_server_0 + relationship: tosca.relationships.network.BindsTo + perimeta_a_untrusted_0_port: + type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port + properties: + security_groups: + get_input: untrusted_sec_groups + fixed_ips: + - ip_address: + get_input: + - untrusted_a_ips + - get_input: perimeta_instance_index + - ip_address: + get_input: + - untrusted_a_v6_ips + - get_input: perimeta_instance_index + allowed_address_pairs: + - ip_address: + get_input: + - untrusted_vips + - get_input: perimeta_instance_index + - ip_address: + get_input: + - untrusted_v6_vips + - get_input: perimeta_instance_index + name: + str_replace: + template: $VM_untrusted_port + params: + $VM: + get_input: + - vm_a_names + - get_input: perimeta_instance_index + network: + get_input: untrusted_net_id + requirements: + - binding: + capability: tosca.capabilities.network.Bindable + node: perimeta_a_server_0 + relationship: tosca.relationships.network.BindsTo + groups: + perimeta_ha_swmu_a_group: + type: org.openecomp.groups.heat.HeatStack + properties: + heat_file: ../Artifacts/perimeta_ha_swmu_a.yaml + description: | + HOT template to instantiate a Perimeta 1+1 HA instance with 4vNICs as part of a nested template + members: + - perimeta_a_unused_0_port + - perimeta_a_untrusted_0_vlan_ports + - perimeta_a_serv3_0_port + - perimeta_a_server_0 + - perimeta_a_mgmt_0_port + - perimeta_a_ha_0_port + - perimeta_a_trusted_0_port + - perimeta_a_untrusted_0_port + outputs: + server_group_used: + description: Server group used for these VMs + value: + get_input: perimeta_param_server_group + substitution_mappings: + node_type: org.openecomp.resource.abstract.nodes.heat.perimeta_ha_swmu_a + capabilities: + scalable_perimeta_a_server_0: + - perimeta_a_server_0 + - scalable + attachment_perimeta_a_mgmt_0_port: + - perimeta_a_mgmt_0_port + - attachment + binding_perimeta_a_server_0: + - perimeta_a_server_0 + - binding + host_perimeta_a_server_0: + - perimeta_a_server_0 + - host + attachment_perimeta_a_trusted_0_port: + - perimeta_a_trusted_0_port + - attachment + attachment_perimeta_a_untrusted_0_port: + - perimeta_a_untrusted_0_port + - attachment + attachment_perimeta_a_ha_0_port: + - perimeta_a_ha_0_port + - attachment + binding_perimeta_a_mgmt_0_port: + - perimeta_a_mgmt_0_port + - binding + binding_perimeta_a_trusted_0_port: + - perimeta_a_trusted_0_port + - binding + binding_perimeta_a_untrusted_0_port: + - perimeta_a_untrusted_0_port + - binding + endpoint_perimeta_a_server_0: + - perimeta_a_server_0 + - endpoint + binding_perimeta_a_unused_0_port: + - perimeta_a_unused_0_port + - binding + attachment_perimeta_a_serv3_0_port: + - perimeta_a_serv3_0_port + - attachment + attachment_perimeta_a_unused_0_port: + - perimeta_a_unused_0_port + - attachment + binding_perimeta_a_ha_0_port: + - perimeta_a_ha_0_port + - binding + os_perimeta_a_server_0: + - perimeta_a_server_0 + - os + binding_perimeta_a_serv3_0_port: + - perimeta_a_serv3_0_port + - binding + requirements: + link_perimeta_a_trusted_0_port: + - perimeta_a_trusted_0_port + - link + link_perimeta_a_unused_0_port: + - perimeta_a_unused_0_port + - link + link_perimeta_a_mgmt_0_port: + - perimeta_a_mgmt_0_port + - link + link_contrail_vmi_subinterface_perimeta_a_untrusted_0_vlan_ports: + - perimeta_a_untrusted_0_vlan_ports + - link_contrail_vmi_subinterface + link_perimeta_a_untrusted_0_port: + - perimeta_a_untrusted_0_port + - link + link_perimeta_a_serv3_0_port: + - perimeta_a_serv3_0_port + - link + link_perimeta_a_ha_0_port: + - perimeta_a_ha_0_port + - link + local_storage_perimeta_a_server_0: + - perimeta_a_server_0 + - local_storage
\ No newline at end of file diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/subInterfaceToInterfaceConnection/vTSBC_AIC/expectedoutputfiles/perimeta_ha_swmu_bServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/subInterfaceToInterfaceConnection/vTSBC_AIC/expectedoutputfiles/perimeta_ha_swmu_bServiceTemplate.yaml new file mode 100644 index 0000000000..980339af58 --- /dev/null +++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/subInterfaceToInterfaceConnection/vTSBC_AIC/expectedoutputfiles/perimeta_ha_swmu_bServiceTemplate.yaml @@ -0,0 +1,710 @@ +tosca_definitions_version: tosca_simple_yaml_1_0_0 +metadata: + template_name: perimeta_ha_swmu_b +imports: +- CommonGlobalTypes: + file: CommonGlobalTypesServiceTemplate.yaml +- NovaServerGlobalTypes: + file: NovaServerGlobalTypesServiceTemplate.yaml +- NeutronPortGlobalTypes: + file: NeutronPortGlobalTypesServiceTemplate.yaml +- NeutronSecurityRulesGlobalTypes: + file: NeutronSecurityRulesGlobalTypesServiceTemplate.yaml +- NeutronNetGlobalTypes: + file: NeutronNetGlobalTypesServiceTemplate.yaml +- CinderVolumeGlobalTypes: + file: CinderVolumeGlobalTypesServiceTemplate.yaml +- ContrailVirtualNetworkGlobalType: + file: ContrailVirtualNetworkGlobalTypeServiceTemplate.yaml +- ContrailNetworkRuleGlobalType: + file: ContrailNetworkRuleGlobalTypeServiceTemplate.yaml +- AbstractSubstituteGlobalTypes: + file: AbstractSubstituteGlobalTypesServiceTemplate.yaml +- ContrailV2VirtualMachineInterfaceGlobalType: + file: ContrailV2VirtualMachineInterfaceGlobalTypeServiceTemplate.yaml +- ContrailComputeGlobalTypes: + file: ContrailComputeGlobalTypesServiceTemplate.yaml +- ContrailPortGlobalTypes: + file: ContrailPortGlobalTypesServiceTemplate.yaml +- ContrailAbstractSubstituteGlobalTypes: + file: ContrailAbstractSubstituteGlobalTypesServiceTemplate.yaml +- ContrailV2VirtualNetworkGlobalType: + file: ContrailV2VirtualNetworkGlobalTypeServiceTemplate.yaml +- ContrailV2NetworkRuleGlobalType: + file: ContrailV2NetworkRuleGlobalTypeServiceTemplate.yaml +- ContrailV2VLANSubInterfaceGlobalType: + file: ContrailV2VLANSubInterfaceGlobalTypeServiceTemplate.yaml +- GlobalSubstitutionTypes: + file: GlobalSubstitutionTypesServiceTemplate.yaml +node_types: + org.openecomp.resource.vfc.nodes.heat.vm_b: + derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server +topology_template: + inputs: + vf_module_id: + hidden: false + immutable: false + type: string + description: Unique ID for this VF Module instance + untrusted_net_id: + hidden: false + immutable: false + type: string + description: Service network 2 network UUID + constraints: [ + ] + mgmt_net_plen: + hidden: false + immutable: false + type: string + description: Prefix length of management network + perimeta_config: + hidden: false + immutable: false + type: string + description: Orchestration template configuration for instance. + vm_a_names: + hidden: false + immutable: false + type: list + description: List of names of Perimeta VM A instances, indexed by perimeta_instance_index + entry_schema: + type: string + serv3_vips: + hidden: false + immutable: false + type: list + description: List of service network 3 virtual IP addresses for all instances. + entry_schema: + type: string + untrusted_b_ips: + hidden: false + immutable: false + type: list + description: List of fixed IP addresses to use as untrusted fixed IPs of B instances. + entry_schema: + type: string + ha_net_id: + hidden: false + immutable: false + type: string + description: HA network id + constraints: [ + ] + perimeta_param_server_group: + hidden: false + immutable: false + type: string + description: Server group to use for these VMs - ignored + untrusted_vlan_networks: + hidden: false + immutable: false + type: 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. + entry_schema: + type: string + mgmt_sec_groups: + hidden: false + immutable: false + type: list + description: List of security groups to add on management interfaces. + entry_schema: + type: string + perimeta_instance_index: + hidden: false + immutable: false + type: float + description: Index of instance among multiple instances. Use to retrieve correct parameter for this instance when passed all parameters for all instances. + untrusted_vlan_ids: + hidden: false + immutable: false + type: list + description: List of VLAN IDs to use on the untrusted/access network + entry_schema: + type: string + serv3_net_id: + hidden: false + immutable: false + type: string + description: Service network 3 network UUID + perimeta_keypair: + hidden: false + immutable: false + type: string + description: Keypair to use for accessing this Perimeta instance + constraints: [ + ] + mgmt_vips: + hidden: false + immutable: false + type: list + description: List of management virtual IP addresses for all instances. + entry_schema: + type: string + untrusted_vips: + hidden: false + immutable: false + type: list + description: List of service network 2 virtual IP addresses for all instances. + entry_schema: + type: string + vnf_id: + hidden: false + immutable: false + type: string + description: VNF ID of this deployment + availability_zone_0: + hidden: false + immutable: false + type: string + description: Availability zone for A instances. + availability_zone_1: + hidden: false + immutable: false + type: string + description: Availability zone for B instances. May be the same as A instance. + serv3_a_ips: + hidden: false + immutable: false + type: list + description: List of fixed IP addresses to use as serv3 fixed IPs of A instances. + entry_schema: + type: string + unused_net_id: + hidden: false + immutable: false + type: string + description: Service network unused port network UUID + ha_a_ips: + hidden: false + immutable: false + type: list + description: List of fixed IP addresses to use as HA IPs of A instances. + entry_schema: + type: string + untrusted_v6_vips: + hidden: false + immutable: false + type: list + description: List of service network 2 alternate virtual IP addresses for all instances. + entry_schema: + type: string + ha_sec_groups: + hidden: false + immutable: false + type: list + description: List of security groups to add on HA interfaces. + entry_schema: + type: string + trusted_a_ips: + hidden: false + immutable: false + type: list + description: List of fixed IP addresses to use as trusted fixed IPs of A instances. + entry_schema: + type: string + untrusted_num_vlans: + hidden: false + immutable: false + type: float + description: Number of VLANs to connect to on the untrusted/access network + system_names: + hidden: false + immutable: false + type: list + description: List of system names of Perimeta instances. Name of a specific instance is indexed by perimeta_instance_index + entry_schema: + type: string + vm_b_names: + hidden: false + immutable: false + type: list + description: List of names of Perimeta VM A instances, indexed by perimeta_instance_index + entry_schema: + type: string + trusted_sec_groups: + hidden: false + immutable: false + type: list + description: List of security groups to add on trusted interfaces. + entry_schema: + type: string + serv3_sec_groups: + hidden: false + immutable: false + type: list + description: List of security groups to add on serv3 interfaces. + entry_schema: + type: string + trusted_vips: + hidden: false + immutable: false + type: list + description: List of service network 1 virtual IP addresses for all instances. + entry_schema: + type: string + trusted_net_id: + hidden: false + immutable: false + type: string + description: Service network 1 network UUID + constraints: [ + ] + serv3_b_ips: + hidden: false + immutable: false + type: list + description: List of fixed IP addresses to use as serv3 fixed IPs of B instances. + entry_schema: + type: string + ha_b_ips: + hidden: false + immutable: false + type: list + description: List of fixed IP addresses to use as HA IPs of B instances. + entry_schema: + type: string + untrusted_a_v6_ips: + hidden: false + immutable: false + type: list + description: List of fixed IP addresses to use as untrusted alternate fixed IPs of A instances. + entry_schema: + type: string + untrusted_b_v6_ips: + hidden: false + immutable: false + type: list + description: List of fixed IP addresses to use as untrusted alternate fixed IPs of B instances. + entry_schema: + type: string + mgmt_a_ips: + hidden: false + immutable: false + type: list + description: List of fixed IP addresses to use as management IPs of A instances. + entry_schema: + type: string + vm_role: + hidden: false + immutable: false + type: string + description: Role of these VMs + trusted_b_ips: + hidden: false + immutable: false + type: list + description: List of fixed IP addresses to use as trusted fixed IPs of B instances. + entry_schema: + type: string + perimeta_image_name: + hidden: false + immutable: false + type: string + description: Glance image for Perimeta instance + constraints: [ + ] + mgmt_net_default_gateway: + hidden: false + immutable: false + type: string + description: IP address of management default gateway + untrusted_a_ips: + hidden: false + immutable: false + type: list + description: List of fixed IP addresses to use as untrusted fixed IPs of A instances. + entry_schema: + type: string + untrusted_sec_groups: + hidden: false + immutable: false + type: list + description: List of security groups to add on untrusted interfaces. + entry_schema: + type: string + mgmt_net_id: + hidden: false + immutable: false + type: string + description: Management network id + constraints: [ + ] + perimeta_flavor_name: + hidden: false + immutable: false + type: string + description: Flavor to use for creating VM instances + constraints: [ + ] + ha_network_plen: + hidden: false + immutable: false + type: float + constraints: + - in_range: + - 0 + - 32 + mgmt_b_ips: + hidden: false + immutable: false + type: list + description: List of fixed IP addresses to use as management IPs of B instances. + entry_schema: + type: string + node_templates: + perimeta_b_ha_0_port: + type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port + properties: + security_groups: + get_input: ha_sec_groups + fixed_ips: + - ip_address: + get_input: + - ha_b_ips + - get_input: perimeta_instance_index + name: + str_replace: + template: $VM_ha_port + params: + $VM: + get_input: + - vm_b_names + - get_input: perimeta_instance_index + network: + get_input: ha_net_id + requirements: + - binding: + capability: tosca.capabilities.network.Bindable + node: perimeta_b_server_0 + relationship: tosca.relationships.network.BindsTo + perimeta_b_serv3_0_port: + type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port + properties: + security_groups: + get_input: serv3_sec_groups + fixed_ips: + - ip_address: + get_input: + - serv3_b_ips + - get_input: perimeta_instance_index + allowed_address_pairs: + - ip_address: + get_input: + - serv3_vips + - get_input: perimeta_instance_index + name: + str_replace: + template: $VM_serv3_port + params: + $VM: + get_input: + - vm_b_names + - get_input: perimeta_instance_index + network: + get_input: serv3_net_id + requirements: + - binding: + capability: tosca.capabilities.network.Bindable + node: perimeta_b_server_0 + relationship: tosca.relationships.network.BindsTo + perimeta_b_trusted_0_port: + type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port + properties: + security_groups: + get_input: trusted_sec_groups + fixed_ips: + - ip_address: + get_input: + - trusted_b_ips + - get_input: perimeta_instance_index + allowed_address_pairs: + - ip_address: + get_input: + - trusted_vips + - get_input: perimeta_instance_index + name: + str_replace: + template: $VM_trusted_port + params: + $VM: + get_input: + - vm_b_names + - get_input: perimeta_instance_index + network: + get_input: trusted_net_id + requirements: + - binding: + capability: tosca.capabilities.network.Bindable + node: perimeta_b_server_0 + relationship: tosca.relationships.network.BindsTo + perimeta_b_untrusted_0_port: + type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port + properties: + security_groups: + get_input: untrusted_sec_groups + fixed_ips: + - ip_address: + get_input: + - untrusted_b_ips + - get_input: perimeta_instance_index + - ip_address: + get_input: + - untrusted_b_v6_ips + - get_input: perimeta_instance_index + allowed_address_pairs: + - ip_address: + get_input: + - untrusted_vips + - get_input: perimeta_instance_index + - ip_address: + get_input: + - untrusted_v6_vips + - get_input: perimeta_instance_index + name: + str_replace: + template: $VM_untrusted_port + params: + $VM: + get_input: + - vm_b_names + - get_input: perimeta_instance_index + network: + get_input: untrusted_net_id + requirements: + - binding: + capability: tosca.capabilities.network.Bindable + node: perimeta_b_server_0 + relationship: tosca.relationships.network.BindsTo + perimeta_b_untrusted_0_vlan_ports: + type: org.openecomp.resource.abstract.nodes.heat.vlan_subinterface_dual + directives: + - substitutable + properties: + vlan_ids: + get_input: untrusted_vlan_ids + service_template_filter: + substitute_service_template: vlan_subinterface_dualServiceTemplate.yaml + count: + get_input: untrusted_num_vlans + mandatory: false + parent_interface: perimeta_b_untrusted_0_port + virtual_ipv6_address: + get_input: + - untrusted_v6_vips + - get_input: perimeta_instance_index + virtual_ip_address: + get_input: + - untrusted_vips + - get_input: perimeta_instance_index + mac_address: + get_attribute: + - perimeta_b_untrusted_0_port + - mac_address + ipv6_address: + get_input: + - untrusted_b_v6_ips + - get_input: perimeta_instance_index + subinterface_name_prefix: + str_replace: + template: $VM_untrusted_port_vlan_ + params: + $VM: + get_input: + - vm_b_names + - get_input: perimeta_instance_index + subinterface_instance_index: + get_property: + - SELF + - service_template_filter + - index_value + ip_address: + get_input: + - untrusted_b_ips + - get_input: perimeta_instance_index + vlan_networks: + get_input: untrusted_vlan_networks + requirements: + - binding_contrail_vmi_subinterface: + capability: tosca.capabilities.network.Bindable + node: perimeta_b_untrusted_0_port + relationship: tosca.relationships.network.BindsTo + perimeta_b_unused_0_port: + type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port + properties: + name: + str_replace: + template: $VM_unused_port + params: + $VM: + get_input: + - vm_b_names + - get_input: perimeta_instance_index + network: + get_input: unused_net_id + requirements: + - binding: + capability: tosca.capabilities.network.Bindable + node: perimeta_b_server_0 + relationship: tosca.relationships.network.BindsTo + perimeta_b_mgmt_0_port: + type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port + properties: + security_groups: + get_input: mgmt_sec_groups + fixed_ips: + - ip_address: + get_input: + - mgmt_b_ips + - get_input: perimeta_instance_index + allowed_address_pairs: + - ip_address: + get_input: + - mgmt_vips + - get_input: perimeta_instance_index + name: + str_replace: + template: $VM_mgmt_port + params: + $VM: + get_input: + - vm_b_names + - get_input: perimeta_instance_index + network: + get_input: mgmt_net_id + requirements: + - binding: + capability: tosca.capabilities.network.Bindable + node: perimeta_b_server_0 + relationship: tosca.relationships.network.BindsTo + perimeta_b_server_0: + type: org.openecomp.resource.vfc.nodes.heat.vm_b + properties: + flavor: + get_input: perimeta_flavor_name + key_name: + get_input: perimeta_keypair + availability_zone: + get_input: availability_zone_1 + image: + get_input: perimeta_image_name + metadata: + vf_module_id: + get_input: vf_module_id + vm_role: + str_replace: + template: $ROLE_b + params: + $ROLE: + get_input: vm_role + vnf_id: + get_input: vnf_id + config_drive: true + user_data_format: RAW + name: + get_input: + - vm_b_names + - get_input: perimeta_instance_index + scheduler_hints: + group: + get_input: perimeta_param_server_group + groups: + perimeta_ha_swmu_b_group: + type: org.openecomp.groups.heat.HeatStack + properties: + heat_file: ../Artifacts/perimeta_ha_swmu_b.yaml + description: | + HOT template to instantiate a Perimeta 1+1 HA instance with 4vNICs as part of a nested template + members: + - perimeta_b_ha_0_port + - perimeta_b_serv3_0_port + - perimeta_b_trusted_0_port + - perimeta_b_untrusted_0_port + - perimeta_b_untrusted_0_vlan_ports + - perimeta_b_unused_0_port + - perimeta_b_mgmt_0_port + - perimeta_b_server_0 + outputs: + server_group_used: + description: Server group used for these VMs + value: + get_input: perimeta_param_server_group + substitution_mappings: + node_type: org.openecomp.resource.abstract.nodes.heat.perimeta_ha_swmu_b + capabilities: + binding_perimeta_b_ha_0_port: + - perimeta_b_ha_0_port + - binding + binding_perimeta_b_trusted_0_port: + - perimeta_b_trusted_0_port + - binding + binding_perimeta_b_untrusted_0_port: + - perimeta_b_untrusted_0_port + - binding + os_perimeta_b_server_0: + - perimeta_b_server_0 + - os + binding_perimeta_b_unused_0_port: + - perimeta_b_unused_0_port + - binding + binding_perimeta_b_mgmt_0_port: + - perimeta_b_mgmt_0_port + - binding + attachment_perimeta_b_unused_0_port: + - perimeta_b_unused_0_port + - attachment + binding_perimeta_b_server_0: + - perimeta_b_server_0 + - binding + attachment_perimeta_b_serv3_0_port: + - perimeta_b_serv3_0_port + - attachment + scalable_perimeta_b_server_0: + - perimeta_b_server_0 + - scalable + attachment_perimeta_b_ha_0_port: + - perimeta_b_ha_0_port + - attachment + attachment_perimeta_b_trusted_0_port: + - perimeta_b_trusted_0_port + - attachment + endpoint_perimeta_b_server_0: + - perimeta_b_server_0 + - endpoint + binding_perimeta_b_serv3_0_port: + - perimeta_b_serv3_0_port + - binding + attachment_perimeta_b_untrusted_0_port: + - perimeta_b_untrusted_0_port + - attachment + host_perimeta_b_server_0: + - perimeta_b_server_0 + - host + attachment_perimeta_b_mgmt_0_port: + - perimeta_b_mgmt_0_port + - attachment + requirements: + link_perimeta_b_untrusted_0_port: + - perimeta_b_untrusted_0_port + - link + link_perimeta_b_serv3_0_port: + - perimeta_b_serv3_0_port + - link + link_perimeta_b_ha_0_port: + - perimeta_b_ha_0_port + - link + link_contrail_vmi_subinterface_perimeta_b_untrusted_0_vlan_ports: + - perimeta_b_untrusted_0_vlan_ports + - link_contrail_vmi_subinterface + local_storage_perimeta_b_server_0: + - perimeta_b_server_0 + - local_storage + link_perimeta_b_unused_0_port: + - perimeta_b_unused_0_port + - link + link_perimeta_b_mgmt_0_port: + - perimeta_b_mgmt_0_port + - link + link_perimeta_b_trusted_0_port: + - perimeta_b_trusted_0_port + - link
\ No newline at end of file diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/subInterfaceToInterfaceConnection/vTSBC_AIC/expectedoutputfiles/vlan_subinterface_dualServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/subInterfaceToInterfaceConnection/vTSBC_AIC/expectedoutputfiles/vlan_subinterface_dualServiceTemplate.yaml new file mode 100644 index 0000000000..344092835c --- /dev/null +++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/subInterfaceToInterfaceConnection/vTSBC_AIC/expectedoutputfiles/vlan_subinterface_dualServiceTemplate.yaml @@ -0,0 +1,156 @@ +tosca_definitions_version: tosca_simple_yaml_1_0_0 +metadata: + template_name: vlan_subinterface_dual +imports: +- CommonGlobalTypes: + file: CommonGlobalTypesServiceTemplate.yaml +- NovaServerGlobalTypes: + file: NovaServerGlobalTypesServiceTemplate.yaml +- NeutronPortGlobalTypes: + file: NeutronPortGlobalTypesServiceTemplate.yaml +- NeutronSecurityRulesGlobalTypes: + file: NeutronSecurityRulesGlobalTypesServiceTemplate.yaml +- NeutronNetGlobalTypes: + file: NeutronNetGlobalTypesServiceTemplate.yaml +- CinderVolumeGlobalTypes: + file: CinderVolumeGlobalTypesServiceTemplate.yaml +- ContrailVirtualNetworkGlobalType: + file: ContrailVirtualNetworkGlobalTypeServiceTemplate.yaml +- ContrailNetworkRuleGlobalType: + file: ContrailNetworkRuleGlobalTypeServiceTemplate.yaml +- AbstractSubstituteGlobalTypes: + file: AbstractSubstituteGlobalTypesServiceTemplate.yaml +- ContrailV2VirtualMachineInterfaceGlobalType: + file: ContrailV2VirtualMachineInterfaceGlobalTypeServiceTemplate.yaml +- ContrailComputeGlobalTypes: + file: ContrailComputeGlobalTypesServiceTemplate.yaml +- ContrailPortGlobalTypes: + file: ContrailPortGlobalTypesServiceTemplate.yaml +- ContrailAbstractSubstituteGlobalTypes: + file: ContrailAbstractSubstituteGlobalTypesServiceTemplate.yaml +- ContrailV2VirtualNetworkGlobalType: + file: ContrailV2VirtualNetworkGlobalTypeServiceTemplate.yaml +- ContrailV2NetworkRuleGlobalType: + file: ContrailV2NetworkRuleGlobalTypeServiceTemplate.yaml +- ContrailV2VLANSubInterfaceGlobalType: + file: ContrailV2VLANSubInterfaceGlobalTypeServiceTemplate.yaml +- GlobalSubstitutionTypes: + file: GlobalSubstitutionTypesServiceTemplate.yaml +topology_template: + inputs: + vlan_ids: + hidden: false + immutable: false + type: list + description: List of VLAN IDs to use for subinterfaces + entry_schema: + type: string + parent_interface: + hidden: false + immutable: false + type: string + description: Parent Contrail interface + virtual_ipv6_address: + hidden: false + immutable: false + type: string + description: virtual IPv6 address associated with subinterfaces + virtual_ip_address: + hidden: false + immutable: false + type: string + description: virtual IPv4 address associated with subinterfaces + mac_address: + hidden: false + immutable: false + type: string + description: MAC address to use for subinterface + ipv6_address: + hidden: false + immutable: false + type: string + description: IPv6 address associated with subinterfaces + subinterface_name_prefix: + hidden: false + immutable: false + type: string + description: Combined with subinterface_instance_index, this is used as the name of the subinterface resource + subinterface_instance_index: + hidden: false + immutable: false + type: float + description: Index of instance among multiple instances. Use to retrieve correct parameter for this instance when passed all parameters for all instances. + ip_address: + hidden: false + immutable: false + type: string + description: IPv4 address associated with subinterfaces + vlan_networks: + hidden: false + immutable: false + type: list + description: List of Contrail VLAN networks to use for the subinterfaces. The order and number of these must match the VLAN ID list + entry_schema: + type: string + node_templates: + contrail_vmi_subinterface: + type: org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface + properties: + virtual_machine_interface_refs: + - get_input: parent_interface + name: + str_replace: + template: $NAME$VLAN + params: + $NAME: + get_input: subinterface_name_prefix + $VLAN: + get_input: + - vlan_ids + - get_input: subinterface_instance_index + virtual_network_refs: + - get_input: + - vlan_networks + - get_input: subinterface_instance_index + virtual_machine_interface_properties: + sub_interface_vlan_tag: + get_input: + - vlan_ids + - get_input: subinterface_instance_index + virtual_machine_interface_allowed_address_pairs: + allowed_address_pair: + - address_mode: active-standby + ip: + ip_prefix: + get_input: virtual_ip_address + ip_prefix_len: 32 + mac: + get_input: mac_address + - address_mode: active-standby + ip: + ip_prefix: + get_input: virtual_ipv6_address + ip_prefix_len: 128 + mac: + get_input: mac_address + virtual_machine_interface_mac_addresses: + mac_address: + - get_input: mac_address + groups: + vlan_subinterface_dual_group: + type: org.openecomp.groups.heat.HeatStack + properties: + heat_file: ../Artifacts/vlan_subinterface_dual.yaml + description: | + HOT template to instantiate a single Contrail VLAN sub-interface with associated instance IP addresses and allowed address pairs + members: + - contrail_vmi_subinterface + substitution_mappings: + node_type: org.openecomp.resource.abstract.nodes.heat.vlan_subinterface_dual + requirements: + binding_contrail_vmi_subinterface: + - contrail_vmi_subinterface + - binding + link_contrail_vmi_subinterface: + - contrail_vmi_subinterface + - link
\ No newline at end of file diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/subInterfaceToInterfaceConnection/vTSBC_AIC/inputfiles/MANIFEST.json b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/subInterfaceToInterfaceConnection/vTSBC_AIC/inputfiles/MANIFEST.json new file mode 100644 index 0000000000..f98a0c35f5 --- /dev/null +++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/subInterfaceToInterfaceConnection/vTSBC_AIC/inputfiles/MANIFEST.json @@ -0,0 +1,94 @@ +{ + "name": "vTSBC", + "description": "", + "data": [ + { + "file": "module_2_perimeta_rtp_msc_b_healing.yaml", + "type": "HEAT", + "isBase": "false" + }, + { + "file": "module_1_perimeta_ssc_a_healing.yaml", + "type": "HEAT", + "isBase": "false" + }, + { + "file": "module_1_perimeta_ssc_rebuild.yaml", + "type": "HEAT", + "isBase": "false" + }, + { + "file": "perimeta_ha_swmu.yaml", + "type": "HEAT", + "isBase": "false" + }, + { + "file": "perimeta_ha_sw_b.yaml", + "type": "HEAT", + "isBase": "false" + }, + { + "file": "module_2_perimeta_rtp_msc_a_healing.yaml", + "type": "HEAT", + "isBase": "false" + }, + { + "file": "perimeta_ha_sw.yaml", + "type": "HEAT", + "isBase": "false" + }, + { + "file": "vlan_subinterface_dual.yaml", + "type": "HEAT", + "isBase": "false" + }, + { + "file": "module_2_perimeta_rtp_msc_rebuild_scaling.yaml", + "type": "HEAT", + "isBase": "false" + }, + { + "file": "perimeta_ha_swmu_b.yaml", + "type": "HEAT", + "isBase": "false" + }, + { + "file": "module_1_perimeta_ssc_b_healing.yaml", + "type": "HEAT", + "isBase": "false" + }, + { + "file": "perimeta_ha_swmu_a.yaml", + "type": "HEAT", + "isBase": "false" + }, + { + "file": "base_perimeta_deployment_create.yaml", + "type": "HEAT", + "isBase": "true", + "data": [ + { + "file": "base_perimeta_deployment_create.env", + "type": "HEAT_ENV" + } + ] + }, + { + "file": "perimeta_ha_sw_a.yaml", + "type": "HEAT", + "isBase": "false" + }, + { + "file": "ssc_a_template.json", + "type": "OTHER" + }, + { + "file": "msc_a_template.json", + "type": "OTHER" + }, + { + "file": "custom.ini", + "type": "OTHER" + } + ] +}
\ No newline at end of file diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/subInterfaceToInterfaceConnection/vTSBC_AIC/inputfiles/base_perimeta_deployment_create.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/subInterfaceToInterfaceConnection/vTSBC_AIC/inputfiles/base_perimeta_deployment_create.yaml new file mode 100644 index 0000000000..ce3b53340f --- /dev/null +++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/subInterfaceToInterfaceConnection/vTSBC_AIC/inputfiles/base_perimeta_deployment_create.yaml @@ -0,0 +1,442 @@ +# Heat template which intstantiates a Perimeta SSC and up to 10 Perimeta +# RTP MSCs and up to 10 Perimeta MSRP MSCs. Currently all instances are +# HA although standalone MSCs may be supported in future. +# +# This Heat template commissions, partners and configures the Perimeta SSC and +# MSCs with basic configuration defined by ssc_a_template.json, +# msc_a_template.json and mmc_a_template.json. These can be modified +# as required to obtain the required Perimeta configuration. +# +# This template puts the Perimeta configuration in place using userdata +# injected via OpenStack's ConfigDrive mechanism. +# +# This template sets up anti-affinity using server group anti-affinity and +# optionally availability zone anti-affinity. +# +# This template will work with any version of Perimeta software from 3.9.20. +# +# Pre-requisites are: +# - existing networks as follows +# - network for management traffic +# - network for HA traffic +# - network for core/trusted service traffic +# - network for access/untrusted service traffic +# - pre-loaded Perimeta image +# - suitable flavor to use for Perimeta SSC +# - suitable flavor to use for Perimeta RTP MSCs +# - suitable flavor to use for Perimeta MSRP MSCs +# - suitable keypair to use for Perimeta +# +# Virtual IP address and fixed IP addresses to use for the Perimeta instances +# must be provided as parameters. +# +# Template requires Juno or above and has been tested on Kilo. Note that in +# some deployments, Heat template validation will fail but actually creating +# a stack using the template will succeed. This is due to problems with +# Heat validating nested templates. +# +heat_template_version: 2014-10-16 + +description: > + HOT template to instantiate a Perimeta SSC plus MxRTP MSCs plus NxMSRP MSCs + +parameters: + # General VNF parameters + vnf_id: + type: string + description: ID of VNF + + vf_module_id: + type: string + description: Unique ID for this VF Module instance + + availability_zone_0: + type: string + description: Availability zone for A instances. + availability_zone_1: + type: string + description: Availability zone for B instances. + perimeta_keypair: + type: string + description: Keypair to use for accessing these Perimeta instances + constraints: + - custom_constraint: nova.keypair + ntp_server_ip_addrs: + type: string + description: NTP server IPv4 addresses, separated by commas. These must be accessible from the management network + constraints: + - allowed_pattern: "((?:\\d{1,3}\\.){3}\\d{1,3},)*((?:\\d{1,3}\\.){3}\\d{1,3})" + description: ntp_server_ip_addrs must be a comma separated list of IPv4 addresses (with no spaces) + perimeta_param_server_group: + type: string + description: UUID of server group to set anti-affinity policy for Perimeta instance. Only used when doing healing. + + # Management network parameters + mgmt_net_id: + type: string + description: Management network ID + constraints: + - custom_constraint: neutron.network + mgmt_net_plen: + type: number + description: Management network prefix length + constraints: + - range: { min: 0, max: 32 } + description: mgmt_net_plen must be between 0 and 32 + mgmt_net_default_gateway: + type: string + description: Default gateway for management network + mgmt_net_sec_groups: + type: comma_delimited_list + description: Management network security groups + + # Internal high availability network parameters + int_ha_net_id: + type: string + description: Internal HA network ID + constraints: + - custom_constraint: neutron.network + int_ha_net_plen: + type: number + description: Intermal HA network prefix length. + constraints: + - range: { min: 0, max: 32 } + description: int_ha_net_plen must be between 0 and 32 + int_ha_net_sec_groups: + type: comma_delimited_list + description: Security groups associated with internal HA network + + # Trusted/core network parameters + trusted_net_id: + type: string + description: Network ID of trusted/core network. + constraints: + - custom_constraint: neutron.network + trusted_net_sec_groups: + type: comma_delimited_list + description: Security groups associated with trusted/core network + + # Untrusted/access network parameters + untrusted_net_id: + type: string + description: Network ID of untrusted/access network. + constraints: + - custom_constraint: neutron.network + untrusted_net_sec_groups: + type: comma_delimited_list + description: Security groups associated with untrusted/access network + untrusted_num_vlans: + type: number + description: Number of VLANs to connect to on the untrusted/access network + untrusted_vlan_ids: + type: comma_delimited_list + description: List of VLAN IDs to use on the untrusted/access network + 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 + + # Unused network parameters + # + # This is used for connecting the unused 4th SSC service interface. + unused_port_net_id: + type: string + description: Unused network ID + constraints: + - custom_constraint: neutron.network + + # SSC parameters + ssc_flavor_name: + type: string + description: Flavor to use for creating SSC VM instance + constraints: + - custom_constraint: nova.flavor + ssc_image_name: + type: string + description: Glance image to use for launching SSC Perimeta instances. + constraints: + - custom_constraint: glance.image + ssc_a_name_0: + type: string + description: Name of VM A of SSC + constraints: + - allowed_pattern: '[a-zA-Z0-9][a-zA-Z0-9-]{0,31}$' + description: VM A name must be 32 characters or less and a valid hostname. Only alphanumeric characters plus hyphen are allowed. + ssc_b_name_0: + type: string + description: Name of VM B of SSC + constraints: + - allowed_pattern: '[a-zA-Z0-9][a-zA-Z0-9-]{0,31}$' + description: VM B name must be 32 characters or less and a valid hostname. Only alphanumeric characters plus hyphen are allowed. + ssc_system_name_0: + type: string + description: System name of SSC + constraints: + - allowed_pattern: '[a-zA-Z0-9][a-zA-Z0-9-]{0,31}$' + description: System name must be 32 characters or less and a valid hostname. Only alphanumeric characters plus hyphen are allowed. + + # SSC IP addresses on management network + ssc_mgmt_vip_0: + type: string + description: Management virtual IP address to use for SSC. Only required when predefining VIPs. + ssc_a_mgmt_ip_0: + type: string + description: Management fixed IP address to use for SSC A. Only required when predefining fixed IPs. + ssc_b_mgmt_ip_0: + type: string + description: Management fixed IP address to use for SSC B. Only required when predefining fixed IPs. + + # SSC IP addresses on internal HA network + ssc_a_int_ha_ip_0: + type: string + description: HA fixed IP address to use for SSC A. Only required when predefining fixed IPs. + ssc_b_int_ha_ip_0: + type: string + description: HA fixed IP address to use for SSC B. Only required when predefining fixed IPs. + + # SSC IP addresses on trusted/core network + ssc_trusted_vip_0: + type: string + description: Virtual IPv4 address on trusted/core network for SSC. + ssc_a_trusted_ip_0: + type: string + description: Fixed IPv4 address on trusted/core network for SSC A. Only required when predefining fixed IPs. + ssc_b_trusted_ip_0: + type: string + description: Fixed IPv4 address on trusted/core network for SSC B. Only required when predefining fixed IPs. + + # SSC IP addresses on untrusted/access network + ssc_untrusted_vip_0: + type: string + description: Virtual IPv4 address on untrusted/access network for SSC. Only required when predefining virtual IPs. + ssc_untrusted_v6_vip_0: + type: string + description: Virtual IPv6 address on untrusted/access network for SSC. Only required when predefining virtual IPs. + ssc_a_untrusted_ip_0: + type: string + description: Fixed IPv4 address on untrusted/access network for SSC A. Only required when predefining fixed IPs. + ssc_a_untrusted_v6_ip_0: + type: string + description: Fixed IPv6 address on untrusted/access network for SSC A. Only required when predefining fixed IPs. + ssc_b_untrusted_ip_0: + type: string + description: Fixed IPv4 address on untrusted/access network for SSC B. Only required when predefining fixed IPs. + ssc_b_untrusted_v6_ip_0: + type: string + description: Fixed IPv6 address on untrusted/access network for SSC B. Only required when predefining fixed IPs. + + # SSC IP addresses on management/Rf network + ssc_rf_vip_0: + type: string + description: Virtual IPv4 address on management/Rf network for SSC. Only required when predefining virtual IPs. + ssc_a_rf_ip_0: + type: string + description: Fixed IPv4 address on management/Rf network for SSC A. Only required when predefining fixed IPs. + ssc_b_rf_ip_0: + type: string + description: Fixed IPv4 address on management/Rf network for SSC B. Only required when predefining fixed IPs. + + # RTP MSC parameters + rtp_msc_count: + type: number + description: Count of required RTP MSCs + rtp_msc_flavor_name: + type: string + description: Flavor to use for creating RTP MSC VM instances + constraints: + - custom_constraint: nova.flavor + rtp_msc_image_name: + type: string + description: Glance image to use for launching RTP MSC Perimeta instances. + constraints: + - custom_constraint: glance.image + rtp_msc_a_names: + type: comma_delimited_list + description: List of names of RTP MSC VM A instances + rtp_msc_b_names: + type: comma_delimited_list + description: List of names of RTP MSC VM B instances + rtp_msc_system_names: + type: comma_delimited_list + description: List of system names of RTP MSC instances + + # RTP MSC IP addresses on management network + rtp_msc_mgmt_vips: + type: comma_delimited_list + description: Management virtual IP addresses to use for RTP MSC instances. There must be at least as many as the number of RTP MSCs. + rtp_msc_a_mgmt_ips: + type: comma_delimited_list + description: Management fixed IP addresses to use for RTP MSC A instances. There must be at least as many as the number of RTP MSCs. + rtp_msc_b_mgmt_ips: + type: comma_delimited_list + description: Management fixed IP addresses to use for RTP MSC B instances. There must be at least as many as the number of RTP MSCs. + + # RTP MSC IP addresses on internal HA network + rtp_msc_a_int_ha_ips: + type: comma_delimited_list + description: HA fixed IP addresses to use for RTP MSC A instances. There must be at least as many as the number of RTP MSCs. + rtp_msc_b_int_ha_ips: + type: comma_delimited_list + description: HA fixed IP addresses to use for RTP MSC B instances. There must be at least as many as the number of RTP MSCs. + + # RTP MSC IP addresses on trusted/core network + rtp_msc_trusted_vips: + type: comma_delimited_list + description: Virtual IPv4 addresses on trusted/core network for RTP MSC instances. There must be at least as many as the number of RTP MSCs. + rtp_msc_a_trusted_ips: + type: comma_delimited_list + description: Fixed IPv4 addresses on trusted/core network for RTP MSC A instances. There must be at least as many as the number of RTP MSCs. + rtp_msc_b_trusted_ips: + type: comma_delimited_list + description: Fixed IPv4 address on trusted/core network for RTP MSC B instances. There must be at least as many as the number of RTP MSCs. + + # RTP MSC IP addresses on untrusted/access network + rtp_msc_untrusted_vips: + type: comma_delimited_list + description: Virtual IPv4 address on untrusted/access network for RTP MSC instances. There must be at least as many as the number of RTP MSCs. + rtp_msc_untrusted_v6_vips: + type: comma_delimited_list + description: Virtual IPv6 address on untrusted/access network for RTP MSC instances. There must be at least as many as the number of RTP MSCs. + rtp_msc_a_untrusted_ips: + type: comma_delimited_list + description: Fixed IPv4 address on untrusted/access network for RTP MSC A instances. There must be at least as many as the number of RTP MSCs. + rtp_msc_a_untrusted_v6_ips: + type: comma_delimited_list + description: Fixed IPv6 address on untrusted/access network for RTP MSC A instances. There must be at least as many as the number of RTP MSCs. + rtp_msc_b_untrusted_ips: + type: comma_delimited_list + description: Fixed IPv4 address on untrusted/access network for RTP MSC B instances. There must be at least as many as the number of RTP MSCs. + rtp_msc_b_untrusted_v6_ips: + type: comma_delimited_list + description: Fixed IPv6 address on untrusted/access network for RTP MSC B instances. There must be at least as many as the number of RTP MSCs. + +resources: + + # Perimeta SSC + perimeta_ssc: + type: perimeta_ha_swmu.yaml + properties: + vnf_id: { get_param: vnf_id } + vm_role: 'ssc' + vf_module_id: { get_param: vf_module_id } + system_names: [{ get_param: ssc_system_name_0 }] + vm_a_names: [{ get_param: ssc_a_name_0 }] + vm_b_names: [{ get_param: ssc_b_name_0 }] + perimeta_instance_index: 0 + perimeta_image_name: { get_param: ssc_image_name } + perimeta_flavor_name: { get_param: ssc_flavor_name } + perimeta_keypair: { get_param: perimeta_keypair } + availability_zone_0: { get_param: availability_zone_0 } + availability_zone_1: { get_param: availability_zone_1 } + mgmt_net_id: { get_param: mgmt_net_id } + mgmt_net_plen: { get_param: mgmt_net_plen } + mgmt_net_default_gateway: { get_param: mgmt_net_default_gateway } + mgmt_vips: [{ get_param: ssc_mgmt_vip_0 }] + mgmt_a_ips: [{ get_param: ssc_a_mgmt_ip_0 }] + mgmt_b_ips: [{ get_param: ssc_b_mgmt_ip_0 }] + mgmt_sec_groups: { get_param: mgmt_net_sec_groups } + ha_net_id: { get_param: int_ha_net_id } + ha_network_plen: { get_param: int_ha_net_plen } + ha_a_ips: [{ get_param: ssc_a_int_ha_ip_0 }] + ha_b_ips: [{ get_param: ssc_b_int_ha_ip_0 }] + ha_sec_groups: { get_param: int_ha_net_sec_groups } + trusted_net_id: { get_param: trusted_net_id } + trusted_vips: [{ get_param: ssc_trusted_vip_0 }] + trusted_a_ips: [{ get_param: ssc_a_trusted_ip_0 }] + trusted_b_ips: [{ get_param: ssc_b_trusted_ip_0 }] + trusted_sec_groups: { get_param: trusted_net_sec_groups } + untrusted_net_id: { get_param: untrusted_net_id } + untrusted_vips: [{ get_param: ssc_untrusted_vip_0 }] + untrusted_v6_vips: [{ get_param: ssc_untrusted_v6_vip_0 }] + untrusted_a_ips: [{ get_param: ssc_a_untrusted_ip_0 }] + untrusted_a_v6_ips: [{ get_param: ssc_a_untrusted_v6_ip_0 }] + untrusted_b_ips: [{ get_param: ssc_b_untrusted_ip_0 }] + untrusted_b_v6_ips: [{ get_param: ssc_b_untrusted_v6_ip_0 }] + untrusted_sec_groups: { get_param: untrusted_net_sec_groups } + untrusted_num_vlans: { get_param: untrusted_num_vlans } + untrusted_vlan_ids: { get_param: untrusted_vlan_ids } + untrusted_vlan_networks: { get_param: untrusted_vlan_networks } + serv3_net_id: { get_param: mgmt_net_id } + serv3_vips: [{ get_param: ssc_rf_vip_0 }] + serv3_a_ips: [{ get_param: ssc_a_rf_ip_0 }] + serv3_b_ips: [{ get_param: ssc_b_rf_ip_0 }] + serv3_sec_groups: { get_param: mgmt_net_sec_groups } + unused_net_id: { get_param: unused_port_net_id } + perimeta_param_server_group: { get_param: perimeta_param_server_group } + perimeta_config: + str_replace: + template: {get_file: ssc_a_template.json} + params: + $NTP_SERVER_IP_ADDRS: { get_param: ntp_server_ip_addrs } + $COMPLETION_PARAMS: '' + + # Perimeta RTP MSCs. + perimeta_rtp_mscs: + type: OS::Heat::ResourceGroup + properties: + count: { get_param: rtp_msc_count } + resource_def: + type: perimeta_ha_sw.yaml + properties: + vnf_id: { get_param: vnf_id } + vm_role: 'rtp_msc' + vf_module_id: { get_param: vf_module_id } + system_names: { get_param: rtp_msc_system_names } + vm_a_names: { get_param: rtp_msc_a_names } + vm_b_names: { get_param: rtp_msc_b_names } + perimeta_instance_index: "%index%" + perimeta_image_name: { get_param: rtp_msc_image_name } + perimeta_flavor_name: { get_param: rtp_msc_flavor_name } + perimeta_keypair: { get_param: perimeta_keypair } + availability_zone_0: { get_param: availability_zone_0 } + availability_zone_1: { get_param: availability_zone_1 } + mgmt_net_id: { get_param: mgmt_net_id } + mgmt_net_plen: { get_param: mgmt_net_plen } + mgmt_net_default_gateway: { get_param: mgmt_net_default_gateway } + mgmt_vips: { get_param: rtp_msc_mgmt_vips } + mgmt_a_ips: { get_param: rtp_msc_a_mgmt_ips } + mgmt_b_ips: { get_param: rtp_msc_b_mgmt_ips } + mgmt_sec_groups: { get_param: mgmt_net_sec_groups } + ha_net_id: { get_param: int_ha_net_id } + ha_network_plen: { get_param: int_ha_net_plen } + ha_a_ips: { get_param: rtp_msc_a_int_ha_ips } + ha_b_ips: { get_param: rtp_msc_b_int_ha_ips } + ha_sec_groups: { get_param: int_ha_net_sec_groups } + trusted_net_id: { get_param: trusted_net_id } + trusted_vips: { get_param: rtp_msc_trusted_vips } + trusted_a_ips: { get_param: rtp_msc_a_trusted_ips } + trusted_b_ips: { get_param: rtp_msc_b_trusted_ips } + trusted_sec_groups: { get_param: trusted_net_sec_groups } + untrusted_net_id: { get_param: untrusted_net_id } + untrusted_vips: { get_param: rtp_msc_untrusted_vips } + untrusted_v6_vips: { get_param: rtp_msc_untrusted_v6_vips } + untrusted_a_ips: { get_param: rtp_msc_a_untrusted_ips } + untrusted_a_v6_ips: { get_param: rtp_msc_a_untrusted_v6_ips } + untrusted_b_ips: { get_param: rtp_msc_b_untrusted_ips } + untrusted_b_v6_ips: { get_param: rtp_msc_b_untrusted_v6_ips } + untrusted_sec_groups: { get_param: untrusted_net_sec_groups } + untrusted_num_vlans: { get_param: untrusted_num_vlans } + untrusted_vlan_ids: { get_param: untrusted_vlan_ids } + untrusted_vlan_networks: { get_param: untrusted_vlan_networks } + perimeta_param_server_group: { get_param: perimeta_param_server_group } + perimeta_config: + str_replace: + template: {get_file: msc_a_template.json} + params: + $NTP_SERVER_IP_ADDRS: { get_param: ntp_server_ip_addrs } + $COMPLETION_PARAMS: '' + + +outputs: + + ssc_server_group: + description: Server group for SSC pair + value: { get_attr: [ perimeta_ssc, server_group_used ] } + + rtp_msc_server_groups: + description: Server groups for RTP MSC pairs + value: { get_attr: [ perimeta_rtp_mscs, server_group_used ] } + + + msw_template_version: + description: Version of the heat templates used to instantiate the VMs + value: "4.0.1 - 2016-10-28" diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/subInterfaceToInterfaceConnection/vTSBC_AIC/inputfiles/module_1_perimeta_ssc_a_healing.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/subInterfaceToInterfaceConnection/vTSBC_AIC/inputfiles/module_1_perimeta_ssc_a_healing.yaml new file mode 100644 index 0000000000..d00c51a73f --- /dev/null +++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/subInterfaceToInterfaceConnection/vTSBC_AIC/inputfiles/module_1_perimeta_ssc_a_healing.yaml @@ -0,0 +1,384 @@ +# Heat template which intstantiates a Perimeta SSC and up to 10 Perimeta +# RTP MSCs and up to 10 Perimeta MSRP MSCs. Currently all instances are +# HA although standalone MSCs may be supported in future. +# +# This Heat template commissions, partners and configures the Perimeta SSC and +# MSCs with basic configuration defined by ssc_a_template.json, +# msc_a_template.json and mmc_a_template.json. These can be modified +# as required to obtain the required Perimeta configuration. +# +# This template puts the Perimeta configuration in place using userdata +# injected via OpenStack's ConfigDrive mechanism. +# +# This template sets up anti-affinity using server group anti-affinity and +# optionally availability zone anti-affinity. +# +# This template will work with any version of Perimeta software from 3.9.20. +# +# Pre-requisites are: +# - existing networks as follows +# - network for management traffic +# - network for HA traffic +# - network for core/trusted service traffic +# - network for access/untrusted service traffic +# - pre-loaded Perimeta image +# - suitable flavor to use for Perimeta SSC +# - suitable flavor to use for Perimeta RTP MSCs +# - suitable flavor to use for Perimeta MSRP MSCs +# - suitable keypair to use for Perimeta +# +# Virtual IP address and fixed IP addresses to use for the Perimeta instances +# must be provided as parameters. +# +# Template requires Juno or above and has been tested on Kilo. Note that in +# some deployments, Heat template validation will fail but actually creating +# a stack using the template will succeed. This is due to problems with +# Heat validating nested templates. +# +heat_template_version: 2014-10-16 + +description: > + HOT template to instantiate a Perimeta SSC plus MxRTP MSCs plus NxMSRP MSCs + +parameters: + # General VNF parameters + vnf_id: + type: string + description: ID of VNF + + vf_module_id: + type: string + description: Unique ID for this VF Module instance + + availability_zone_0: + type: string + description: Availability zone for A instances. + availability_zone_1: + type: string + description: Availability zone for B instances. + perimeta_keypair: + type: string + description: Keypair to use for accessing these Perimeta instances + constraints: + - custom_constraint: nova.keypair + ntp_server_ip_addrs: + type: string + description: NTP server IPv4 addresses, separated by commas. These must be accessible from the management network + constraints: + - allowed_pattern: "((?:\\d{1,3}\\.){3}\\d{1,3},)*((?:\\d{1,3}\\.){3}\\d{1,3})" + description: ntp_server_ip_addrs must be a comma separated list of IPv4 addresses (with no spaces) + perimeta_param_server_group: + type: string + description: UUID of server group to set anti-affinity policy for Perimeta instance. Only used when doing healing. + + # Management network parameters + mgmt_net_id: + type: string + description: Management network ID + constraints: + - custom_constraint: neutron.network + mgmt_net_plen: + type: number + description: Management network prefix length + constraints: + - range: { min: 0, max: 32 } + description: mgmt_net_plen must be between 0 and 32 + mgmt_net_default_gateway: + type: string + description: Default gateway for management network + mgmt_net_sec_groups: + type: comma_delimited_list + description: Management network security groups + + # Internal high availability network parameters + int_ha_net_id: + type: string + description: Internal HA network ID + constraints: + - custom_constraint: neutron.network + int_ha_net_plen: + type: number + description: Intermal HA network prefix length. + constraints: + - range: { min: 0, max: 32 } + description: int_ha_net_plen must be between 0 and 32 + int_ha_net_sec_groups: + type: comma_delimited_list + description: Security groups associated with internal HA network + + # Trusted/core network parameters + trusted_net_id: + type: string + description: Network ID of trusted/core network. + constraints: + - custom_constraint: neutron.network + trusted_net_sec_groups: + type: comma_delimited_list + description: Security groups associated with trusted/core network + + # Untrusted/access network parameters + untrusted_net_id: + type: string + description: Network ID of untrusted/access network. + constraints: + - custom_constraint: neutron.network + untrusted_net_sec_groups: + type: comma_delimited_list + description: Security groups associated with untrusted/access network + untrusted_num_vlans: + type: number + description: Number of VLANs to connect to on the untrusted/access network + untrusted_vlan_ids: + type: comma_delimited_list + description: List of VLAN IDs to use on the untrusted/access network + 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 + + # Unused network parameters + # + # This is used for connecting the unused 4th SSC service interface. + unused_port_net_id: + type: string + description: Unused network ID + constraints: + - custom_constraint: neutron.network + + # SSC parameters + ssc_flavor_name: + type: string + description: Flavor to use for creating SSC VM instance + constraints: + - custom_constraint: nova.flavor + ssc_image_name: + type: string + description: Glance image to use for launching SSC Perimeta instances. + constraints: + - custom_constraint: glance.image + ssc_a_name_0: + type: string + description: Name of VM A of SSC + constraints: + - allowed_pattern: '[a-zA-Z0-9][a-zA-Z0-9-]{0,31}$' + description: VM A name must be 32 characters or less and a valid hostname. Only alphanumeric characters plus hyphen are allowed. + ssc_b_name_0: + type: string + description: Name of VM B of SSC + constraints: + - allowed_pattern: '[a-zA-Z0-9][a-zA-Z0-9-]{0,31}$' + description: VM B name must be 32 characters or less and a valid hostname. Only alphanumeric characters plus hyphen are allowed. + ssc_system_name_0: + type: string + description: System name of SSC + constraints: + - allowed_pattern: '[a-zA-Z0-9][a-zA-Z0-9-]{0,31}$' + description: System name must be 32 characters or less and a valid hostname. Only alphanumeric characters plus hyphen are allowed. + + # SSC IP addresses on management network + ssc_mgmt_vip_0: + type: string + description: Management virtual IP address to use for SSC. Only required when predefining VIPs. + ssc_a_mgmt_ip_0: + type: string + description: Management fixed IP address to use for SSC A. Only required when predefining fixed IPs. + ssc_b_mgmt_ip_0: + type: string + description: Management fixed IP address to use for SSC B. Only required when predefining fixed IPs. + + # SSC IP addresses on internal HA network + ssc_a_int_ha_ip_0: + type: string + description: HA fixed IP address to use for SSC A. Only required when predefining fixed IPs. + ssc_b_int_ha_ip_0: + type: string + description: HA fixed IP address to use for SSC B. Only required when predefining fixed IPs. + + # SSC IP addresses on trusted/core network + ssc_trusted_vip_0: + type: string + description: Virtual IPv4 address on trusted/core network for SSC. + ssc_a_trusted_ip_0: + type: string + description: Fixed IPv4 address on trusted/core network for SSC A. Only required when predefining fixed IPs. + ssc_b_trusted_ip_0: + type: string + description: Fixed IPv4 address on trusted/core network for SSC B. Only required when predefining fixed IPs. + + # SSC IP addresses on untrusted/access network + ssc_untrusted_vip_0: + type: string + description: Virtual IPv4 address on untrusted/access network for SSC. Only required when predefining virtual IPs. + ssc_untrusted_v6_vip_0: + type: string + description: Virtual IPv6 address on untrusted/access network for SSC. Only required when predefining virtual IPs. + ssc_a_untrusted_ip_0: + type: string + description: Fixed IPv4 address on untrusted/access network for SSC A. Only required when predefining fixed IPs. + ssc_a_untrusted_v6_ip_0: + type: string + description: Fixed IPv6 address on untrusted/access network for SSC A. Only required when predefining fixed IPs. + ssc_b_untrusted_ip_0: + type: string + description: Fixed IPv4 address on untrusted/access network for SSC B. Only required when predefining fixed IPs. + ssc_b_untrusted_v6_ip_0: + type: string + description: Fixed IPv6 address on untrusted/access network for SSC B. Only required when predefining fixed IPs. + + # SSC IP addresses on management/Rf network + ssc_rf_vip_0: + type: string + description: Virtual IPv4 address on management/Rf network for SSC. Only required when predefining virtual IPs. + ssc_a_rf_ip_0: + type: string + description: Fixed IPv4 address on management/Rf network for SSC A. Only required when predefining fixed IPs. + ssc_b_rf_ip_0: + type: string + description: Fixed IPv4 address on management/Rf network for SSC B. Only required when predefining fixed IPs. + + # RTP MSC parameters + rtp_msc_count: + type: number + description: Count of required RTP MSCs + rtp_msc_flavor_name: + type: string + description: Flavor to use for creating RTP MSC VM instances + constraints: + - custom_constraint: nova.flavor + rtp_msc_image_name: + type: string + description: Glance image to use for launching RTP MSC Perimeta instances. + constraints: + - custom_constraint: glance.image + rtp_msc_a_names: + type: comma_delimited_list + description: List of names of RTP MSC VM A instances + rtp_msc_b_names: + type: comma_delimited_list + description: List of names of RTP MSC VM B instances + rtp_msc_system_names: + type: comma_delimited_list + description: List of system names of RTP MSC instances + + # RTP MSC IP addresses on management network + rtp_msc_mgmt_vips: + type: comma_delimited_list + description: Management virtual IP addresses to use for RTP MSC instances. There must be at least as many as the number of RTP MSCs. + rtp_msc_a_mgmt_ips: + type: comma_delimited_list + description: Management fixed IP addresses to use for RTP MSC A instances. There must be at least as many as the number of RTP MSCs. + rtp_msc_b_mgmt_ips: + type: comma_delimited_list + description: Management fixed IP addresses to use for RTP MSC B instances. There must be at least as many as the number of RTP MSCs. + + # RTP MSC IP addresses on internal HA network + rtp_msc_a_int_ha_ips: + type: comma_delimited_list + description: HA fixed IP addresses to use for RTP MSC A instances. There must be at least as many as the number of RTP MSCs. + rtp_msc_b_int_ha_ips: + type: comma_delimited_list + description: HA fixed IP addresses to use for RTP MSC B instances. There must be at least as many as the number of RTP MSCs. + + # RTP MSC IP addresses on trusted/core network + rtp_msc_trusted_vips: + type: comma_delimited_list + description: Virtual IPv4 addresses on trusted/core network for RTP MSC instances. There must be at least as many as the number of RTP MSCs. + rtp_msc_a_trusted_ips: + type: comma_delimited_list + description: Fixed IPv4 addresses on trusted/core network for RTP MSC A instances. There must be at least as many as the number of RTP MSCs. + rtp_msc_b_trusted_ips: + type: comma_delimited_list + description: Fixed IPv4 address on trusted/core network for RTP MSC B instances. There must be at least as many as the number of RTP MSCs. + + # RTP MSC IP addresses on untrusted/access network + rtp_msc_untrusted_vips: + type: comma_delimited_list + description: Virtual IPv4 address on untrusted/access network for RTP MSC instances. There must be at least as many as the number of RTP MSCs. + rtp_msc_untrusted_v6_vips: + type: comma_delimited_list + description: Virtual IPv6 address on untrusted/access network for RTP MSC instances. There must be at least as many as the number of RTP MSCs. + rtp_msc_a_untrusted_ips: + type: comma_delimited_list + description: Fixed IPv4 address on untrusted/access network for RTP MSC A instances. There must be at least as many as the number of RTP MSCs. + rtp_msc_a_untrusted_v6_ips: + type: comma_delimited_list + description: Fixed IPv6 address on untrusted/access network for RTP MSC A instances. There must be at least as many as the number of RTP MSCs. + rtp_msc_b_untrusted_ips: + type: comma_delimited_list + description: Fixed IPv4 address on untrusted/access network for RTP MSC B instances. There must be at least as many as the number of RTP MSCs. + rtp_msc_b_untrusted_v6_ips: + type: comma_delimited_list + description: Fixed IPv6 address on untrusted/access network for RTP MSC B instances. There must be at least as many as the number of RTP MSCs. + +resources: + + # Perimeta SSC + perimeta_ssc: + type: perimeta_ha_swmu_a.yaml + properties: + vnf_id: { get_param: vnf_id } + vm_role: 'ssc' + vf_module_id: { get_param: vf_module_id } + system_names: [{ get_param: ssc_system_name_0 }] + vm_a_names: [{ get_param: ssc_a_name_0 }] + vm_b_names: [{ get_param: ssc_b_name_0 }] + perimeta_instance_index: 0 + perimeta_image_name: { get_param: ssc_image_name } + perimeta_flavor_name: { get_param: ssc_flavor_name } + perimeta_keypair: { get_param: perimeta_keypair } + availability_zone_0: { get_param: availability_zone_0 } + availability_zone_1: { get_param: availability_zone_1 } + mgmt_net_id: { get_param: mgmt_net_id } + mgmt_net_plen: { get_param: mgmt_net_plen } + mgmt_net_default_gateway: { get_param: mgmt_net_default_gateway } + mgmt_vips: [{ get_param: ssc_mgmt_vip_0 }] + mgmt_a_ips: [{ get_param: ssc_a_mgmt_ip_0 }] + mgmt_b_ips: [{ get_param: ssc_b_mgmt_ip_0 }] + mgmt_sec_groups: { get_param: mgmt_net_sec_groups } + ha_net_id: { get_param: int_ha_net_id } + ha_network_plen: { get_param: int_ha_net_plen } + ha_a_ips: [{ get_param: ssc_a_int_ha_ip_0 }] + ha_b_ips: [{ get_param: ssc_b_int_ha_ip_0 }] + ha_sec_groups: { get_param: int_ha_net_sec_groups } + trusted_net_id: { get_param: trusted_net_id } + trusted_vips: [{ get_param: ssc_trusted_vip_0 }] + trusted_a_ips: [{ get_param: ssc_a_trusted_ip_0 }] + trusted_b_ips: [{ get_param: ssc_b_trusted_ip_0 }] + trusted_sec_groups: { get_param: trusted_net_sec_groups } + untrusted_net_id: { get_param: untrusted_net_id } + untrusted_vips: [{ get_param: ssc_untrusted_vip_0 }] + untrusted_v6_vips: [{ get_param: ssc_untrusted_v6_vip_0 }] + untrusted_a_ips: [{ get_param: ssc_a_untrusted_ip_0 }] + untrusted_a_v6_ips: [{ get_param: ssc_a_untrusted_v6_ip_0 }] + untrusted_b_ips: [{ get_param: ssc_b_untrusted_ip_0 }] + untrusted_b_v6_ips: [{ get_param: ssc_b_untrusted_v6_ip_0 }] + untrusted_sec_groups: { get_param: untrusted_net_sec_groups } + untrusted_num_vlans: { get_param: untrusted_num_vlans } + untrusted_vlan_ids: { get_param: untrusted_vlan_ids } + untrusted_vlan_networks: { get_param: untrusted_vlan_networks } + serv3_net_id: { get_param: mgmt_net_id } + serv3_vips: [{ get_param: ssc_rf_vip_0 }] + serv3_a_ips: [{ get_param: ssc_a_rf_ip_0 }] + serv3_b_ips: [{ get_param: ssc_b_rf_ip_0 }] + serv3_sec_groups: { get_param: mgmt_net_sec_groups } + unused_net_id: { get_param: unused_port_net_id } + perimeta_param_server_group: { get_param: perimeta_param_server_group } + perimeta_config: + str_replace: + template: {get_file: ssc_a_template.json} + params: + $NTP_SERVER_IP_ADDRS: { get_param: ntp_server_ip_addrs } + $COMPLETION_PARAMS: '' + + + +outputs: + + ssc_server_group: + description: Server group for SSC pair + value: { get_attr: [ perimeta_ssc, server_group_used ] } + + + + msw_template_version: + description: Version of the heat templates used to instantiate the VMs + value: "4.0.1 - 2016-10-28" diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/subInterfaceToInterfaceConnection/vTSBC_AIC/inputfiles/module_1_perimeta_ssc_b_healing.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/subInterfaceToInterfaceConnection/vTSBC_AIC/inputfiles/module_1_perimeta_ssc_b_healing.yaml new file mode 100644 index 0000000000..8af8a1a7ea --- /dev/null +++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/subInterfaceToInterfaceConnection/vTSBC_AIC/inputfiles/module_1_perimeta_ssc_b_healing.yaml @@ -0,0 +1,384 @@ +# Heat template which intstantiates a Perimeta SSC and up to 10 Perimeta +# RTP MSCs and up to 10 Perimeta MSRP MSCs. Currently all instances are +# HA although standalone MSCs may be supported in future. +# +# This Heat template commissions, partners and configures the Perimeta SSC and +# MSCs with basic configuration defined by ssc_a_template.json, +# msc_a_template.json and mmc_a_template.json. These can be modified +# as required to obtain the required Perimeta configuration. +# +# This template puts the Perimeta configuration in place using userdata +# injected via OpenStack's ConfigDrive mechanism. +# +# This template sets up anti-affinity using server group anti-affinity and +# optionally availability zone anti-affinity. +# +# This template will work with any version of Perimeta software from 3.9.20. +# +# Pre-requisites are: +# - existing networks as follows +# - network for management traffic +# - network for HA traffic +# - network for core/trusted service traffic +# - network for access/untrusted service traffic +# - pre-loaded Perimeta image +# - suitable flavor to use for Perimeta SSC +# - suitable flavor to use for Perimeta RTP MSCs +# - suitable flavor to use for Perimeta MSRP MSCs +# - suitable keypair to use for Perimeta +# +# Virtual IP address and fixed IP addresses to use for the Perimeta instances +# must be provided as parameters. +# +# Template requires Juno or above and has been tested on Kilo. Note that in +# some deployments, Heat template validation will fail but actually creating +# a stack using the template will succeed. This is due to problems with +# Heat validating nested templates. +# +heat_template_version: 2014-10-16 + +description: > + HOT template to instantiate a Perimeta SSC plus MxRTP MSCs plus NxMSRP MSCs + +parameters: + # General VNF parameters + vnf_id: + type: string + description: ID of VNF + + vf_module_id: + type: string + description: Unique ID for this VF Module instance + + availability_zone_0: + type: string + description: Availability zone for A instances. + availability_zone_1: + type: string + description: Availability zone for B instances. + perimeta_keypair: + type: string + description: Keypair to use for accessing these Perimeta instances + constraints: + - custom_constraint: nova.keypair + ntp_server_ip_addrs: + type: string + description: NTP server IPv4 addresses, separated by commas. These must be accessible from the management network + constraints: + - allowed_pattern: "((?:\\d{1,3}\\.){3}\\d{1,3},)*((?:\\d{1,3}\\.){3}\\d{1,3})" + description: ntp_server_ip_addrs must be a comma separated list of IPv4 addresses (with no spaces) + perimeta_param_server_group: + type: string + description: UUID of server group to set anti-affinity policy for Perimeta instance. Only used when doing healing. + + # Management network parameters + mgmt_net_id: + type: string + description: Management network ID + constraints: + - custom_constraint: neutron.network + mgmt_net_plen: + type: number + description: Management network prefix length + constraints: + - range: { min: 0, max: 32 } + description: mgmt_net_plen must be between 0 and 32 + mgmt_net_default_gateway: + type: string + description: Default gateway for management network + mgmt_net_sec_groups: + type: comma_delimited_list + description: Management network security groups + + # Internal high availability network parameters + int_ha_net_id: + type: string + description: Internal HA network ID + constraints: + - custom_constraint: neutron.network + int_ha_net_plen: + type: number + description: Intermal HA network prefix length. + constraints: + - range: { min: 0, max: 32 } + description: int_ha_net_plen must be between 0 and 32 + int_ha_net_sec_groups: + type: comma_delimited_list + description: Security groups associated with internal HA network + + # Trusted/core network parameters + trusted_net_id: + type: string + description: Network ID of trusted/core network. + constraints: + - custom_constraint: neutron.network + trusted_net_sec_groups: + type: comma_delimited_list + description: Security groups associated with trusted/core network + + # Untrusted/access network parameters + untrusted_net_id: + type: string + description: Network ID of untrusted/access network. + constraints: + - custom_constraint: neutron.network + untrusted_net_sec_groups: + type: comma_delimited_list + description: Security groups associated with untrusted/access network + untrusted_num_vlans: + type: number + description: Number of VLANs to connect to on the untrusted/access network + untrusted_vlan_ids: + type: comma_delimited_list + description: List of VLAN IDs to use on the untrusted/access network + 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 + + # Unused network parameters + # + # This is used for connecting the unused 4th SSC service interface. + unused_port_net_id: + type: string + description: Unused network ID + constraints: + - custom_constraint: neutron.network + + # SSC parameters + ssc_flavor_name: + type: string + description: Flavor to use for creating SSC VM instance + constraints: + - custom_constraint: nova.flavor + ssc_image_name: + type: string + description: Glance image to use for launching SSC Perimeta instances. + constraints: + - custom_constraint: glance.image + ssc_a_name_0: + type: string + description: Name of VM A of SSC + constraints: + - allowed_pattern: '[a-zA-Z0-9][a-zA-Z0-9-]{0,31}$' + description: VM A name must be 32 characters or less and a valid hostname. Only alphanumeric characters plus hyphen are allowed. + ssc_b_name_0: + type: string + description: Name of VM B of SSC + constraints: + - allowed_pattern: '[a-zA-Z0-9][a-zA-Z0-9-]{0,31}$' + description: VM B name must be 32 characters or less and a valid hostname. Only alphanumeric characters plus hyphen are allowed. + ssc_system_name_0: + type: string + description: System name of SSC + constraints: + - allowed_pattern: '[a-zA-Z0-9][a-zA-Z0-9-]{0,31}$' + description: System name must be 32 characters or less and a valid hostname. Only alphanumeric characters plus hyphen are allowed. + + # SSC IP addresses on management network + ssc_mgmt_vip_0: + type: string + description: Management virtual IP address to use for SSC. Only required when predefining VIPs. + ssc_a_mgmt_ip_0: + type: string + description: Management fixed IP address to use for SSC A. Only required when predefining fixed IPs. + ssc_b_mgmt_ip_0: + type: string + description: Management fixed IP address to use for SSC B. Only required when predefining fixed IPs. + + # SSC IP addresses on internal HA network + ssc_a_int_ha_ip_0: + type: string + description: HA fixed IP address to use for SSC A. Only required when predefining fixed IPs. + ssc_b_int_ha_ip_0: + type: string + description: HA fixed IP address to use for SSC B. Only required when predefining fixed IPs. + + # SSC IP addresses on trusted/core network + ssc_trusted_vip_0: + type: string + description: Virtual IPv4 address on trusted/core network for SSC. + ssc_a_trusted_ip_0: + type: string + description: Fixed IPv4 address on trusted/core network for SSC A. Only required when predefining fixed IPs. + ssc_b_trusted_ip_0: + type: string + description: Fixed IPv4 address on trusted/core network for SSC B. Only required when predefining fixed IPs. + + # SSC IP addresses on untrusted/access network + ssc_untrusted_vip_0: + type: string + description: Virtual IPv4 address on untrusted/access network for SSC. Only required when predefining virtual IPs. + ssc_untrusted_v6_vip_0: + type: string + description: Virtual IPv6 address on untrusted/access network for SSC. Only required when predefining virtual IPs. + ssc_a_untrusted_ip_0: + type: string + description: Fixed IPv4 address on untrusted/access network for SSC A. Only required when predefining fixed IPs. + ssc_a_untrusted_v6_ip_0: + type: string + description: Fixed IPv6 address on untrusted/access network for SSC A. Only required when predefining fixed IPs. + ssc_b_untrusted_ip_0: + type: string + description: Fixed IPv4 address on untrusted/access network for SSC B. Only required when predefining fixed IPs. + ssc_b_untrusted_v6_ip_0: + type: string + description: Fixed IPv6 address on untrusted/access network for SSC B. Only required when predefining fixed IPs. + + # SSC IP addresses on management/Rf network + ssc_rf_vip_0: + type: string + description: Virtual IPv4 address on management/Rf network for SSC. Only required when predefining virtual IPs. + ssc_a_rf_ip_0: + type: string + description: Fixed IPv4 address on management/Rf network for SSC A. Only required when predefining fixed IPs. + ssc_b_rf_ip_0: + type: string + description: Fixed IPv4 address on management/Rf network for SSC B. Only required when predefining fixed IPs. + + # RTP MSC parameters + rtp_msc_count: + type: number + description: Count of required RTP MSCs + rtp_msc_flavor_name: + type: string + description: Flavor to use for creating RTP MSC VM instances + constraints: + - custom_constraint: nova.flavor + rtp_msc_image_name: + type: string + description: Glance image to use for launching RTP MSC Perimeta instances. + constraints: + - custom_constraint: glance.image + rtp_msc_a_names: + type: comma_delimited_list + description: List of names of RTP MSC VM A instances + rtp_msc_b_names: + type: comma_delimited_list + description: List of names of RTP MSC VM B instances + rtp_msc_system_names: + type: comma_delimited_list + description: List of system names of RTP MSC instances + + # RTP MSC IP addresses on management network + rtp_msc_mgmt_vips: + type: comma_delimited_list + description: Management virtual IP addresses to use for RTP MSC instances. There must be at least as many as the number of RTP MSCs. + rtp_msc_a_mgmt_ips: + type: comma_delimited_list + description: Management fixed IP addresses to use for RTP MSC A instances. There must be at least as many as the number of RTP MSCs. + rtp_msc_b_mgmt_ips: + type: comma_delimited_list + description: Management fixed IP addresses to use for RTP MSC B instances. There must be at least as many as the number of RTP MSCs. + + # RTP MSC IP addresses on internal HA network + rtp_msc_a_int_ha_ips: + type: comma_delimited_list + description: HA fixed IP addresses to use for RTP MSC A instances. There must be at least as many as the number of RTP MSCs. + rtp_msc_b_int_ha_ips: + type: comma_delimited_list + description: HA fixed IP addresses to use for RTP MSC B instances. There must be at least as many as the number of RTP MSCs. + + # RTP MSC IP addresses on trusted/core network + rtp_msc_trusted_vips: + type: comma_delimited_list + description: Virtual IPv4 addresses on trusted/core network for RTP MSC instances. There must be at least as many as the number of RTP MSCs. + rtp_msc_a_trusted_ips: + type: comma_delimited_list + description: Fixed IPv4 addresses on trusted/core network for RTP MSC A instances. There must be at least as many as the number of RTP MSCs. + rtp_msc_b_trusted_ips: + type: comma_delimited_list + description: Fixed IPv4 address on trusted/core network for RTP MSC B instances. There must be at least as many as the number of RTP MSCs. + + # RTP MSC IP addresses on untrusted/access network + rtp_msc_untrusted_vips: + type: comma_delimited_list + description: Virtual IPv4 address on untrusted/access network for RTP MSC instances. There must be at least as many as the number of RTP MSCs. + rtp_msc_untrusted_v6_vips: + type: comma_delimited_list + description: Virtual IPv6 address on untrusted/access network for RTP MSC instances. There must be at least as many as the number of RTP MSCs. + rtp_msc_a_untrusted_ips: + type: comma_delimited_list + description: Fixed IPv4 address on untrusted/access network for RTP MSC A instances. There must be at least as many as the number of RTP MSCs. + rtp_msc_a_untrusted_v6_ips: + type: comma_delimited_list + description: Fixed IPv6 address on untrusted/access network for RTP MSC A instances. There must be at least as many as the number of RTP MSCs. + rtp_msc_b_untrusted_ips: + type: comma_delimited_list + description: Fixed IPv4 address on untrusted/access network for RTP MSC B instances. There must be at least as many as the number of RTP MSCs. + rtp_msc_b_untrusted_v6_ips: + type: comma_delimited_list + description: Fixed IPv6 address on untrusted/access network for RTP MSC B instances. There must be at least as many as the number of RTP MSCs. + +resources: + + # Perimeta SSC + perimeta_ssc: + type: perimeta_ha_swmu_b.yaml + properties: + vnf_id: { get_param: vnf_id } + vm_role: 'ssc' + vf_module_id: { get_param: vf_module_id } + system_names: [{ get_param: ssc_system_name_0 }] + vm_a_names: [{ get_param: ssc_a_name_0 }] + vm_b_names: [{ get_param: ssc_b_name_0 }] + perimeta_instance_index: 0 + perimeta_image_name: { get_param: ssc_image_name } + perimeta_flavor_name: { get_param: ssc_flavor_name } + perimeta_keypair: { get_param: perimeta_keypair } + availability_zone_0: { get_param: availability_zone_0 } + availability_zone_1: { get_param: availability_zone_1 } + mgmt_net_id: { get_param: mgmt_net_id } + mgmt_net_plen: { get_param: mgmt_net_plen } + mgmt_net_default_gateway: { get_param: mgmt_net_default_gateway } + mgmt_vips: [{ get_param: ssc_mgmt_vip_0 }] + mgmt_a_ips: [{ get_param: ssc_a_mgmt_ip_0 }] + mgmt_b_ips: [{ get_param: ssc_b_mgmt_ip_0 }] + mgmt_sec_groups: { get_param: mgmt_net_sec_groups } + ha_net_id: { get_param: int_ha_net_id } + ha_network_plen: { get_param: int_ha_net_plen } + ha_a_ips: [{ get_param: ssc_a_int_ha_ip_0 }] + ha_b_ips: [{ get_param: ssc_b_int_ha_ip_0 }] + ha_sec_groups: { get_param: int_ha_net_sec_groups } + trusted_net_id: { get_param: trusted_net_id } + trusted_vips: [{ get_param: ssc_trusted_vip_0 }] + trusted_a_ips: [{ get_param: ssc_a_trusted_ip_0 }] + trusted_b_ips: [{ get_param: ssc_b_trusted_ip_0 }] + trusted_sec_groups: { get_param: trusted_net_sec_groups } + untrusted_net_id: { get_param: untrusted_net_id } + untrusted_vips: [{ get_param: ssc_untrusted_vip_0 }] + untrusted_v6_vips: [{ get_param: ssc_untrusted_v6_vip_0 }] + untrusted_a_ips: [{ get_param: ssc_a_untrusted_ip_0 }] + untrusted_a_v6_ips: [{ get_param: ssc_a_untrusted_v6_ip_0 }] + untrusted_b_ips: [{ get_param: ssc_b_untrusted_ip_0 }] + untrusted_b_v6_ips: [{ get_param: ssc_b_untrusted_v6_ip_0 }] + untrusted_sec_groups: { get_param: untrusted_net_sec_groups } + untrusted_num_vlans: { get_param: untrusted_num_vlans } + untrusted_vlan_ids: { get_param: untrusted_vlan_ids } + untrusted_vlan_networks: { get_param: untrusted_vlan_networks } + serv3_net_id: { get_param: mgmt_net_id } + serv3_vips: [{ get_param: ssc_rf_vip_0 }] + serv3_a_ips: [{ get_param: ssc_a_rf_ip_0 }] + serv3_b_ips: [{ get_param: ssc_b_rf_ip_0 }] + serv3_sec_groups: { get_param: mgmt_net_sec_groups } + unused_net_id: { get_param: unused_port_net_id } + perimeta_param_server_group: { get_param: perimeta_param_server_group } + perimeta_config: + str_replace: + template: {get_file: ssc_a_template.json} + params: + $NTP_SERVER_IP_ADDRS: { get_param: ntp_server_ip_addrs } + $COMPLETION_PARAMS: '' + + + +outputs: + + ssc_server_group: + description: Server group for SSC pair + value: { get_attr: [ perimeta_ssc, server_group_used ] } + + + + msw_template_version: + description: Version of the heat templates used to instantiate the VMs + value: "4.0.1 - 2016-10-28" diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/subInterfaceToInterfaceConnection/vTSBC_AIC/inputfiles/module_1_perimeta_ssc_rebuild.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/subInterfaceToInterfaceConnection/vTSBC_AIC/inputfiles/module_1_perimeta_ssc_rebuild.yaml new file mode 100644 index 0000000000..0a8fc31207 --- /dev/null +++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/subInterfaceToInterfaceConnection/vTSBC_AIC/inputfiles/module_1_perimeta_ssc_rebuild.yaml @@ -0,0 +1,384 @@ +# Heat template which intstantiates a Perimeta SSC and up to 10 Perimeta +# RTP MSCs and up to 10 Perimeta MSRP MSCs. Currently all instances are +# HA although standalone MSCs may be supported in future. +# +# This Heat template commissions, partners and configures the Perimeta SSC and +# MSCs with basic configuration defined by ssc_a_template.json, +# msc_a_template.json and mmc_a_template.json. These can be modified +# as required to obtain the required Perimeta configuration. +# +# This template puts the Perimeta configuration in place using userdata +# injected via OpenStack's ConfigDrive mechanism. +# +# This template sets up anti-affinity using server group anti-affinity and +# optionally availability zone anti-affinity. +# +# This template will work with any version of Perimeta software from 3.9.20. +# +# Pre-requisites are: +# - existing networks as follows +# - network for management traffic +# - network for HA traffic +# - network for core/trusted service traffic +# - network for access/untrusted service traffic +# - pre-loaded Perimeta image +# - suitable flavor to use for Perimeta SSC +# - suitable flavor to use for Perimeta RTP MSCs +# - suitable flavor to use for Perimeta MSRP MSCs +# - suitable keypair to use for Perimeta +# +# Virtual IP address and fixed IP addresses to use for the Perimeta instances +# must be provided as parameters. +# +# Template requires Juno or above and has been tested on Kilo. Note that in +# some deployments, Heat template validation will fail but actually creating +# a stack using the template will succeed. This is due to problems with +# Heat validating nested templates. +# +heat_template_version: 2014-10-16 + +description: > + HOT template to instantiate a Perimeta SSC plus MxRTP MSCs plus NxMSRP MSCs + +parameters: + # General VNF parameters + vnf_id: + type: string + description: ID of VNF + + vf_module_id: + type: string + description: Unique ID for this VF Module instance + + availability_zone_0: + type: string + description: Availability zone for A instances. + availability_zone_1: + type: string + description: Availability zone for B instances. + perimeta_keypair: + type: string + description: Keypair to use for accessing these Perimeta instances + constraints: + - custom_constraint: nova.keypair + ntp_server_ip_addrs: + type: string + description: NTP server IPv4 addresses, separated by commas. These must be accessible from the management network + constraints: + - allowed_pattern: "((?:\\d{1,3}\\.){3}\\d{1,3},)*((?:\\d{1,3}\\.){3}\\d{1,3})" + description: ntp_server_ip_addrs must be a comma separated list of IPv4 addresses (with no spaces) + perimeta_param_server_group: + type: string + description: UUID of server group to set anti-affinity policy for Perimeta instance. Only used when doing healing. + + # Management network parameters + mgmt_net_id: + type: string + description: Management network ID + constraints: + - custom_constraint: neutron.network + mgmt_net_plen: + type: number + description: Management network prefix length + constraints: + - range: { min: 0, max: 32 } + description: mgmt_net_plen must be between 0 and 32 + mgmt_net_default_gateway: + type: string + description: Default gateway for management network + mgmt_net_sec_groups: + type: comma_delimited_list + description: Management network security groups + + # Internal high availability network parameters + int_ha_net_id: + type: string + description: Internal HA network ID + constraints: + - custom_constraint: neutron.network + int_ha_net_plen: + type: number + description: Intermal HA network prefix length. + constraints: + - range: { min: 0, max: 32 } + description: int_ha_net_plen must be between 0 and 32 + int_ha_net_sec_groups: + type: comma_delimited_list + description: Security groups associated with internal HA network + + # Trusted/core network parameters + trusted_net_id: + type: string + description: Network ID of trusted/core network. + constraints: + - custom_constraint: neutron.network + trusted_net_sec_groups: + type: comma_delimited_list + description: Security groups associated with trusted/core network + + # Untrusted/access network parameters + untrusted_net_id: + type: string + description: Network ID of untrusted/access network. + constraints: + - custom_constraint: neutron.network + untrusted_net_sec_groups: + type: comma_delimited_list + description: Security groups associated with untrusted/access network + untrusted_num_vlans: + type: number + description: Number of VLANs to connect to on the untrusted/access network + untrusted_vlan_ids: + type: comma_delimited_list + description: List of VLAN IDs to use on the untrusted/access network + 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 + + # Unused network parameters + # + # This is used for connecting the unused 4th SSC service interface. + unused_port_net_id: + type: string + description: Unused network ID + constraints: + - custom_constraint: neutron.network + + # SSC parameters + ssc_flavor_name: + type: string + description: Flavor to use for creating SSC VM instance + constraints: + - custom_constraint: nova.flavor + ssc_image_name: + type: string + description: Glance image to use for launching SSC Perimeta instances. + constraints: + - custom_constraint: glance.image + ssc_a_name_0: + type: string + description: Name of VM A of SSC + constraints: + - allowed_pattern: '[a-zA-Z0-9][a-zA-Z0-9-]{0,31}$' + description: VM A name must be 32 characters or less and a valid hostname. Only alphanumeric characters plus hyphen are allowed. + ssc_b_name_0: + type: string + description: Name of VM B of SSC + constraints: + - allowed_pattern: '[a-zA-Z0-9][a-zA-Z0-9-]{0,31}$' + description: VM B name must be 32 characters or less and a valid hostname. Only alphanumeric characters plus hyphen are allowed. + ssc_system_name_0: + type: string + description: System name of SSC + constraints: + - allowed_pattern: '[a-zA-Z0-9][a-zA-Z0-9-]{0,31}$' + description: System name must be 32 characters or less and a valid hostname. Only alphanumeric characters plus hyphen are allowed. + + # SSC IP addresses on management network + ssc_mgmt_vip_0: + type: string + description: Management virtual IP address to use for SSC. Only required when predefining VIPs. + ssc_a_mgmt_ip_0: + type: string + description: Management fixed IP address to use for SSC A. Only required when predefining fixed IPs. + ssc_b_mgmt_ip_0: + type: string + description: Management fixed IP address to use for SSC B. Only required when predefining fixed IPs. + + # SSC IP addresses on internal HA network + ssc_a_int_ha_ip_0: + type: string + description: HA fixed IP address to use for SSC A. Only required when predefining fixed IPs. + ssc_b_int_ha_ip_0: + type: string + description: HA fixed IP address to use for SSC B. Only required when predefining fixed IPs. + + # SSC IP addresses on trusted/core network + ssc_trusted_vip_0: + type: string + description: Virtual IPv4 address on trusted/core network for SSC. + ssc_a_trusted_ip_0: + type: string + description: Fixed IPv4 address on trusted/core network for SSC A. Only required when predefining fixed IPs. + ssc_b_trusted_ip_0: + type: string + description: Fixed IPv4 address on trusted/core network for SSC B. Only required when predefining fixed IPs. + + # SSC IP addresses on untrusted/access network + ssc_untrusted_vip_0: + type: string + description: Virtual IPv4 address on untrusted/access network for SSC. Only required when predefining virtual IPs. + ssc_untrusted_v6_vip_0: + type: string + description: Virtual IPv6 address on untrusted/access network for SSC. Only required when predefining virtual IPs. + ssc_a_untrusted_ip_0: + type: string + description: Fixed IPv4 address on untrusted/access network for SSC A. Only required when predefining fixed IPs. + ssc_a_untrusted_v6_ip_0: + type: string + description: Fixed IPv6 address on untrusted/access network for SSC A. Only required when predefining fixed IPs. + ssc_b_untrusted_ip_0: + type: string + description: Fixed IPv4 address on untrusted/access network for SSC B. Only required when predefining fixed IPs. + ssc_b_untrusted_v6_ip_0: + type: string + description: Fixed IPv6 address on untrusted/access network for SSC B. Only required when predefining fixed IPs. + + # SSC IP addresses on management/Rf network + ssc_rf_vip_0: + type: string + description: Virtual IPv4 address on management/Rf network for SSC. Only required when predefining virtual IPs. + ssc_a_rf_ip_0: + type: string + description: Fixed IPv4 address on management/Rf network for SSC A. Only required when predefining fixed IPs. + ssc_b_rf_ip_0: + type: string + description: Fixed IPv4 address on management/Rf network for SSC B. Only required when predefining fixed IPs. + + # RTP MSC parameters + rtp_msc_count: + type: number + description: Count of required RTP MSCs + rtp_msc_flavor_name: + type: string + description: Flavor to use for creating RTP MSC VM instances + constraints: + - custom_constraint: nova.flavor + rtp_msc_image_name: + type: string + description: Glance image to use for launching RTP MSC Perimeta instances. + constraints: + - custom_constraint: glance.image + rtp_msc_a_names: + type: comma_delimited_list + description: List of names of RTP MSC VM A instances + rtp_msc_b_names: + type: comma_delimited_list + description: List of names of RTP MSC VM B instances + rtp_msc_system_names: + type: comma_delimited_list + description: List of system names of RTP MSC instances + + # RTP MSC IP addresses on management network + rtp_msc_mgmt_vips: + type: comma_delimited_list + description: Management virtual IP addresses to use for RTP MSC instances. There must be at least as many as the number of RTP MSCs. + rtp_msc_a_mgmt_ips: + type: comma_delimited_list + description: Management fixed IP addresses to use for RTP MSC A instances. There must be at least as many as the number of RTP MSCs. + rtp_msc_b_mgmt_ips: + type: comma_delimited_list + description: Management fixed IP addresses to use for RTP MSC B instances. There must be at least as many as the number of RTP MSCs. + + # RTP MSC IP addresses on internal HA network + rtp_msc_a_int_ha_ips: + type: comma_delimited_list + description: HA fixed IP addresses to use for RTP MSC A instances. There must be at least as many as the number of RTP MSCs. + rtp_msc_b_int_ha_ips: + type: comma_delimited_list + description: HA fixed IP addresses to use for RTP MSC B instances. There must be at least as many as the number of RTP MSCs. + + # RTP MSC IP addresses on trusted/core network + rtp_msc_trusted_vips: + type: comma_delimited_list + description: Virtual IPv4 addresses on trusted/core network for RTP MSC instances. There must be at least as many as the number of RTP MSCs. + rtp_msc_a_trusted_ips: + type: comma_delimited_list + description: Fixed IPv4 addresses on trusted/core network for RTP MSC A instances. There must be at least as many as the number of RTP MSCs. + rtp_msc_b_trusted_ips: + type: comma_delimited_list + description: Fixed IPv4 address on trusted/core network for RTP MSC B instances. There must be at least as many as the number of RTP MSCs. + + # RTP MSC IP addresses on untrusted/access network + rtp_msc_untrusted_vips: + type: comma_delimited_list + description: Virtual IPv4 address on untrusted/access network for RTP MSC instances. There must be at least as many as the number of RTP MSCs. + rtp_msc_untrusted_v6_vips: + type: comma_delimited_list + description: Virtual IPv6 address on untrusted/access network for RTP MSC instances. There must be at least as many as the number of RTP MSCs. + rtp_msc_a_untrusted_ips: + type: comma_delimited_list + description: Fixed IPv4 address on untrusted/access network for RTP MSC A instances. There must be at least as many as the number of RTP MSCs. + rtp_msc_a_untrusted_v6_ips: + type: comma_delimited_list + description: Fixed IPv6 address on untrusted/access network for RTP MSC A instances. There must be at least as many as the number of RTP MSCs. + rtp_msc_b_untrusted_ips: + type: comma_delimited_list + description: Fixed IPv4 address on untrusted/access network for RTP MSC B instances. There must be at least as many as the number of RTP MSCs. + rtp_msc_b_untrusted_v6_ips: + type: comma_delimited_list + description: Fixed IPv6 address on untrusted/access network for RTP MSC B instances. There must be at least as many as the number of RTP MSCs. + +resources: + + # Perimeta SSC + perimeta_ssc: + type: perimeta_ha_swmu.yaml + properties: + vnf_id: { get_param: vnf_id } + vm_role: 'ssc' + vf_module_id: { get_param: vf_module_id } + system_names: [{ get_param: ssc_system_name_0 }] + vm_a_names: [{ get_param: ssc_a_name_0 }] + vm_b_names: [{ get_param: ssc_b_name_0 }] + perimeta_instance_index: 0 + perimeta_image_name: { get_param: ssc_image_name } + perimeta_flavor_name: { get_param: ssc_flavor_name } + perimeta_keypair: { get_param: perimeta_keypair } + availability_zone_0: { get_param: availability_zone_0 } + availability_zone_1: { get_param: availability_zone_1 } + mgmt_net_id: { get_param: mgmt_net_id } + mgmt_net_plen: { get_param: mgmt_net_plen } + mgmt_net_default_gateway: { get_param: mgmt_net_default_gateway } + mgmt_vips: [{ get_param: ssc_mgmt_vip_0 }] + mgmt_a_ips: [{ get_param: ssc_a_mgmt_ip_0 }] + mgmt_b_ips: [{ get_param: ssc_b_mgmt_ip_0 }] + mgmt_sec_groups: { get_param: mgmt_net_sec_groups } + ha_net_id: { get_param: int_ha_net_id } + ha_network_plen: { get_param: int_ha_net_plen } + ha_a_ips: [{ get_param: ssc_a_int_ha_ip_0 }] + ha_b_ips: [{ get_param: ssc_b_int_ha_ip_0 }] + ha_sec_groups: { get_param: int_ha_net_sec_groups } + trusted_net_id: { get_param: trusted_net_id } + trusted_vips: [{ get_param: ssc_trusted_vip_0 }] + trusted_a_ips: [{ get_param: ssc_a_trusted_ip_0 }] + trusted_b_ips: [{ get_param: ssc_b_trusted_ip_0 }] + trusted_sec_groups: { get_param: trusted_net_sec_groups } + untrusted_net_id: { get_param: untrusted_net_id } + untrusted_vips: [{ get_param: ssc_untrusted_vip_0 }] + untrusted_v6_vips: [{ get_param: ssc_untrusted_v6_vip_0 }] + untrusted_a_ips: [{ get_param: ssc_a_untrusted_ip_0 }] + untrusted_a_v6_ips: [{ get_param: ssc_a_untrusted_v6_ip_0 }] + untrusted_b_ips: [{ get_param: ssc_b_untrusted_ip_0 }] + untrusted_b_v6_ips: [{ get_param: ssc_b_untrusted_v6_ip_0 }] + untrusted_sec_groups: { get_param: untrusted_net_sec_groups } + untrusted_num_vlans: { get_param: untrusted_num_vlans } + untrusted_vlan_ids: { get_param: untrusted_vlan_ids } + untrusted_vlan_networks: { get_param: untrusted_vlan_networks } + serv3_net_id: { get_param: mgmt_net_id } + serv3_vips: [{ get_param: ssc_rf_vip_0 }] + serv3_a_ips: [{ get_param: ssc_a_rf_ip_0 }] + serv3_b_ips: [{ get_param: ssc_b_rf_ip_0 }] + serv3_sec_groups: { get_param: mgmt_net_sec_groups } + unused_net_id: { get_param: unused_port_net_id } + perimeta_param_server_group: { get_param: perimeta_param_server_group } + perimeta_config: + str_replace: + template: {get_file: ssc_a_template.json} + params: + $NTP_SERVER_IP_ADDRS: { get_param: ntp_server_ip_addrs } + $COMPLETION_PARAMS: '' + + + +outputs: + + ssc_server_group: + description: Server group for SSC pair + value: { get_attr: [ perimeta_ssc, server_group_used ] } + + + + msw_template_version: + description: Version of the heat templates used to instantiate the VMs + value: "4.0.1 - 2016-10-28" diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/subInterfaceToInterfaceConnection/vTSBC_AIC/inputfiles/module_2_perimeta_rtp_msc_a_healing.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/subInterfaceToInterfaceConnection/vTSBC_AIC/inputfiles/module_2_perimeta_rtp_msc_a_healing.yaml new file mode 100644 index 0000000000..e5a1e75a94 --- /dev/null +++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/subInterfaceToInterfaceConnection/vTSBC_AIC/inputfiles/module_2_perimeta_rtp_msc_a_healing.yaml @@ -0,0 +1,381 @@ +# Heat template which intstantiates a Perimeta SSC and up to 10 Perimeta +# RTP MSCs and up to 10 Perimeta MSRP MSCs. Currently all instances are +# HA although standalone MSCs may be supported in future. +# +# This Heat template commissions, partners and configures the Perimeta SSC and +# MSCs with basic configuration defined by ssc_a_template.json, +# msc_a_template.json and mmc_a_template.json. These can be modified +# as required to obtain the required Perimeta configuration. +# +# This template puts the Perimeta configuration in place using userdata +# injected via OpenStack's ConfigDrive mechanism. +# +# This template sets up anti-affinity using server group anti-affinity and +# optionally availability zone anti-affinity. +# +# This template will work with any version of Perimeta software from 3.9.20. +# +# Pre-requisites are: +# - existing networks as follows +# - network for management traffic +# - network for HA traffic +# - network for core/trusted service traffic +# - network for access/untrusted service traffic +# - pre-loaded Perimeta image +# - suitable flavor to use for Perimeta SSC +# - suitable flavor to use for Perimeta RTP MSCs +# - suitable flavor to use for Perimeta MSRP MSCs +# - suitable keypair to use for Perimeta +# +# Virtual IP address and fixed IP addresses to use for the Perimeta instances +# must be provided as parameters. +# +# Template requires Juno or above and has been tested on Kilo. Note that in +# some deployments, Heat template validation will fail but actually creating +# a stack using the template will succeed. This is due to problems with +# Heat validating nested templates. +# +heat_template_version: 2014-10-16 + +description: > + HOT template to instantiate a Perimeta SSC plus MxRTP MSCs plus NxMSRP MSCs + +parameters: + # General VNF parameters + vnf_id: + type: string + description: ID of VNF + + vf_module_id: + type: string + description: Unique ID for this VF Module instance + + availability_zone_0: + type: string + description: Availability zone for A instances. + availability_zone_1: + type: string + description: Availability zone for B instances. + perimeta_keypair: + type: string + description: Keypair to use for accessing these Perimeta instances + constraints: + - custom_constraint: nova.keypair + ntp_server_ip_addrs: + type: string + description: NTP server IPv4 addresses, separated by commas. These must be accessible from the management network + constraints: + - allowed_pattern: "((?:\\d{1,3}\\.){3}\\d{1,3},)*((?:\\d{1,3}\\.){3}\\d{1,3})" + description: ntp_server_ip_addrs must be a comma separated list of IPv4 addresses (with no spaces) + perimeta_param_server_group: + type: string + description: UUID of server group to set anti-affinity policy for Perimeta instance. Only used when doing healing. + + # Management network parameters + mgmt_net_id: + type: string + description: Management network ID + constraints: + - custom_constraint: neutron.network + mgmt_net_plen: + type: number + description: Management network prefix length + constraints: + - range: { min: 0, max: 32 } + description: mgmt_net_plen must be between 0 and 32 + mgmt_net_default_gateway: + type: string + description: Default gateway for management network + mgmt_net_sec_groups: + type: comma_delimited_list + description: Management network security groups + + # Internal high availability network parameters + int_ha_net_id: + type: string + description: Internal HA network ID + constraints: + - custom_constraint: neutron.network + int_ha_net_plen: + type: number + description: Intermal HA network prefix length. + constraints: + - range: { min: 0, max: 32 } + description: int_ha_net_plen must be between 0 and 32 + int_ha_net_sec_groups: + type: comma_delimited_list + description: Security groups associated with internal HA network + + # Trusted/core network parameters + trusted_net_id: + type: string + description: Network ID of trusted/core network. + constraints: + - custom_constraint: neutron.network + trusted_net_sec_groups: + type: comma_delimited_list + description: Security groups associated with trusted/core network + + # Untrusted/access network parameters + untrusted_net_id: + type: string + description: Network ID of untrusted/access network. + constraints: + - custom_constraint: neutron.network + untrusted_net_sec_groups: + type: comma_delimited_list + description: Security groups associated with untrusted/access network + untrusted_num_vlans: + type: number + description: Number of VLANs to connect to on the untrusted/access network + untrusted_vlan_ids: + type: comma_delimited_list + description: List of VLAN IDs to use on the untrusted/access network + 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 + + # Unused network parameters + # + # This is used for connecting the unused 4th SSC service interface. + unused_port_net_id: + type: string + description: Unused network ID + constraints: + - custom_constraint: neutron.network + + # SSC parameters + ssc_flavor_name: + type: string + description: Flavor to use for creating SSC VM instance + constraints: + - custom_constraint: nova.flavor + ssc_image_name: + type: string + description: Glance image to use for launching SSC Perimeta instances. + constraints: + - custom_constraint: glance.image + ssc_a_name_0: + type: string + description: Name of VM A of SSC + constraints: + - allowed_pattern: '[a-zA-Z0-9][a-zA-Z0-9-]{0,31}$' + description: VM A name must be 32 characters or less and a valid hostname. Only alphanumeric characters plus hyphen are allowed. + ssc_b_name_0: + type: string + description: Name of VM B of SSC + constraints: + - allowed_pattern: '[a-zA-Z0-9][a-zA-Z0-9-]{0,31}$' + description: VM B name must be 32 characters or less and a valid hostname. Only alphanumeric characters plus hyphen are allowed. + ssc_system_name_0: + type: string + description: System name of SSC + constraints: + - allowed_pattern: '[a-zA-Z0-9][a-zA-Z0-9-]{0,31}$' + description: System name must be 32 characters or less and a valid hostname. Only alphanumeric characters plus hyphen are allowed. + + # SSC IP addresses on management network + ssc_mgmt_vip_0: + type: string + description: Management virtual IP address to use for SSC. Only required when predefining VIPs. + ssc_a_mgmt_ip_0: + type: string + description: Management fixed IP address to use for SSC A. Only required when predefining fixed IPs. + ssc_b_mgmt_ip_0: + type: string + description: Management fixed IP address to use for SSC B. Only required when predefining fixed IPs. + + # SSC IP addresses on internal HA network + ssc_a_int_ha_ip_0: + type: string + description: HA fixed IP address to use for SSC A. Only required when predefining fixed IPs. + ssc_b_int_ha_ip_0: + type: string + description: HA fixed IP address to use for SSC B. Only required when predefining fixed IPs. + + # SSC IP addresses on trusted/core network + ssc_trusted_vip_0: + type: string + description: Virtual IPv4 address on trusted/core network for SSC. + ssc_a_trusted_ip_0: + type: string + description: Fixed IPv4 address on trusted/core network for SSC A. Only required when predefining fixed IPs. + ssc_b_trusted_ip_0: + type: string + description: Fixed IPv4 address on trusted/core network for SSC B. Only required when predefining fixed IPs. + + # SSC IP addresses on untrusted/access network + ssc_untrusted_vip_0: + type: string + description: Virtual IPv4 address on untrusted/access network for SSC. Only required when predefining virtual IPs. + ssc_untrusted_v6_vip_0: + type: string + description: Virtual IPv6 address on untrusted/access network for SSC. Only required when predefining virtual IPs. + ssc_a_untrusted_ip_0: + type: string + description: Fixed IPv4 address on untrusted/access network for SSC A. Only required when predefining fixed IPs. + ssc_a_untrusted_v6_ip_0: + type: string + description: Fixed IPv6 address on untrusted/access network for SSC A. Only required when predefining fixed IPs. + ssc_b_untrusted_ip_0: + type: string + description: Fixed IPv4 address on untrusted/access network for SSC B. Only required when predefining fixed IPs. + ssc_b_untrusted_v6_ip_0: + type: string + description: Fixed IPv6 address on untrusted/access network for SSC B. Only required when predefining fixed IPs. + + # SSC IP addresses on management/Rf network + ssc_rf_vip_0: + type: string + description: Virtual IPv4 address on management/Rf network for SSC. Only required when predefining virtual IPs. + ssc_a_rf_ip_0: + type: string + description: Fixed IPv4 address on management/Rf network for SSC A. Only required when predefining fixed IPs. + ssc_b_rf_ip_0: + type: string + description: Fixed IPv4 address on management/Rf network for SSC B. Only required when predefining fixed IPs. + + # RTP MSC parameters + rtp_msc_count: + type: number + description: Count of required RTP MSCs + rtp_msc_index: + type: number + description: Index of RTP MSC to create/heal. + rtp_msc_flavor_name: + type: string + description: Flavor to use for creating RTP MSC VM instances + constraints: + - custom_constraint: nova.flavor + rtp_msc_image_name: + type: string + description: Glance image to use for launching RTP MSC Perimeta instances. + constraints: + - custom_constraint: glance.image + rtp_msc_a_names: + type: comma_delimited_list + description: List of names of RTP MSC VM A instances + rtp_msc_b_names: + type: comma_delimited_list + description: List of names of RTP MSC VM B instances + rtp_msc_system_names: + type: comma_delimited_list + description: List of system names of RTP MSC instances + + # RTP MSC IP addresses on management network + rtp_msc_mgmt_vips: + type: comma_delimited_list + description: Management virtual IP addresses to use for RTP MSC instances. There must be at least as many as the number of RTP MSCs. + rtp_msc_a_mgmt_ips: + type: comma_delimited_list + description: Management fixed IP addresses to use for RTP MSC A instances. There must be at least as many as the number of RTP MSCs. + rtp_msc_b_mgmt_ips: + type: comma_delimited_list + description: Management fixed IP addresses to use for RTP MSC B instances. There must be at least as many as the number of RTP MSCs. + + # RTP MSC IP addresses on internal HA network + rtp_msc_a_int_ha_ips: + type: comma_delimited_list + description: HA fixed IP addresses to use for RTP MSC A instances. There must be at least as many as the number of RTP MSCs. + rtp_msc_b_int_ha_ips: + type: comma_delimited_list + description: HA fixed IP addresses to use for RTP MSC B instances. There must be at least as many as the number of RTP MSCs. + + # RTP MSC IP addresses on trusted/core network + rtp_msc_trusted_vips: + type: comma_delimited_list + description: Virtual IPv4 addresses on trusted/core network for RTP MSC instances. There must be at least as many as the number of RTP MSCs. + rtp_msc_a_trusted_ips: + type: comma_delimited_list + description: Fixed IPv4 addresses on trusted/core network for RTP MSC A instances. There must be at least as many as the number of RTP MSCs. + rtp_msc_b_trusted_ips: + type: comma_delimited_list + description: Fixed IPv4 address on trusted/core network for RTP MSC B instances. There must be at least as many as the number of RTP MSCs. + + # RTP MSC IP addresses on untrusted/access network + rtp_msc_untrusted_vips: + type: comma_delimited_list + description: Virtual IPv4 address on untrusted/access network for RTP MSC instances. There must be at least as many as the number of RTP MSCs. + rtp_msc_untrusted_v6_vips: + type: comma_delimited_list + description: Virtual IPv6 address on untrusted/access network for RTP MSC instances. There must be at least as many as the number of RTP MSCs. + rtp_msc_a_untrusted_ips: + type: comma_delimited_list + description: Fixed IPv4 address on untrusted/access network for RTP MSC A instances. There must be at least as many as the number of RTP MSCs. + rtp_msc_a_untrusted_v6_ips: + type: comma_delimited_list + description: Fixed IPv6 address on untrusted/access network for RTP MSC A instances. There must be at least as many as the number of RTP MSCs. + rtp_msc_b_untrusted_ips: + type: comma_delimited_list + description: Fixed IPv4 address on untrusted/access network for RTP MSC B instances. There must be at least as many as the number of RTP MSCs. + rtp_msc_b_untrusted_v6_ips: + type: comma_delimited_list + description: Fixed IPv6 address on untrusted/access network for RTP MSC B instances. There must be at least as many as the number of RTP MSCs. + +resources: + + + # Perimeta RTP MSCs. + perimeta_rtp_mscs: + type: perimeta_ha_sw_a.yaml + properties: + vnf_id: { get_param: vnf_id } + vm_role: 'rtp_msc' + vf_module_id: { get_param: vf_module_id } + system_names: { get_param: rtp_msc_system_names } + vm_a_names: { get_param: rtp_msc_a_names } + vm_b_names: { get_param: rtp_msc_b_names } + perimeta_instance_index: { get_param: rtp_msc_index } + perimeta_image_name: { get_param: rtp_msc_image_name } + perimeta_flavor_name: { get_param: rtp_msc_flavor_name } + perimeta_keypair: { get_param: perimeta_keypair } + availability_zone_0: { get_param: availability_zone_0 } + availability_zone_1: { get_param: availability_zone_1 } + mgmt_net_id: { get_param: mgmt_net_id } + mgmt_net_plen: { get_param: mgmt_net_plen } + mgmt_net_default_gateway: { get_param: mgmt_net_default_gateway } + mgmt_vips: { get_param: rtp_msc_mgmt_vips } + mgmt_a_ips: { get_param: rtp_msc_a_mgmt_ips } + mgmt_b_ips: { get_param: rtp_msc_b_mgmt_ips } + mgmt_sec_groups: { get_param: mgmt_net_sec_groups } + ha_net_id: { get_param: int_ha_net_id } + ha_network_plen: { get_param: int_ha_net_plen } + ha_a_ips: { get_param: rtp_msc_a_int_ha_ips } + ha_b_ips: { get_param: rtp_msc_b_int_ha_ips } + ha_sec_groups: { get_param: int_ha_net_sec_groups } + trusted_net_id: { get_param: trusted_net_id } + trusted_vips: { get_param: rtp_msc_trusted_vips } + trusted_a_ips: { get_param: rtp_msc_a_trusted_ips } + trusted_b_ips: { get_param: rtp_msc_b_trusted_ips } + trusted_sec_groups: { get_param: trusted_net_sec_groups } + untrusted_net_id: { get_param: untrusted_net_id } + untrusted_vips: { get_param: rtp_msc_untrusted_vips } + untrusted_v6_vips: { get_param: rtp_msc_untrusted_v6_vips } + untrusted_a_ips: { get_param: rtp_msc_a_untrusted_ips } + untrusted_a_v6_ips: { get_param: rtp_msc_a_untrusted_v6_ips } + untrusted_b_ips: { get_param: rtp_msc_b_untrusted_ips } + untrusted_b_v6_ips: { get_param: rtp_msc_b_untrusted_v6_ips } + untrusted_sec_groups: { get_param: untrusted_net_sec_groups } + untrusted_num_vlans: { get_param: untrusted_num_vlans } + untrusted_vlan_ids: { get_param: untrusted_vlan_ids } + untrusted_vlan_networks: { get_param: untrusted_vlan_networks } + perimeta_param_server_group: { get_param: perimeta_param_server_group } + perimeta_config: + str_replace: + template: {get_file: msc_a_template.json} + params: + $NTP_SERVER_IP_ADDRS: { get_param: ntp_server_ip_addrs } + $COMPLETION_PARAMS: '' + + +outputs: + + + rtp_msc_server_groups: + description: Server groups for RTP MSC pairs + value: { get_attr: [ perimeta_rtp_mscs, server_group_used ] } + + + msw_template_version: + description: Version of the heat templates used to instantiate the VMs + value: "4.0.1 - 2016-10-28" diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/subInterfaceToInterfaceConnection/vTSBC_AIC/inputfiles/module_2_perimeta_rtp_msc_b_healing.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/subInterfaceToInterfaceConnection/vTSBC_AIC/inputfiles/module_2_perimeta_rtp_msc_b_healing.yaml new file mode 100644 index 0000000000..b071897d70 --- /dev/null +++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/subInterfaceToInterfaceConnection/vTSBC_AIC/inputfiles/module_2_perimeta_rtp_msc_b_healing.yaml @@ -0,0 +1,381 @@ +# Heat template which intstantiates a Perimeta SSC and up to 10 Perimeta +# RTP MSCs and up to 10 Perimeta MSRP MSCs. Currently all instances are +# HA although standalone MSCs may be supported in future. +# +# This Heat template commissions, partners and configures the Perimeta SSC and +# MSCs with basic configuration defined by ssc_a_template.json, +# msc_a_template.json and mmc_a_template.json. These can be modified +# as required to obtain the required Perimeta configuration. +# +# This template puts the Perimeta configuration in place using userdata +# injected via OpenStack's ConfigDrive mechanism. +# +# This template sets up anti-affinity using server group anti-affinity and +# optionally availability zone anti-affinity. +# +# This template will work with any version of Perimeta software from 3.9.20. +# +# Pre-requisites are: +# - existing networks as follows +# - network for management traffic +# - network for HA traffic +# - network for core/trusted service traffic +# - network for access/untrusted service traffic +# - pre-loaded Perimeta image +# - suitable flavor to use for Perimeta SSC +# - suitable flavor to use for Perimeta RTP MSCs +# - suitable flavor to use for Perimeta MSRP MSCs +# - suitable keypair to use for Perimeta +# +# Virtual IP address and fixed IP addresses to use for the Perimeta instances +# must be provided as parameters. +# +# Template requires Juno or above and has been tested on Kilo. Note that in +# some deployments, Heat template validation will fail but actually creating +# a stack using the template will succeed. This is due to problems with +# Heat validating nested templates. +# +heat_template_version: 2014-10-16 + +description: > + HOT template to instantiate a Perimeta SSC plus MxRTP MSCs plus NxMSRP MSCs + +parameters: + # General VNF parameters + vnf_id: + type: string + description: ID of VNF + + vf_module_id: + type: string + description: Unique ID for this VF Module instance + + availability_zone_0: + type: string + description: Availability zone for A instances. + availability_zone_1: + type: string + description: Availability zone for B instances. + perimeta_keypair: + type: string + description: Keypair to use for accessing these Perimeta instances + constraints: + - custom_constraint: nova.keypair + ntp_server_ip_addrs: + type: string + description: NTP server IPv4 addresses, separated by commas. These must be accessible from the management network + constraints: + - allowed_pattern: "((?:\\d{1,3}\\.){3}\\d{1,3},)*((?:\\d{1,3}\\.){3}\\d{1,3})" + description: ntp_server_ip_addrs must be a comma separated list of IPv4 addresses (with no spaces) + perimeta_param_server_group: + type: string + description: UUID of server group to set anti-affinity policy for Perimeta instance. Only used when doing healing. + + # Management network parameters + mgmt_net_id: + type: string + description: Management network ID + constraints: + - custom_constraint: neutron.network + mgmt_net_plen: + type: number + description: Management network prefix length + constraints: + - range: { min: 0, max: 32 } + description: mgmt_net_plen must be between 0 and 32 + mgmt_net_default_gateway: + type: string + description: Default gateway for management network + mgmt_net_sec_groups: + type: comma_delimited_list + description: Management network security groups + + # Internal high availability network parameters + int_ha_net_id: + type: string + description: Internal HA network ID + constraints: + - custom_constraint: neutron.network + int_ha_net_plen: + type: number + description: Intermal HA network prefix length. + constraints: + - range: { min: 0, max: 32 } + description: int_ha_net_plen must be between 0 and 32 + int_ha_net_sec_groups: + type: comma_delimited_list + description: Security groups associated with internal HA network + + # Trusted/core network parameters + trusted_net_id: + type: string + description: Network ID of trusted/core network. + constraints: + - custom_constraint: neutron.network + trusted_net_sec_groups: + type: comma_delimited_list + description: Security groups associated with trusted/core network + + # Untrusted/access network parameters + untrusted_net_id: + type: string + description: Network ID of untrusted/access network. + constraints: + - custom_constraint: neutron.network + untrusted_net_sec_groups: + type: comma_delimited_list + description: Security groups associated with untrusted/access network + untrusted_num_vlans: + type: number + description: Number of VLANs to connect to on the untrusted/access network + untrusted_vlan_ids: + type: comma_delimited_list + description: List of VLAN IDs to use on the untrusted/access network + 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 + + # Unused network parameters + # + # This is used for connecting the unused 4th SSC service interface. + unused_port_net_id: + type: string + description: Unused network ID + constraints: + - custom_constraint: neutron.network + + # SSC parameters + ssc_flavor_name: + type: string + description: Flavor to use for creating SSC VM instance + constraints: + - custom_constraint: nova.flavor + ssc_image_name: + type: string + description: Glance image to use for launching SSC Perimeta instances. + constraints: + - custom_constraint: glance.image + ssc_a_name_0: + type: string + description: Name of VM A of SSC + constraints: + - allowed_pattern: '[a-zA-Z0-9][a-zA-Z0-9-]{0,31}$' + description: VM A name must be 32 characters or less and a valid hostname. Only alphanumeric characters plus hyphen are allowed. + ssc_b_name_0: + type: string + description: Name of VM B of SSC + constraints: + - allowed_pattern: '[a-zA-Z0-9][a-zA-Z0-9-]{0,31}$' + description: VM B name must be 32 characters or less and a valid hostname. Only alphanumeric characters plus hyphen are allowed. + ssc_system_name_0: + type: string + description: System name of SSC + constraints: + - allowed_pattern: '[a-zA-Z0-9][a-zA-Z0-9-]{0,31}$' + description: System name must be 32 characters or less and a valid hostname. Only alphanumeric characters plus hyphen are allowed. + + # SSC IP addresses on management network + ssc_mgmt_vip_0: + type: string + description: Management virtual IP address to use for SSC. Only required when predefining VIPs. + ssc_a_mgmt_ip_0: + type: string + description: Management fixed IP address to use for SSC A. Only required when predefining fixed IPs. + ssc_b_mgmt_ip_0: + type: string + description: Management fixed IP address to use for SSC B. Only required when predefining fixed IPs. + + # SSC IP addresses on internal HA network + ssc_a_int_ha_ip_0: + type: string + description: HA fixed IP address to use for SSC A. Only required when predefining fixed IPs. + ssc_b_int_ha_ip_0: + type: string + description: HA fixed IP address to use for SSC B. Only required when predefining fixed IPs. + + # SSC IP addresses on trusted/core network + ssc_trusted_vip_0: + type: string + description: Virtual IPv4 address on trusted/core network for SSC. + ssc_a_trusted_ip_0: + type: string + description: Fixed IPv4 address on trusted/core network for SSC A. Only required when predefining fixed IPs. + ssc_b_trusted_ip_0: + type: string + description: Fixed IPv4 address on trusted/core network for SSC B. Only required when predefining fixed IPs. + + # SSC IP addresses on untrusted/access network + ssc_untrusted_vip_0: + type: string + description: Virtual IPv4 address on untrusted/access network for SSC. Only required when predefining virtual IPs. + ssc_untrusted_v6_vip_0: + type: string + description: Virtual IPv6 address on untrusted/access network for SSC. Only required when predefining virtual IPs. + ssc_a_untrusted_ip_0: + type: string + description: Fixed IPv4 address on untrusted/access network for SSC A. Only required when predefining fixed IPs. + ssc_a_untrusted_v6_ip_0: + type: string + description: Fixed IPv6 address on untrusted/access network for SSC A. Only required when predefining fixed IPs. + ssc_b_untrusted_ip_0: + type: string + description: Fixed IPv4 address on untrusted/access network for SSC B. Only required when predefining fixed IPs. + ssc_b_untrusted_v6_ip_0: + type: string + description: Fixed IPv6 address on untrusted/access network for SSC B. Only required when predefining fixed IPs. + + # SSC IP addresses on management/Rf network + ssc_rf_vip_0: + type: string + description: Virtual IPv4 address on management/Rf network for SSC. Only required when predefining virtual IPs. + ssc_a_rf_ip_0: + type: string + description: Fixed IPv4 address on management/Rf network for SSC A. Only required when predefining fixed IPs. + ssc_b_rf_ip_0: + type: string + description: Fixed IPv4 address on management/Rf network for SSC B. Only required when predefining fixed IPs. + + # RTP MSC parameters + rtp_msc_count: + type: number + description: Count of required RTP MSCs + rtp_msc_index: + type: number + description: Index of RTP MSC to create/heal. + rtp_msc_flavor_name: + type: string + description: Flavor to use for creating RTP MSC VM instances + constraints: + - custom_constraint: nova.flavor + rtp_msc_image_name: + type: string + description: Glance image to use for launching RTP MSC Perimeta instances. + constraints: + - custom_constraint: glance.image + rtp_msc_a_names: + type: comma_delimited_list + description: List of names of RTP MSC VM A instances + rtp_msc_b_names: + type: comma_delimited_list + description: List of names of RTP MSC VM B instances + rtp_msc_system_names: + type: comma_delimited_list + description: List of system names of RTP MSC instances + + # RTP MSC IP addresses on management network + rtp_msc_mgmt_vips: + type: comma_delimited_list + description: Management virtual IP addresses to use for RTP MSC instances. There must be at least as many as the number of RTP MSCs. + rtp_msc_a_mgmt_ips: + type: comma_delimited_list + description: Management fixed IP addresses to use for RTP MSC A instances. There must be at least as many as the number of RTP MSCs. + rtp_msc_b_mgmt_ips: + type: comma_delimited_list + description: Management fixed IP addresses to use for RTP MSC B instances. There must be at least as many as the number of RTP MSCs. + + # RTP MSC IP addresses on internal HA network + rtp_msc_a_int_ha_ips: + type: comma_delimited_list + description: HA fixed IP addresses to use for RTP MSC A instances. There must be at least as many as the number of RTP MSCs. + rtp_msc_b_int_ha_ips: + type: comma_delimited_list + description: HA fixed IP addresses to use for RTP MSC B instances. There must be at least as many as the number of RTP MSCs. + + # RTP MSC IP addresses on trusted/core network + rtp_msc_trusted_vips: + type: comma_delimited_list + description: Virtual IPv4 addresses on trusted/core network for RTP MSC instances. There must be at least as many as the number of RTP MSCs. + rtp_msc_a_trusted_ips: + type: comma_delimited_list + description: Fixed IPv4 addresses on trusted/core network for RTP MSC A instances. There must be at least as many as the number of RTP MSCs. + rtp_msc_b_trusted_ips: + type: comma_delimited_list + description: Fixed IPv4 address on trusted/core network for RTP MSC B instances. There must be at least as many as the number of RTP MSCs. + + # RTP MSC IP addresses on untrusted/access network + rtp_msc_untrusted_vips: + type: comma_delimited_list + description: Virtual IPv4 address on untrusted/access network for RTP MSC instances. There must be at least as many as the number of RTP MSCs. + rtp_msc_untrusted_v6_vips: + type: comma_delimited_list + description: Virtual IPv6 address on untrusted/access network for RTP MSC instances. There must be at least as many as the number of RTP MSCs. + rtp_msc_a_untrusted_ips: + type: comma_delimited_list + description: Fixed IPv4 address on untrusted/access network for RTP MSC A instances. There must be at least as many as the number of RTP MSCs. + rtp_msc_a_untrusted_v6_ips: + type: comma_delimited_list + description: Fixed IPv6 address on untrusted/access network for RTP MSC A instances. There must be at least as many as the number of RTP MSCs. + rtp_msc_b_untrusted_ips: + type: comma_delimited_list + description: Fixed IPv4 address on untrusted/access network for RTP MSC B instances. There must be at least as many as the number of RTP MSCs. + rtp_msc_b_untrusted_v6_ips: + type: comma_delimited_list + description: Fixed IPv6 address on untrusted/access network for RTP MSC B instances. There must be at least as many as the number of RTP MSCs. + +resources: + + + # Perimeta RTP MSCs. + perimeta_rtp_mscs: + type: perimeta_ha_sw_b.yaml + properties: + vnf_id: { get_param: vnf_id } + vm_role: 'rtp_msc' + vf_module_id: { get_param: vf_module_id } + system_names: { get_param: rtp_msc_system_names } + vm_a_names: { get_param: rtp_msc_a_names } + vm_b_names: { get_param: rtp_msc_b_names } + perimeta_instance_index: { get_param: rtp_msc_index } + perimeta_image_name: { get_param: rtp_msc_image_name } + perimeta_flavor_name: { get_param: rtp_msc_flavor_name } + perimeta_keypair: { get_param: perimeta_keypair } + availability_zone_0: { get_param: availability_zone_0 } + availability_zone_1: { get_param: availability_zone_1 } + mgmt_net_id: { get_param: mgmt_net_id } + mgmt_net_plen: { get_param: mgmt_net_plen } + mgmt_net_default_gateway: { get_param: mgmt_net_default_gateway } + mgmt_vips: { get_param: rtp_msc_mgmt_vips } + mgmt_a_ips: { get_param: rtp_msc_a_mgmt_ips } + mgmt_b_ips: { get_param: rtp_msc_b_mgmt_ips } + mgmt_sec_groups: { get_param: mgmt_net_sec_groups } + ha_net_id: { get_param: int_ha_net_id } + ha_network_plen: { get_param: int_ha_net_plen } + ha_a_ips: { get_param: rtp_msc_a_int_ha_ips } + ha_b_ips: { get_param: rtp_msc_b_int_ha_ips } + ha_sec_groups: { get_param: int_ha_net_sec_groups } + trusted_net_id: { get_param: trusted_net_id } + trusted_vips: { get_param: rtp_msc_trusted_vips } + trusted_a_ips: { get_param: rtp_msc_a_trusted_ips } + trusted_b_ips: { get_param: rtp_msc_b_trusted_ips } + trusted_sec_groups: { get_param: trusted_net_sec_groups } + untrusted_net_id: { get_param: untrusted_net_id } + untrusted_vips: { get_param: rtp_msc_untrusted_vips } + untrusted_v6_vips: { get_param: rtp_msc_untrusted_v6_vips } + untrusted_a_ips: { get_param: rtp_msc_a_untrusted_ips } + untrusted_a_v6_ips: { get_param: rtp_msc_a_untrusted_v6_ips } + untrusted_b_ips: { get_param: rtp_msc_b_untrusted_ips } + untrusted_b_v6_ips: { get_param: rtp_msc_b_untrusted_v6_ips } + untrusted_sec_groups: { get_param: untrusted_net_sec_groups } + untrusted_num_vlans: { get_param: untrusted_num_vlans } + untrusted_vlan_ids: { get_param: untrusted_vlan_ids } + untrusted_vlan_networks: { get_param: untrusted_vlan_networks } + perimeta_param_server_group: { get_param: perimeta_param_server_group } + perimeta_config: + str_replace: + template: {get_file: msc_a_template.json} + params: + $NTP_SERVER_IP_ADDRS: { get_param: ntp_server_ip_addrs } + $COMPLETION_PARAMS: '' + + +outputs: + + + rtp_msc_server_groups: + description: Server groups for RTP MSC pairs + value: { get_attr: [ perimeta_rtp_mscs, server_group_used ] } + + + msw_template_version: + description: Version of the heat templates used to instantiate the VMs + value: "4.0.1 - 2016-10-28" diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/subInterfaceToInterfaceConnection/vTSBC_AIC/inputfiles/module_2_perimeta_rtp_msc_rebuild_scaling.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/subInterfaceToInterfaceConnection/vTSBC_AIC/inputfiles/module_2_perimeta_rtp_msc_rebuild_scaling.yaml new file mode 100644 index 0000000000..c85009179e --- /dev/null +++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/subInterfaceToInterfaceConnection/vTSBC_AIC/inputfiles/module_2_perimeta_rtp_msc_rebuild_scaling.yaml @@ -0,0 +1,381 @@ +# Heat template which intstantiates a Perimeta SSC and up to 10 Perimeta +# RTP MSCs and up to 10 Perimeta MSRP MSCs. Currently all instances are +# HA although standalone MSCs may be supported in future. +# +# This Heat template commissions, partners and configures the Perimeta SSC and +# MSCs with basic configuration defined by ssc_a_template.json, +# msc_a_template.json and mmc_a_template.json. These can be modified +# as required to obtain the required Perimeta configuration. +# +# This template puts the Perimeta configuration in place using userdata +# injected via OpenStack's ConfigDrive mechanism. +# +# This template sets up anti-affinity using server group anti-affinity and +# optionally availability zone anti-affinity. +# +# This template will work with any version of Perimeta software from 3.9.20. +# +# Pre-requisites are: +# - existing networks as follows +# - network for management traffic +# - network for HA traffic +# - network for core/trusted service traffic +# - network for access/untrusted service traffic +# - pre-loaded Perimeta image +# - suitable flavor to use for Perimeta SSC +# - suitable flavor to use for Perimeta RTP MSCs +# - suitable flavor to use for Perimeta MSRP MSCs +# - suitable keypair to use for Perimeta +# +# Virtual IP address and fixed IP addresses to use for the Perimeta instances +# must be provided as parameters. +# +# Template requires Juno or above and has been tested on Kilo. Note that in +# some deployments, Heat template validation will fail but actually creating +# a stack using the template will succeed. This is due to problems with +# Heat validating nested templates. +# +heat_template_version: 2014-10-16 + +description: > + HOT template to instantiate a Perimeta SSC plus MxRTP MSCs plus NxMSRP MSCs + +parameters: + # General VNF parameters + vnf_id: + type: string + description: ID of VNF + + vf_module_id: + type: string + description: Unique ID for this VF Module instance + + availability_zone_0: + type: string + description: Availability zone for A instances. + availability_zone_1: + type: string + description: Availability zone for B instances. + perimeta_keypair: + type: string + description: Keypair to use for accessing these Perimeta instances + constraints: + - custom_constraint: nova.keypair + ntp_server_ip_addrs: + type: string + description: NTP server IPv4 addresses, separated by commas. These must be accessible from the management network + constraints: + - allowed_pattern: "((?:\\d{1,3}\\.){3}\\d{1,3},)*((?:\\d{1,3}\\.){3}\\d{1,3})" + description: ntp_server_ip_addrs must be a comma separated list of IPv4 addresses (with no spaces) + perimeta_param_server_group: + type: string + description: UUID of server group to set anti-affinity policy for Perimeta instance. Only used when doing healing. + + # Management network parameters + mgmt_net_id: + type: string + description: Management network ID + constraints: + - custom_constraint: neutron.network + mgmt_net_plen: + type: number + description: Management network prefix length + constraints: + - range: { min: 0, max: 32 } + description: mgmt_net_plen must be between 0 and 32 + mgmt_net_default_gateway: + type: string + description: Default gateway for management network + mgmt_net_sec_groups: + type: comma_delimited_list + description: Management network security groups + + # Internal high availability network parameters + int_ha_net_id: + type: string + description: Internal HA network ID + constraints: + - custom_constraint: neutron.network + int_ha_net_plen: + type: number + description: Intermal HA network prefix length. + constraints: + - range: { min: 0, max: 32 } + description: int_ha_net_plen must be between 0 and 32 + int_ha_net_sec_groups: + type: comma_delimited_list + description: Security groups associated with internal HA network + + # Trusted/core network parameters + trusted_net_id: + type: string + description: Network ID of trusted/core network. + constraints: + - custom_constraint: neutron.network + trusted_net_sec_groups: + type: comma_delimited_list + description: Security groups associated with trusted/core network + + # Untrusted/access network parameters + untrusted_net_id: + type: string + description: Network ID of untrusted/access network. + constraints: + - custom_constraint: neutron.network + untrusted_net_sec_groups: + type: comma_delimited_list + description: Security groups associated with untrusted/access network + untrusted_num_vlans: + type: number + description: Number of VLANs to connect to on the untrusted/access network + untrusted_vlan_ids: + type: comma_delimited_list + description: List of VLAN IDs to use on the untrusted/access network + 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 + + # Unused network parameters + # + # This is used for connecting the unused 4th SSC service interface. + unused_port_net_id: + type: string + description: Unused network ID + constraints: + - custom_constraint: neutron.network + + # SSC parameters + ssc_flavor_name: + type: string + description: Flavor to use for creating SSC VM instance + constraints: + - custom_constraint: nova.flavor + ssc_image_name: + type: string + description: Glance image to use for launching SSC Perimeta instances. + constraints: + - custom_constraint: glance.image + ssc_a_name_0: + type: string + description: Name of VM A of SSC + constraints: + - allowed_pattern: '[a-zA-Z0-9][a-zA-Z0-9-]{0,31}$' + description: VM A name must be 32 characters or less and a valid hostname. Only alphanumeric characters plus hyphen are allowed. + ssc_b_name_0: + type: string + description: Name of VM B of SSC + constraints: + - allowed_pattern: '[a-zA-Z0-9][a-zA-Z0-9-]{0,31}$' + description: VM B name must be 32 characters or less and a valid hostname. Only alphanumeric characters plus hyphen are allowed. + ssc_system_name_0: + type: string + description: System name of SSC + constraints: + - allowed_pattern: '[a-zA-Z0-9][a-zA-Z0-9-]{0,31}$' + description: System name must be 32 characters or less and a valid hostname. Only alphanumeric characters plus hyphen are allowed. + + # SSC IP addresses on management network + ssc_mgmt_vip_0: + type: string + description: Management virtual IP address to use for SSC. Only required when predefining VIPs. + ssc_a_mgmt_ip_0: + type: string + description: Management fixed IP address to use for SSC A. Only required when predefining fixed IPs. + ssc_b_mgmt_ip_0: + type: string + description: Management fixed IP address to use for SSC B. Only required when predefining fixed IPs. + + # SSC IP addresses on internal HA network + ssc_a_int_ha_ip_0: + type: string + description: HA fixed IP address to use for SSC A. Only required when predefining fixed IPs. + ssc_b_int_ha_ip_0: + type: string + description: HA fixed IP address to use for SSC B. Only required when predefining fixed IPs. + + # SSC IP addresses on trusted/core network + ssc_trusted_vip_0: + type: string + description: Virtual IPv4 address on trusted/core network for SSC. + ssc_a_trusted_ip_0: + type: string + description: Fixed IPv4 address on trusted/core network for SSC A. Only required when predefining fixed IPs. + ssc_b_trusted_ip_0: + type: string + description: Fixed IPv4 address on trusted/core network for SSC B. Only required when predefining fixed IPs. + + # SSC IP addresses on untrusted/access network + ssc_untrusted_vip_0: + type: string + description: Virtual IPv4 address on untrusted/access network for SSC. Only required when predefining virtual IPs. + ssc_untrusted_v6_vip_0: + type: string + description: Virtual IPv6 address on untrusted/access network for SSC. Only required when predefining virtual IPs. + ssc_a_untrusted_ip_0: + type: string + description: Fixed IPv4 address on untrusted/access network for SSC A. Only required when predefining fixed IPs. + ssc_a_untrusted_v6_ip_0: + type: string + description: Fixed IPv6 address on untrusted/access network for SSC A. Only required when predefining fixed IPs. + ssc_b_untrusted_ip_0: + type: string + description: Fixed IPv4 address on untrusted/access network for SSC B. Only required when predefining fixed IPs. + ssc_b_untrusted_v6_ip_0: + type: string + description: Fixed IPv6 address on untrusted/access network for SSC B. Only required when predefining fixed IPs. + + # SSC IP addresses on management/Rf network + ssc_rf_vip_0: + type: string + description: Virtual IPv4 address on management/Rf network for SSC. Only required when predefining virtual IPs. + ssc_a_rf_ip_0: + type: string + description: Fixed IPv4 address on management/Rf network for SSC A. Only required when predefining fixed IPs. + ssc_b_rf_ip_0: + type: string + description: Fixed IPv4 address on management/Rf network for SSC B. Only required when predefining fixed IPs. + + # RTP MSC parameters + rtp_msc_count: + type: number + description: Count of required RTP MSCs + rtp_msc_index: + type: number + description: Index of RTP MSC to create/heal. + rtp_msc_flavor_name: + type: string + description: Flavor to use for creating RTP MSC VM instances + constraints: + - custom_constraint: nova.flavor + rtp_msc_image_name: + type: string + description: Glance image to use for launching RTP MSC Perimeta instances. + constraints: + - custom_constraint: glance.image + rtp_msc_a_names: + type: comma_delimited_list + description: List of names of RTP MSC VM A instances + rtp_msc_b_names: + type: comma_delimited_list + description: List of names of RTP MSC VM B instances + rtp_msc_system_names: + type: comma_delimited_list + description: List of system names of RTP MSC instances + + # RTP MSC IP addresses on management network + rtp_msc_mgmt_vips: + type: comma_delimited_list + description: Management virtual IP addresses to use for RTP MSC instances. There must be at least as many as the number of RTP MSCs. + rtp_msc_a_mgmt_ips: + type: comma_delimited_list + description: Management fixed IP addresses to use for RTP MSC A instances. There must be at least as many as the number of RTP MSCs. + rtp_msc_b_mgmt_ips: + type: comma_delimited_list + description: Management fixed IP addresses to use for RTP MSC B instances. There must be at least as many as the number of RTP MSCs. + + # RTP MSC IP addresses on internal HA network + rtp_msc_a_int_ha_ips: + type: comma_delimited_list + description: HA fixed IP addresses to use for RTP MSC A instances. There must be at least as many as the number of RTP MSCs. + rtp_msc_b_int_ha_ips: + type: comma_delimited_list + description: HA fixed IP addresses to use for RTP MSC B instances. There must be at least as many as the number of RTP MSCs. + + # RTP MSC IP addresses on trusted/core network + rtp_msc_trusted_vips: + type: comma_delimited_list + description: Virtual IPv4 addresses on trusted/core network for RTP MSC instances. There must be at least as many as the number of RTP MSCs. + rtp_msc_a_trusted_ips: + type: comma_delimited_list + description: Fixed IPv4 addresses on trusted/core network for RTP MSC A instances. There must be at least as many as the number of RTP MSCs. + rtp_msc_b_trusted_ips: + type: comma_delimited_list + description: Fixed IPv4 address on trusted/core network for RTP MSC B instances. There must be at least as many as the number of RTP MSCs. + + # RTP MSC IP addresses on untrusted/access network + rtp_msc_untrusted_vips: + type: comma_delimited_list + description: Virtual IPv4 address on untrusted/access network for RTP MSC instances. There must be at least as many as the number of RTP MSCs. + rtp_msc_untrusted_v6_vips: + type: comma_delimited_list + description: Virtual IPv6 address on untrusted/access network for RTP MSC instances. There must be at least as many as the number of RTP MSCs. + rtp_msc_a_untrusted_ips: + type: comma_delimited_list + description: Fixed IPv4 address on untrusted/access network for RTP MSC A instances. There must be at least as many as the number of RTP MSCs. + rtp_msc_a_untrusted_v6_ips: + type: comma_delimited_list + description: Fixed IPv6 address on untrusted/access network for RTP MSC A instances. There must be at least as many as the number of RTP MSCs. + rtp_msc_b_untrusted_ips: + type: comma_delimited_list + description: Fixed IPv4 address on untrusted/access network for RTP MSC B instances. There must be at least as many as the number of RTP MSCs. + rtp_msc_b_untrusted_v6_ips: + type: comma_delimited_list + description: Fixed IPv6 address on untrusted/access network for RTP MSC B instances. There must be at least as many as the number of RTP MSCs. + +resources: + + + # Perimeta RTP MSCs. + perimeta_rtp_mscs: + type: perimeta_ha_sw.yaml + properties: + vnf_id: { get_param: vnf_id } + vm_role: 'rtp_msc' + vf_module_id: { get_param: vf_module_id } + system_names: { get_param: rtp_msc_system_names } + vm_a_names: { get_param: rtp_msc_a_names } + vm_b_names: { get_param: rtp_msc_b_names } + perimeta_instance_index: { get_param: rtp_msc_index } + perimeta_image_name: { get_param: rtp_msc_image_name } + perimeta_flavor_name: { get_param: rtp_msc_flavor_name } + perimeta_keypair: { get_param: perimeta_keypair } + availability_zone_0: { get_param: availability_zone_0 } + availability_zone_1: { get_param: availability_zone_1 } + mgmt_net_id: { get_param: mgmt_net_id } + mgmt_net_plen: { get_param: mgmt_net_plen } + mgmt_net_default_gateway: { get_param: mgmt_net_default_gateway } + mgmt_vips: { get_param: rtp_msc_mgmt_vips } + mgmt_a_ips: { get_param: rtp_msc_a_mgmt_ips } + mgmt_b_ips: { get_param: rtp_msc_b_mgmt_ips } + mgmt_sec_groups: { get_param: mgmt_net_sec_groups } + ha_net_id: { get_param: int_ha_net_id } + ha_network_plen: { get_param: int_ha_net_plen } + ha_a_ips: { get_param: rtp_msc_a_int_ha_ips } + ha_b_ips: { get_param: rtp_msc_b_int_ha_ips } + ha_sec_groups: { get_param: int_ha_net_sec_groups } + trusted_net_id: { get_param: trusted_net_id } + trusted_vips: { get_param: rtp_msc_trusted_vips } + trusted_a_ips: { get_param: rtp_msc_a_trusted_ips } + trusted_b_ips: { get_param: rtp_msc_b_trusted_ips } + trusted_sec_groups: { get_param: trusted_net_sec_groups } + untrusted_net_id: { get_param: untrusted_net_id } + untrusted_vips: { get_param: rtp_msc_untrusted_vips } + untrusted_v6_vips: { get_param: rtp_msc_untrusted_v6_vips } + untrusted_a_ips: { get_param: rtp_msc_a_untrusted_ips } + untrusted_a_v6_ips: { get_param: rtp_msc_a_untrusted_v6_ips } + untrusted_b_ips: { get_param: rtp_msc_b_untrusted_ips } + untrusted_b_v6_ips: { get_param: rtp_msc_b_untrusted_v6_ips } + untrusted_sec_groups: { get_param: untrusted_net_sec_groups } + untrusted_num_vlans: { get_param: untrusted_num_vlans } + untrusted_vlan_ids: { get_param: untrusted_vlan_ids } + untrusted_vlan_networks: { get_param: untrusted_vlan_networks } + perimeta_param_server_group: { get_param: perimeta_param_server_group } + perimeta_config: + str_replace: + template: {get_file: msc_a_template.json} + params: + $NTP_SERVER_IP_ADDRS: { get_param: ntp_server_ip_addrs } + $COMPLETION_PARAMS: '' + + +outputs: + + + rtp_msc_server_groups: + description: Server groups for RTP MSC pairs + value: { get_attr: [ perimeta_rtp_mscs, server_group_used ] } + + + msw_template_version: + description: Version of the heat templates used to instantiate the VMs + value: "4.0.1 - 2016-10-28" diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/subInterfaceToInterfaceConnection/vTSBC_AIC/inputfiles/msc_a_template.json b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/subInterfaceToInterfaceConnection/vTSBC_AIC/inputfiles/msc_a_template.json new file mode 100644 index 0000000000..4b474f07da --- /dev/null +++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/subInterfaceToInterfaceConnection/vTSBC_AIC/inputfiles/msc_a_template.json @@ -0,0 +1,33 @@ +{ + // The vnic_assignment parameter is ignored by Perimeta releases prior to + // V4.0.00. + "vnic_assignment": { + "IBG1mgmt": {"mac": "$MGMT_MACADDR"}, + "IPG1": {"mac": "$HA_MACADDR"}, + "RPG1": {"mac": "$TRUSTED_MACADDR"}, + "RPG2": {"mac": "$UNTRUSTED_MACADDR"} + }, + "autocommission":"MSC", + "autostart":"true", + "autopartner":"", + "ip_mgmt_global": "$VIRT_MGMT_IP_ADDR", + "ip_mgmt_local": "$LOCAL_MGMT_IP_ADDR", + "ip_mgmt_remote": "$REMOTE_MGMT_IP_ADDR", + "ip_mgmt_plen": "$MGMT_NETWORK_PLEN", + "ip_mgmt_gway": "$MGMT_NETWORK_DEFAULT_GATEWAY", + "ip_ha_local": "$LOCAL_HA_IP_ADDR", + "ip_ha_remote": "$REMOTE_HA_IP_ADDR", + "ip_ha_plen": "$HA_NETWORK_PLEN", + "system_name": "$SYSTEM_NAME", + "node_local": "$VM_NAME_A", + "node_remote": "$VM_NAME_B", + "ntp_servers": "$NTP_SERVER_IP_ADDRS", + "advanced_media_cpus": "2", + "perimeta": { + "dpdk_opt_enable":true, + "vlans_opt_enable":true + } + + //$COMPLETION_PARAMS +} + diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/subInterfaceToInterfaceConnection/vTSBC_AIC/inputfiles/perimeta_ha_sw.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/subInterfaceToInterfaceConnection/vTSBC_AIC/inputfiles/perimeta_ha_sw.yaml new file mode 100644 index 0000000000..5ba3e968ad --- /dev/null +++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/subInterfaceToInterfaceConnection/vTSBC_AIC/inputfiles/perimeta_ha_sw.yaml @@ -0,0 +1,480 @@ +# Heat template which intstantiates a 1+1 HA Perimeta instance with 4 or 5 +# 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 a Perimeta 1+1 HA instance with 4vNICs as part of a nested template + +parameters: + 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 + system_names: + type: comma_delimited_list + description: List of system names of Perimeta instances. Name of a specific instance is indexed by perimeta_instance_index + vm_a_names: + type: comma_delimited_list + description: List of names of Perimeta VM A instances, indexed by perimeta_instance_index + vm_b_names: + type: comma_delimited_list + description: List of names of Perimeta VM A instances, indexed by perimeta_instance_index + 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. + perimeta_image_name: + type: string + description: Glance image for Perimeta instance + constraints: + - custom_constraint: glance.image + perimeta_flavor_name: + type: string + description: Flavor to use for creating VM instances + constraints: + - custom_constraint: nova.flavor + perimeta_keypair: + type: string + description: Keypair to use for accessing this Perimeta instance + constraints: + - custom_constraint: nova.keypair + availability_zone_0: + # Can be commented out along with references if always using a single availability zone + type: string + description: Availability zone for A instances. + 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 + constraints: + - custom_constraint: neutron.network + mgmt_net_plen: + type: string + description: Prefix length of management network + mgmt_net_default_gateway: + type: string + description: IP address of management default gateway + mgmt_vips: + type: comma_delimited_list + description: List of management virtual IP addresses for all instances. + mgmt_a_ips: + type: comma_delimited_list + description: List of fixed IP addresses to use as management IPs of A instances. + mgmt_b_ips: + type: comma_delimited_list + description: List of fixed IP addresses to use as management IPs of B instances. + mgmt_sec_groups: + type: comma_delimited_list + description: List of security groups to add on management interfaces. + ha_net_id: + type: string + description: HA network id + constraints: + - custom_constraint: neutron.network + ha_network_plen: + type: number + constraints: + - range: { min: 0, max: 32 } + description: ha_network_plen must be between 0 and 32 + ha_a_ips: + type: comma_delimited_list + description: List of fixed IP addresses to use as HA IPs of A instances. + ha_b_ips: + type: comma_delimited_list + description: List of fixed IP addresses to use as HA IPs of B instances. + ha_sec_groups: + type: comma_delimited_list + description: List of security groups to add on HA interfaces. + trusted_net_id: + type: string + description: Service network 1 network UUID + constraints: + - custom_constraint: neutron.network + trusted_vips: + type: comma_delimited_list + description: List of service network 1 virtual IP addresses for all instances. + trusted_a_ips: + type: comma_delimited_list + description: List of fixed IP addresses to use as trusted fixed IPs of A instances. + trusted_b_ips: + type: comma_delimited_list + description: List of fixed IP addresses to use as trusted fixed IPs of B instances. + trusted_sec_groups: + type: comma_delimited_list + description: List of security groups to add on trusted interfaces. + untrusted_net_id: + type: string + description: Service network 2 network UUID + constraints: + - custom_constraint: neutron.network + untrusted_vips: + type: comma_delimited_list + description: List of service network 2 virtual IP addresses for all instances. + untrusted_v6_vips: + type: comma_delimited_list + description: List of service network 2 alternate virtual IP addresses for all instances. + untrusted_a_ips: + type: comma_delimited_list + description: List of fixed IP addresses to use as untrusted fixed IPs of A instances. + untrusted_a_v6_ips: + type: comma_delimited_list + description: List of fixed IP addresses to use as untrusted alternate fixed IPs of A instances. + untrusted_b_ips: + type: comma_delimited_list + description: List of fixed IP addresses to use as untrusted fixed IPs of B instances. + untrusted_b_v6_ips: + type: comma_delimited_list + description: List of fixed IP addresses to use as untrusted alternate fixed IPs of B instances. + untrusted_sec_groups: + type: comma_delimited_list + description: List of security groups to add on untrusted interfaces. + untrusted_num_vlans: + type: number + description: Number of VLANs to connect to on the untrusted/access network + untrusted_vlan_ids: + type: comma_delimited_list + description: List of VLAN IDs to use on the untrusted/access network + 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_param_server_group: + type: string + description: Server group to use for these VMs - ignored + perimeta_config: + type: string + description: Orchestration template configuration for instance. + +resources: + + # Perimeta management ports + perimeta_a_mgmt_0_port: + type: OS::Neutron::Port + properties: + name: + str_replace: + template: $VM_mgmt_port + params: + $VM: { get_param: [ vm_a_names, { get_param: perimeta_instance_index } ] } + network_id: { get_param: mgmt_net_id } + fixed_ips: + - ip_address: { get_param: [ mgmt_a_ips, { get_param: perimeta_instance_index } ] } + security_groups: { get_param: mgmt_sec_groups } + allowed_address_pairs: + - ip_address: { get_param: [ mgmt_vips, { get_param: perimeta_instance_index } ] } + + perimeta_b_mgmt_0_port: + type: OS::Neutron::Port + properties: + name: + str_replace: + template: $VM_mgmt_port + params: + $VM: { get_param: [ vm_b_names, { get_param: perimeta_instance_index } ] } + network_id: { get_param: mgmt_net_id } + fixed_ips: + - ip_address: { get_param: [ mgmt_b_ips, { get_param: perimeta_instance_index } ] } + security_groups: { get_param: mgmt_sec_groups } + allowed_address_pairs: + - ip_address: { get_param: [ mgmt_vips, { get_param: perimeta_instance_index } ] } + + # Perimeta HA ports + perimeta_a_ha_0_port: + type: OS::Neutron::Port + properties: + name: + str_replace: + template: $VM_ha_port + params: + $VM: { get_param: [ vm_a_names, { get_param: perimeta_instance_index } ] } + network_id: { get_param: ha_net_id } + fixed_ips: + - ip_address: { get_param: [ ha_a_ips, { get_param: perimeta_instance_index } ] } + security_groups: { get_param: ha_sec_groups } + + perimeta_b_ha_0_port: + type: OS::Neutron::Port + properties: + name: + str_replace: + template: $VM_ha_port + params: + $VM: { get_param: [ vm_b_names, { get_param: perimeta_instance_index } ] } + network_id: { get_param: ha_net_id } + fixed_ips: + - ip_address: { get_param: [ ha_b_ips, { get_param: perimeta_instance_index } ] } + security_groups: { get_param: ha_sec_groups } + + # Perimeta core/trusted service network ports + # + # Dual stack core network - if only IPv4 required, comment out second entry + # in fixed_ips and allowed_addrsess_pairs parameters. + perimeta_a_trusted_0_port: + type: OS::Neutron::Port + properties: + name: + str_replace: + template: $VM_trusted_port + params: + $VM: { get_param: [ vm_a_names, { get_param: perimeta_instance_index } ] } + network_id: { get_param: trusted_net_id } + fixed_ips: + - ip_address: { get_param: [ trusted_a_ips, { get_param: perimeta_instance_index } ] } + security_groups: { get_param: trusted_sec_groups } + allowed_address_pairs: + - ip_address: { get_param: [ trusted_vips, { get_param: perimeta_instance_index } ] } + + perimeta_b_trusted_0_port: + type: OS::Neutron::Port + properties: + name: + str_replace: + template: $VM_trusted_port + params: + $VM: { get_param: [ vm_b_names, { get_param: perimeta_instance_index } ] } + network_id: { get_param: trusted_net_id } + fixed_ips: + - ip_address: { get_param: [ trusted_b_ips, { get_param: perimeta_instance_index } ] } + security_groups: { get_param: trusted_sec_groups } + allowed_address_pairs: + - ip_address: { get_param: [ trusted_vips, { get_param: perimeta_instance_index } ] } + + # Perimeta access/untrusted service network ports + # + # Dual stack access network - if only IPv4 required, comment out second entry + # in fixed_ips and allowed_addrsess_pairs parameters. + perimeta_a_untrusted_0_port: + type: OS::Neutron::Port + properties: + name: + str_replace: + template: $VM_untrusted_port + params: + $VM: { get_param: [ vm_a_names, { get_param: perimeta_instance_index } ] } + network_id: { get_param: untrusted_net_id } + fixed_ips: + - ip_address: { get_param: [ untrusted_a_ips, { get_param: perimeta_instance_index } ] } + - ip_address: { get_param: [ untrusted_a_v6_ips, { get_param: perimeta_instance_index } ] } + security_groups: { get_param: untrusted_sec_groups } + allowed_address_pairs: + - ip_address: { get_param: [ untrusted_vips, { get_param: perimeta_instance_index } ] } + - ip_address: { get_param: [ untrusted_v6_vips, { get_param: perimeta_instance_index } ] } + + # Contrail VLAN subinterfaces + perimeta_a_untrusted_0_vlan_ports: + type: OS::Heat::ResourceGroup + properties: + count: { get_param: untrusted_num_vlans } + resource_def: + type: vlan_subinterface_dual.yaml + properties: + subinterface_instance_index: "%index%" + subinterface_name_prefix: + str_replace: + template: $VM_untrusted_port_vlan_ + params: + $VM: { get_param: [ vm_a_names, { get_param: perimeta_instance_index } ] } + parent_interface: { get_resource: perimeta_a_untrusted_0_port } + mac_address: { get_attr: [ perimeta_a_untrusted_0_port, mac_address ] } + ip_address: { get_param: [ untrusted_a_ips, { get_param: perimeta_instance_index } ] } + ipv6_address: { get_param: [ untrusted_a_v6_ips, { get_param: perimeta_instance_index } ] } + virtual_ip_address: { get_param: [ untrusted_vips, { get_param: perimeta_instance_index } ] } + virtual_ipv6_address: { get_param: [ untrusted_v6_vips, { get_param: perimeta_instance_index } ] } + vlan_ids: { get_param: untrusted_vlan_ids } + vlan_networks: { get_param: untrusted_vlan_networks } + + perimeta_b_untrusted_0_port: + type: OS::Neutron::Port + properties: + name: + str_replace: + template: $VM_untrusted_port + params: + $VM: { get_param: [ vm_b_names, { get_param: perimeta_instance_index } ] } + network_id: { get_param: untrusted_net_id } + fixed_ips: + - ip_address: { get_param: [ untrusted_b_ips, { get_param: perimeta_instance_index } ] } + - ip_address: { get_param: [ untrusted_b_v6_ips, { get_param: perimeta_instance_index } ] } + security_groups: { get_param: untrusted_sec_groups } + allowed_address_pairs: + - ip_address: { get_param: [ untrusted_vips, { get_param: perimeta_instance_index } ] } + - ip_address: { get_param: [ untrusted_v6_vips, { get_param: perimeta_instance_index } ] } + + # Contrail VLAN subinterfaces + perimeta_b_untrusted_0_vlan_ports: + type: OS::Heat::ResourceGroup + properties: + count: { get_param: untrusted_num_vlans } + resource_def: + type: vlan_subinterface_dual.yaml + properties: + subinterface_instance_index: "%index%" + subinterface_name_prefix: + str_replace: + template: $VM_untrusted_port_vlan_ + params: + $VM: { get_param: [ vm_b_names, { get_param: perimeta_instance_index } ] } + parent_interface: { get_resource: perimeta_b_untrusted_0_port } + mac_address: { get_attr: [ perimeta_b_untrusted_0_port, mac_address ] } + ip_address: { get_param: [ untrusted_b_ips, { get_param: perimeta_instance_index } ] } + ipv6_address: { get_param: [ untrusted_b_v6_ips, { get_param: perimeta_instance_index } ] } + virtual_ip_address: { get_param: [ untrusted_vips, { get_param: perimeta_instance_index } ] } + virtual_ipv6_address: { get_param: [ untrusted_v6_vips, { get_param: perimeta_instance_index } ] } + vlan_ids: { get_param: untrusted_vlan_ids } + vlan_networks: { get_param: untrusted_vlan_networks } + + # Perimeta Rf service network ports (SSC only) + # + # Dual stack access network - if only IPv4 required, comment out second entry + # in fixed_ips and allowed_addrsess_pairs parameters. + # Add any additional service ports here. + + # Only supported in Juno and beyond - used to enforce host anti-affinity + # Can be commented out along with references to it if always using + # different availability zones. + perimeta_server_group: + type: OS::Nova::ServerGroup + properties: + name: + str_replace: + template: $SYSTEM_server_group + params: + $SYSTEM: { get_param: [ system_names, { get_param: perimeta_instance_index } ] } + policies: ['anti-affinity'] + + perimeta_a_server_0: + type: OS::Nova::Server + depends_on: perimeta_b_server_0 + properties: + name: { get_param: [ vm_a_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_resource: perimeta_server_group } } + metadata: + 'vnf_id': { get_param: vnf_id } + 'vm_role': + str_replace: + template: $ROLE_a + params: + $ROLE: { get_param: vm_role } + 'vf_module_id': { get_param: vf_module_id } + personality: + '/opt/MetaSwitch/init/custom.ini': { get_file: custom.ini } + + networks: + - port: { get_resource: perimeta_a_mgmt_0_port } + - port: { get_resource: perimeta_a_ha_0_port } + - port: { get_resource: perimeta_a_trusted_0_port } + - port: { get_resource: perimeta_a_untrusted_0_port } + availability_zone: { get_param: availability_zone_0 } + config_drive: True + user_data_format: RAW + user_data: + str_replace: + template: { get_param: perimeta_config } + params: + $MGMT_MACADDR: { get_attr: [perimeta_a_mgmt_0_port, mac_address] } + $HA_MACADDR: { get_attr: [perimeta_a_ha_0_port, mac_address] } + $TRUSTED_MACADDR: { get_attr: [perimeta_a_trusted_0_port, mac_address] } + $UNTRUSTED_MACADDR: { get_attr: [perimeta_a_untrusted_0_port, mac_address] } + $LOCAL_HA_IP_ADDR: { get_param: [ ha_a_ips, { get_param: perimeta_instance_index } ] } + $REMOTE_HA_IP_ADDR: { get_param: [ ha_b_ips, { get_param: perimeta_instance_index } ] } + $HA_NETWORK_PLEN: { get_param: ha_network_plen } + $LOCAL_MGMT_IP_ADDR: { get_param: [ mgmt_a_ips, { get_param: perimeta_instance_index } ] } + $REMOTE_MGMT_IP_ADDR: { get_param: [ mgmt_b_ips, { get_param: perimeta_instance_index } ] } + $MGMT_NETWORK_PLEN: { get_param: mgmt_net_plen } + $MGMT_NETWORK_DEFAULT_GATEWAY: { get_param: mgmt_net_default_gateway } + $VIRT_MGMT_IP_ADDR: { get_param: [ mgmt_vips, { get_param: perimeta_instance_index } ] } + $VIRT_TRUSTED_IP_ADDR: { get_param: [ trusted_vips, { get_param: perimeta_instance_index } ] } + $LOCAL_TRUSTED_IP_ADDR: { get_param: [ trusted_a_ips, { get_param: perimeta_instance_index } ] } + $REMOTE_TRUSTED_IP_ADDR: { get_param: [ trusted_b_ips, { get_param: perimeta_instance_index } ] } + $VIRT_UNTRUSTED_IP_ADDR: { get_param: [ untrusted_vips, { get_param: perimeta_instance_index } ] } + $VIRT_UNTRUSTED_ALT_IP_ADDR: { get_param: [ untrusted_v6_vips, { get_param: perimeta_instance_index } ] } + $LOCAL_UNTRUSTED_IP_ADDR: { get_param: [ untrusted_a_ips, { get_param: perimeta_instance_index } ] } + $LOCAL_UNTRUSTED_ALT_IP_ADDR: { get_param: [ untrusted_a_v6_ips, { get_param: perimeta_instance_index } ] } + $REMOTE_UNTRUSTED_IP_ADDR: { get_param: [ untrusted_b_ips, { get_param: perimeta_instance_index } ] } + $REMOTE_UNTRUSTED_ALT_IP_ADDR: { get_param: [ untrusted_b_v6_ips, { get_param: perimeta_instance_index } ] } + $VM_NAME_A: { get_param: [ vm_a_names, { get_param: perimeta_instance_index } ] } + $VM_NAME_B: { get_param: [ vm_b_names, { get_param: perimeta_instance_index } ] } + $SYSTEM_NAME: { get_param: [ system_names, { get_param: perimeta_instance_index } ] } + + perimeta_b_server_0: + type: OS::Nova::Server + properties: + name: { get_param: [ vm_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_resource: perimeta_server_group } } + metadata: + '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 } + networks: + - port: { get_resource: perimeta_b_mgmt_0_port } + - port: { get_resource: perimeta_b_ha_0_port } + - port: { get_resource: perimeta_b_trusted_0_port } + - port: { get_resource: perimeta_b_untrusted_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" + //"ip_mgmt_local": "$LOCAL_MGMT_IP_ADDR", + //"ip_mgmt_remote": "$REMOTE_MGMT_IP_ADDR", + //"ip_mgmt_plen": "$MGMT_NETWORK_PLEN", + //"ip_mgmt_gway": "$MGMT_NETWORK_DEFAULT_GATEWAY" + } + + params: + $MGMT_MACADDR: { get_attr: [perimeta_b_mgmt_0_port, mac_address] } + $HA_MACADDR: { get_attr: [perimeta_b_ha_0_port, mac_address] } + $TRUSTED_MACADDR: { get_attr: [perimeta_b_trusted_0_port, mac_address] } + $UNTRUSTED_MACADDR: { get_attr: [perimeta_b_untrusted_0_port, mac_address] } + $LOCAL_HA_IP_ADDR: { get_param: [ ha_b_ips, { get_param: perimeta_instance_index } ] } + $REMOTE_HA_IP_ADDR: { get_param: [ ha_a_ips, { get_param: perimeta_instance_index } ] } + $HA_NETWORK_PLEN: { get_param: ha_network_plen } + $LOCAL_MGMT_IP_ADDR: { get_param: [ mgmt_b_ips, { get_param: perimeta_instance_index } ] } + $REMOTE_MGMT_IP_ADDR: { get_param: [ mgmt_a_ips, { get_param: perimeta_instance_index } ] } + $MGMT_NETWORK_PLEN: { get_param: mgmt_net_plen } + $MGMT_NETWORK_DEFAULT_GATEWAY: { get_param: mgmt_net_default_gateway } + +outputs: + + server_group_used: + description: Server group used for these VMs + value: { get_resource: perimeta_server_group } diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/subInterfaceToInterfaceConnection/vTSBC_AIC/inputfiles/perimeta_ha_sw_a.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/subInterfaceToInterfaceConnection/vTSBC_AIC/inputfiles/perimeta_ha_sw_a.yaml new file mode 100644 index 0000000000..4f489e4ffc --- /dev/null +++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/subInterfaceToInterfaceConnection/vTSBC_AIC/inputfiles/perimeta_ha_sw_a.yaml @@ -0,0 +1,332 @@ +# Heat template which intstantiates a 1+1 HA Perimeta instance with 4 or 5 +# 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 a Perimeta 1+1 HA instance with 4vNICs as part of a nested template + +parameters: + 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 + system_names: + type: comma_delimited_list + description: List of system names of Perimeta instances. Name of a specific instance is indexed by perimeta_instance_index + vm_a_names: + type: comma_delimited_list + description: List of names of Perimeta VM A instances, indexed by perimeta_instance_index + vm_b_names: + type: comma_delimited_list + description: List of names of Perimeta VM A instances, indexed by perimeta_instance_index + 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. + perimeta_image_name: + type: string + description: Glance image for Perimeta instance + constraints: + - custom_constraint: glance.image + perimeta_flavor_name: + type: string + description: Flavor to use for creating VM instances + constraints: + - custom_constraint: nova.flavor + perimeta_keypair: + type: string + description: Keypair to use for accessing this Perimeta instance + constraints: + - custom_constraint: nova.keypair + availability_zone_0: + # Can be commented out along with references if always using a single availability zone + type: string + description: Availability zone for A instances. + 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 + constraints: + - custom_constraint: neutron.network + mgmt_net_plen: + type: string + description: Prefix length of management network + mgmt_net_default_gateway: + type: string + description: IP address of management default gateway + mgmt_vips: + type: comma_delimited_list + description: List of management virtual IP addresses for all instances. + mgmt_a_ips: + type: comma_delimited_list + description: List of fixed IP addresses to use as management IPs of A instances. + mgmt_b_ips: + type: comma_delimited_list + description: List of fixed IP addresses to use as management IPs of B instances. + mgmt_sec_groups: + type: comma_delimited_list + description: List of security groups to add on management interfaces. + ha_net_id: + type: string + description: HA network id + constraints: + - custom_constraint: neutron.network + ha_network_plen: + type: number + constraints: + - range: { min: 0, max: 32 } + description: ha_network_plen must be between 0 and 32 + ha_a_ips: + type: comma_delimited_list + description: List of fixed IP addresses to use as HA IPs of A instances. + ha_b_ips: + type: comma_delimited_list + description: List of fixed IP addresses to use as HA IPs of B instances. + ha_sec_groups: + type: comma_delimited_list + description: List of security groups to add on HA interfaces. + trusted_net_id: + type: string + description: Service network 1 network UUID + constraints: + - custom_constraint: neutron.network + trusted_vips: + type: comma_delimited_list + description: List of service network 1 virtual IP addresses for all instances. + trusted_a_ips: + type: comma_delimited_list + description: List of fixed IP addresses to use as trusted fixed IPs of A instances. + trusted_b_ips: + type: comma_delimited_list + description: List of fixed IP addresses to use as trusted fixed IPs of B instances. + trusted_sec_groups: + type: comma_delimited_list + description: List of security groups to add on trusted interfaces. + untrusted_net_id: + type: string + description: Service network 2 network UUID + constraints: + - custom_constraint: neutron.network + untrusted_vips: + type: comma_delimited_list + description: List of service network 2 virtual IP addresses for all instances. + untrusted_v6_vips: + type: comma_delimited_list + description: List of service network 2 alternate virtual IP addresses for all instances. + untrusted_a_ips: + type: comma_delimited_list + description: List of fixed IP addresses to use as untrusted fixed IPs of A instances. + untrusted_a_v6_ips: + type: comma_delimited_list + description: List of fixed IP addresses to use as untrusted alternate fixed IPs of A instances. + untrusted_b_ips: + type: comma_delimited_list + description: List of fixed IP addresses to use as untrusted fixed IPs of B instances. + untrusted_b_v6_ips: + type: comma_delimited_list + description: List of fixed IP addresses to use as untrusted alternate fixed IPs of B instances. + untrusted_sec_groups: + type: comma_delimited_list + description: List of security groups to add on untrusted interfaces. + untrusted_num_vlans: + type: number + description: Number of VLANs to connect to on the untrusted/access network + untrusted_vlan_ids: + type: comma_delimited_list + description: List of VLAN IDs to use on the untrusted/access network + 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_param_server_group: + type: string + description: Server group to use for these VMs - ignored + perimeta_config: + type: string + description: Orchestration template configuration for instance. + +resources: + + # Perimeta management ports + perimeta_a_mgmt_0_port: + type: OS::Neutron::Port + properties: + name: + str_replace: + template: $VM_mgmt_port + params: + $VM: { get_param: [ vm_a_names, { get_param: perimeta_instance_index } ] } + network_id: { get_param: mgmt_net_id } + fixed_ips: + - ip_address: { get_param: [ mgmt_a_ips, { get_param: perimeta_instance_index } ] } + security_groups: { get_param: mgmt_sec_groups } + allowed_address_pairs: + - ip_address: { get_param: [ mgmt_vips, { get_param: perimeta_instance_index } ] } + + # Perimeta HA ports + perimeta_a_ha_0_port: + type: OS::Neutron::Port + properties: + name: + str_replace: + template: $VM_ha_port + params: + $VM: { get_param: [ vm_a_names, { get_param: perimeta_instance_index } ] } + network_id: { get_param: ha_net_id } + fixed_ips: + - ip_address: { get_param: [ ha_a_ips, { get_param: perimeta_instance_index } ] } + security_groups: { get_param: ha_sec_groups } + + # Perimeta core/trusted service network ports + # + # Dual stack core network - if only IPv4 required, comment out second entry + # in fixed_ips and allowed_addrsess_pairs parameters. + perimeta_a_trusted_0_port: + type: OS::Neutron::Port + properties: + name: + str_replace: + template: $VM_trusted_port + params: + $VM: { get_param: [ vm_a_names, { get_param: perimeta_instance_index } ] } + network_id: { get_param: trusted_net_id } + fixed_ips: + - ip_address: { get_param: [ trusted_a_ips, { get_param: perimeta_instance_index } ] } + security_groups: { get_param: trusted_sec_groups } + allowed_address_pairs: + - ip_address: { get_param: [ trusted_vips, { get_param: perimeta_instance_index } ] } + + # Perimeta access/untrusted service network ports + # + # Dual stack access network - if only IPv4 required, comment out second entry + # in fixed_ips and allowed_addrsess_pairs parameters. + perimeta_a_untrusted_0_port: + type: OS::Neutron::Port + properties: + name: + str_replace: + template: $VM_untrusted_port + params: + $VM: { get_param: [ vm_a_names, { get_param: perimeta_instance_index } ] } + network_id: { get_param: untrusted_net_id } + fixed_ips: + - ip_address: { get_param: [ untrusted_a_ips, { get_param: perimeta_instance_index } ] } + - ip_address: { get_param: [ untrusted_a_v6_ips, { get_param: perimeta_instance_index } ] } + security_groups: { get_param: untrusted_sec_groups } + allowed_address_pairs: + - ip_address: { get_param: [ untrusted_vips, { get_param: perimeta_instance_index } ] } + - ip_address: { get_param: [ untrusted_v6_vips, { get_param: perimeta_instance_index } ] } + + # Contrail VLAN subinterfaces + perimeta_a_untrusted_0_vlan_ports: + type: OS::Heat::ResourceGroup + properties: + count: { get_param: untrusted_num_vlans } + resource_def: + type: vlan_subinterface_dual.yaml + properties: + subinterface_instance_index: "%index%" + subinterface_name_prefix: + str_replace: + template: $VM_untrusted_port_vlan_ + params: + $VM: { get_param: [ vm_a_names, { get_param: perimeta_instance_index } ] } + parent_interface: { get_resource: perimeta_a_untrusted_0_port } + mac_address: { get_attr: [ perimeta_a_untrusted_0_port, mac_address ] } + ip_address: { get_param: [ untrusted_a_ips, { get_param: perimeta_instance_index } ] } + ipv6_address: { get_param: [ untrusted_a_v6_ips, { get_param: perimeta_instance_index } ] } + virtual_ip_address: { get_param: [ untrusted_vips, { get_param: perimeta_instance_index } ] } + virtual_ipv6_address: { get_param: [ untrusted_v6_vips, { get_param: perimeta_instance_index } ] } + vlan_ids: { get_param: untrusted_vlan_ids } + vlan_networks: { get_param: untrusted_vlan_networks } + + # Perimeta Rf service network ports (SSC only) + # + # Dual stack access network - if only IPv4 required, comment out second entry + # in fixed_ips and allowed_addrsess_pairs parameters. + # Add any additional service ports here. + + perimeta_a_server_0: + type: OS::Nova::Server +# depends_on: perimeta_b_server_0 + properties: + name: { get_param: [ vm_a_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_param_server_group } } + metadata: + 'vnf_id': { get_param: vnf_id } + 'vm_role': + str_replace: + template: $ROLE_a + params: + $ROLE: { get_param: vm_role } + 'vf_module_id': { get_param: vf_module_id } + personality: + '/opt/MetaSwitch/init/custom.ini': { get_file: custom.ini } + + networks: + - port: { get_resource: perimeta_a_mgmt_0_port } + - port: { get_resource: perimeta_a_ha_0_port } + - port: { get_resource: perimeta_a_trusted_0_port } + - port: { get_resource: perimeta_a_untrusted_0_port } + availability_zone: { get_param: availability_zone_0 } + 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" + // "ip_mgmt_local": "$LOCAL_MGMT_IP_ADDR", + // "ip_mgmt_remote": "$REMOTE_MGMT_IP_ADDR", + // "ip_mgmt_plen": "$MGMT_NETWORK_PLEN", + // "ip_mgmt_gway": "$MGMT_NETWORK_DEFAULT_GATEWAY" + } + + params: + $MGMT_MACADDR: { get_attr: [perimeta_a_mgmt_0_port, mac_address] } + $HA_MACADDR: { get_attr: [perimeta_a_ha_0_port, mac_address] } + $TRUSTED_MACADDR: { get_attr: [perimeta_a_trusted_0_port, mac_address] } + $UNTRUSTED_MACADDR: { get_attr: [perimeta_a_untrusted_0_port, mac_address] } + $LOCAL_HA_IP_ADDR: { get_param: [ ha_a_ips, { get_param: perimeta_instance_index } ] } + $REMOTE_HA_IP_ADDR: { get_param: [ ha_b_ips, { get_param: perimeta_instance_index } ] } + $HA_NETWORK_PLEN: { get_param: ha_network_plen } + $LOCAL_MGMT_IP_ADDR: { get_param: [ mgmt_a_ips, { get_param: perimeta_instance_index } ] } + $REMOTE_MGMT_IP_ADDR: { get_param: [ mgmt_b_ips, { get_param: perimeta_instance_index } ] } + $MGMT_NETWORK_PLEN: { get_param: mgmt_net_plen } + $MGMT_NETWORK_DEFAULT_GATEWAY: { get_param: mgmt_net_default_gateway } + + +outputs: + + server_group_used: + description: Server group used for these VMs + value: { get_param: perimeta_param_server_group } diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/subInterfaceToInterfaceConnection/vTSBC_AIC/inputfiles/perimeta_ha_sw_b.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/subInterfaceToInterfaceConnection/vTSBC_AIC/inputfiles/perimeta_ha_sw_b.yaml new file mode 100644 index 0000000000..4b68c3adf2 --- /dev/null +++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/subInterfaceToInterfaceConnection/vTSBC_AIC/inputfiles/perimeta_ha_sw_b.yaml @@ -0,0 +1,327 @@ +# Heat template which intstantiates a 1+1 HA Perimeta instance with 4 or 5 +# 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 a Perimeta 1+1 HA instance with 4vNICs as part of a nested template + +parameters: + 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 + system_names: + type: comma_delimited_list + description: List of system names of Perimeta instances. Name of a specific instance is indexed by perimeta_instance_index + vm_a_names: + type: comma_delimited_list + description: List of names of Perimeta VM A instances, indexed by perimeta_instance_index + vm_b_names: + type: comma_delimited_list + description: List of names of Perimeta VM A instances, indexed by perimeta_instance_index + 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. + perimeta_image_name: + type: string + description: Glance image for Perimeta instance + constraints: + - custom_constraint: glance.image + perimeta_flavor_name: + type: string + description: Flavor to use for creating VM instances + constraints: + - custom_constraint: nova.flavor + perimeta_keypair: + type: string + description: Keypair to use for accessing this Perimeta instance + constraints: + - custom_constraint: nova.keypair + availability_zone_0: + # Can be commented out along with references if always using a single availability zone + type: string + description: Availability zone for A instances. + 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 + constraints: + - custom_constraint: neutron.network + mgmt_net_plen: + type: string + description: Prefix length of management network + mgmt_net_default_gateway: + type: string + description: IP address of management default gateway + mgmt_vips: + type: comma_delimited_list + description: List of management virtual IP addresses for all instances. + mgmt_a_ips: + type: comma_delimited_list + description: List of fixed IP addresses to use as management IPs of A instances. + mgmt_b_ips: + type: comma_delimited_list + description: List of fixed IP addresses to use as management IPs of B instances. + mgmt_sec_groups: + type: comma_delimited_list + description: List of security groups to add on management interfaces. + ha_net_id: + type: string + description: HA network id + constraints: + - custom_constraint: neutron.network + ha_network_plen: + type: number + constraints: + - range: { min: 0, max: 32 } + description: ha_network_plen must be between 0 and 32 + ha_a_ips: + type: comma_delimited_list + description: List of fixed IP addresses to use as HA IPs of A instances. + ha_b_ips: + type: comma_delimited_list + description: List of fixed IP addresses to use as HA IPs of B instances. + ha_sec_groups: + type: comma_delimited_list + description: List of security groups to add on HA interfaces. + trusted_net_id: + type: string + description: Service network 1 network UUID + constraints: + - custom_constraint: neutron.network + trusted_vips: + type: comma_delimited_list + description: List of service network 1 virtual IP addresses for all instances. + trusted_a_ips: + type: comma_delimited_list + description: List of fixed IP addresses to use as trusted fixed IPs of A instances. + trusted_b_ips: + type: comma_delimited_list + description: List of fixed IP addresses to use as trusted fixed IPs of B instances. + trusted_sec_groups: + type: comma_delimited_list + description: List of security groups to add on trusted interfaces. + untrusted_net_id: + type: string + description: Service network 2 network UUID + constraints: + - custom_constraint: neutron.network + untrusted_vips: + type: comma_delimited_list + description: List of service network 2 virtual IP addresses for all instances. + untrusted_v6_vips: + type: comma_delimited_list + description: List of service network 2 alternate virtual IP addresses for all instances. + untrusted_a_ips: + type: comma_delimited_list + description: List of fixed IP addresses to use as untrusted fixed IPs of A instances. + untrusted_a_v6_ips: + type: comma_delimited_list + description: List of fixed IP addresses to use as untrusted alternate fixed IPs of A instances. + untrusted_b_ips: + type: comma_delimited_list + description: List of fixed IP addresses to use as untrusted fixed IPs of B instances. + untrusted_b_v6_ips: + type: comma_delimited_list + description: List of fixed IP addresses to use as untrusted alternate fixed IPs of B instances. + untrusted_sec_groups: + type: comma_delimited_list + description: List of security groups to add on untrusted interfaces. + untrusted_num_vlans: + type: number + description: Number of VLANs to connect to on the untrusted/access network + untrusted_vlan_ids: + type: comma_delimited_list + description: List of VLAN IDs to use on the untrusted/access network + 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_param_server_group: + type: string + description: Server group to use for these VMs - ignored + perimeta_config: + type: string + description: Orchestration template configuration for instance. + +resources: + + # Perimeta management ports + perimeta_b_mgmt_0_port: + type: OS::Neutron::Port + properties: + name: + str_replace: + template: $VM_mgmt_port + params: + $VM: { get_param: [ vm_b_names, { get_param: perimeta_instance_index } ] } + network_id: { get_param: mgmt_net_id } + fixed_ips: + - ip_address: { get_param: [ mgmt_b_ips, { get_param: perimeta_instance_index } ] } + security_groups: { get_param: mgmt_sec_groups } + allowed_address_pairs: + - ip_address: { get_param: [ mgmt_vips, { get_param: perimeta_instance_index } ] } + + # Perimeta HA ports + perimeta_b_ha_0_port: + type: OS::Neutron::Port + properties: + name: + str_replace: + template: $VM_ha_port + params: + $VM: { get_param: [ vm_b_names, { get_param: perimeta_instance_index } ] } + network_id: { get_param: ha_net_id } + fixed_ips: + - ip_address: { get_param: [ ha_b_ips, { get_param: perimeta_instance_index } ] } + security_groups: { get_param: ha_sec_groups } + + # Perimeta core/trusted service network ports + # + # Dual stack core network - if only IPv4 required, comment out second entry + # in fixed_ips and allowed_addrsess_pairs parameters. + perimeta_b_trusted_0_port: + type: OS::Neutron::Port + properties: + name: + str_replace: + template: $VM_trusted_port + params: + $VM: { get_param: [ vm_b_names, { get_param: perimeta_instance_index } ] } + network_id: { get_param: trusted_net_id } + fixed_ips: + - ip_address: { get_param: [ trusted_b_ips, { get_param: perimeta_instance_index } ] } + security_groups: { get_param: trusted_sec_groups } + allowed_address_pairs: + - ip_address: { get_param: [ trusted_vips, { get_param: perimeta_instance_index } ] } + + # Perimeta access/untrusted service network ports + # + # Dual stack access network - if only IPv4 required, comment out second entry + # in fixed_ips and allowed_addrsess_pairs parameters. + perimeta_b_untrusted_0_port: + type: OS::Neutron::Port + properties: + name: + str_replace: + template: $VM_untrusted_port + params: + $VM: { get_param: [ vm_b_names, { get_param: perimeta_instance_index } ] } + network_id: { get_param: untrusted_net_id } + fixed_ips: + - ip_address: { get_param: [ untrusted_b_ips, { get_param: perimeta_instance_index } ] } + - ip_address: { get_param: [ untrusted_b_v6_ips, { get_param: perimeta_instance_index } ] } + security_groups: { get_param: untrusted_sec_groups } + allowed_address_pairs: + - ip_address: { get_param: [ untrusted_vips, { get_param: perimeta_instance_index } ] } + - ip_address: { get_param: [ untrusted_v6_vips, { get_param: perimeta_instance_index } ] } + + # Contrail VLAN subinterfaces + perimeta_b_untrusted_0_vlan_ports: + type: OS::Heat::ResourceGroup + properties: + count: { get_param: untrusted_num_vlans } + resource_def: + type: vlan_subinterface_dual.yaml + properties: + subinterface_instance_index: "%index%" + subinterface_name_prefix: + str_replace: + template: $VM_untrusted_port_vlan_ + params: + $VM: { get_param: [ vm_b_names, { get_param: perimeta_instance_index } ] } + parent_interface: { get_resource: perimeta_b_untrusted_0_port } + mac_address: { get_attr: [ perimeta_b_untrusted_0_port, mac_address ] } + ip_address: { get_param: [ untrusted_b_ips, { get_param: perimeta_instance_index } ] } + ipv6_address: { get_param: [ untrusted_b_v6_ips, { get_param: perimeta_instance_index } ] } + virtual_ip_address: { get_param: [ untrusted_vips, { get_param: perimeta_instance_index } ] } + virtual_ipv6_address: { get_param: [ untrusted_v6_vips, { get_param: perimeta_instance_index } ] } + vlan_ids: { get_param: untrusted_vlan_ids } + vlan_networks: { get_param: untrusted_vlan_networks } + + # Perimeta Rf service network ports (SSC only) + # + # Dual stack access network - if only IPv4 required, comment out second entry + # in fixed_ips and allowed_addrsess_pairs parameters. + # Add any additional service ports here. + + perimeta_b_server_0: + type: OS::Nova::Server + properties: + name: { get_param: [ vm_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_param_server_group } } + metadata: + '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 } + networks: + - port: { get_resource: perimeta_b_mgmt_0_port } + - port: { get_resource: perimeta_b_ha_0_port } + - port: { get_resource: perimeta_b_trusted_0_port } + - port: { get_resource: perimeta_b_untrusted_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" + //"ip_mgmt_local": "$LOCAL_MGMT_IP_ADDR", + //"ip_mgmt_remote": "$REMOTE_MGMT_IP_ADDR", + //"ip_mgmt_plen": "$MGMT_NETWORK_PLEN", + //"ip_mgmt_gway": "$MGMT_NETWORK_DEFAULT_GATEWAY" + } + + params: + $MGMT_MACADDR: { get_attr: [perimeta_b_mgmt_0_port, mac_address] } + $HA_MACADDR: { get_attr: [perimeta_b_ha_0_port, mac_address] } + $TRUSTED_MACADDR: { get_attr: [perimeta_b_trusted_0_port, mac_address] } + $UNTRUSTED_MACADDR: { get_attr: [perimeta_b_untrusted_0_port, mac_address] } + $LOCAL_HA_IP_ADDR: { get_param: [ ha_b_ips, { get_param: perimeta_instance_index } ] } + $REMOTE_HA_IP_ADDR: { get_param: [ ha_a_ips, { get_param: perimeta_instance_index } ] } + $HA_NETWORK_PLEN: { get_param: ha_network_plen } + $LOCAL_MGMT_IP_ADDR: { get_param: [ mgmt_b_ips, { get_param: perimeta_instance_index } ] } + $REMOTE_MGMT_IP_ADDR: { get_param: [ mgmt_a_ips, { get_param: perimeta_instance_index } ] } + $MGMT_NETWORK_PLEN: { get_param: mgmt_net_plen } + $MGMT_NETWORK_DEFAULT_GATEWAY: { get_param: mgmt_net_default_gateway } + +outputs: + + server_group_used: + description: Server group used for these VMs + value: { get_param: perimeta_param_server_group } diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/subInterfaceToInterfaceConnection/vTSBC_AIC/inputfiles/perimeta_ha_swmu.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/subInterfaceToInterfaceConnection/vTSBC_AIC/inputfiles/perimeta_ha_swmu.yaml new file mode 100644 index 0000000000..7e4307b75f --- /dev/null +++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/subInterfaceToInterfaceConnection/vTSBC_AIC/inputfiles/perimeta_ha_swmu.yaml @@ -0,0 +1,561 @@ +# Heat template which intstantiates a 1+1 HA Perimeta instance with 4 or 5 +# 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 a Perimeta 1+1 HA instance with 4vNICs as part of a nested template + +parameters: + 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 + system_names: + type: comma_delimited_list + description: List of system names of Perimeta instances. Name of a specific instance is indexed by perimeta_instance_index + vm_a_names: + type: comma_delimited_list + description: List of names of Perimeta VM A instances, indexed by perimeta_instance_index + vm_b_names: + type: comma_delimited_list + description: List of names of Perimeta VM A instances, indexed by perimeta_instance_index + 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. + perimeta_image_name: + type: string + description: Glance image for Perimeta instance + constraints: + - custom_constraint: glance.image + perimeta_flavor_name: + type: string + description: Flavor to use for creating VM instances + constraints: + - custom_constraint: nova.flavor + perimeta_keypair: + type: string + description: Keypair to use for accessing this Perimeta instance + constraints: + - custom_constraint: nova.keypair + availability_zone_0: + # Can be commented out along with references if always using a single availability zone + type: string + description: Availability zone for A instances. + 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 + constraints: + - custom_constraint: neutron.network + mgmt_net_plen: + type: string + description: Prefix length of management network + mgmt_net_default_gateway: + type: string + description: IP address of management default gateway + mgmt_vips: + type: comma_delimited_list + description: List of management virtual IP addresses for all instances. + mgmt_a_ips: + type: comma_delimited_list + description: List of fixed IP addresses to use as management IPs of A instances. + mgmt_b_ips: + type: comma_delimited_list + description: List of fixed IP addresses to use as management IPs of B instances. + mgmt_sec_groups: + type: comma_delimited_list + description: List of security groups to add on management interfaces. + ha_net_id: + type: string + description: HA network id + constraints: + - custom_constraint: neutron.network + ha_network_plen: + type: number + constraints: + - range: { min: 0, max: 32 } + description: ha_network_plen must be between 0 and 32 + ha_a_ips: + type: comma_delimited_list + description: List of fixed IP addresses to use as HA IPs of A instances. + ha_b_ips: + type: comma_delimited_list + description: List of fixed IP addresses to use as HA IPs of B instances. + ha_sec_groups: + type: comma_delimited_list + description: List of security groups to add on HA interfaces. + trusted_net_id: + type: string + description: Service network 1 network UUID + constraints: + - custom_constraint: neutron.network + trusted_vips: + type: comma_delimited_list + description: List of service network 1 virtual IP addresses for all instances. + trusted_a_ips: + type: comma_delimited_list + description: List of fixed IP addresses to use as trusted fixed IPs of A instances. + trusted_b_ips: + type: comma_delimited_list + description: List of fixed IP addresses to use as trusted fixed IPs of B instances. + trusted_sec_groups: + type: comma_delimited_list + description: List of security groups to add on trusted interfaces. + untrusted_net_id: + type: string + description: Service network 2 network UUID + constraints: + - custom_constraint: neutron.network + untrusted_vips: + type: comma_delimited_list + description: List of service network 2 virtual IP addresses for all instances. + untrusted_v6_vips: + type: comma_delimited_list + description: List of service network 2 alternate virtual IP addresses for all instances. + untrusted_a_ips: + type: comma_delimited_list + description: List of fixed IP addresses to use as untrusted fixed IPs of A instances. + untrusted_a_v6_ips: + type: comma_delimited_list + description: List of fixed IP addresses to use as untrusted alternate fixed IPs of A instances. + untrusted_b_ips: + type: comma_delimited_list + description: List of fixed IP addresses to use as untrusted fixed IPs of B instances. + untrusted_b_v6_ips: + type: comma_delimited_list + description: List of fixed IP addresses to use as untrusted alternate fixed IPs of B instances. + untrusted_sec_groups: + type: comma_delimited_list + description: List of security groups to add on untrusted interfaces. + untrusted_num_vlans: + type: number + description: Number of VLANs to connect to on the untrusted/access network + untrusted_vlan_ids: + type: comma_delimited_list + description: List of VLAN IDs to use on the untrusted/access network + 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. + serv3_net_id: + type: string + description: Service network 3 network UUID + serv3_vips: + type: comma_delimited_list + description: List of service network 3 virtual IP addresses for all instances. + serv3_a_ips: + type: comma_delimited_list + description: List of fixed IP addresses to use as serv3 fixed IPs of A instances. + serv3_b_ips: + type: comma_delimited_list + description: List of fixed IP addresses to use as serv3 fixed IPs of B instances. + serv3_sec_groups: + type: comma_delimited_list + description: List of security groups to add on serv3 interfaces. + unused_net_id: + type: string + description: Service network unused port network UUID + perimeta_param_server_group: + type: string + description: Server group to use for these VMs - ignored + perimeta_config: + type: string + description: Orchestration template configuration for instance. + +resources: + + # Perimeta management ports + perimeta_a_mgmt_0_port: + type: OS::Neutron::Port + properties: + name: + str_replace: + template: $VM_mgmt_port + params: + $VM: { get_param: [ vm_a_names, { get_param: perimeta_instance_index } ] } + network_id: { get_param: mgmt_net_id } + fixed_ips: + - ip_address: { get_param: [ mgmt_a_ips, { get_param: perimeta_instance_index } ] } + security_groups: { get_param: mgmt_sec_groups } + allowed_address_pairs: + - ip_address: { get_param: [ mgmt_vips, { get_param: perimeta_instance_index } ] } + + perimeta_b_mgmt_0_port: + type: OS::Neutron::Port + properties: + name: + str_replace: + template: $VM_mgmt_port + params: + $VM: { get_param: [ vm_b_names, { get_param: perimeta_instance_index } ] } + network_id: { get_param: mgmt_net_id } + fixed_ips: + - ip_address: { get_param: [ mgmt_b_ips, { get_param: perimeta_instance_index } ] } + security_groups: { get_param: mgmt_sec_groups } + allowed_address_pairs: + - ip_address: { get_param: [ mgmt_vips, { get_param: perimeta_instance_index } ] } + + # Perimeta HA ports + perimeta_a_ha_0_port: + type: OS::Neutron::Port + properties: + name: + str_replace: + template: $VM_ha_port + params: + $VM: { get_param: [ vm_a_names, { get_param: perimeta_instance_index } ] } + network_id: { get_param: ha_net_id } + fixed_ips: + - ip_address: { get_param: [ ha_a_ips, { get_param: perimeta_instance_index } ] } + security_groups: { get_param: ha_sec_groups } + + perimeta_b_ha_0_port: + type: OS::Neutron::Port + properties: + name: + str_replace: + template: $VM_ha_port + params: + $VM: { get_param: [ vm_b_names, { get_param: perimeta_instance_index } ] } + network_id: { get_param: ha_net_id } + fixed_ips: + - ip_address: { get_param: [ ha_b_ips, { get_param: perimeta_instance_index } ] } + security_groups: { get_param: ha_sec_groups } + + # Perimeta core/trusted service network ports + # + # Dual stack core network - if only IPv4 required, comment out second entry + # in fixed_ips and allowed_addrsess_pairs parameters. + perimeta_a_trusted_0_port: + type: OS::Neutron::Port + properties: + name: + str_replace: + template: $VM_trusted_port + params: + $VM: { get_param: [ vm_a_names, { get_param: perimeta_instance_index } ] } + network_id: { get_param: trusted_net_id } + fixed_ips: + - ip_address: { get_param: [ trusted_a_ips, { get_param: perimeta_instance_index } ] } + security_groups: { get_param: trusted_sec_groups } + allowed_address_pairs: + - ip_address: { get_param: [ trusted_vips, { get_param: perimeta_instance_index } ] } + + perimeta_b_trusted_0_port: + type: OS::Neutron::Port + properties: + name: + str_replace: + template: $VM_trusted_port + params: + $VM: { get_param: [ vm_b_names, { get_param: perimeta_instance_index } ] } + network_id: { get_param: trusted_net_id } + fixed_ips: + - ip_address: { get_param: [ trusted_b_ips, { get_param: perimeta_instance_index } ] } + security_groups: { get_param: trusted_sec_groups } + allowed_address_pairs: + - ip_address: { get_param: [ trusted_vips, { get_param: perimeta_instance_index } ] } + + # Perimeta access/untrusted service network ports + # + # Dual stack access network - if only IPv4 required, comment out second entry + # in fixed_ips and allowed_addrsess_pairs parameters. + perimeta_a_untrusted_0_port: + type: OS::Neutron::Port + properties: + name: + str_replace: + template: $VM_untrusted_port + params: + $VM: { get_param: [ vm_a_names, { get_param: perimeta_instance_index } ] } + network_id: { get_param: untrusted_net_id } + fixed_ips: + - ip_address: { get_param: [ untrusted_a_ips, { get_param: perimeta_instance_index } ] } + - ip_address: { get_param: [ untrusted_a_v6_ips, { get_param: perimeta_instance_index } ] } + security_groups: { get_param: untrusted_sec_groups } + allowed_address_pairs: + - ip_address: { get_param: [ untrusted_vips, { get_param: perimeta_instance_index } ] } + - ip_address: { get_param: [ untrusted_v6_vips, { get_param: perimeta_instance_index } ] } + + # Contrail VLAN subinterfaces + perimeta_a_untrusted_0_vlan_ports: + type: OS::Heat::ResourceGroup + properties: + count: { get_param: untrusted_num_vlans } + resource_def: + type: vlan_subinterface_dual.yaml + properties: + subinterface_instance_index: "%index%" + subinterface_name_prefix: + str_replace: + template: $VM_untrusted_port_vlan_ + params: + $VM: { get_param: [ vm_a_names, { get_param: perimeta_instance_index } ] } + parent_interface: { get_resource: perimeta_a_untrusted_0_port } + mac_address: { get_attr: [ perimeta_a_untrusted_0_port, mac_address ] } + ip_address: { get_param: [ untrusted_a_ips, { get_param: perimeta_instance_index } ] } + ipv6_address: { get_param: [ untrusted_a_v6_ips, { get_param: perimeta_instance_index } ] } + virtual_ip_address: { get_param: [ untrusted_vips, { get_param: perimeta_instance_index } ] } + virtual_ipv6_address: { get_param: [ untrusted_v6_vips, { get_param: perimeta_instance_index } ] } + vlan_ids: { get_param: untrusted_vlan_ids } + vlan_networks: { get_param: untrusted_vlan_networks } + + perimeta_b_untrusted_0_port: + type: OS::Neutron::Port + properties: + name: + str_replace: + template: $VM_untrusted_port + params: + $VM: { get_param: [ vm_b_names, { get_param: perimeta_instance_index } ] } + network_id: { get_param: untrusted_net_id } + fixed_ips: + - ip_address: { get_param: [ untrusted_b_ips, { get_param: perimeta_instance_index } ] } + - ip_address: { get_param: [ untrusted_b_v6_ips, { get_param: perimeta_instance_index } ] } + security_groups: { get_param: untrusted_sec_groups } + allowed_address_pairs: + - ip_address: { get_param: [ untrusted_vips, { get_param: perimeta_instance_index } ] } + - ip_address: { get_param: [ untrusted_v6_vips, { get_param: perimeta_instance_index } ] } + + # Contrail VLAN subinterfaces + perimeta_b_untrusted_0_vlan_ports: + type: OS::Heat::ResourceGroup + properties: + count: { get_param: untrusted_num_vlans } + resource_def: + type: vlan_subinterface_dual.yaml + properties: + subinterface_instance_index: "%index%" + subinterface_name_prefix: + str_replace: + template: $VM_untrusted_port_vlan_ + params: + $VM: { get_param: [ vm_b_names, { get_param: perimeta_instance_index } ] } + parent_interface: { get_resource: perimeta_b_untrusted_0_port } + mac_address: { get_attr: [ perimeta_b_untrusted_0_port, mac_address ] } + ip_address: { get_param: [ untrusted_b_ips, { get_param: perimeta_instance_index } ] } + ipv6_address: { get_param: [ untrusted_b_v6_ips, { get_param: perimeta_instance_index } ] } + virtual_ip_address: { get_param: [ untrusted_vips, { get_param: perimeta_instance_index } ] } + virtual_ipv6_address: { get_param: [ untrusted_v6_vips, { get_param: perimeta_instance_index } ] } + vlan_ids: { get_param: untrusted_vlan_ids } + vlan_networks: { get_param: untrusted_vlan_networks } + + # Perimeta Rf service network ports (SSC only) + # + # Dual stack access network - if only IPv4 required, comment out second entry + # in fixed_ips and allowed_addrsess_pairs parameters. + perimeta_a_serv3_0_port: + type: OS::Neutron::Port + properties: + name: + str_replace: + template: $VM_serv3_port + params: + $VM: { get_param: [ vm_a_names, { get_param: perimeta_instance_index } ] } + network_id: { get_param: serv3_net_id } + fixed_ips: + - ip_address: { get_param: [ serv3_a_ips, { get_param: perimeta_instance_index } ] } + security_groups: { get_param: serv3_sec_groups } + allowed_address_pairs: + - ip_address: { get_param: [ serv3_vips, { get_param: perimeta_instance_index } ] } + + perimeta_b_serv3_0_port: + type: OS::Neutron::Port + properties: + name: + str_replace: + template: $VM_serv3_port + params: + $VM: { get_param: [ vm_b_names, { get_param: perimeta_instance_index } ] } + network_id: { get_param: serv3_net_id } + fixed_ips: + - ip_address: { get_param: [ serv3_b_ips, { get_param: perimeta_instance_index } ] } + security_groups: { get_param: serv3_sec_groups } + allowed_address_pairs: + - ip_address: { get_param: [ serv3_vips, { get_param: perimeta_instance_index } ] } + + perimeta_a_unused_0_port: + type: OS::Neutron::Port + properties: + name: + str_replace: + template: $VM_unused_port + params: + $VM: { get_param: [ vm_a_names, { get_param: perimeta_instance_index } ] } + network: { get_param: unused_net_id } + + perimeta_b_unused_0_port: + type: OS::Neutron::Port + properties: + name: + str_replace: + template: $VM_unused_port + params: + $VM: { get_param: [ vm_b_names, { get_param: perimeta_instance_index } ] } + network: { get_param: unused_net_id } + + # Add any additional service ports here. + + # Only supported in Juno and beyond - used to enforce host anti-affinity + # Can be commented out along with references to it if always using + # different availability zones. + perimeta_server_group: + type: OS::Nova::ServerGroup + properties: + name: + str_replace: + template: $SYSTEM_server_group + params: + $SYSTEM: { get_param: [ system_names, { get_param: perimeta_instance_index } ] } + policies: ['anti-affinity'] + + perimeta_a_server_0: + type: OS::Nova::Server + depends_on: perimeta_b_server_0 + properties: + name: { get_param: [ vm_a_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_resource: perimeta_server_group } } + metadata: + 'vnf_id': { get_param: vnf_id } + 'vm_role': + str_replace: + template: $ROLE_a + params: + $ROLE: { get_param: vm_role } + 'vf_module_id': { get_param: vf_module_id } + personality: + '/opt/MetaSwitch/init/custom.ini': { get_file: custom.ini } + + networks: + - port: { get_resource: perimeta_a_mgmt_0_port } + - port: { get_resource: perimeta_a_ha_0_port } + - port: { get_resource: perimeta_a_trusted_0_port } + - port: { get_resource: perimeta_a_untrusted_0_port } + - port: { get_resource: perimeta_a_serv3_0_port } + - port: { get_resource: perimeta_a_unused_0_port } + availability_zone: { get_param: availability_zone_0 } + config_drive: True + user_data_format: RAW + user_data: + str_replace: + template: { get_param: perimeta_config } + params: + $MGMT_MACADDR: { get_attr: [perimeta_a_mgmt_0_port, mac_address] } + $HA_MACADDR: { get_attr: [perimeta_a_ha_0_port, mac_address] } + $TRUSTED_MACADDR: { get_attr: [perimeta_a_trusted_0_port, mac_address] } + $UNTRUSTED_MACADDR: { get_attr: [perimeta_a_untrusted_0_port, mac_address] } + $SERV3_MACADDR: { get_attr: [perimeta_a_serv3_0_port, mac_address] } + $SERV4_MACADDR: { get_attr: [perimeta_a_unused_0_port, mac_address] } + $LOCAL_HA_IP_ADDR: { get_param: [ ha_a_ips, { get_param: perimeta_instance_index } ] } + $REMOTE_HA_IP_ADDR: { get_param: [ ha_b_ips, { get_param: perimeta_instance_index } ] } + $HA_NETWORK_PLEN: { get_param: ha_network_plen } + $LOCAL_MGMT_IP_ADDR: { get_param: [ mgmt_a_ips, { get_param: perimeta_instance_index } ] } + $REMOTE_MGMT_IP_ADDR: { get_param: [ mgmt_b_ips, { get_param: perimeta_instance_index } ] } + $MGMT_NETWORK_PLEN: { get_param: mgmt_net_plen } + $MGMT_NETWORK_DEFAULT_GATEWAY: { get_param: mgmt_net_default_gateway } + $VIRT_MGMT_IP_ADDR: { get_param: [ mgmt_vips, { get_param: perimeta_instance_index } ] } + $VIRT_TRUSTED_IP_ADDR: { get_param: [ trusted_vips, { get_param: perimeta_instance_index } ] } + $LOCAL_TRUSTED_IP_ADDR: { get_param: [ trusted_a_ips, { get_param: perimeta_instance_index } ] } + $REMOTE_TRUSTED_IP_ADDR: { get_param: [ trusted_b_ips, { get_param: perimeta_instance_index } ] } + $VIRT_UNTRUSTED_IP_ADDR: { get_param: [ untrusted_vips, { get_param: perimeta_instance_index } ] } + $VIRT_UNTRUSTED_ALT_IP_ADDR: { get_param: [ untrusted_v6_vips, { get_param: perimeta_instance_index } ] } + $LOCAL_UNTRUSTED_IP_ADDR: { get_param: [ untrusted_a_ips, { get_param: perimeta_instance_index } ] } + $LOCAL_UNTRUSTED_ALT_IP_ADDR: { get_param: [ untrusted_a_v6_ips, { get_param: perimeta_instance_index } ] } + $REMOTE_UNTRUSTED_IP_ADDR: { get_param: [ untrusted_b_ips, { get_param: perimeta_instance_index } ] } + $REMOTE_UNTRUSTED_ALT_IP_ADDR: { get_param: [ untrusted_b_v6_ips, { get_param: perimeta_instance_index } ] } + $VIRT_SERV3_IP_ADDR: { get_param: [ serv3_vips, { get_param: perimeta_instance_index } ] } + $LOCAL_SERV3_IP_ADDR: { get_param: [ serv3_a_ips, { get_param: perimeta_instance_index } ] } + $REMOTE_SERV3_IP_ADDR: { get_param: [ serv3_b_ips, { get_param: perimeta_instance_index } ] } + $VM_NAME_A: { get_param: [ vm_a_names, { get_param: perimeta_instance_index } ] } + $VM_NAME_B: { get_param: [ vm_b_names, { get_param: perimeta_instance_index } ] } + $SYSTEM_NAME: { get_param: [ system_names, { get_param: perimeta_instance_index } ] } + + perimeta_b_server_0: + type: OS::Nova::Server + properties: + name: { get_param: [ vm_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_resource: perimeta_server_group } } + metadata: + '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 } + networks: + - port: { get_resource: perimeta_b_mgmt_0_port } + - port: { get_resource: perimeta_b_ha_0_port } + - port: { get_resource: perimeta_b_trusted_0_port } + - port: { get_resource: perimeta_b_untrusted_0_port } + - port: { get_resource: perimeta_b_serv3_0_port } + - port: { get_resource: perimeta_b_unused_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"}, + "RPG3": {"mac": "$SERV3_MACADDR"}, + "RPG4": {"mac": "$SERV4_MACADDR"} + }, + "ip_ha_local": "$LOCAL_HA_IP_ADDR", + "ip_ha_remote": "$REMOTE_HA_IP_ADDR", + "ip_ha_plen": "$HA_NETWORK_PLEN" + //"ip_mgmt_local": "$LOCAL_MGMT_IP_ADDR", + //"ip_mgmt_remote": "$REMOTE_MGMT_IP_ADDR", + //"ip_mgmt_plen": "$MGMT_NETWORK_PLEN", + //"ip_mgmt_gway": "$MGMT_NETWORK_DEFAULT_GATEWAY" + } + + params: + $MGMT_MACADDR: { get_attr: [perimeta_b_mgmt_0_port, mac_address] } + $HA_MACADDR: { get_attr: [perimeta_b_ha_0_port, mac_address] } + $TRUSTED_MACADDR: { get_attr: [perimeta_b_trusted_0_port, mac_address] } + $UNTRUSTED_MACADDR: { get_attr: [perimeta_b_untrusted_0_port, mac_address] } + $SERV3_MACADDR: { get_attr: [perimeta_b_serv3_0_port, mac_address] } + $SERV4_MACADDR: { get_attr: [perimeta_b_unused_0_port, mac_address] } + $LOCAL_HA_IP_ADDR: { get_param: [ ha_b_ips, { get_param: perimeta_instance_index } ] } + $REMOTE_HA_IP_ADDR: { get_param: [ ha_a_ips, { get_param: perimeta_instance_index } ] } + $HA_NETWORK_PLEN: { get_param: ha_network_plen } + $LOCAL_MGMT_IP_ADDR: { get_param: [ mgmt_b_ips, { get_param: perimeta_instance_index } ] } + $REMOTE_MGMT_IP_ADDR: { get_param: [ mgmt_a_ips, { get_param: perimeta_instance_index } ] } + $MGMT_NETWORK_PLEN: { get_param: mgmt_net_plen } + $MGMT_NETWORK_DEFAULT_GATEWAY: { get_param: mgmt_net_default_gateway } + +outputs: + + server_group_used: + description: Server group used for these VMs + value: { get_resource: perimeta_server_group } diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/subInterfaceToInterfaceConnection/vTSBC_AIC/inputfiles/perimeta_ha_swmu_a.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/subInterfaceToInterfaceConnection/vTSBC_AIC/inputfiles/perimeta_ha_swmu_a.yaml new file mode 100644 index 0000000000..2c4fb50842 --- /dev/null +++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/subInterfaceToInterfaceConnection/vTSBC_AIC/inputfiles/perimeta_ha_swmu_a.yaml @@ -0,0 +1,381 @@ +# Heat template which intstantiates a 1+1 HA Perimeta instance with 4 or 5 +# 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 a Perimeta 1+1 HA instance with 4vNICs as part of a nested template + +parameters: + 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 + system_names: + type: comma_delimited_list + description: List of system names of Perimeta instances. Name of a specific instance is indexed by perimeta_instance_index + vm_a_names: + type: comma_delimited_list + description: List of names of Perimeta VM A instances, indexed by perimeta_instance_index + vm_b_names: + type: comma_delimited_list + description: List of names of Perimeta VM A instances, indexed by perimeta_instance_index + 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. + perimeta_image_name: + type: string + description: Glance image for Perimeta instance + constraints: + - custom_constraint: glance.image + perimeta_flavor_name: + type: string + description: Flavor to use for creating VM instances + constraints: + - custom_constraint: nova.flavor + perimeta_keypair: + type: string + description: Keypair to use for accessing this Perimeta instance + constraints: + - custom_constraint: nova.keypair + availability_zone_0: + # Can be commented out along with references if always using a single availability zone + type: string + description: Availability zone for A instances. + 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 + constraints: + - custom_constraint: neutron.network + mgmt_net_plen: + type: string + description: Prefix length of management network + mgmt_net_default_gateway: + type: string + description: IP address of management default gateway + mgmt_vips: + type: comma_delimited_list + description: List of management virtual IP addresses for all instances. + mgmt_a_ips: + type: comma_delimited_list + description: List of fixed IP addresses to use as management IPs of A instances. + mgmt_b_ips: + type: comma_delimited_list + description: List of fixed IP addresses to use as management IPs of B instances. + mgmt_sec_groups: + type: comma_delimited_list + description: List of security groups to add on management interfaces. + ha_net_id: + type: string + description: HA network id + constraints: + - custom_constraint: neutron.network + ha_network_plen: + type: number + constraints: + - range: { min: 0, max: 32 } + description: ha_network_plen must be between 0 and 32 + ha_a_ips: + type: comma_delimited_list + description: List of fixed IP addresses to use as HA IPs of A instances. + ha_b_ips: + type: comma_delimited_list + description: List of fixed IP addresses to use as HA IPs of B instances. + ha_sec_groups: + type: comma_delimited_list + description: List of security groups to add on HA interfaces. + trusted_net_id: + type: string + description: Service network 1 network UUID + constraints: + - custom_constraint: neutron.network + trusted_vips: + type: comma_delimited_list + description: List of service network 1 virtual IP addresses for all instances. + trusted_a_ips: + type: comma_delimited_list + description: List of fixed IP addresses to use as trusted fixed IPs of A instances. + trusted_b_ips: + type: comma_delimited_list + description: List of fixed IP addresses to use as trusted fixed IPs of B instances. + trusted_sec_groups: + type: comma_delimited_list + description: List of security groups to add on trusted interfaces. + untrusted_net_id: + type: string + description: Service network 2 network UUID + constraints: + - custom_constraint: neutron.network + untrusted_vips: + type: comma_delimited_list + description: List of service network 2 virtual IP addresses for all instances. + untrusted_v6_vips: + type: comma_delimited_list + description: List of service network 2 alternate virtual IP addresses for all instances. + untrusted_a_ips: + type: comma_delimited_list + description: List of fixed IP addresses to use as untrusted fixed IPs of A instances. + untrusted_a_v6_ips: + type: comma_delimited_list + description: List of fixed IP addresses to use as untrusted alternate fixed IPs of A instances. + untrusted_b_ips: + type: comma_delimited_list + description: List of fixed IP addresses to use as untrusted fixed IPs of B instances. + untrusted_b_v6_ips: + type: comma_delimited_list + description: List of fixed IP addresses to use as untrusted alternate fixed IPs of B instances. + untrusted_sec_groups: + type: comma_delimited_list + description: List of security groups to add on untrusted interfaces. + untrusted_num_vlans: + type: number + description: Number of VLANs to connect to on the untrusted/access network + untrusted_vlan_ids: + type: comma_delimited_list + description: List of VLAN IDs to use on the untrusted/access network + 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. + serv3_net_id: + type: string + description: Service network 3 network UUID + serv3_vips: + type: comma_delimited_list + description: List of service network 3 virtual IP addresses for all instances. + serv3_a_ips: + type: comma_delimited_list + description: List of fixed IP addresses to use as serv3 fixed IPs of A instances. + serv3_b_ips: + type: comma_delimited_list + description: List of fixed IP addresses to use as serv3 fixed IPs of B instances. + serv3_sec_groups: + type: comma_delimited_list + description: List of security groups to add on serv3 interfaces. + unused_net_id: + type: string + description: Service network unused port network UUID + perimeta_param_server_group: + type: string + description: Server group to use for these VMs - ignored + perimeta_config: + type: string + description: Orchestration template configuration for instance. + +resources: + + # Perimeta management ports + perimeta_a_mgmt_0_port: + type: OS::Neutron::Port + properties: + name: + str_replace: + template: $VM_mgmt_port + params: + $VM: { get_param: [ vm_a_names, { get_param: perimeta_instance_index } ] } + network_id: { get_param: mgmt_net_id } + fixed_ips: + - ip_address: { get_param: [ mgmt_a_ips, { get_param: perimeta_instance_index } ] } + security_groups: { get_param: mgmt_sec_groups } + allowed_address_pairs: + - ip_address: { get_param: [ mgmt_vips, { get_param: perimeta_instance_index } ] } + + # Perimeta HA ports + perimeta_a_ha_0_port: + type: OS::Neutron::Port + properties: + name: + str_replace: + template: $VM_ha_port + params: + $VM: { get_param: [ vm_a_names, { get_param: perimeta_instance_index } ] } + network_id: { get_param: ha_net_id } + fixed_ips: + - ip_address: { get_param: [ ha_a_ips, { get_param: perimeta_instance_index } ] } + security_groups: { get_param: ha_sec_groups } + + # Perimeta core/trusted service network ports + # + # Dual stack core network - if only IPv4 required, comment out second entry + # in fixed_ips and allowed_addrsess_pairs parameters. + perimeta_a_trusted_0_port: + type: OS::Neutron::Port + properties: + name: + str_replace: + template: $VM_trusted_port + params: + $VM: { get_param: [ vm_a_names, { get_param: perimeta_instance_index } ] } + network_id: { get_param: trusted_net_id } + fixed_ips: + - ip_address: { get_param: [ trusted_a_ips, { get_param: perimeta_instance_index } ] } + security_groups: { get_param: trusted_sec_groups } + allowed_address_pairs: + - ip_address: { get_param: [ trusted_vips, { get_param: perimeta_instance_index } ] } + + # Perimeta access/untrusted service network ports + # + # Dual stack access network - if only IPv4 required, comment out second entry + # in fixed_ips and allowed_addrsess_pairs parameters. + perimeta_a_untrusted_0_port: + type: OS::Neutron::Port + properties: + name: + str_replace: + template: $VM_untrusted_port + params: + $VM: { get_param: [ vm_a_names, { get_param: perimeta_instance_index } ] } + network_id: { get_param: untrusted_net_id } + fixed_ips: + - ip_address: { get_param: [ untrusted_a_ips, { get_param: perimeta_instance_index } ] } + - ip_address: { get_param: [ untrusted_a_v6_ips, { get_param: perimeta_instance_index } ] } + security_groups: { get_param: untrusted_sec_groups } + allowed_address_pairs: + - ip_address: { get_param: [ untrusted_vips, { get_param: perimeta_instance_index } ] } + - ip_address: { get_param: [ untrusted_v6_vips, { get_param: perimeta_instance_index } ] } + + # Contrail VLAN subinterfaces + perimeta_a_untrusted_0_vlan_ports: + type: OS::Heat::ResourceGroup + properties: + count: { get_param: untrusted_num_vlans } + resource_def: + type: vlan_subinterface_dual.yaml + properties: + subinterface_instance_index: "%index%" + subinterface_name_prefix: + str_replace: + template: $VM_untrusted_port_vlan_ + params: + $VM: { get_param: [ vm_a_names, { get_param: perimeta_instance_index } ] } + parent_interface: { get_resource: perimeta_a_untrusted_0_port } + mac_address: { get_attr: [ perimeta_a_untrusted_0_port, mac_address ] } + ip_address: { get_param: [ untrusted_a_ips, { get_param: perimeta_instance_index } ] } + ipv6_address: { get_param: [ untrusted_a_v6_ips, { get_param: perimeta_instance_index } ] } + virtual_ip_address: { get_param: [ untrusted_vips, { get_param: perimeta_instance_index } ] } + virtual_ipv6_address: { get_param: [ untrusted_v6_vips, { get_param: perimeta_instance_index } ] } + vlan_ids: { get_param: untrusted_vlan_ids } + vlan_networks: { get_param: untrusted_vlan_networks } + + # Perimeta Rf service network ports (SSC only) + # + # Dual stack access network - if only IPv4 required, comment out second entry + # in fixed_ips and allowed_addrsess_pairs parameters. + perimeta_a_serv3_0_port: + type: OS::Neutron::Port + properties: + name: + str_replace: + template: $VM_serv3_port + params: + $VM: { get_param: [ vm_a_names, { get_param: perimeta_instance_index } ] } + network_id: { get_param: serv3_net_id } + fixed_ips: + - ip_address: { get_param: [ serv3_a_ips, { get_param: perimeta_instance_index } ] } + security_groups: { get_param: serv3_sec_groups } + allowed_address_pairs: + - ip_address: { get_param: [ serv3_vips, { get_param: perimeta_instance_index } ] } + + perimeta_a_unused_0_port: + type: OS::Neutron::Port + properties: + name: + str_replace: + template: $VM_unused_port + params: + $VM: { get_param: [ vm_a_names, { get_param: perimeta_instance_index } ] } + network: { get_param: unused_net_id } + + # Add any additional service ports here. + + perimeta_a_server_0: + type: OS::Nova::Server + #depends_on: perimeta_b_server_0 + properties: + name: { get_param: [ vm_a_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_param_server_group } } + metadata: + 'vnf_id': { get_param: vnf_id } + 'vm_role': + str_replace: + template: $ROLE_a + params: + $ROLE: { get_param: vm_role } + 'vf_module_id': { get_param: vf_module_id } + personality: + '/opt/MetaSwitch/init/custom.ini': { get_file: custom.ini } + + networks: + - port: { get_resource: perimeta_a_mgmt_0_port } + - port: { get_resource: perimeta_a_ha_0_port } + - port: { get_resource: perimeta_a_trusted_0_port } + - port: { get_resource: perimeta_a_untrusted_0_port } + - port: { get_resource: perimeta_a_serv3_0_port } + - port: { get_resource: perimeta_a_unused_0_port } + availability_zone: { get_param: availability_zone_0 } + 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"}, + "RPG3": {"mac": "$SERV3_MACADDR"}, + "RPG4": {"mac": "$SERV4_MACADDR"} + }, + "ip_ha_local": "$LOCAL_HA_IP_ADDR", + "ip_ha_remote": "$REMOTE_HA_IP_ADDR", + "ip_ha_plen": "$HA_NETWORK_PLEN" + // "ip_mgmt_local": "$LOCAL_MGMT_IP_ADDR", + // "ip_mgmt_remote": "$REMOTE_MGMT_IP_ADDR", + // "ip_mgmt_plen": "$MGMT_NETWORK_PLEN", + // "ip_mgmt_gway": "$MGMT_NETWORK_DEFAULT_GATEWAY" + } + + params: + $MGMT_MACADDR: { get_attr: [perimeta_a_mgmt_0_port, mac_address] } + $HA_MACADDR: { get_attr: [perimeta_a_ha_0_port, mac_address] } + $TRUSTED_MACADDR: { get_attr: [perimeta_a_trusted_0_port, mac_address] } + $UNTRUSTED_MACADDR: { get_attr: [perimeta_a_untrusted_0_port, mac_address] } + $SERV3_MACADDR: { get_attr: [perimeta_a_serv3_0_port, mac_address] } + $SERV4_MACADDR: { get_attr: [perimeta_a_unused_0_port, mac_address] } + $LOCAL_HA_IP_ADDR: { get_param: [ ha_a_ips, { get_param: perimeta_instance_index } ] } + $REMOTE_HA_IP_ADDR: { get_param: [ ha_b_ips, { get_param: perimeta_instance_index } ] } + $HA_NETWORK_PLEN: { get_param: ha_network_plen } + $LOCAL_MGMT_IP_ADDR: { get_param: [ mgmt_a_ips, { get_param: perimeta_instance_index } ] } + $REMOTE_MGMT_IP_ADDR: { get_param: [ mgmt_b_ips, { get_param: perimeta_instance_index } ] } + $MGMT_NETWORK_PLEN: { get_param: mgmt_net_plen } + $MGMT_NETWORK_DEFAULT_GATEWAY: { get_param: mgmt_net_default_gateway } + + +outputs: + + server_group_used: + description: Server group used for these VMs + value: { get_param: perimeta_param_server_group } diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/subInterfaceToInterfaceConnection/vTSBC_AIC/inputfiles/perimeta_ha_swmu_b.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/subInterfaceToInterfaceConnection/vTSBC_AIC/inputfiles/perimeta_ha_swmu_b.yaml new file mode 100644 index 0000000000..77fb15a9a0 --- /dev/null +++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/subInterfaceToInterfaceConnection/vTSBC_AIC/inputfiles/perimeta_ha_swmu_b.yaml @@ -0,0 +1,376 @@ +# Heat template which intstantiates a 1+1 HA Perimeta instance with 4 or 5 +# 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 a Perimeta 1+1 HA instance with 4vNICs as part of a nested template + +parameters: + 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 + system_names: + type: comma_delimited_list + description: List of system names of Perimeta instances. Name of a specific instance is indexed by perimeta_instance_index + vm_a_names: + type: comma_delimited_list + description: List of names of Perimeta VM A instances, indexed by perimeta_instance_index + vm_b_names: + type: comma_delimited_list + description: List of names of Perimeta VM A instances, indexed by perimeta_instance_index + 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. + perimeta_image_name: + type: string + description: Glance image for Perimeta instance + constraints: + - custom_constraint: glance.image + perimeta_flavor_name: + type: string + description: Flavor to use for creating VM instances + constraints: + - custom_constraint: nova.flavor + perimeta_keypair: + type: string + description: Keypair to use for accessing this Perimeta instance + constraints: + - custom_constraint: nova.keypair + availability_zone_0: + # Can be commented out along with references if always using a single availability zone + type: string + description: Availability zone for A instances. + 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 + constraints: + - custom_constraint: neutron.network + mgmt_net_plen: + type: string + description: Prefix length of management network + mgmt_net_default_gateway: + type: string + description: IP address of management default gateway + mgmt_vips: + type: comma_delimited_list + description: List of management virtual IP addresses for all instances. + mgmt_a_ips: + type: comma_delimited_list + description: List of fixed IP addresses to use as management IPs of A instances. + mgmt_b_ips: + type: comma_delimited_list + description: List of fixed IP addresses to use as management IPs of B instances. + mgmt_sec_groups: + type: comma_delimited_list + description: List of security groups to add on management interfaces. + ha_net_id: + type: string + description: HA network id + constraints: + - custom_constraint: neutron.network + ha_network_plen: + type: number + constraints: + - range: { min: 0, max: 32 } + description: ha_network_plen must be between 0 and 32 + ha_a_ips: + type: comma_delimited_list + description: List of fixed IP addresses to use as HA IPs of A instances. + ha_b_ips: + type: comma_delimited_list + description: List of fixed IP addresses to use as HA IPs of B instances. + ha_sec_groups: + type: comma_delimited_list + description: List of security groups to add on HA interfaces. + trusted_net_id: + type: string + description: Service network 1 network UUID + constraints: + - custom_constraint: neutron.network + trusted_vips: + type: comma_delimited_list + description: List of service network 1 virtual IP addresses for all instances. + trusted_a_ips: + type: comma_delimited_list + description: List of fixed IP addresses to use as trusted fixed IPs of A instances. + trusted_b_ips: + type: comma_delimited_list + description: List of fixed IP addresses to use as trusted fixed IPs of B instances. + trusted_sec_groups: + type: comma_delimited_list + description: List of security groups to add on trusted interfaces. + untrusted_net_id: + type: string + description: Service network 2 network UUID + constraints: + - custom_constraint: neutron.network + untrusted_vips: + type: comma_delimited_list + description: List of service network 2 virtual IP addresses for all instances. + untrusted_v6_vips: + type: comma_delimited_list + description: List of service network 2 alternate virtual IP addresses for all instances. + untrusted_a_ips: + type: comma_delimited_list + description: List of fixed IP addresses to use as untrusted fixed IPs of A instances. + untrusted_a_v6_ips: + type: comma_delimited_list + description: List of fixed IP addresses to use as untrusted alternate fixed IPs of A instances. + untrusted_b_ips: + type: comma_delimited_list + description: List of fixed IP addresses to use as untrusted fixed IPs of B instances. + untrusted_b_v6_ips: + type: comma_delimited_list + description: List of fixed IP addresses to use as untrusted alternate fixed IPs of B instances. + untrusted_sec_groups: + type: comma_delimited_list + description: List of security groups to add on untrusted interfaces. + untrusted_num_vlans: + type: number + description: Number of VLANs to connect to on the untrusted/access network + untrusted_vlan_ids: + type: comma_delimited_list + description: List of VLAN IDs to use on the untrusted/access network + 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. + serv3_net_id: + type: string + description: Service network 3 network UUID + serv3_vips: + type: comma_delimited_list + description: List of service network 3 virtual IP addresses for all instances. + serv3_a_ips: + type: comma_delimited_list + description: List of fixed IP addresses to use as serv3 fixed IPs of A instances. + serv3_b_ips: + type: comma_delimited_list + description: List of fixed IP addresses to use as serv3 fixed IPs of B instances. + serv3_sec_groups: + type: comma_delimited_list + description: List of security groups to add on serv3 interfaces. + unused_net_id: + type: string + description: Service network unused port network UUID + perimeta_param_server_group: + type: string + description: Server group to use for these VMs - ignored + perimeta_config: + type: string + description: Orchestration template configuration for instance. + +resources: + + # Perimeta management ports + perimeta_b_mgmt_0_port: + type: OS::Neutron::Port + properties: + name: + str_replace: + template: $VM_mgmt_port + params: + $VM: { get_param: [ vm_b_names, { get_param: perimeta_instance_index } ] } + network_id: { get_param: mgmt_net_id } + fixed_ips: + - ip_address: { get_param: [ mgmt_b_ips, { get_param: perimeta_instance_index } ] } + security_groups: { get_param: mgmt_sec_groups } + allowed_address_pairs: + - ip_address: { get_param: [ mgmt_vips, { get_param: perimeta_instance_index } ] } + + # Perimeta HA ports + perimeta_b_ha_0_port: + type: OS::Neutron::Port + properties: + name: + str_replace: + template: $VM_ha_port + params: + $VM: { get_param: [ vm_b_names, { get_param: perimeta_instance_index } ] } + network_id: { get_param: ha_net_id } + fixed_ips: + - ip_address: { get_param: [ ha_b_ips, { get_param: perimeta_instance_index } ] } + security_groups: { get_param: ha_sec_groups } + + # Perimeta core/trusted service network ports + # + # Dual stack core network - if only IPv4 required, comment out second entry + # in fixed_ips and allowed_addrsess_pairs parameters. + perimeta_b_trusted_0_port: + type: OS::Neutron::Port + properties: + name: + str_replace: + template: $VM_trusted_port + params: + $VM: { get_param: [ vm_b_names, { get_param: perimeta_instance_index } ] } + network_id: { get_param: trusted_net_id } + fixed_ips: + - ip_address: { get_param: [ trusted_b_ips, { get_param: perimeta_instance_index } ] } + security_groups: { get_param: trusted_sec_groups } + allowed_address_pairs: + - ip_address: { get_param: [ trusted_vips, { get_param: perimeta_instance_index } ] } + + # Perimeta access/untrusted service network ports + # + # Dual stack access network - if only IPv4 required, comment out second entry + # in fixed_ips and allowed_addrsess_pairs parameters. + perimeta_b_untrusted_0_port: + type: OS::Neutron::Port + properties: + name: + str_replace: + template: $VM_untrusted_port + params: + $VM: { get_param: [ vm_b_names, { get_param: perimeta_instance_index } ] } + network_id: { get_param: untrusted_net_id } + fixed_ips: + - ip_address: { get_param: [ untrusted_b_ips, { get_param: perimeta_instance_index } ] } + - ip_address: { get_param: [ untrusted_b_v6_ips, { get_param: perimeta_instance_index } ] } + security_groups: { get_param: untrusted_sec_groups } + allowed_address_pairs: + - ip_address: { get_param: [ untrusted_vips, { get_param: perimeta_instance_index } ] } + - ip_address: { get_param: [ untrusted_v6_vips, { get_param: perimeta_instance_index } ] } + + # Contrail VLAN subinterfaces + perimeta_b_untrusted_0_vlan_ports: + type: OS::Heat::ResourceGroup + properties: + count: { get_param: untrusted_num_vlans } + resource_def: + type: vlan_subinterface_dual.yaml + properties: + subinterface_instance_index: "%index%" + subinterface_name_prefix: + str_replace: + template: $VM_untrusted_port_vlan_ + params: + $VM: { get_param: [ vm_b_names, { get_param: perimeta_instance_index } ] } + parent_interface: { get_resource: perimeta_b_untrusted_0_port } + mac_address: { get_attr: [ perimeta_b_untrusted_0_port, mac_address ] } + ip_address: { get_param: [ untrusted_b_ips, { get_param: perimeta_instance_index } ] } + ipv6_address: { get_param: [ untrusted_b_v6_ips, { get_param: perimeta_instance_index } ] } + virtual_ip_address: { get_param: [ untrusted_vips, { get_param: perimeta_instance_index } ] } + virtual_ipv6_address: { get_param: [ untrusted_v6_vips, { get_param: perimeta_instance_index } ] } + vlan_ids: { get_param: untrusted_vlan_ids } + vlan_networks: { get_param: untrusted_vlan_networks } + + # Perimeta Rf service network ports (SSC only) + # + # Dual stack access network - if only IPv4 required, comment out second entry + # in fixed_ips and allowed_addrsess_pairs parameters. + perimeta_b_serv3_0_port: + type: OS::Neutron::Port + properties: + name: + str_replace: + template: $VM_serv3_port + params: + $VM: { get_param: [ vm_b_names, { get_param: perimeta_instance_index } ] } + network_id: { get_param: serv3_net_id } + fixed_ips: + - ip_address: { get_param: [ serv3_b_ips, { get_param: perimeta_instance_index } ] } + security_groups: { get_param: serv3_sec_groups } + allowed_address_pairs: + - ip_address: { get_param: [ serv3_vips, { get_param: perimeta_instance_index } ] } + + perimeta_b_unused_0_port: + type: OS::Neutron::Port + properties: + name: + str_replace: + template: $VM_unused_port + params: + $VM: { get_param: [ vm_b_names, { get_param: perimeta_instance_index } ] } + network: { get_param: unused_net_id } + + # Add any additional service ports here. + + perimeta_b_server_0: + type: OS::Nova::Server + properties: + name: { get_param: [ vm_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_param_server_group } } + metadata: + '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 } + networks: + - port: { get_resource: perimeta_b_mgmt_0_port } + - port: { get_resource: perimeta_b_ha_0_port } + - port: { get_resource: perimeta_b_trusted_0_port } + - port: { get_resource: perimeta_b_untrusted_0_port } + - port: { get_resource: perimeta_b_serv3_0_port } + - port: { get_resource: perimeta_b_unused_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"}, + "RPG3": {"mac": "$SERV3_MACADDR"}, + "RPG4": {"mac": "$SERV4_MACADDR"} + }, + "ip_ha_local": "$LOCAL_HA_IP_ADDR", + "ip_ha_remote": "$REMOTE_HA_IP_ADDR", + "ip_ha_plen": "$HA_NETWORK_PLEN" + //"ip_mgmt_local": "$LOCAL_MGMT_IP_ADDR", + //"ip_mgmt_remote": "$REMOTE_MGMT_IP_ADDR", + //"ip_mgmt_plen": "$MGMT_NETWORK_PLEN", + //"ip_mgmt_gway": "$MGMT_NETWORK_DEFAULT_GATEWAY" + } + + params: + $MGMT_MACADDR: { get_attr: [perimeta_b_mgmt_0_port, mac_address] } + $HA_MACADDR: { get_attr: [perimeta_b_ha_0_port, mac_address] } + $TRUSTED_MACADDR: { get_attr: [perimeta_b_trusted_0_port, mac_address] } + $UNTRUSTED_MACADDR: { get_attr: [perimeta_b_untrusted_0_port, mac_address] } + $SERV3_MACADDR: { get_attr: [perimeta_b_serv3_0_port, mac_address] } + $SERV4_MACADDR: { get_attr: [perimeta_b_unused_0_port, mac_address] } + $LOCAL_HA_IP_ADDR: { get_param: [ ha_b_ips, { get_param: perimeta_instance_index } ] } + $REMOTE_HA_IP_ADDR: { get_param: [ ha_a_ips, { get_param: perimeta_instance_index } ] } + $HA_NETWORK_PLEN: { get_param: ha_network_plen } + $LOCAL_MGMT_IP_ADDR: { get_param: [ mgmt_b_ips, { get_param: perimeta_instance_index } ] } + $REMOTE_MGMT_IP_ADDR: { get_param: [ mgmt_a_ips, { get_param: perimeta_instance_index } ] } + $MGMT_NETWORK_PLEN: { get_param: mgmt_net_plen } + $MGMT_NETWORK_DEFAULT_GATEWAY: { get_param: mgmt_net_default_gateway } + +outputs: + + server_group_used: + description: Server group used for these VMs + value: { get_param: perimeta_param_server_group } diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/subInterfaceToInterfaceConnection/vTSBC_AIC/inputfiles/ssc_a_template.json b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/subInterfaceToInterfaceConnection/vTSBC_AIC/inputfiles/ssc_a_template.json new file mode 100644 index 0000000000..7e82527836 --- /dev/null +++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/subInterfaceToInterfaceConnection/vTSBC_AIC/inputfiles/ssc_a_template.json @@ -0,0 +1,34 @@ +{ + // The vnic_assignment parameter is ignored by Perimeta releases prior to + // V4.0.00. + "vnic_assignment": { + "IBG1mgmt": {"mac": "$MGMT_MACADDR"}, + "IPG1": {"mac": "$HA_MACADDR"}, + "RPG1": {"mac": "$TRUSTED_MACADDR"}, + "RPG2": {"mac": "$UNTRUSTED_MACADDR"}, + "RPG3": {"mac": "$SERV3_MACADDR"}, + "RPG4": {"mac": "$SERV4_MACADDR"} + }, + "autocommission":"SSC", + "autostart":"true", + "autopartner":"", + "ip_mgmt_global": "$VIRT_MGMT_IP_ADDR", + "ip_mgmt_local": "$LOCAL_MGMT_IP_ADDR", + "ip_mgmt_remote": "$REMOTE_MGMT_IP_ADDR", + "ip_mgmt_plen": "$MGMT_NETWORK_PLEN", + "ip_mgmt_gway": "$MGMT_NETWORK_DEFAULT_GATEWAY", + "ip_ha_local": "$LOCAL_HA_IP_ADDR", + "ip_ha_remote": "$REMOTE_HA_IP_ADDR", + "ip_ha_plen": "$HA_NETWORK_PLEN", + "system_name": "$SYSTEM_NAME", + "node_local": "$VM_NAME_A", + "node_remote": "$VM_NAME_B", + "ntp_servers": "$NTP_SERVER_IP_ADDRS", + "perimeta": { + "dpdk_opt_enable":true, + "vlans_opt_enable":true + } + + // $COMPLETION_PARAMS +} + diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/subInterfaceToInterfaceConnection/vTSBC_AIC/inputfiles/vlan_subinterface_dual.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/subInterfaceToInterfaceConnection/vTSBC_AIC/inputfiles/vlan_subinterface_dual.yaml new file mode 100644 index 0000000000..5d0a72920c --- /dev/null +++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/subInterfaceToInterfaceConnection/vTSBC_AIC/inputfiles/vlan_subinterface_dual.yaml @@ -0,0 +1,98 @@ +heat_template_version: 2014-10-16 + +description: > + HOT template to instantiate a single Contrail VLAN sub-interface with associated instance IP addresses and allowed address pairs + +parameters: + subinterface_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. + subinterface_name_prefix: + type: string + description: Combined with subinterface_instance_index, this is used as the name of the subinterface resource + parent_interface: + type: string + description: Parent Contrail interface + mac_address: + type: string + description: MAC address to use for subinterface + ip_address: + type: string + description: IPv4 address associated with subinterfaces + ipv6_address: + type: string + description: IPv6 address associated with subinterfaces + virtual_ip_address: + type: string + description: virtual IPv4 address associated with subinterfaces + virtual_ipv6_address: + type: string + description: virtual IPv6 address associated with subinterfaces + vlan_ids: + type: comma_delimited_list + description: List of VLAN IDs to use for subinterfaces + vlan_networks: + type: comma_delimited_list + description: List of Contrail VLAN networks to use for the subinterfaces. The order and number of these must match the VLAN ID list + +resources: + contrail_vmi_subinterface: + type: OS::ContrailV2::VirtualMachineInterface + properties: + name: + str_replace: + template: $NAME$VLAN + params: + $NAME: { get_param: subinterface_name_prefix } + $VLAN: { get_param: [ vlan_ids, { get_param: subinterface_instance_index } ] } + virtual_machine_interface_properties: + { + virtual_machine_interface_properties_sub_interface_vlan_tag: { get_param: [ vlan_ids, { get_param: subinterface_instance_index } ] } + } + virtual_machine_interface_mac_addresses: + { + virtual_machine_interface_mac_addresses_mac_address: [{ get_param: mac_address }], + } + virtual_machine_interface_allowed_address_pairs: + { + virtual_machine_interface_allowed_address_pairs_allowed_address_pair: [ + { + virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode: active-standby, + virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac: { get_param: mac_address }, + virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip: + { + virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix: { get_param: virtual_ip_address }, + virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len: 32 + } + }, + { + virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode: active-standby, + virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac: { get_param: mac_address }, + virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip: + { + virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix: { get_param: virtual_ipv6_address }, + virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len: 128 + } + } + ] + } + virtual_network_refs: [{ get_param: [ vlan_networks, { get_param: subinterface_instance_index } ] }] + virtual_machine_interface_refs: [{ get_param: parent_interface }] + + contrail_vmi_ip: + type: OS::ContrailV2::InstanceIp + depends_on: [ contrail_vmi_subinterface ] + properties: + virtual_machine_interface_refs: [{ get_resource: contrail_vmi_subinterface }] + virtual_network_refs: [{ get_param: [ vlan_networks, { get_param: subinterface_instance_index } ] }] + instance_ip_address: { get_param: ip_address } + instance_ip_family: v4 + + contrail_vmi_ipv6: + type: OS::ContrailV2::InstanceIp + depends_on: [ contrail_vmi_subinterface ] + properties: + virtual_machine_interface_refs: [{ get_resource: contrail_vmi_subinterface }] + virtual_network_refs: [{ get_param: [ vlan_networks, { get_param: subinterface_instance_index } ] }] + instance_ip_address: { get_param: ipv6_address } + instance_ip_family: v6 |