Merge "Add external interface on proxy node for Queens labs"
diff --git a/tcp_tests/templates/cookied-cicd-queens-dvr-sl/cookiecutter-context-queens-dvr-sl.yaml b/tcp_tests/templates/cookied-cicd-queens-dvr-sl/cookiecutter-context-queens-dvr-sl.yaml
index 855363b..0fa8367 100644
--- a/tcp_tests/templates/cookied-cicd-queens-dvr-sl/cookiecutter-context-queens-dvr-sl.yaml
+++ b/tcp_tests/templates/cookied-cicd-queens-dvr-sl/cookiecutter-context-queens-dvr-sl.yaml
@@ -142,7 +142,8 @@
   openstack_nova_compute_nfv_req_enabled: 'False'
   openstack_ovs_dvr_enabled: 'True'
   openstack_ovs_encapsulation_type: vxlan
-  openstack_proxy_address: 10.167.4.80
+  openstack_proxy_address: 172.17.16.80  # external network endpoint
+  openstack_proxy_vip_interface: ens5
   openstack_proxy_hostname: prx
   openstack_proxy_node01_address: 10.167.4.121
   openstack_proxy_node01_hostname: prx01
diff --git a/tcp_tests/templates/cookied-cicd-queens-dvr-sl/environment_context.yaml b/tcp_tests/templates/cookied-cicd-queens-dvr-sl/environment_context.yaml
index c3efdde..c9d0a31 100644
--- a/tcp_tests/templates/cookied-cicd-queens-dvr-sl/environment_context.yaml
+++ b/tcp_tests/templates/cookied-cicd-queens-dvr-sl/environment_context.yaml
@@ -123,13 +123,17 @@
     prx01:
       reclass_storage_name: openstack_proxy_node01
       roles:
-      - openstack_proxy
+      #- openstack_proxy  # another VIP interface used
       - linux_system_codename_xenial
       interfaces:
         ens3:
           role: single_dhcp
         ens4:
           role: single_ctl
+        ens5:
+          role: single_external
+          external_address: 172.17.16.121
+          external_network_netmask: 255.255.255.0
 
     mon01:
       reclass_storage_name: stacklight_server_node01
diff --git a/tcp_tests/templates/cookied-cicd-queens-dvr-sl/underlay.yaml b/tcp_tests/templates/cookied-cicd-queens-dvr-sl/underlay.yaml
index baa714d..3a65412 100644
--- a/tcp_tests/templates/cookied-cicd-queens-dvr-sl/underlay.yaml
+++ b/tcp_tests/templates/cookied-cicd-queens-dvr-sl/underlay.yaml
@@ -597,9 +597,26 @@
                   cloudinit_meta_data: *cloudinit_meta_data
                   cloudinit_user_data: *cloudinit_user_data_1604_swp
 
-              interfaces: *interfaces
-              network_config: *network_config
-
+              interfaces:
+                - label: ens3
+                  l2_network_device: admin
+                  interface_model: *interface_model
+                - label: ens4
+                  l2_network_device: private
+                  interface_model: *interface_model
+                - label: ens5
+                  l2_network_device: external
+                  interface_model: *interface_model
+              network_config:
+                ens3:
+                  networks:
+                    - admin
+                ens4:
+                  networks:
+                    - private
+                ens5:
+                  networks:
+                    - external
 
           - name: {{ HOSTNAME_CMP01 }}
             role: salt_minion
diff --git a/tcp_tests/templates/cookied-mcp-queens-dvr-ceph/cookiecutter-context-dvr-ceph.yaml b/tcp_tests/templates/cookied-mcp-queens-dvr-ceph/cookiecutter-context-dvr-ceph.yaml
index bfcc3fd..9f66d16 100644
--- a/tcp_tests/templates/cookied-mcp-queens-dvr-ceph/cookiecutter-context-dvr-ceph.yaml
+++ b/tcp_tests/templates/cookied-mcp-queens-dvr-ceph/cookiecutter-context-dvr-ceph.yaml
@@ -185,7 +185,8 @@
   openstack_nova_compute_reserved_host_memory_mb: '900'
   openstack_ovs_dvr_enabled: 'True'
   openstack_ovs_encapsulation_type: vxlan
