[VOL-4127] Adding extraHelmFlag parameter to physical build jobs

Change-Id: I1b7edff8e6a1910285cd4498ddde85e9f42972f6
diff --git a/jjb/pipeline/voltha/master/physical-build.groovy b/jjb/pipeline/voltha/master/physical-build.groovy
index 1b66c03..6f6f9f9 100644
--- a/jjb/pipeline/voltha/master/physical-build.groovy
+++ b/jjb/pipeline/voltha/master/physical-build.groovy
@@ -93,30 +93,34 @@
             }
 
             // should the config file be suffixed with the workflow? see "deployment_config"
-            def extraHelmFlags = "-f $WORKSPACE/${configBaseDir}/${configKubernetesDir}/voltha/${configFileName}.yml --set global.log_level=${logLevel} "
+            def localHelmFlags = "-f $WORKSPACE/${configBaseDir}/${configKubernetesDir}/voltha/${configFileName}.yml --set global.log_level=${logLevel} "
 
             if (workFlow.toLowerCase() == "dt") {
-              extraHelmFlags += " --set radius.enabled=false "
+              localHelmFlags += " --set radius.enabled=false "
             }
             if (workFlow.toLowerCase() == "tt") {
-              extraHelmFlags += " --set radius.enabled=false --set global.incremental_evto_update=true "
+              localHelmFlags += " --set radius.enabled=false --set global.incremental_evto_update=true "
             }
 
             // NOTE temporary workaround expose ONOS node ports (pod-config needs to be updated to contain these values)
-            extraHelmFlags = extraHelmFlags + " --set onos-classic.onosSshPort=30115 " +
+            localHelmFlags = localHelmFlags + " --set onos-classic.onosSshPort=30115 " +
             "--set onos-classic.onosApiPort=30120 " +
             "--set onos-classic.onosOfPort=31653 " +
             "--set onos-classic.individualOpenFlowNodePorts=true "
 
+
             def bbsimReplica = 0
             if (installBBSim.toBoolean()) {
               bbsimReplica = 1
-              extraHelmFlags = extraHelmFlags + " --set onu=${onuNumber},pon=${ponNumber} "
+              localHelmFlags = localHelmFlags + " --set onu=${onuNumber},pon=${ponNumber} "
             }
 
+            // adding user specified helm flags at the end so they'll have priority over everything else
+            localHelmFlags = localHelmFlags += " ${extraHelmFlags}"
+
             volthaDeploy([
               workflow: workFlow.toLowerCase(),
-              extraHelmFlags: extraHelmFlags,
+              extraHelmFlags: localHelmFlags,
               localCharts: localCharts,
               kubeconfig: "$WORKSPACE/${configBaseDir}/${configKubernetesDir}/${configFileName}.conf",
               onosReplica: params.NumOfOnos,
diff --git a/jjb/voltha-test/voltha-nightly-jobs.yaml b/jjb/voltha-test/voltha-nightly-jobs.yaml
index d00d1be..0f41795 100644
--- a/jjb/voltha-test/voltha-nightly-jobs.yaml
+++ b/jjb/voltha-test/voltha-nightly-jobs.yaml
@@ -77,6 +77,11 @@
           default: '{work-flow}'
           description: 'Installs and uses the specified work flow on the POD'
 
+      - string:
+          name: extraHelmFlags
+          default: '{extraHelmFlags}'
+          description: 'Helm flags (passed to each deployment)'
+
       # openonu-go only supports a single replica, remove after 2.8
       - string:
           name: NumOfOpenOnu
@@ -216,6 +221,7 @@
     installBBSim: false
     num-of-onus: 0
     num-of-ponports: 0
+    extraHelmFlags: ''
 
     <<: *voltha-build-job-parameters
 
@@ -254,6 +260,7 @@
     installBBSim: false
     num-of-onus: 0
     num-of-ponports: 0
+    extraHelmFlags: ''
 
     <<: *voltha-build-job-parameters
 
@@ -289,6 +296,7 @@
     num-of-ponports: 0
     num-of-kafka: 1
     num-of-etcd: 1
+    extraHelmFlags: ''
 
     <<: *voltha-build-job-parameters