Add prx nodes to cicd k8s deployments

This class is always included for kubernetes platform:

  - system.reclass.storage.system.kubernetes_proxy_cluster

Change-Id: Ia479dbc249f98cbd54270745d9cf031269a4ff21
Closes-Bug: PROD-24656
diff --git a/tcp_tests/templates/cookied-cicd-k8s-calico-sl/cookiecutter-context-k8s-sl.yaml b/tcp_tests/templates/cookied-cicd-k8s-calico-sl/cookiecutter-context-k8s-sl.yaml
index 56f8465..e27cc19 100644
--- a/tcp_tests/templates/cookied-cicd-k8s-calico-sl/cookiecutter-context-k8s-sl.yaml
+++ b/tcp_tests/templates/cookied-cicd-k8s-calico-sl/cookiecutter-context-k8s-sl.yaml
@@ -129,6 +129,12 @@
   kubernetes_keepalived_vip_interface: br_ctl
   kubernetes_network_calico_enabled: 'True'
   kubernetes_virtlet_enabled: 'False'
+  kubernetes_proxy_hostname: prx
+  kubernetes_proxy_node01_hostname: prx01
+  kubernetes_proxy_node02_hostname: prx02
+  kubernetes_proxy_address: 10.167.4.220
+  kubernetes_proxy_node01_address: 10.167.4.221
+  kubernetes_proxy_node02_address: 10.167.4.222
   local_repositories: 'False'
   maas_deploy_address: 10.167.5.15
   maas_deploy_range_end: 10.167.5.199
diff --git a/tcp_tests/templates/cookied-cicd-k8s-calico-sl/environment-context-k8s-sl.yaml b/tcp_tests/templates/cookied-cicd-k8s-calico-sl/environment-context-k8s-sl.yaml
index 6097cba..2d4689c 100644
--- a/tcp_tests/templates/cookied-cicd-k8s-calico-sl/environment-context-k8s-sl.yaml
+++ b/tcp_tests/templates/cookied-cicd-k8s-calico-sl/environment-context-k8s-sl.yaml
@@ -109,6 +109,28 @@
         ens4:
           role: single_ctl_calico
 
+    prx01:
+      reclass_storage_name: kubernetes_proxy_node01
+      roles:
+      - kubernetes_proxy
+      - linux_system_codename_xenial
+      interfaces:
+        ens3:
+          role: single_dhcp
+        ens4:
+          role: single_ctl
+
+    prx02:
+      reclass_storage_name: kubernetes_proxy_node02
+      roles:
+      - kubernetes_proxy
+      - linux_system_codename_xenial
+      interfaces:
+        ens3:
+          role: single_dhcp
+        ens4:
+          role: single_ctl
+
     # Generator-based computes. For compatibility only
     cmp<<count>>:
       reclass_storage_name: kubernetes_compute_rack01
diff --git a/tcp_tests/templates/cookied-cicd-k8s-calico-sl/underlay.yaml b/tcp_tests/templates/cookied-cicd-k8s-calico-sl/underlay.yaml
index c0ceb3d..6f69b81 100644
--- a/tcp_tests/templates/cookied-cicd-k8s-calico-sl/underlay.yaml
+++ b/tcp_tests/templates/cookied-cicd-k8s-calico-sl/underlay.yaml
@@ -25,6 +25,7 @@
 {% set HOSTNAME_MON02 = os_env('HOSTNAME_MON02', 'mon02') %}
 {% set HOSTNAME_MON03 = os_env('HOSTNAME_MON03', 'mon03') %}
 {% set HOSTNAME_PRX01 = os_env('HOSTNAME_PRX01', 'prx01') %}
+{% set HOSTNAME_PRX02 = os_env('HOSTNAME_PRX02', 'prx02') %}
 {% set HOSTNAME_KVM01 = os_env('HOSTNAME_KVM01', 'kvm01') %}
 {% set HOSTNAME_KVM02 = os_env('HOSTNAME_KVM02', 'kvm02') %}
 {% set HOSTNAME_KVM03 = os_env('HOSTNAME_KVM03', 'kvm03') %}
@@ -57,6 +58,8 @@
             default_{{ HOSTNAME_CID01 }}: +91
             default_{{ HOSTNAME_CID02 }}: +92
             default_{{ HOSTNAME_CID03 }}: +93
+            default_{{ HOSTNAME_PRX01 }}: +221
+            default_{{ HOSTNAME_PRX02 }}: +222
 
           ip_ranges:
             dhcp: [+90, -10]