-  openstack_proxy_address: 10.167.4.80
+  openstack_proxy_address: 172.17.16.80  # external network endpoint
+  openstack_proxy_vip_interface: ens5
   openstack_proxy_hostname: prx
   openstack_proxy_node01_address: 10.167.4.81
   openstack_proxy_node01_hostname: prx01
diff --git a/tcp_tests/templates/cookied-mcp-queens-dvr-ceph/underlay.yaml b/tcp_tests/templates/cookied-mcp-queens-dvr-ceph/underlay.yaml
index fe31142..850fedf 100644
--- a/tcp_tests/templates/cookied-mcp-queens-dvr-ceph/underlay.yaml
+++ b/tcp_tests/templates/cookied-mcp-queens-dvr-ceph/underlay.yaml
@@ -662,8 +662,26 @@
                   cloudinit_meta_data: *cloudinit_meta_data
                   cloudinit_user_data: *cloudinit_user_data_1604
 
-              interfaces: *interfaces
-              network_config: *network_config
+              interfaces:
+                - label: ens3
+                  l2_network_device: admin
+                  interface_model: *interface_model
+                - label: ens4
+                  l2_network_device: private
+                  interface_model: *interface_model
+                - label: ens5
+                  l2_network_device: external
+                  interface_model: *interface_model
+              network_config:
+                ens3:
+                  networks:
+                    - admin
+                ens4:
+                  networks:
+                    - private
+                ens5:
+                  networks:
+                    - external
 
           - name: {{ HOSTNAME_CMP01 }}
             role: salt_minion
diff --git a/tcp_tests/templates/cookied-mcp-queens-dvr-ceph/vcp-context-environment.yaml b/tcp_tests/templates/cookied-mcp-queens-dvr-ceph/vcp-context-environment.yaml
index 28831da..cd312f4 100644
--- a/tcp_tests/templates/cookied-mcp-queens-dvr-ceph/vcp-context-environment.yaml
+++ b/tcp_tests/templates/cookied-mcp-queens-dvr-ceph/vcp-context-environment.yaml
@@ -55,13 +55,17 @@
     prx01.cookied-mcp-queens-dvr-ceph.local:
       reclass_storage_name: openstack_proxy_node01
       roles:
-      - openstack_proxy
+      #- openstack_proxy  # another VIP interface used
       - linux_system_codename_xenial
       interfaces:
         ens3:
           role: single_dhcp
         ens4:
           role: single_ctl
+        ens5:
+          role: single_external
+          external_address: 172.17.16.121
+          external_network_netmask: 255.255.255.0
 
     # Generator-based computes. For compatibility only
     cmp<<count>>.cookied-mcp-queens-dvr-ceph.local:
diff --git a/tcp_tests/templates/cookied-mcp-queens-dvr-ssl-barbican/_context-cookiecutter-mcp-queens-dvr-ssl-barbican.yaml b/tcp_tests/templates/cookied-mcp-queens-dvr-ssl-barbican/_context-cookiecutter-mcp-queens-dvr-ssl-barbican.yaml
index 1cec753..af06e9a 100644
--- a/tcp_tests/templates/cookied-mcp-queens-dvr-ssl-barbican/_context-cookiecutter-mcp-queens-dvr-ssl-barbican.yaml
+++ b/tcp_tests/templates/cookied-mcp-queens-dvr-ssl-barbican/_context-cookiecutter-mcp-queens-dvr-ssl-barbican.yaml
@@ -100,7 +100,8 @@
   openstack_nova_compute_nfv_req_enabled: 'False'
   openstack_ovs_dvr_enabled: 'True'
   openstack_ovs_encapsulation_type: vxlan
-  openstack_proxy_address: 172.16.10.80
+  openstack_proxy_address: 172.17.16.80  # external network proxy VIP
+  openstack_proxy_vip_interface: ens5
   openstack_proxy_hostname: prx
   openstack_proxy_node01_address: 172.16.10.121
   openstack_proxy_node01_hostname: prx01
