[VOL-3341] Adding scale jobs based on VOLTHA-2.4

Change-Id: Iff3ae0854979c1475ac4baa39bd1b67da59cb054
diff --git a/jjb/pipeline/voltha-scale-test.groovy b/jjb/pipeline/voltha-scale-test.groovy
index c52858a..3505609 100644
--- a/jjb/pipeline/voltha-scale-test.groovy
+++ b/jjb/pipeline/voltha-scale-test.groovy
@@ -127,7 +127,7 @@
         checkout([
           $class: 'GitSCM',
           userRemoteConfigs: [[ url: "https://gerrit.opencord.org/voltha-system-tests", ]],
-          branches: [[ name: "master", ]],
+          branches: [[ name: "${release}", ]],
           extensions: [
             [$class: 'WipeWorkspace'],
             [$class: 'RelativeTargetDirectory', relativeTargetDir: "voltha-system-tests"],
@@ -170,37 +170,42 @@
       steps {
         script {
           sh returnStdout: false, script: """
+
+            cd $WORKSPACE/kind-voltha/
+
             export EXTRA_HELM_FLAGS+='--set enablePerf=true,pon=${pons},onu=${onus} '
 
             # disable the securityContext, this is a development cluster
             EXTRA_HELM_FLAGS+='--set securityContext.enabled=false '
 
-            # BBSim custom image handling
-            IFS=: read -r bbsimRepo bbsimTag <<< ${bbsimImg}
-            EXTRA_HELM_FLAGS+="--set images.bbsim.repository=\$bbsimRepo,images.bbsim.tag=\$bbsimTag "
+            if [ '${release}' == 'master' ]; then
+              # BBSim custom image handling
+              IFS=: read -r bbsimRepo bbsimTag <<< ${bbsimImg}
+              EXTRA_HELM_FLAGS+="--set images.bbsim.repository=\$bbsimRepo,images.bbsim.tag=\$bbsimTag "
 
-            # VOLTHA and ofAgent custom image handling
-            IFS=: read -r rwCoreRepo rwCoreTag <<< ${rwCoreImg}
-            IFS=: read -r ofAgentRepo ofAgentTag <<< ${ofAgentImg}
-            EXTRA_HELM_FLAGS+="--set images.rw_core.repository=\$rwCoreRepo,images.rw_core.tag=\$rwCoreTag,images.ofagent.repository=\$ofAgentRepo,images.ofagent.tag=\$ofAgentTag "
+              # VOLTHA and ofAgent custom image handling
+              IFS=: read -r rwCoreRepo rwCoreTag <<< ${rwCoreImg}
+              IFS=: read -r ofAgentRepo ofAgentTag <<< ${ofAgentImg}
+              EXTRA_HELM_FLAGS+="--set images.rw_core.repository=\$rwCoreRepo,images.rw_core.tag=\$rwCoreTag,images.ofagent.repository=\$ofAgentRepo,images.ofagent.tag=\$ofAgentTag "
 
-            # OpenOLT custom image handling
-            IFS=: read -r openoltAdapterRepo openoltAdapterTag <<< ${openoltAdapterImg}
-            EXTRA_HELM_FLAGS+="--set images.adapter_open_olt.repository=\$openoltAdapterRepo,images.adapter_open_olt.tag=\$openoltAdapterTag "
+              # OpenOLT custom image handling
+              IFS=: read -r openoltAdapterRepo openoltAdapterTag <<< ${openoltAdapterImg}
+              EXTRA_HELM_FLAGS+="--set images.adapter_open_olt.repository=\$openoltAdapterRepo,images.adapter_open_olt.tag=\$openoltAdapterTag "
 
-            # OpenONU custom image handling
-            IFS=: read -r openonuAdapterRepo openonuAdapterTag <<< ${openonuAdapterImg}
-            EXTRA_HELM_FLAGS+="--set images.adapter_open_onu.repository=\$openonuAdapterRepo,images.adapter_open_onu.tag=\$openonuAdapterTag "
+              # OpenONU custom image handling
+              IFS=: read -r openonuAdapterRepo openonuAdapterTag <<< ${openonuAdapterImg}
+              EXTRA_HELM_FLAGS+="--set images.adapter_open_onu.repository=\$openonuAdapterRepo,images.adapter_open_onu.tag=\$openonuAdapterTag "
 
-            # ONOS custom image handling
-            IFS=: read -r onosRepo onosTag <<< ${onosImg}
-            EXTRA_HELM_FLAGS+="--set images.onos.repository=\$onosRepo,images.onos.tag=\$onosTag "
+              # ONOS custom image handling
+              IFS=: read -r onosRepo onosTag <<< ${onosImg}
+              EXTRA_HELM_FLAGS+="--set images.onos.repository=\$onosRepo,images.onos.tag=\$onosTag "
+            else
+              source $WORKSPACE/kind-voltha/releases/${release}
+            fi
 
             # No persistent-volume-claims in Atomix
             EXTRA_HELM_FLAGS+="--set atomix.persistence.enabled=false "
 
-            cd $WORKSPACE/kind-voltha/
-
             ./voltha up
 
             # Forward the ETCD port onto $VOLTHA_ETCD_PORT
diff --git a/jjb/voltha-scale.yaml b/jjb/voltha-scale.yaml
index 4fbbcd4..4c5e012 100644
--- a/jjb/voltha-scale.yaml
+++ b/jjb/voltha-scale.yaml
@@ -10,7 +10,7 @@
       # name format is <job-template>-<olts>-<pon>-<onus>-<setup>
       # needed for comparison with the openonu-go adapter
       # - 'voltha-scale-measurements':
-      #     name: 'voltha-scale-measurements-1-2-32-activation-no-mib'
+      #     name: 'voltha-scale-measurements-master-1-2-32-activation-no-mib'
       #     build-node: 'onf-pod1-head-node'
       #     time-trigger: "H H/4 * * *"
       #     olts: 1
@@ -25,7 +25,7 @@
 
       # jobs for 200 ONUs with a single openonu-adapter
       # - 'voltha-scale-measurements':
-      #     name: 'voltha-scale-measurements-1-10-20-activation'
+      #     name: 'voltha-scale-measurements-master-1-10-20-activation'
       #     build-node: 'onf-pod1-head-node'
       #     time-trigger: "H H/4 * * *"
       #     olts: 1
@@ -37,7 +37,7 @@
       #     withDhcp: false
       #     withIgmp: false
       # - 'voltha-scale-measurements':
-      #     name: 'voltha-scale-measurements-1-10-20-att-flows'
+      #     name: 'voltha-scale-measurements-master-1-10-20-att-flows'
       #     build-node: 'onf-pod1-head-node'
       #     time-trigger: "H H/4 * * *"
       #     olts: 1
@@ -50,7 +50,7 @@
       #     withIgmp: false
       #     extraHelmFlags: '--set auth=false '
       # - 'voltha-scale-measurements':
-      #     name: 'voltha-scale-measurements-1-10-20-att-subscribers'
+      #     name: 'voltha-scale-measurements-master-1-10-20-att-subscribers'
       #     build-node: 'onf-pod1-head-node'
       #     time-trigger: "H H/4 * * *"
       #     olts: 1
@@ -62,7 +62,7 @@
       #     withDhcp: true
       #     withIgmp: false
       # - 'voltha-scale-measurements':
-      #     name: 'voltha-scale-measurements-1-10-20-att-subscribers-profiled'
+      #     name: 'voltha-scale-measurements-master-1-10-20-att-subscribers-profiled'
       #     build-node: 'onf-pod1-head-node'
       #     time-trigger: "H H/4 * * *"
       #     olts: 1
@@ -81,7 +81,7 @@
       #
       # # jobs for DT with 200 ONUs with a single openonu-adapter
       # - 'voltha-scale-measurements':
-      #     name: 'voltha-scale-measurements-1-10-20-dt-subscribers'
+      #     name: 'voltha-scale-measurements-master-1-10-20-dt-subscribers'
       #     build-node: 'onf-pod1-head-node'
       #     time-trigger: "H H/4 * * *"
       #     olts: 1
@@ -96,7 +96,7 @@
 
       # jobs for 512 ONUs with a 8 openonu-adapters and clustered ONOS
       - 'voltha-scale-measurements':
-          name: 'voltha-scale-measurements-1-16-32-activation'
+          name: 'voltha-scale-measurements-master-1-16-32-activation'
           build-node: 'onf-pod1-head-node'
           time-trigger: "H H/4 * * *"
           olts: 1
@@ -113,7 +113,7 @@
           extraHelmFlags: '--set limits.memory=8192Mi '
 
       - 'voltha-scale-measurements':
-          name: 'voltha-scale-measurements-1-16-32-att-flows'
+          name: 'voltha-scale-measurements-master-1-16-32-att-flows'
           build-node: 'onf-pod1-head-node'
           time-trigger: "H H/4 * * *"
           olts: 1
@@ -130,7 +130,7 @@
           extraHelmFlags: '--set auth=false --set limits.memory=8192Mi '
 
       - 'voltha-scale-measurements':
-          name: 'voltha-scale-measurements-1-16-32-att-subscribers'
+          name: 'voltha-scale-measurements-master-1-16-32-att-subscribers'
           build-node: 'onf-pod1-head-node'
           time-trigger: "H H/4 * * *"
           olts: 1
@@ -150,7 +150,7 @@
 
       # jobs for DT with 512 ONUs with a 8 openonu-adapters and clustered ONOS.
       - 'voltha-scale-measurements':
-          name: 'voltha-scale-measurements-1-16-32-dt-subscribers'
+          name: 'voltha-scale-measurements-master-1-16-32-dt-subscribers'
           build-node: 'onf-pod1-head-node'
           time-trigger: "H H/4 * * *"
           olts: 1
@@ -170,7 +170,7 @@
       # jobs for 1024 ONUs with a 8 openonu-adapters and clustered ONOS (2 OLTs)
       - 'voltha-scale-measurements':
           disabled: true
-          name: 'voltha-scale-measurements-2-16-32-activation'
+          name: 'voltha-scale-measurements-master-2-16-32-activation'
           build-node: 'onf-pod1-head-node'
           time-trigger: "H H/4 * * *"
           olts: 2
@@ -189,7 +189,7 @@
 
       - 'voltha-scale-measurements':
           disabled: true
-          name: 'voltha-scale-measurements-2-16-32-att-flows'
+          name: 'voltha-scale-measurements-master-2-16-32-att-flows'
           build-node: 'onf-pod1-head-node'
           time-trigger: "H H/4 * * *"
           olts: 2
@@ -208,7 +208,7 @@
 
       - 'voltha-scale-measurements':
           disabled: true
-          name: 'voltha-scale-measurements-2-16-32-att-subscribers'
+          name: 'voltha-scale-measurements-master-2-16-32-att-subscribers'
           build-node: 'onf-pod1-head-node'
           time-trigger: "H H/4 * * *"
           olts: 2
@@ -228,7 +228,7 @@
 
       # jobs for DT with 512 ONUs with a 8 openonu-adapters and clustered ONOS.
       - 'voltha-scale-measurements':
-          name: 'voltha-scale-measurements-2-16-32-dt-subscribers'
+          name: 'voltha-scale-measurements-master-2-16-32-dt-subscribers'
           build-node: 'onf-pod1-head-node'
           time-trigger: "H H/4 * * *"
           olts: 2
@@ -244,11 +244,47 @@
           onosReplicas: 3
           atomixReplicas: 3
           extraHelmFlags: '--set limits.memory=8192Mi --set defaults.rw_core.timeout=30s'
-          volthaSystemTestsChange: 'refs/changes/63/19663/1'
 
+      # voltha-2.4 Jobs
+      - 'voltha-scale-measurements':
+          name: 'voltha-scale-measurements-voltha-2.4-16-32-att-subscribers'
+          build-node: 'onf-pod1-head-node'
+          time-trigger: "H H/4 * * *"
+          olts: 1
+          pons: 16
+          onus: 32
+          withFlows: true
+          provisionSubscribers: true
+          withEapol: true
+          withDhcp: true
+          withIgmp: false
+          openonuAdapterReplicas: 8
+          onosReplicas: 3
+          atomixReplicas: 3
+          extraHelmFlags: '--set defaults.rw_core.timeout=30s'
+          openoltAdapterImg: matteoscandolo/voltha-openolt-adapter:vol-3269
+          release: voltha-2.4
+
+      - 'voltha-scale-measurements':
+          name: 'voltha-scale-measurements-voltha-2.4-2-16-32-dt-subscribers'
+          build-node: 'onf-pod1-head-node'
+          time-trigger: "H H/4 * * *"
+          olts: 2
+          pons: 16
+          onus: 32
+          withFlows: true
+          provisionSubscribers: true
+          workflow: dt
+          withEapol: false
+          withDhcp: false
+          withIgmp: false
+          openonuAdapterReplicas: 8
+          onosReplicas: 3
+          atomixReplicas: 3
+          release: voltha-2.4
       # development pipeline
       - 'voltha-scale-measurements-dev':
-          name: 'voltha-scale-measurements-dev'
+          name: 'voltha-scale-measurements-master-dev'
           build-node: 'voltha-scale'
 
 
@@ -274,6 +310,8 @@
           jenkins-ssh-credential: '{jenkins-ssh-credential}'
 
     # default values
+    release: master
+
     bbsimImg: voltha/bbsim:master
     rwCoreImg: voltha/voltha-rw-core:master
     ofAgentImg: voltha/voltha-ofagent-go:master
@@ -311,6 +349,11 @@
 
     parameters:
       - string:
+          name: release
+          default: '{release}'
+          description: 'Version of the code to test (matches a branch in kind-voltha and voltha-system-tests repos)'
+
+      - string:
           name: buildNode
           default: '{build-node}'
           description: 'Name of the Jenkins node to run the job on'