@@ -94,7 +97,8 @@
             default_{{ HOSTNAME_MTR01 }}: +86
             default_{{ HOSTNAME_MTR02 }}: +87
             default_{{ HOSTNAME_MTR03 }}: +88
-            default_{{ HOSTNAME_PRX01 }}: +222
+            default_{{ HOSTNAME_PRX01 }}: +221
+            default_{{ HOSTNAME_PRX02 }}: +222
             default_{{ HOSTNAME_KVM }}: +240
             default_{{ HOSTNAME_KVM01 }}: +241
             default_{{ HOSTNAME_KVM02 }}: +242
@@ -131,6 +135,8 @@
             default_{{ HOSTNAME_CID01 }}: +91
             default_{{ HOSTNAME_CID02 }}: +92
             default_{{ HOSTNAME_CID03 }}: +93
+            default_{{ HOSTNAME_PRX01 }}: +221
+            default_{{ HOSTNAME_PRX02 }}: +222
 
           ip_ranges:
             dhcp: [+10, -10]
@@ -804,3 +810,55 @@
 
               interfaces: *interfaces
               network_config: *network_config
+
+          - name: {{ HOSTNAME_PRX01 }}
+            role: salt_minion
+            params:
+              vcpu: !os_env SLAVE_NODE_CPU, 1
+              memory: !os_env SLAVE_NODE_MEMORY, 2048
+              boot:
+                - hd
+              cloud_init_volume_name: iso
+              cloud_init_iface_up: ens3
+              volumes:
+                - name: system
+                  capacity: !os_env NODE_VOLUME_SIZE, 150
+                  backing_store: mcp_ubuntu_1604_image
+                  format: qcow2
+                - name: iso  # Volume with name 'iso' will be used
+                             # for store image with cloud-init metadata.
+                  capacity: 1
+                  format: raw
+                  device: cdrom
+                  bus: ide
+                  cloudinit_meta_data: *cloudinit_meta_data
+                  cloudinit_user_data: *cloudinit_user_data_1604_swp
+
+              interfaces: *interfaces
+              network_config: *network_config
+
+          - name: {{ HOSTNAME_PRX02 }}
+            role: salt_minion
+            params:
+              vcpu: !os_env SLAVE_NODE_CPU, 1
+              memory: !os_env SLAVE_NODE_MEMORY, 2048
+              boot:
+                - hd
+              cloud_init_volume_name: iso
+              cloud_init_iface_up: ens3
+              volumes:
+                - name: system
+                  capacity: !os_env NODE_VOLUME_SIZE, 150
+                  backing_store: mcp_ubuntu_1604_image
+                  format: qcow2
+                - name: iso  # Volume with name 'iso' will be used
+                             # for store image with cloud-init metadata.
+                  capacity: 1
+                  format: raw
+                  device: cdrom
+                  bus: ide
+                  cloudinit_meta_data: *cloudinit_meta_data
+                  cloudinit_user_data: *cloudinit_user_data_1604_swp
+
+              interfaces: *interfaces
+              network_config: *network_config
diff --git a/tcp_tests/templates/cookied-cicd-k8s-calico/cookiecutter-context-k8s.yaml b/tcp_tests/templates/cookied-cicd-k8s-calico/cookiecutter-context-k8s.yaml
index 8fcb519..b8bda7e 100644
--- a/tcp_tests/templates/cookied-cicd-k8s-calico/cookiecutter-context-k8s.yaml
+++ b/tcp_tests/templates/cookied-cicd-k8s-calico/cookiecutter-context-k8s.yaml
@@ -129,6 +129,12 @@
   kubernetes_keepalived_vip_interface: br_ctl
   kubernetes_network_calico_enabled: 'True'
   kubernetes_virtlet_enabled: 'False'
+  kubernetes_proxy_hostname: prx
+  kubernetes_proxy_node01_hostname: prx01
+  kubernetes_proxy_node02_hostname: prx02
+  kubernetes_proxy_address: 10.167.4.220
+  kubernetes_proxy_node01_address: 10.167.4.221
+  kubernetes_proxy_node02_address: 10.167.4.222
   local_repositories: 'False'
   maas_deploy_address: 10.167.5.15
   maas_deploy_range_end: 10.167.5.199