diff --git a/tcp_tests/templates/cookied-mcp-queens-dvr-ssl-barbican/_context-environment.yaml b/tcp_tests/templates/cookied-mcp-queens-dvr-ssl-barbican/_context-environment.yaml
index 7102e9c..22d74ad 100644
--- a/tcp_tests/templates/cookied-mcp-queens-dvr-ssl-barbican/_context-environment.yaml
+++ b/tcp_tests/templates/cookied-mcp-queens-dvr-ssl-barbican/_context-environment.yaml
@@ -91,13 +91,17 @@
     prx01.mcp-queens-dvr-ssl.local:
       reclass_storage_name: openstack_proxy_node01
       roles:
-      - openstack_proxy
+      #- openstack_proxy  # another VIP interface used
       - linux_system_codename_xenial
       interfaces:
         ens3:
           role: single_dhcp
         ens4:
           role: single_ctl
+        ens5:
+          role: single_external
+          external_address: 172.17.16.121
+          external_network_netmask: 255.255.255.0
 
     # Generator-based computes. For compatibility only
     cmp<<count>>.mcp-queens-dvr-ssl.local:
diff --git a/tcp_tests/templates/cookied-mcp-queens-dvr-ssl-barbican/underlay.yaml b/tcp_tests/templates/cookied-mcp-queens-dvr-ssl-barbican/underlay.yaml
index c7dd479..b81481b 100644
--- a/tcp_tests/templates/cookied-mcp-queens-dvr-ssl-barbican/underlay.yaml
+++ b/tcp_tests/templates/cookied-mcp-queens-dvr-ssl-barbican/underlay.yaml
@@ -391,8 +391,26 @@
                   cloudinit_meta_data: *cloudinit_meta_data
                   cloudinit_user_data: *cloudinit_user_data_1604
 
-              interfaces: *interfaces
-              network_config: *network_config
+              interfaces:
+                - label: ens3
+                  l2_network_device: admin
+                  interface_model: *interface_model
+                - label: ens4
+                  l2_network_device: private
+                  interface_model: *interface_model
+                - label: ens5
+                  l2_network_device: external
+                  interface_model: *interface_model
+              network_config:
+                ens3:
+                  networks:
+                    - admin
+                ens4:
+                  networks:
+                    - private
+                ens5:
+                  networks:
+                    - external
 
           - name: {{ HOSTNAME_CMP01 }}
             role: salt_minion
diff --git a/tcp_tests/templates/cookied-mcp-queens-dvr-ssl/_context-cookiecutter-mcp-queens-dvr-ssl.yaml b/tcp_tests/templates/cookied-mcp-queens-dvr-ssl/_context-cookiecutter-mcp-queens-dvr-ssl.yaml
index dcc8bc5..2d36a8b 100644
--- a/tcp_tests/templates/cookied-mcp-queens-dvr-ssl/_context-cookiecutter-mcp-queens-dvr-ssl.yaml
+++ b/tcp_tests/templates/cookied-mcp-queens-dvr-ssl/_context-cookiecutter-mcp-queens-dvr-ssl.yaml
@@ -100,7 +100,8 @@
   openstack_nova_compute_nfv_req_enabled: 'False'
   openstack_ovs_dvr_enabled: 'True'
   openstack_ovs_encapsulation_type: vxlan
-  openstack_proxy_address: 172.16.10.80
+  openstack_proxy_address: 172.17.16.80  # external network proxy VIP
+  openstack_proxy_vip_interface: ens5
   openstack_proxy_hostname: prx
   openstack_proxy_node01_address: 172.16.10.121
   openstack_proxy_node01_hostname: prx01
diff --git a/tcp_tests/templates/cookied-mcp-queens-dvr-ssl/_context-environment.yaml b/tcp_tests/templates/cookied-mcp-queens-dvr-ssl/_context-environment.yaml
index b1c7e3d..f4316a4 100644
--- a/tcp_tests/templates/cookied-mcp-queens-dvr-ssl/_context-environment.yaml
+++ b/tcp_tests/templates/cookied-mcp-queens-dvr-ssl/_context-environment.yaml
@@ -58,13 +58,17 @@
     prx01.mcp-queens-dvr-ssl.local:
       reclass_storage_name: openstack_proxy_node01
       roles:
