Adjust kdt workload deployments

* Removed cfg node from scope of k8s deployment, since cfg node will have
its own kubernetes cluster

* Added force pull drivetrain images
* Added nginx proxy to forward traffic from floating IPs to workloads on
kdt nodes via metallb ip address

Prods related:
* #PROD-28381 (PROD:28381)
* #PROD-27471 (PROD:27471)
* #PROD-28564 (PROD:28564)

Change-Id: I3648246b11eb035cd2473b487d9485f1cdc8defe
diff --git a/cloud-deploy-pipeline.groovy b/cloud-deploy-pipeline.groovy
index 1412a76..1de45ee 100644
--- a/cloud-deploy-pipeline.groovy
+++ b/cloud-deploy-pipeline.groovy
@@ -376,7 +376,7 @@
             // install k8s
             if (common.checkContains('STACK_INSTALL', 'k8s')) {
                 extra_tgt_bckp = extra_tgt
-                extra_tgt = 'and not kdt* ' + extra_tgt_bckp
+                extra_tgt = 'and not kdt* and not cfg* ' + extra_tgt_bckp
                 stage('Install Kubernetes infra') {
                     if (STACK_TYPE == 'aws') {
                         // configure kubernetes_control_address - save loadbalancer
@@ -460,8 +460,10 @@
 
                 stage('Install Kubernetes control for kdt') {
                     salt.enforceStateWithTest([saltId: venvPepper, target: "I@kubernetes:master ${extra_tgt}", state: 'kubernetes.master.kube-addons'])
+                    salt.enforceStateWithTest([saltId: venvPepper, target: "I@kubernetes:master ${extra_tgt}", state: 'kubernetes.pool.images'])
                     orchestrate.installKubernetesControl(venvPepper, extra_tgt)
 
+                    salt.enforceStateWithTest([saltId: venvPepper, target: "I@kubernetes:master ${extra_tgt}", state: 'nginx.server'])
                     // collect artifacts (kubeconfig)
                     writeFile(file: 'kubeconfig-kdt', text: salt.getFileContent(venvPepper, "I@kubernetes:master and *01* ${extra_tgt}", '/etc/kubernetes/admin-kube-config'))
                     archiveArtifacts(artifacts: 'kubeconfig-kdt')