Centralize redundant install infra call

Currently installInfra called for k8s,openstack,oss separately.
This patch ensures we will install infra only once for all
components.

Change-Id: I22401d5f133b345cacfd1edcdcb67efa79c9890a
diff --git a/cloud-deploy-pipeline.groovy b/cloud-deploy-pipeline.groovy
index 1eecbc0..1e03773 100644
--- a/cloud-deploy-pipeline.groovy
+++ b/cloud-deploy-pipeline.groovy
@@ -336,6 +336,14 @@
                 }
             }
 
+            stage('Install infra') {
+              if (common.checkContains('STACK_INSTALL', 'core') ||
+                    common.checkContains('STACK_INSTALL', 'openstack') ||
+                      common.checkContains('STACK_INSTALL', 'oss')) {
+                  orchestrate.installInfra(venvPepper, extra_tgt)
+              }
+            }
+
             // install k8s
             if (common.checkContains('STACK_INSTALL', 'k8s')) {
 
@@ -353,8 +361,6 @@
                     // ensure certificates are generated properly
                     salt.runSaltProcessStep(venvPepper, "* ${extra_tgt}", 'saltutil.refresh_pillar', [], null, true)
                     salt.enforceState(venvPepper, "* ${extra_tgt}", ['salt.minion.cert'], true)
-
-                    orchestrate.installKubernetesInfra(venvPepper, extra_tgt)
                 }
 
                 if (common.checkContains('STACK_INSTALL', 'contrail')) {
@@ -407,12 +413,7 @@
 
             // install openstack
             if (common.checkContains('STACK_INSTALL', 'openstack')) {
-                // install Infra and control, tests, ...
-
-                stage('Install OpenStack infra') {
-                    orchestrate.installOpenstackInfra(venvPepper, extra_tgt)
-                }
-
+                // install control, tests, ...
                 stage('Install OpenStack control') {
                     orchestrate.installOpenstackControl(venvPepper, extra_tgt)
                 }