---
# POD Build Pipeline Jobs for Voltha Releases

- project:
    name: voltha-release-jobs

    project-name: '{name}'

    build-timeout: '300'

    with-kind: false
    power-switch: False
    work-flow: 'ATT'
    in-band-management: false
    num-of-openonu: '1'
    num-of-onos: '1'
    num-of-atomix: '0'
    reinstall-olt: true
    test-type: ''
    volthaSystemTestsChange: ''
    kindVolthaChange: ''
    cordTesterChange: ''
    oltAdapterAppLabel: 'adapter-open-olt'
    num-of-onus: ''
    num-of-ponports: ''

    jobs:
      # flex OCP pod with olt/onu - manual test job, voltha master build job
      - 'build_voltha_pod_manual':
          'disable-job': false
          build-node: 'qa-testvm-pod'
          config-pod: 'flex-ocp-cord'
          num-of-onos: '3'
          num-of-atomix: '3'
          num-of-kafka: '3'
          num-of-etcd: '3'
          VolthaEtcdPort: 9999
          profile: 'TP'
          name-extension: '_TT'
          work-flow: 'TT'

      # flex pod1 test job - using voltha branch
      - 'build_voltha_pod_manual_test':
          'disable-job': false
          build-node: 'qa-testvm-pod'
          config-pod: 'flex-ocp-cord'
          disable-job: false
          profile: 'TP'
          branch: 'master'
          release: 'master'
          work-flow: 'TT'
          name-extension: '_TT'
          test-type: ''
          test-repo: 'voltha-system-tests'
          pipeline-script: 'voltha/master/voltha-tt-physical-functional-tests.groovy'

      # flex OCP pod with olt/onu - Default tech profile and timer based job
      - 'build_voltha_pod_release_timer':
          'disable-job': false
          build-node: 'qa-testvm-pod'
          config-pod: 'flex-ocp-cord'
          profile: 'Default'
          time: '5'
          VolthaEtcdPort: 9999
          num-of-onos: '3'
          num-of-atomix: '3'

      # flex pod1 test job - uses tech profile on voltha branch
      - 'build_voltha_pod_test':
          'disable-job': false
          build-node: 'qa-testvm-pod'
          config-pod: 'flex-ocp-cord'
          release: 'master'
          branch: 'master'
          power-switch: True
          test-repo: 'voltha-system-tests'
          profile: 'Default'

      # flex OCP pod with olt/onu - 1T4GEM tech profile and timer based job
      - 'build_voltha_pod_release_timer':
          'disable-job': false
          build-node: 'qa-testvm-pod'
          config-pod: 'flex-ocp-cord'
          release: '2.8'
          branch: 'voltha-2.8'
          profile: '1T4GEM'
          time: '1'
          VolthaEtcdPort: 9999
          num-of-onos: '3'
          num-of-atomix: '3'
          pipeline-script: 'voltha/voltha-2.8/physical-build.groovy'

      # flex pod1 test job - released versions: uses tech profile on voltha branch
      - 'build_voltha_pod_test':
          'disable-job': false
          build-node: 'qa-testvm-pod'
          config-pod: 'flex-ocp-cord'
          release: '2.8'
          branch: 'voltha-2.8'
          power-switch: True
          test-repo: 'voltha-system-tests'
          profile: '1T4GEM'

    # flex OCP pod with olt/onu - Released versions Default tech profile and timer based job
      - 'build_voltha_pod_release_timer':
          'disable-job': false
          build-node: 'qa-testvm-pod'
          config-pod: 'flex-ocp-cord'
          release: 'master'
          branch: 'master'
          name-extension: '_TT'
          work-flow: 'TT'
          profile: 'TP'
          time: '10'
          VolthaEtcdPort: 9999
          num-of-onos: '3'
          num-of-atomix: '3'

      # flex pod1 test job - released versions: uses tech profile on voltha branch
      - 'build_voltha_pod_test':
          'disable-job': false
          build-node: 'qa-testvm-pod'
          config-pod: 'flex-ocp-cord'
          release: 'master'
          branch: 'master'
          name-extension: '_TT'
          work-flow: 'TT'
          power-switch: True
          pipeline-script: 'voltha/master/voltha-tt-physical-functional-tests.groovy'
          test-repo: 'voltha-system-tests'
          profile: 'TP'
          timeout: 360

    # flex OCP pod with olt/onu - Released versions Default tech profile and timer based job
      - 'build_voltha_pod_release_timer':
          'disable-job': false
          build-node: 'qa-testvm-pod'
          config-pod: 'flex-ocp-cord'
          release: '2.8'
          branch: 'voltha-2.8'
          name-extension: '_TT'
          work-flow: 'TT'
          profile: 'TP'
          time: '20'
          VolthaEtcdPort: 9999
          num-of-onos: '3'
          num-of-atomix: '3'
          pipeline-script: 'voltha/voltha-2.8/physical-build.groovy'

      # flex pod1 test job - released versions: uses tech profile on voltha branch
      - 'build_voltha_pod_test':
          'disable-job': false
          build-node: 'qa-testvm-pod'
          config-pod: 'flex-ocp-cord'
          release: '2.8'
          branch: 'voltha-2.8'
          name-extension: '_TT'
          work-flow: 'TT'
          power-switch: True
          pipeline-script: 'voltha/voltha-2.8/voltha-tt-physical-functional-tests.groovy'
          test-repo: 'voltha-system-tests'
          profile: 'TP'

    # flex OCP pod with olt/onu - Released versions Default tech profile and timer based job
      - 'build_voltha_pod_release_timer':
          'disable-job': false
          build-node: 'qa-testvm-pod'
          config-pod: 'flex-ocp-cord-multi-uni'
          release: 'master'
          branch: 'master'
          name-extension: '_TT'
          work-flow: 'TT'
          profile: 'TP'
          time: '16'
          VolthaEtcdPort: 9999
          num-of-onos: '3'
          num-of-atomix: '3'
          reinstall-olt: true
          enableMultiUni: true
          uniPortMask: '0x0003'

      # flex pod1 test job - released versions: uses tech profile on voltha branch
      - 'build_voltha_pod_test':
          'disable-job': false
          build-node: 'qa-testvm-pod'
          config-pod: 'flex-ocp-cord-multi-uni'
          release: 'master'
          branch: 'master'
          name-extension: '_TT'
          work-flow: 'TT'
          power-switch: True
          pipeline-script: 'voltha/master/voltha-tt-physical-functional-tests.groovy'
          test-repo: 'voltha-system-tests'
          profile: 'TP'
          enableMultiUni: true

      # Menlo pod with olt/onu - 1T4GEM tech profile and timer based job
      - 'build_voltha_pod_release_timer':
          build-node: 'menlo-demo-pod'
          config-pod: 'onf-demo-pod'
          profile: '1T4GEM'
          num-of-onos: '3'
          num-of-atomix: '3'
          in-band-management: true
          waitTimerForOltUp: 540
          VolthaEtcdPort: 9999
          time: '1'

      # Menlo pod test job - master test job uses tech profile on voltha branch
      - 'build_voltha_pod_test':
          timeout: 300
          build-node: 'menlo-demo-pod'
          config-pod: 'onf-demo-pod'
          release: 'master'
          branch: 'master'
          test-repo: 'voltha-system-tests'
          profile: '1T4GEM'
          power-switch: True

      # Menlo pod with olt/onu - master branch,  Default tech profile and timer based job
      - 'build_voltha_pod_release_timer':
          build-node: 'menlo-demo-pod'
          config-pod: 'onf-demo-pod'
          name-extension: '_DT'
          work-flow: 'DT'
          profile: '1T8GEM'
          num-of-onos: '3'
          num-of-atomix: '3'
          VolthaEtcdPort: 9999
          in-band-management: true
          waitTimerForOltUp: 540
          time: '6'

      # Menlo pod test job - uses tech profile on voltha branch
      - 'build_voltha_pod_test':
          timeout: 330
          build-node: 'menlo-demo-pod'
          config-pod: 'onf-demo-pod'
          release: 'master'
          branch: 'master'
          name-extension: '_DT'
          work-flow: 'DT'
          test-repo: 'voltha-system-tests'
          profile: '1T8GEM'
          pipeline-script: 'voltha/master/voltha-dt-physical-functional-tests.groovy'
          power-switch: True

      # Menlo pod with olt/onu - released branch,  Default tech profile and timer based job
      - 'build_voltha_pod_release_timer':
          build-node: 'menlo-demo-pod'
          config-pod: 'onf-demo-pod'
          'disable-job': true
          release: '2.8'
          branch: 'voltha-2.8'
          name-extension: '_DT'
          work-flow: 'DT'
          profile: '1T8GEM'
          num-of-onos: '3'
          num-of-atomix: '3'
          VolthaEtcdPort: 9999
          in-band-management: true
          time: '11'
          pipeline-script: 'voltha/voltha-2.8/physical-build.groovy'

      # Menlo pod test job - uses tech profile on voltha branch
      - 'build_voltha_pod_test':
          timeout: 300
          build-node: 'menlo-demo-pod'
          config-pod: 'onf-demo-pod'
          'disable-job': true
          release: '2.8'
          branch: 'voltha-2.8'
          name-extension: '_DT'
          work-flow: 'DT'
          test-repo: 'voltha-system-tests'
          profile: '1T8GEM'
          pipeline-script: 'voltha/voltha-2.8/voltha-dt-physical-functional-tests.groovy'
          power-switch: True

      # Menlo pod with olt/onu - 1T4GEM tech profile and timer based job
      - 'build_voltha_pod_release_timer':
          build-node: 'menlo-demo-pod'
          config-pod: 'onf-demo-pod'
          release: '2.9'
          branch: 'voltha-2.9'
          profile: '1T4GEM'
          num-of-onos: '3'
          num-of-atomix: '3'
          in-band-management: true
          waitTimerForOltUp: 540
          VolthaEtcdPort: 9999
          time: '16'
          pipeline-script: 'voltha/voltha-2.9/physical-build.groovy'

      # Menlo pod test job - voltha-2.9 test job uses tech profile on voltha branch
      - 'build_voltha_pod_test':
          timeout: 300
          build-node: 'menlo-demo-pod'
          config-pod: 'onf-demo-pod'
          release: '2.9'
          branch: 'voltha-2.9'
          test-repo: 'voltha-system-tests'
          profile: '1T4GEM'
          pipeline-script: 'voltha/voltha-2.9/voltha-physical-functional-tests.groovy'
          power-switch: True

      # ONF Menlo Soak POD build job - voltha-master branch
      - 'build_voltha_pod_manual':
          build-node: 'menlo-soak-pod'
          config-pod: 'onf-soak-pod'
          disable-job: false
          bbsimReplicas: 1
          profile: '1T8GEM'
          name-extension: '_DT'
          work-flow: 'DT'
          reinstall-olt: true
          num-of-onus: 32
          num-of-ponports: 16
          logLevel: 'WARN'

      # ONF Menlo Soak POD test job - voltha-master branch
      # Run tests manually triggering the job
      - 'build_voltha_pod_manual_test':
          build-node: 'menlo-soak-pod'
          config-pod: 'onf-soak-pod'
          disable-job: false
          profile: '1T8GEM'
          branch: 'master'
          release: 'master'
          work-flow: 'DT'
          name-extension: '_DT_soak_Func'
          test-type: 'Functional'
          test-repo: 'voltha-system-tests'
          pipeline-script: 'voltha/master/voltha-physical-soak-dt-tests.groovy'

      # ONF Menlo Soak POD test job - voltha-master branch
      # Run failure/recovery tests every Wednesday
      - 'build_voltha_pod_soak_test':
          build-node: 'menlo-soak-pod'
          config-pod: 'onf-soak-pod'
          'disable-job': false
          profile: '1T8GEM'
          branch: 'master'
          release: 'master'
          work-flow: 'DT'
          name-extension: '_DT_soak_Fail'
          test-type: 'Failure'
          test-repo: 'voltha-system-tests'
          pipeline-script: 'voltha/master/voltha-physical-soak-dt-tests.groovy'
          time-trigger: "H H * * 3"

      # ONF Menlo Soak POD test job - voltha-master branch
      # Run dataplane tests every Saturday
      - 'build_voltha_pod_soak_test':
          build-node: 'menlo-soak-pod'
          config-pod: 'onf-soak-pod'
          'disable-job': false
          profile: '1T8GEM'
          branch: 'master'
          release: 'master'
          work-flow: 'DT'
          name-extension: '_DT_soak_DP'
          test-type: 'Dataplane'
          test-repo: 'voltha-system-tests'
          pipeline-script: 'voltha/master/voltha-physical-soak-dt-tests.groovy'
          time-trigger: "H H * * 6"

      # ONF Menlo Soak POD build job - voltha-2.8 branch
      - 'build_voltha_pod_manual':
          build-node: 'menlo-soak-pod'
          config-pod: 'onf-soak-pod'
          disable-job: true
          branch: 'voltha-2.8'
          release: '2.8'
          bbsimReplicas: 1
          profile: '1T8GEM'
          name-extension: '_DT'
          work-flow: 'DT'
          reinstall-olt: true
          num-of-onus: 32
          num-of-ponports: 16
          logLevel: 'WARN'
          pipeline-script: 'voltha/voltha-2.8/physical-build.groovy'

      # ONF Menlo Soak POD test job - voltha-2.8 branch
      # Run tests manually triggering the job
      - 'build_voltha_pod_manual_test':
          build-node: 'menlo-soak-pod'
          config-pod: 'onf-soak-pod'
          disable-job: true
          profile: '1T8GEM'
          branch: 'voltha-2.8'
          release: '2.8'
          work-flow: 'DT'
          name-extension: '_DT_soak_Func'
          test-type: 'Functional'
          test-repo: 'voltha-system-tests'
          pipeline-script: 'voltha/voltha-2.8/voltha-physical-soak-dt-tests.groovy'

      # ONF Menlo Soak POD test job - voltha-2.8 branch
      # Run failure/recovery tests every Wednesday
      - 'build_voltha_pod_soak_test':
          build-node: 'menlo-soak-pod'
          config-pod: 'onf-soak-pod'
          'disable-job': true
          profile: '1T8GEM'
          branch: 'voltha-2.8'
          release: '2.8'
          work-flow: 'DT'
          name-extension: '_DT_soak_Fail'
          test-type: 'Failure'
          test-repo: 'voltha-system-tests'
          pipeline-script: 'voltha/voltha-2.8/voltha-physical-soak-dt-tests.groovy'
          time-trigger: "H H * * 3"

      # ONF Menlo Soak POD test job - voltha-2.8 branch
      # Run dataplane tests every Saturday
      - 'build_voltha_pod_soak_test':
          build-node: 'menlo-soak-pod'
          config-pod: 'onf-soak-pod'
          'disable-job': true
          profile: '1T8GEM'
          branch: 'voltha-2.8'
          release: '2.8'
          work-flow: 'DT'
          name-extension: '_DT_soak_DP'
          test-type: 'Dataplane'
          test-repo: 'voltha-system-tests'
          pipeline-script: 'voltha/voltha-2.8/voltha-physical-soak-dt-tests.groovy'
          time-trigger: "H H * * 6"

      # Berlin pod with olt/onu - master versions timer based job , two OLTs
      - 'build_voltha_pod_release_timer':
          build-node: 'dt-berlin-community-pod'
          config-pod: 'dt-berlin-pod-multi-olt'
          name-extension: '_DT'
          work-flow: 'DT'
          profile: '1T8GEM'
          num-of-onos: '3'
          num-of-atomix: '3'
          time: '1'

      # Berlin POD test job - master versions: uses tech profile on voltha branch
      - 'build_voltha_pod_test':
          timeout: 360
          build-node: 'dt-berlin-community-pod'
          config-pod: 'dt-berlin-pod-multi-olt'
          release: 'master'
          branch: 'master'
          name-extension: '_DT'
          work-flow: 'DT'
          test-repo: 'voltha-system-tests'
          profile: '1T8GEM'
          power-switch: True
          pipeline-script: 'voltha/master/voltha-dt-physical-functional-tests.groovy'

      # Berlin pod with gpon olt/onu - master 1T8GEM tech profile and timer based job
      - 'build_voltha_pod_release_timer':
          build-node: 'dt-berlin-community-pod'
          config-pod: 'dt-berlin-pod-gpon'
          name-extension: '_DT'
          work-flow: 'DT'
          profile: '1T8GEM'
          num-of-onos: '3'
          num-of-atomix: '3'
          time: '7'

      # Berlin POD test job - master versions: uses 1T8GEM tech profile on voltha branch
      - 'build_voltha_pod_test':
          timeout: 330
          build-node: 'dt-berlin-community-pod'
          config-pod: 'dt-berlin-pod-gpon'
          name-extension: '_DT'
          work-flow: 'DT'
          release: 'master'
          branch: 'master'
          test-repo: 'voltha-system-tests'
          profile: '1T8GEM'
          power-switch: True
          pipeline-script: 'voltha/master/voltha-dt-physical-functional-tests.groovy'

      # Berlin pod with gpon olt/onu - master 1T8GEM tech profile and timer based job
      - 'build_voltha_pod_release_timer':
          build-node: 'dt-berlin-community-pod'
          config-pod: 'dt-berlin-pod-gpon'
          release: '2.8'
          branch: 'voltha-2.8'
          name-extension: '_DT'
          work-flow: 'DT'
          profile: '1T8GEM'
          num-of-onos: '3'
          num-of-atomix: '3'
          # Update time trigger value while re-enabling the job
          time: ''
          'disable-job': true
          pipeline-script: 'voltha/voltha-2.8/physical-build.groovy'

      # Berlin POD test job - master versions: uses 1T8GEM tech profile on voltha branch
      - 'build_voltha_pod_test':
          build-node: 'dt-berlin-community-pod'
          config-pod: 'dt-berlin-pod-gpon'
          name-extension: '_DT'
          work-flow: 'DT'
          release: '2.8'
          branch: 'voltha-2.8'
          test-repo: 'voltha-system-tests'
          profile: '1T8GEM'
          power-switch: True
          'disable-job': true
          pipeline-script: 'voltha/voltha-2.8/voltha-dt-physical-functional-tests.groovy'

      # Berlin pod with olt/onu - voltha-2.8 versions timer based job , two OLTs
      - 'build_voltha_pod_release_timer':
          build-node: 'dt-berlin-community-pod'
          config-pod: 'dt-berlin-pod-multi-olt'
          name-extension: '_DT'
          work-flow: 'DT'
          release: '2.8'
          branch: 'voltha-2.8'
          profile: '1T8GEM'
          num-of-onos: '3'
          num-of-atomix: '3'
          pipeline-script: 'voltha/voltha-2.8/physical-build.groovy'
          time: '13'

      # Berlin POD test job - voltha-2.8 versions: uses tech profile on voltha branch
      - 'build_voltha_pod_test':
          build-node: 'dt-berlin-community-pod'
          config-pod: 'dt-berlin-pod-multi-olt'
          release: '2.8'
          branch: 'voltha-2.8'
          name-extension: '_DT'
          work-flow: 'DT'
          test-repo: 'voltha-system-tests'
          profile: '1T8GEM'
          power-switch: True
          pipeline-script: 'voltha/voltha-2.8/voltha-dt-physical-functional-tests.groovy'

      # Berlin pod with adtran gpon olt/onu - 2.8 1T8GEM tech profile and timer based job
      - 'build_voltha_pod_release_timer':
          build-node: 'dt-berlin-community-pod'
          config-pod: 'dt-berlin-pod-gpon-adtran'
          name-extension: '_DT'
          work-flow: 'DT'
          release: '2.8'
          branch: 'voltha-2.8'
          profile: '1T8GEM'
          reinstall-olt: false
          extraHelmFlags: "--set adapter_adtran_olt.kv_store_data_prefix='service/voltha/voltha_voltha' --set network.netconfUserSecret='' --set adapter_adtran_olt.topics.core_topic=voltha_voltha_rwcore --set onos-classic.image.tag=master"
          num-of-onos: '3'
          num-of-atomix: '3'
          pipeline-script: 'voltha/voltha-2.8/physical-build.groovy'
          VolthaEtcdPort: 9999
          openoltAdapterChart: '/home/community/adtran-21.5-voltha-2.8/voltha-adapter-adtran-olt'
          oltAdapterReleaseName: 'adtran-olt'
          waitTimerForOltUp: 420
          time: '19'

      # Berlin POD adtran test job - 2.8 versions: uses 1T8GEM tech profile on voltha branch
      - 'build_voltha_pod_test':
          timeout: 390
          build-node: 'dt-berlin-community-pod'
          config-pod: 'dt-berlin-pod-gpon-adtran'
          release: '2.8'
          branch: 'voltha-2.8'
          name-extension: '_DT'
          work-flow: 'DT'
          test-repo: 'voltha-system-tests'
          profile: '1T8GEM'
          power-switch: True
          pipeline-script: 'voltha/voltha-2.8/voltha-dt-physical-functional-tests.groovy'
          oltAdapterAppLabel: 'adapter-adtran-olt'