-      - openstack_proxy
+      #- openstack_proxy  # another VIP interface used
       - linux_system_codename_xenial
       interfaces:
         ens3:
           role: single_dhcp
         ens4:
           role: single_ctl
+        ens5:
+          role: single_external
+          external_address: 172.17.16.121
+          external_network_netmask: 255.255.255.0
 
     mon01.mcp-queens-dvr-ssl.local:
       reclass_storage_name: stacklight_server_node01
diff --git a/tcp_tests/templates/cookied-mcp-queens-dvr-ssl/underlay.yaml b/tcp_tests/templates/cookied-mcp-queens-dvr-ssl/underlay.yaml
index f6a8998..3ec33cf 100644
--- a/tcp_tests/templates/cookied-mcp-queens-dvr-ssl/underlay.yaml
+++ b/tcp_tests/templates/cookied-mcp-queens-dvr-ssl/underlay.yaml
@@ -689,9 +689,26 @@
                   cloudinit_meta_data: *cloudinit_meta_data
                   cloudinit_user_data: *cloudinit_user_data_1604
 
-              interfaces: *interfaces
-              network_config: *network_config
-
+              interfaces:
+                - label: ens3
+                  l2_network_device: admin
+                  interface_model: *interface_model
+                - label: ens4
+                  l2_network_device: private
+                  interface_model: *interface_model
+                - label: ens5
+                  l2_network_device: external
+                  interface_model: *interface_model
+              network_config:
+                ens3:
+                  networks:
+                    - admin
+                ens4:
+                  networks:
+                    - private
+                ens5:
+                  networks:
+                    - external
 
           - name: {{ HOSTNAME_CMP01 }}
             role: salt_minion
diff --git a/tcp_tests/templates/cookied-mcp-queens-dvr/_context-cookiecutter-mcp-queens-dvr.yaml b/tcp_tests/templates/cookied-mcp-queens-dvr/_context-cookiecutter-mcp-queens-dvr.yaml
index 15f8d68..85f91da 100644
--- a/tcp_tests/templates/cookied-mcp-queens-dvr/_context-cookiecutter-mcp-queens-dvr.yaml
+++ b/tcp_tests/templates/cookied-mcp-queens-dvr/_context-cookiecutter-mcp-queens-dvr.yaml
@@ -100,7 +100,8 @@
   openstack_nova_compute_nfv_req_enabled: 'False'
   openstack_ovs_dvr_enabled: 'True'
   openstack_ovs_encapsulation_type: vxlan
-  openstack_proxy_address: 172.16.10.80
+  openstack_proxy_address: 172.17.16.80  # external network proxy VIP
+  openstack_proxy_vip_interface: ens5
   openstack_proxy_hostname: prx
   openstack_proxy_node01_address: 172.16.10.121
   openstack_proxy_node01_hostname: prx01
diff --git a/tcp_tests/templates/cookied-mcp-queens-dvr/_context-environment.yaml b/tcp_tests/templates/cookied-mcp-queens-dvr/_context-environment.yaml
index 081c51d..8df3dcc 100644
--- a/tcp_tests/templates/cookied-mcp-queens-dvr/_context-environment.yaml
+++ b/tcp_tests/templates/cookied-mcp-queens-dvr/_context-environment.yaml
@@ -58,13 +58,17 @@
     prx01.mcp-queens-dvr.local:
       reclass_storage_name: openstack_proxy_node01
       roles:
-      - openstack_proxy
+      #- openstack_proxy  # another VIP interface used
       - linux_system_codename_xenial
       interfaces:
         ens3:
           role: single_dhcp
         ens4:
           role: single_ctl
+        ens5:
+          role: single_external
+          external_address: 172.17.16.121
+          external_network_netmask: 255.255.255.0
 
     mon01.mcp-queens-dvr.local:
       reclass_storage_name: stacklight_server_node01
diff --git a/tcp_tests/templates/cookied-mcp-queens-dvr/underlay.yaml b/tcp_tests/templates/cookied-mcp-queens-dvr/underlay.yaml
index f6d9b98..2cb86de 100644
--- a/tcp_tests/templates/cookied-mcp-queens-dvr/underlay.yaml
+++ b/tcp_tests/templates/cookied-mcp-queens-dvr/underlay.yaml
@@ -597,9 +597,26 @@
                   cloudinit_meta_data: *cloudinit_meta_data
                   cloudinit_user_data: *cloudinit_user_data_1604
 