diff --git a/tcp_tests/templates/cookied-cicd-k8s-calico/environment-context-k8s.yaml b/tcp_tests/templates/cookied-cicd-k8s-calico/environment-context-k8s.yaml
index d9e20c6..d13627b 100644
--- a/tcp_tests/templates/cookied-cicd-k8s-calico/environment-context-k8s.yaml
+++ b/tcp_tests/templates/cookied-cicd-k8s-calico/environment-context-k8s.yaml
@@ -109,6 +109,28 @@
         ens4:
           role: single_ctl_calico
 
+    prx01:
+      reclass_storage_name: kubernetes_proxy_node01
+      roles:
+      - kubernetes_proxy
+      - linux_system_codename_xenial
+      interfaces:
+        ens3:
+          role: single_dhcp
+        ens4:
+          role: single_ctl
+
+    prx02:
+      reclass_storage_name: kubernetes_proxy_node02
+      roles:
+      - kubernetes_proxy
+      - linux_system_codename_xenial
+      interfaces:
+        ens3:
+          role: single_dhcp
+        ens4:
+          role: single_ctl
+
     # Generator-based computes. For compatibility only
     cmp<<count>>:
       reclass_storage_name: kubernetes_compute_rack01
diff --git a/tcp_tests/templates/cookied-cicd-k8s-calico/underlay.yaml b/tcp_tests/templates/cookied-cicd-k8s-calico/underlay.yaml
index fe1970f..81a8afa 100644
--- a/tcp_tests/templates/cookied-cicd-k8s-calico/underlay.yaml
+++ b/tcp_tests/templates/cookied-cicd-k8s-calico/underlay.yaml
@@ -25,6 +25,7 @@
 {% set HOSTNAME_MON02 = os_env('HOSTNAME_MON02', 'mon02.' + DOMAIN_NAME) %}
 {% set HOSTNAME_MON03 = os_env('HOSTNAME_MON03', 'mon03.' + DOMAIN_NAME) %}
 {% set HOSTNAME_PRX01 = os_env('HOSTNAME_PRX01', 'prx01.' + DOMAIN_NAME) %}
+{% set HOSTNAME_PRX02 = os_env('HOSTNAME_PRX02', 'prx02.' + DOMAIN_NAME) %}
 {% set HOSTNAME_KVM01 = os_env('HOSTNAME_KVM01', 'kvm01.' + DOMAIN_NAME) %}
 {% set HOSTNAME_KVM02 = os_env('HOSTNAME_KVM02', 'kvm02.' + DOMAIN_NAME) %}
 {% set HOSTNAME_KVM03 = os_env('HOSTNAME_KVM03', 'kvm03.' + DOMAIN_NAME) %}
@@ -57,6 +58,8 @@
             default_{{ HOSTNAME_CID01 }}: +91
             default_{{ HOSTNAME_CID02 }}: +92
             default_{{ HOSTNAME_CID03 }}: +93
+            default_{{ HOSTNAME_PRX01 }}: +221
+            default_{{ HOSTNAME_PRX02 }}: +222
 
           ip_ranges:
             dhcp: [+90, -10]
@@ -94,7 +97,8 @@
             default_{{ HOSTNAME_MTR01 }}: +86
             default_{{ HOSTNAME_MTR02 }}: +87
             default_{{ HOSTNAME_MTR03 }}: +88
-            default_{{ HOSTNAME_PRX01 }}: +222
+            default_{{ HOSTNAME_PRX01 }}: +221
+            default_{{ HOSTNAME_PRX02 }}: +222
             default_{{ HOSTNAME_KVM }}: +240
             default_{{ HOSTNAME_KVM01 }}: +241
             default_{{ HOSTNAME_KVM02 }}: +242
@@ -131,6 +135,8 @@
             default_{{ HOSTNAME_CID01 }}: +91
             default_{{ HOSTNAME_CID02 }}: +92
             default_{{ HOSTNAME_CID03 }}: +93
+            default_{{ HOSTNAME_PRX01 }}: +221
+            default_{{ HOSTNAME_PRX02 }}: +222
 
           ip_ranges:
             dhcp: [+10, -10]
@@ -570,3 +576,55 @@
 
               interfaces: *interfaces
               network_config: *network_config
