heat_template_version: 2015-04-30 parameters: ###network names int_oam_int_net_id: type: string description: Name of management network to be created apps_int_net_id: type: string description: Name of mirror network to be created gwaf_lb2_int_net_id: type: string description: Name of mirror network to be created ###VM names#### LB2_name_0: type: string description: Name of the SVM LB2_name_1: type: string description: Name of the SVM #####General########## lb_key_name: type: string LB2_flavor_name: type: string description: Flavor of the end VMs LB2_image_name: type: string description: Name of the end VM LB_image_name availability_zone_0: type: string description: availability zone availability_zone_1: type: string description: availability zone # aap_core aap_core_ip_prefix: type: string description: ip_prefix for the ServiceInstance aap_core_ip_prefix_len: type: number description: ip_prefix_len for the ServiceInstance aap_core_ha_mode: type: string description: address_mode for the ServiceInstance aap_core_mac: type: string description: mac for the VirtualMachineInterface ####Ip addresses lb_oam_int_ip_0: type: string description: lb ip lb_apps_int_ip_0: type: string description: lb ip gwaf_lb2_int_ip_0: type: string description: lb ip lb_oam_int_ip_1: type: string description: lb ip lb_apps_int_ip_1: type: string description: lb ip gwaf_lb2_int_ip_1: type: string description: lb ip vf_module_id: type: string description: Unique ID for this VF Module instance vnf_id: type: string description: Name of vOTA instance for ECOMP gwaf_lb2_int_sec_group_id: type: string description: sec group apps_int_sec_group_id: type: string description: sec group int_oam_int_sec_group_id: type: string description: sec group ####Health check######### shc_enabled: type: string description: health check shc_monitor_type: type: string description: health check shc_delay: type: string description: health check shc_timeout: type: string description: health check shc_max_retries: type: string description: health check shc_url_path: type: string description: health check ###ECMP hashing######### ecmp_hashing_include_fields_hashing_configured: type: string description: health check ecmp_hashing_include_fields_source_ip: type: string description: health check ecmp_hashing_include_fields_destination_port: type: string description: health check ecmp_hashing_include_fields_source_port: type: string description: health check ecmp_hashing_include_fields_destination_ip: type: string description: health check ecmp_hashing_include_fields_ip_protocol: type: string description: health check resources: lb_0_int_oam_int_0_port: type: OS::ContrailV2::VirtualMachineInterface properties: virtual_machine_interface_properties: { virtual_machine_interface_properties_service_interface_type: { get_param: int_oam_int_net_id }, } virtual_network_refs: [{ get_param: int_oam_int_net_id }] security_group_refs: [{ get_param: int_oam_int_sec_group_id}] lb_0_apps_int_1_port: type: OS::ContrailV2::VirtualMachineInterface properties: virtual_machine_interface_properties: { virtual_machine_interface_properties_service_interface_type: { get_param: apps_int_net_id }, } virtual_network_refs: [{ get_param: apps_int_net_id }] security_group_refs: [{ get_param: apps_int_sec_group_id }] lb_0_gwaf_lb2_int_2_port: type: OS::ContrailV2::VirtualMachineInterface properties: virtual_network_refs: [{ get_param: gwaf_lb2_int_net_id }] service_health_check_refs: - get_resource: lb_gwaf_lb2_hc ecmp_hashing_include_fields: ecmp_hashing_include_fields_hashing_configured: { get_param: ecmp_hashing_include_fields_hashing_configured } ecmp_hashing_include_fields_source_ip: { get_param: ecmp_hashing_include_fields_source_ip } ecmp_hashing_include_fields_destination_port: { get_param: ecmp_hashing_include_fields_destination_port } ecmp_hashing_include_fields_destination_ip: { get_param: ecmp_hashing_include_fields_destination_ip } ecmp_hashing_include_fields_source_port: { get_param: ecmp_hashing_include_fields_source_port } ecmp_hashing_include_fields_ip_protocol: { get_param: ecmp_hashing_include_fields_ip_protocol } virtual_machine_interface_allowed_address_pairs: { virtual_machine_interface_allowed_address_pairs_allowed_address_pair: [{ virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip: { virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix: { get_param: aap_core_ip_prefix }, virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len: { get_param: aap_core_ip_prefix_len }, }, virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac: { get_param: aap_core_mac }, virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode: { get_param: aap_core_ha_mode }, }], } security_group_refs: [{ get_param: gwaf_lb2_int_sec_group_id }] lb_1_int_oam_int_0_port: type: OS::ContrailV2::VirtualMachineInterface properties: virtual_machine_interface_properties: { virtual_machine_interface_properties_service_interface_type: { get_param: int_oam_int_net_id }, } virtual_network_refs: [{ get_param: int_oam_int_net_id }] security_group_refs: [{ get_param: int_oam_int_sec_group_id}] lb_1_apps_int_1_port: type: OS::ContrailV2::VirtualMachineInterface properties: virtual_machine_interface_properties: { virtual_machine_interface_properties_service_interface_type: { get_param: apps_int_net_id }, } virtual_network_refs: [{ get_param: apps_int_net_id }] security_group_refs: [{ get_param: apps_int_sec_group_id }] lb_1_gwaf_lb2_int_2_port: type: OS::ContrailV2::VirtualMachineInterface properties: virtual_network_refs: [{ get_param: gwaf_lb2_int_net_id }] service_health_check_refs: - get_resource: lb_gwaf_lb2_hc ecmp_hashing_include_fields: ecmp_hashing_include_fields_hashing_configured: { get_param: ecmp_hashing_include_fields_hashing_configured } ecmp_hashing_include_fields_source_ip: { get_param: ecmp_hashing_include_fields_source_ip } ecmp_hashing_include_fields_destination_port: { get_param: ecmp_hashing_include_fields_destination_port } ecmp_hashing_include_fields_destination_ip: { get_param: ecmp_hashing_include_fields_destination_ip } ecmp_hashing_include_fields_source_port: { get_param: ecmp_hashing_include_fields_source_port } ecmp_hashing_include_fields_ip_protocol: { get_param: ecmp_hashing_include_fields_ip_protocol } virtual_machine_interface_allowed_address_pairs: { virtual_machine_interface_allowed_address_pairs_allowed_address_pair: [{ virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip: { virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix: { get_param: aap_core_ip_prefix }, virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len: { get_param: aap_core_ip_prefix_len }, }, virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac: { get_param: aap_core_mac }, virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode: { get_param: aap_core_ha_mode }, }], } security_group_refs: [{ get_param: gwaf_lb2_int_sec_group_id }] lb_0_int_oam_int_0_ip: type: OS::ContrailV2::InstanceIp depends_on: [ lb_0_int_oam_int_0_port ] properties: virtual_machine_interface_refs: [{ get_resource: lb_0_int_oam_int_0_port }] virtual_network_refs: [{ get_param: int_oam_int_net_id }] instance_ip_address: { get_param: lb_oam_int_ip_0 } lb_0_apps_int_1_ip: type: OS::ContrailV2::InstanceIp depends_on: [ lb_0_apps_int_1_port ] properties: virtual_machine_interface_refs: [{ get_resource: lb_0_apps_int_1_port }] virtual_network_refs: [{ get_param: apps_int_net_id }] instance_ip_address: { get_param: lb_apps_int_ip_0 } lb_0_gwaf_lb2_int_2_ip: type: OS::ContrailV2::InstanceIp depends_on: [ lb_0_gwaf_lb2_int_2_port ] properties: virtual_machine_interface_refs: [{ get_resource: lb_0_gwaf_lb2_int_2_port }] virtual_network_refs: [{ get_param: gwaf_lb2_int_net_id }] instance_ip_address: { get_param: gwaf_lb2_int_ip_0 } lb_1_int_oam_int_0_ip: type: OS::ContrailV2::InstanceIp depends_on: [ lb_1_int_oam_int_0_port ] properties: virtual_machine_interface_refs: [{ get_resource: lb_1_int_oam_int_0_port }] virtual_network_refs: [{ get_param: int_oam_int_net_id }] instance_ip_address: { get_param: lb_oam_int_ip_1 } lb_1_apps_int_1_ip: type: OS::ContrailV2::InstanceIp depends_on: [ lb_1_apps_int_1_port ] properties: virtual_machine_interface_refs: [{ get_resource: lb_1_apps_int_1_port }] virtual_network_refs: [{ get_param: apps_int_net_id }] instance_ip_address: { get_param: lb_apps_int_ip_1 } lb_1_gwaf_lb2_int_2_ip: type: OS::ContrailV2::InstanceIp depends_on: [ lb_1_gwaf_lb2_int_2_port ] properties: virtual_machine_interface_refs: [{ get_resource: lb_1_gwaf_lb2_int_2_port }] virtual_network_refs: [{ get_param: gwaf_lb2_int_net_id }] instance_ip_address: { get_param: gwaf_lb2_int_ip_1 } lb_gwaf_lb2_hc: type: OS::ContrailV2::ServiceHealthCheck properties: name: gwaf_lb2_hc_PING service_health_check_properties: service_health_check_properties_enabled: { get_param: shc_enabled } service_health_check_properties_monitor_type: { get_param: shc_monitor_type } service_health_check_properties_delay: { get_param: shc_delay } service_health_check_properties_timeout: { get_param: shc_timeout } service_health_check_properties_max_retries: { get_param: shc_max_retries } service_health_check_properties_url_path: { get_param: shc_url_path } LB2_0: type: OS::Nova::Server depends_on: [ lb_0_int_oam_int_0_ip, lb_0_apps_int_1_ip, lb_0_gwaf_lb2_int_2_ip ] properties: name: {get_param: LB2_name_0 } image: { get_param: LB2_image_name } flavor: { get_param: LB2_flavor_name } key_name: { get_param: lb_key_name } availability_zone: { get_param: availability_zone_0 } networks: - port: { get_resource: lb_0_int_oam_int_0_port } - port: { get_resource: lb_0_apps_int_1_port } - port: { get_resource: lb_0_gwaf_lb2_int_2_port } metadata: vnf_id: { get_param: vnf_id } vf_module_id: { get_param: vf_module_id } user_data: str_replace: template: | params: $lb_loopback: { get_param: LB2_image_name } LB2_1: type: OS::Nova::Server depends_on: [ lb_1_int_oam_int_0_ip, lb_1_apps_int_1_ip, lb_1_gwaf_lb2_int_2_ip ] properties: name: {get_param: LB2_name_1 } image: { get_param: LB2_image_name } flavor: { get_param: LB2_flavor_name } availability_zone: { get_param: availability_zone_1 } key_name: { get_param: lb_key_name } networks: - port: { get_resource: lb_1_int_oam_int_0_port } - port: { get_resource: lb_1_apps_int_1_port } - port: { get_resource: lb_1_gwaf_lb2_int_2_port } metadata: vnf_id: { get_param: vnf_id } vf_module_id: { get_param: vf_module_id } user_data: str_replace: template: | params: $lb_loopback: { get_param: LB2_image_name }