-              interfaces: *interfaces
-              network_config: *network_config
-
+              interfaces:
+                - label: ens3
+                  l2_network_device: admin
+                  interface_model: *interface_model
+                - label: ens4
+                  l2_network_device: private
+                  interface_model: *interface_model
+                - label: ens5
+                  l2_network_device: external
+                  interface_model: *interface_model
+              network_config:
+                ens3:
+                  networks:
+                    - admin
+                ens4:
+                  networks:
+                    - private
+                ens5:
+                  networks:
+                    - external
 
           - name: {{ HOSTNAME_CMP01 }}
             role: salt_minion
diff --git a/tcp_tests/templates/cookied-mcp-queens-ovs/_context-cookiecutter-mcp-queens-ovs.yaml b/tcp_tests/templates/cookied-mcp-queens-ovs/_context-cookiecutter-mcp-queens-ovs.yaml
index 18a8beb..f43c412 100644
--- a/tcp_tests/templates/cookied-mcp-queens-ovs/_context-cookiecutter-mcp-queens-ovs.yaml
+++ b/tcp_tests/templates/cookied-mcp-queens-ovs/_context-cookiecutter-mcp-queens-ovs.yaml
@@ -100,7 +100,8 @@
   openstack_nova_compute_nfv_req_enabled: 'False'
   openstack_ovs_dvr_enabled: 'False'
   openstack_ovs_encapsulation_type: vxlan
-  openstack_proxy_address: 172.16.10.80
+  openstack_proxy_address: 172.17.16.80  # external network proxy VIP
+  openstack_proxy_vip_interface: ens5
   openstack_proxy_hostname: prx
   openstack_proxy_node01_address: 172.16.10.121
   openstack_proxy_node01_hostname: prx01
diff --git a/tcp_tests/templates/cookied-mcp-queens-ovs/_context-environment.yaml b/tcp_tests/templates/cookied-mcp-queens-ovs/_context-environment.yaml
index 1593d43..dff6188 100644
--- a/tcp_tests/templates/cookied-mcp-queens-ovs/_context-environment.yaml
+++ b/tcp_tests/templates/cookied-mcp-queens-ovs/_context-environment.yaml
@@ -58,13 +58,17 @@
     prx01.mcp-queens-ovs.local:
       reclass_storage_name: openstack_proxy_node01
       roles:
-      - openstack_proxy
+      #- openstack_proxy  # another VIP interface used
       - linux_system_codename_xenial
       interfaces:
         ens3:
           role: single_dhcp
         ens4:
           role: single_ctl
+        ens5:
+          role: single_external
+          external_address: 172.17.16.121
+          external_network_netmask: 255.255.255.0
 
     mon01.mcp-queens-ovs.local:
       reclass_storage_name: stacklight_server_node01
diff --git a/tcp_tests/templates/cookied-mcp-queens-ovs/underlay.yaml b/tcp_tests/templates/cookied-mcp-queens-ovs/underlay.yaml
index 6ea4098..349417e 100644
--- a/tcp_tests/templates/cookied-mcp-queens-ovs/underlay.yaml
+++ b/tcp_tests/templates/cookied-mcp-queens-ovs/underlay.yaml
@@ -596,8 +596,26 @@
                   cloudinit_meta_data: *cloudinit_meta_data
                   cloudinit_user_data: *cloudinit_user_data_1604
 
-              interfaces: *interfaces
-              network_config: *network_config
+              interfaces:
+                - label: ens3
+                  l2_network_device: admin
+                  interface_model: *interface_model
+                - label: ens4
+                  l2_network_device: private
+                  interface_model: *interface_model
+                - label: ens5
+                  l2_network_device: external
+                  interface_model: *interface_model
+              network_config:
+                ens3:
+                  networks:
+                    - admin
+                ens4:
+                  networks:
+                    - private
+                ens5:
+                  networks:
+                    - external
 
           - name: {{ HOSTNAME_CMP01 }}
             role: salt_minion