+
+          - name: {{ HOSTNAME_PRX01 }}
+            role: salt_minion
+            params:
+              vcpu: !os_env SLAVE_NODE_CPU, 1
+              memory: !os_env SLAVE_NODE_MEMORY, 2048
+              boot:
+                - hd
+              cloud_init_volume_name: iso
+              cloud_init_iface_up: ens3
+              volumes:
+                - name: system
+                  capacity: !os_env NODE_VOLUME_SIZE, 150
+                  backing_store: mcp_ubuntu_1604_image
+                  format: qcow2
+                - name: iso  # Volume with name 'iso' will be used
+                             # for store image with cloud-init metadata.
+                  capacity: 1
+                  format: raw
+                  device: cdrom
+                  bus: ide
+                  cloudinit_meta_data: *cloudinit_meta_data
+                  cloudinit_user_data: *cloudinit_user_data_1604_swp
+
+              interfaces: *interfaces
+              network_config: *network_config
+
+          - name: {{ HOSTNAME_PRX02 }}
+            role: salt_minion
+            params:
+              vcpu: !os_env SLAVE_NODE_CPU, 1
+              memory: !os_env SLAVE_NODE_MEMORY, 2048
+              boot:
+                - hd
+              cloud_init_volume_name: iso
+              cloud_init_iface_up: ens3
+              volumes:
+                - name: system
+                  capacity: !os_env NODE_VOLUME_SIZE, 150
+                  backing_store: mcp_ubuntu_1604_image
+                  format: qcow2
+                - name: iso  # Volume with name 'iso' will be used
+                             # for store image with cloud-init metadata.
+                  capacity: 1
+                  format: raw
+                  device: cdrom
+                  bus: ide
+                  cloudinit_meta_data: *cloudinit_meta_data
+                  cloudinit_user_data: *cloudinit_user_data_1604_swp
+
+              interfaces: *interfaces
+              network_config: *network_config
diff --git a/tcp_tests/templates/cookied-cicd-k8s-genie/cookiecutter-context-k8s-genie.yaml b/tcp_tests/templates/cookied-cicd-k8s-genie/cookiecutter-context-k8s-genie.yaml
index 118322a..e163fec 100644
--- a/tcp_tests/templates/cookied-cicd-k8s-genie/cookiecutter-context-k8s-genie.yaml
+++ b/tcp_tests/templates/cookied-cicd-k8s-genie/cookiecutter-context-k8s-genie.yaml
@@ -128,6 +128,12 @@
   kubernetes_externaldns_enabled: 'False'
   kubernetes_keepalived_vip_interface: br_ctl
   kubernetes_network_calico_enabled: 'True'
+  kubernetes_proxy_hostname: prx
+  kubernetes_proxy_node01_hostname: prx01
+  kubernetes_proxy_node02_hostname: prx02
+  kubernetes_proxy_address: 10.167.4.220
+  kubernetes_proxy_node01_address: 10.167.4.221
+  kubernetes_proxy_node02_address: 10.167.4.222
   local_repositories: 'False'
   maas_deploy_address: 10.167.5.15
   maas_deploy_range_end: 10.167.5.199
diff --git a/tcp_tests/templates/cookied-cicd-k8s-genie/environment-context-k8s-genie.yaml b/tcp_tests/templates/cookied-cicd-k8s-genie/environment-context-k8s-genie.yaml
index d9e20c6..d13627b 100644
--- a/tcp_tests/templates/cookied-cicd-k8s-genie/environment-context-k8s-genie.yaml
+++ b/tcp_tests/templates/cookied-cicd-k8s-genie/environment-context-k8s-genie.yaml
@@ -109,6 +109,28 @@
         ens4:
           role: single_ctl_calico
 
+    prx01:
+      reclass_storage_name: kubernetes_proxy_node01
+      roles:
+      - kubernetes_proxy
+      - linux_system_codename_xenial
+      interfaces:
+        ens3:
+          role: single_dhcp
+        ens4:
+          role: single_ctl
+
+    prx02:
+      reclass_storage_name: kubernetes_proxy_node02
+      roles:
+      - kubernetes_proxy
+      - linux_system_codename_xenial
+      interfaces:
+        ens3:
+          role: single_dhcp
+        ens4:
+          role: single_ctl
+
     # Generator-based computes. For compatibility only
     cmp<<count>>:
       reclass_storage_name: kubernetes_compute_rack01
