diff --git a/jjb/pipeline/voltha/bbsim-tests.groovy b/jjb/pipeline/voltha/bbsim-tests.groovy
index d1ed9b7..c0682fb 100644
--- a/jjb/pipeline/voltha/bbsim-tests.groovy
+++ b/jjb/pipeline/voltha/bbsim-tests.groovy
@@ -293,15 +293,23 @@
                     // -----------------------------------------------------------------------
                     // NOTE temporary workaround expose ONOS node ports
                     // -----------------------------------------------------------------------
-                    String localHelmFlags = [
-                        extraHelmFlags.trim(),
-                        "--set global.log_level=${logLevel.toUpperCase()}",
-                        '--set onos-classic.onosSshPort=30115',
-                        '--set onos-classic.onosApiPort=30120',
-                        '--set onos-classic.onosOfPort=31653',
-                        '--set onos-classic.individualOpenFlowNodePorts=true',
-                        testSpecificHelmFlags
-                    ].join(' ')
+                    String localHelmFlags = ""
+                    if (!vgcEnabled) {
+                        localHelmFlags = [
+                            extraHelmFlags.trim(),
+                            "--set global.log_level=${logLevel.toUpperCase()}",
+                            '--set onos-classic.onosSshPort=30115',
+                            '--set onos-classic.onosApiPort=30120',
+                            '--set onos-classic.onosOfPort=31653',
+                            '--set onos-classic.individualOpenFlowNodePorts=true',
+                            testSpecificHelmFlags
+                        ].join(' ')
+                    } else {
+                        localHelmFlags = [
+                            extraHelmFlags.trim(),
+                            testSpecificHelmFlags
+                        ].join(' ')
+                    }
 
                     println("** ${iam} localHelmFlags = ${localHelmFlags}")
 
@@ -366,6 +374,11 @@
       if [ ${withMonitoring} = true ] ; then
         JENKINS_NODE_COOKIE="dontKillMe" _TAG="nem-monitoring-prometheus-server" bash -c "while true; do kubectl port-forward --address 0.0.0.0 -n default svc/nem-monitoring-prometheus-server 31301:80; done"&
       fi
+      if (vgcEnabled) {
+        JENKINS_NODE_COOKIE="dontKillMe" _TAG="vgc-Port-Forward-Enable" bash -c "while true; do kubectl port-forward --address 0.0.0.0 -n voltha svc/voltha-voltha-go-controller 8181:8181; done"&
+      fi
+    }
+
 #      ps aux | grep port-forward
 """)
             // ---------------------------------
diff --git a/vars/volthaInfraDeploy.groovy b/vars/volthaInfraDeploy.groovy
index 773cbb0..62d5d8d 100644
--- a/vars/volthaInfraDeploy.groovy
+++ b/vars/volthaInfraDeploy.groovy
@@ -89,6 +89,7 @@
         etcdReplica: 1,
         infraNamespace: 'infra',
         workflow: 'att',
+        vgcEnabled: false,
         withMacLearning: false,
         withFttb: false,
         extraHelmFlags: '',
@@ -138,18 +139,32 @@
 
     // bitnamic/etch has change the replica format between the currently used 5.4.2 and the latest 6.2.5
     // for now put both values in the extra helm chart flags
-    sh(label  : 'HELM: upgrade --install',
-       script : """
-    helm upgrade --install --create-namespace -n ${cfg.infraNamespace} voltha-infra ${volthaInfraChart} \
-          --set onos-classic.replicas=${cfg.onosReplica},onos-classic.atomix.replicas=${cfg.atomixReplica} \
-          --set kafka.replicaCount=${cfg.kafkaReplica},kafka.zookeeper.replicaCount=${cfg.kafkaReplica} \
-          --set etcd.statefulset.replicaCount=${cfg.etcdReplica} \
-          --set etcd.replicaCount=${cfg.etcdReplica} \
-          --set etcd.ingress.enabled=true \
-          --set etcd.ingress.hosts[0].host=voltha-infra.${cfg.cluster} \
-          --set etcd.ingress.hosts[0].paths[0]='/etcdserverpb.KV/' \
-          -f $WORKSPACE/voltha-helm-charts/examples/${serviceConfigFile}-values.yaml ${cfg.extraHelmFlags}
-""")
+    if (cfg.vgcEnabled) {
+        sh(label  : 'HELM: upgrade --install',
+            script : """
+        helm upgrade --install --create-namespace -n ${cfg.infraNamespace} voltha-infra ${volthaInfraChart} \
+            --set kafka.replicaCount=${cfg.kafkaReplica},kafka.zookeeper.replicaCount=${cfg.kafkaReplica} \
+            --set etcd.statefulset.replicaCount=${cfg.etcdReplica} \
+            --set etcd.replicaCount=${cfg.etcdReplica} \
+            --set etcd.ingress.enabled=true \
+            --set etcd.ingress.hosts[0].host=voltha-infra.${cfg.cluster} \
+            --set etcd.ingress.hosts[0].paths[0]='/etcdserverpb.KV/' \
+            -f $WORKSPACE/voltha-helm-charts/examples/${serviceConfigFile}-values.yaml ${cfg.extraHelmFlags}
+    """)
+    } else {
+        sh(label  : 'HELM: upgrade --install',
+            script : """
+        helm upgrade --install --create-namespace -n ${cfg.infraNamespace} voltha-infra ${volthaInfraChart} \
+            --set onos-classic.replicas=${cfg.onosReplica},onos-classic.atomix.replicas=${cfg.atomixReplica} \
+            --set kafka.replicaCount=${cfg.kafkaReplica},kafka.zookeeper.replicaCount=${cfg.kafkaReplica} \
+            --set etcd.statefulset.replicaCount=${cfg.etcdReplica} \
+            --set etcd.replicaCount=${cfg.etcdReplica} \
+            --set etcd.ingress.enabled=true \
+            --set etcd.ingress.hosts[0].host=voltha-infra.${cfg.cluster} \
+            --set etcd.ingress.hosts[0].paths[0]='/etcdserverpb.KV/' \
+            -f $WORKSPACE/voltha-helm-charts/examples/${serviceConfigFile}-values.yaml ${cfg.extraHelmFlags}
+    """)
+    }
 
     leave('process')
     return
diff --git a/vars/volthaStackDeploy.groovy b/vars/volthaStackDeploy.groovy
index 89881d9..77f0fe5 100644
--- a/vars/volthaStackDeploy.groovy
+++ b/vars/volthaStackDeploy.groovy
@@ -62,6 +62,7 @@
           --set voltha.ingress.hosts[0].host=voltha.${cfg.cluster} \
           --set voltha.ingress.hosts[0].paths[0]='/voltha.VolthaService/' \
           --set global.voltha_infra_namespace=${cfg.infraNamespace} \
+          --set voltha.replicas.ofagent=0
           ${cfg.extraHelmFlags}
 """)
     } else {