diff --git a/tcp_tests/templates/cookied-cicd-k8s-genie/underlay.yaml b/tcp_tests/templates/cookied-cicd-k8s-genie/underlay.yaml
index bda254b..3211906 100644
--- a/tcp_tests/templates/cookied-cicd-k8s-genie/underlay.yaml
+++ b/tcp_tests/templates/cookied-cicd-k8s-genie/underlay.yaml
@@ -15,6 +15,8 @@
 {% set HOSTNAME_CMP02 = os_env('HOSTNAME_CMP02', 'cmp002') %}
 {% set HOSTNAME_CMP03 = os_env('HOSTNAME_CMP03', 'cmp003') %}
 {% set HOSTNAME_CMP04 = os_env('HOSTNAME_CMP04', 'cmp004') %}
+{% set HOSTNAME_PRX01 = os_env('HOSTNAME_PRX01', 'prx01') %}
+{% set HOSTNAME_PRX02 = os_env('HOSTNAME_PRX02', 'prx02') %}
 {% set HOSTNAME_KVM01 = os_env('HOSTNAME_KVM01', 'kvm01') %}
 {% set HOSTNAME_KVM02 = os_env('HOSTNAME_KVM02', 'kvm02') %}
 {% set HOSTNAME_KVM03 = os_env('HOSTNAME_KVM03', 'kvm03') %}
@@ -47,6 +49,8 @@
             default_{{ HOSTNAME_CID01 }}: +91
             default_{{ HOSTNAME_CID02 }}: +92
             default_{{ HOSTNAME_CID03 }}: +93
+            default_{{ HOSTNAME_PRX01 }}: +221
+            default_{{ HOSTNAME_PRX02 }}: +222
 
           ip_ranges:
             dhcp: [+90, -10]
@@ -72,6 +76,8 @@
             default_{{ HOSTNAME_CMP02 }}: +102
             default_{{ HOSTNAME_CMP03 }}: +103
             default_{{ HOSTNAME_CMP04 }}: +104
+            default_{{ HOSTNAME_PRX01 }}: +221
+            default_{{ HOSTNAME_PRX02 }}: +222
             default_{{ HOSTNAME_KVM }}: +240
             default_{{ HOSTNAME_KVM01 }}: +241
             default_{{ HOSTNAME_KVM02 }}: +242
@@ -108,6 +114,8 @@
             default_{{ HOSTNAME_CID01 }}: +91
             default_{{ HOSTNAME_CID02 }}: +92
             default_{{ HOSTNAME_CID03 }}: +93
+            default_{{ HOSTNAME_PRX01 }}: +221
+            default_{{ HOSTNAME_PRX02 }}: +222
 
           ip_ranges:
             dhcp: [+10, -10]
@@ -547,3 +555,55 @@
 
               interfaces: *interfaces
               network_config: *network_config
+
+          - name: {{ HOSTNAME_PRX01 }}
+            role: salt_minion
+            params:
+              vcpu: !os_env SLAVE_NODE_CPU, 1
+              memory: !os_env SLAVE_NODE_MEMORY, 2048
+              boot:
+                - hd
+              cloud_init_volume_name: iso
+              cloud_init_iface_up: ens3
+              volumes:
+                - name: system
+                  capacity: !os_env NODE_VOLUME_SIZE, 150
+                  backing_store: mcp_ubuntu_1604_image
+                  format: qcow2
+                - name: iso  # Volume with name 'iso' will be used
+                             # for store image with cloud-init metadata.
+                  capacity: 1
+                  format: raw
+                  device: cdrom
+                  bus: ide
+                  cloudinit_meta_data: *cloudinit_meta_data
+                  cloudinit_user_data: *cloudinit_user_data_1604_swp
+
+              interfaces: *interfaces
+              network_config: *network_config
+
+          - name: {{ HOSTNAME_PRX02 }}
+            role: salt_minion
+            params:
+              vcpu: !os_env SLAVE_NODE_CPU, 1
+              memory: !os_env SLAVE_NODE_MEMORY, 2048
+              boot:
+                - hd
+              cloud_init_volume_name: iso
+              cloud_init_iface_up: ens3
+              volumes:
+                - name: system
+                  capacity: !os_env NODE_VOLUME_SIZE, 150
+                  backing_store: mcp_ubuntu_1604_image
+                  format: qcow2
+                - name: iso  # Volume with name 'iso' will be used
+                             # for store image with cloud-init metadata.
+                  capacity: 1
+                  format: raw
+                  device: cdrom
+                  bus: ide
+                  cloudinit_meta_data: *cloudinit_meta_data
+                  cloudinit_user_data: *cloudinit_user_data_1604_swp
+
+              interfaces: *interfaces
+              network_config: *network_config