---
# Copyright 2017, AT&T
# Copyright 2018, SUSE LINUX GmbH.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

# OpenStack Helm jobs
# These will move with their playbooks inside the
# openstack-helm-infra repository

- job:
    name: openstack-helm-chart-deploy
    parent: openstack-helm-infra-functional
    roles:
      - zuul: openstack/openstack-helm-infra
    timeout: 7200
    vars:
      zuul_osh_infra_relative_path: ../openstack-helm-infra/
      gate_scripts: []
    pre-run:
      - tools/gate/playbooks/osh-infra-upgrade-host.yaml
      - tools/gate/playbooks/osh-infra-setup-firewall.yaml
    post-run: tools/gate/playbooks/osh-infra-collect-logs.yaml
    required-projects:
      - openstack/openstack-helm-infra
      - openstack/openstack-helm
    nodeset: openstack-helm-single-node

- job:
    name: openstack-helm-bandit
    parent: openstack-helm-chart-deploy
    run: tools/gate/playbooks/osh-bandit.yaml
    files:
      - ^.*\.py\.tpl$
      - ^.*\.py$
      - ^tools/gate/playbooks/osh-bandit.yaml$

- job:
    name: openstack-helm-keystone-ldap
    parent: openstack-helm-chart-deploy
    files:
      - ^keystone/.*$
      - ^zuul\.d/.*$
    vars:
      osh_params:
        openstack_release: wallaby
        container_distro_name: ubuntu
        container_distro_version: focal
        feature_gates: ldap
      gate_scripts_relative_path: ../openstack-helm
      gate_scripts:
        - ./tools/deployment/common/install-packages.sh
        - ./tools/deployment/common/deploy-k8s.sh
        - ./tools/deployment/common/setup-client.sh
        - ./tools/scripts/tls/cert-manager.sh
        - ./tools/deployment/component/common/ingress.sh
        - ./tools/deployment/component/common/mariadb.sh
        - ./tools/deployment/component/common/memcached.sh
        - ./tools/deployment/component/common/rabbitmq.sh
        - ./tools/deployment/component/common/ldap.sh
        - ./tools/deployment/component/keystone/keystone.sh

- job:
    name: openstack-helm-cinder
    parent: openstack-helm-chart-deploy
    files:
      - ^cinder/.*$
      - ^zuul\.d/.*$
      - ^tools/deployment/component/cinder/.
    vars:
      gate_scripts_relative_path: ../openstack-helm
      gate_scripts:
        - ./tools/deployment/common/install-packages.sh
        - ./tools/gate/deploy-k8s.sh
        - - ./tools/deployment/common/setup-client.sh
          - ./tools/deployment/component/ceph/ceph.sh
        - - ./tools/deployment/component/ceph/ceph-ns-activate.sh
          - ./tools/deployment/component/common/ingress.sh
        - - ./tools/deployment/component/common/mariadb.sh
          - ./tools/deployment/component/common/memcached.sh
          - ./tools/deployment/component/common/rabbitmq.sh
        - ./tools/deployment/component/keystone/keystone.sh
        - ./tools/deployment/component/cinder/cinder.sh
        - ./tools/deployment/common/force-cronjob-run.sh

- job:
    name: openstack-helm-cinder-victoria-ubuntu_focal
    parent: openstack-helm-cinder
    vars:
      osh_params:
        openstack_release: victoria
        container_distro_name: ubuntu
        container_distro_version: focal

- job:
    name: openstack-helm-cinder-wallaby-ubuntu_focal
    parent: openstack-helm-cinder
    vars:
      osh_params:
        openstack_release: wallaby
        container_distro_name: ubuntu
        container_distro_version: focal

- job:
    name: openstack-helm-cinder-xena-ubuntu_focal
    parent: openstack-helm-cinder
    vars:
      osh_params:
        openstack_release: xena
        container_distro_name: ubuntu
        container_distro_version: focal

- job:
    name: openstack-helm-cinder-yoga-ubuntu_focal
    parent: openstack-helm-cinder
    vars:
      osh_params:
        openstack_release: yoga
        container_distro_name: ubuntu
        container_distro_version: focal

- job:
    name: openstack-helm-compute-kit
    parent: openstack-helm-chart-deploy
    vars:
      run_helm_tests: "no"
      gate_scripts_relative_path: ../openstack-helm
      gate_scripts:
        - ./tools/deployment/common/install-packages.sh
        - ./tools/gate/deploy-k8s.sh
        - - ./tools/deployment/common/setup-client.sh
          - ./tools/deployment/component/common/ingress.sh
        - - ./tools/deployment/component/common/rabbitmq.sh
          - ./tools/deployment/component/common/mariadb.sh
          - ./tools/deployment/component/common/memcached.sh
        - ./tools/deployment/component/keystone/keystone.sh
        - - ./tools/deployment/component/heat/heat.sh
          - ./tools/deployment/component/glance/glance.sh
          - ./tools/deployment/component/compute-kit/openvswitch.sh
        - ./tools/deployment/component/compute-kit/libvirt.sh
        - ./tools/deployment/component/compute-kit/compute-kit.sh
        - - export OSH_TEST_TIMEOUT=1200;./tools/deployment/common/run-helm-tests.sh neutron
          - ./tools/deployment/common/run-helm-tests.sh nova;
            ./tools/deployment/common/run-helm-tests.sh glance;
            ./tools/deployment/common/run-helm-tests.sh keystone;
        - ./tools/deployment/developer/common/170-setup-gateway.sh
        - - ./tools/deployment/developer/common/900-use-it.sh
          - ./tools/deployment/common/force-cronjob-run.sh

- job:
    name: openstack-helm-compute-kit-umbrella
    parent: openstack-helm-chart-deploy
    files:
      - ^glance/.*$
      - ^heat/.*$
      - ^horizon/.*$
      - ^keystone/.*$
      - ^neutron/.*$
      - ^nova/.*$
      - ^openstack/.*$
      - ^placement/.*$
      - ^tools/deployment/common/force-cronjob-run.sh$
      - ^tools/deployment/common/install-packages.sh$
      - ^tools/deployment/common/setup-client.sh$
      - ^tools/deployment/component/common/ingress.sh$
      - ^tools/deployment/component/common/openstack.sh$
      - ^tools/deployment/developer/common/170-setup-gateway.sh$
      - ^tools/deployment/developer/common/900-use-it.sh$
      - ^tools/gate/deploy-k8s.sh$
      - ^tools/gate/tests/validate-umbrella-upgrade-no-side-effects.sh$
      - ^tools/gate/tests/validate-umbrella-upgrade-config-changes-do-not-update-other-components.sh$
      - ^zuul\.d/.*$
    vars:
      run_helm_tests: "yes"
      gate_scripts_relative_path: ../openstack-helm
      gate_scripts:
        - ./tools/deployment/common/install-packages.sh
        - ./tools/gate/deploy-k8s.sh
        - - ./tools/deployment/common/setup-client.sh
          - ./tools/deployment/component/common/ingress.sh
        - ./tools/deployment/component/common/openstack.sh
        - ./tools/deployment/developer/common/170-setup-gateway.sh
        - - ./tools/deployment/developer/common/900-use-it.sh
          - ./tools/deployment/common/force-cronjob-run.sh
        - ./tools/gate/tests/validate-umbrella-upgrade-no-side-effects.sh
        - ./tools/gate/tests/validate-umbrella-upgrade-config-changes-do-not-update-other-components.sh

- job:
    name: openstack-helm-compute-kit-victoria-ubuntu_focal
    parent: openstack-helm-compute-kit
    vars:
      osh_params:
        openstack_release: victoria
        container_distro_name: ubuntu
        container_distro_version: focal

- job:
    name: openstack-helm-compute-kit-victoria-ubuntu_focal-umbrella
    parent: openstack-helm-compute-kit-umbrella
    vars:
      osh_params:
        openstack_release: victoria
        container_distro_name: ubuntu
        container_distro_version: focal

- job:
    name: openstack-helm-compute-kit-wallaby-ubuntu_focal
    parent: openstack-helm-compute-kit
    vars:
      osh_params:
        openstack_release: wallaby
        container_distro_name: ubuntu
        container_distro_version: focal

- job:
    name: openstack-helm-compute-kit-xena-ubuntu_focal
    parent: openstack-helm-compute-kit
    vars:
      osh_params:
        openstack_release: xena
        container_distro_name: ubuntu
        container_distro_version: focal

- job:
    name: openstack-helm-compute-kit-yoga-ubuntu_focal
    parent: openstack-helm-compute-kit
    vars:
      osh_params:
        openstack_release: yoga
        container_distro_name: ubuntu
        container_distro_version: focal

- job:
    name: openstack-helm-horizon-victoria-ubuntu_focal
    parent: openstack-helm-chart-deploy
    files:
      - ^horizon/.*$
      - ^zuul\.d/.*$
      - ^tools/deployment/component/horizon/.*$
    vars:
      osh_params:
        openstack_release: victoria
        container_distro_name: ubuntu
        container_distro_version: focal
      gate_scripts_relative_path: ../openstack-helm
      gate_scripts:
        - ./tools/deployment/common/install-packages.sh
        - ./tools/gate/deploy-k8s.sh
        - ./tools/deployment/common/setup-client.sh
        - ./tools/deployment/component/common/ingress.sh
        - ./tools/deployment/component/common/mariadb.sh
        - ./tools/deployment/component/common/memcached.sh
        - ./tools/deployment/component/common/rabbitmq.sh
        - ./tools/deployment/component/keystone/keystone.sh
        - ./tools/deployment/component/horizon/horizon.sh

- job:
    name: openstack-helm-horizon-wallaby-ubuntu_focal
    parent: openstack-helm-chart-deploy
    files:
      - ^horizon/.*$
      - ^zuul\.d/.*$
      - ^tools/deployment/component/horizon/.*$
    vars:
      osh_params:
        openstack_release: wallaby
        container_distro_name: ubuntu
        container_distro_version: focal
      gate_scripts_relative_path: ../openstack-helm
      gate_scripts:
        - ./tools/deployment/common/install-packages.sh
        - ./tools/gate/deploy-k8s.sh
        - ./tools/deployment/common/setup-client.sh
        - ./tools/deployment/component/common/ingress.sh
        - ./tools/deployment/component/common/mariadb.sh
        - ./tools/deployment/component/common/memcached.sh
        - ./tools/deployment/component/common/rabbitmq.sh
        - ./tools/deployment/component/keystone/keystone.sh
        - ./tools/deployment/component/horizon/horizon.sh

- job:
    name: openstack-helm-tls
    parent: openstack-helm-chart-deploy
    nodeset: openstack-helm-single-32GB-node
    vars:
      osh_params:
        openstack_release: wallaby
        container_distro_name: ubuntu
        container_distro_version: focal
        feature_gates: tls
      run_helm_tests: "no"
      gate_scripts_relative_path: ../openstack-helm
      gate_scripts:
        - ./tools/deployment/common/install-packages.sh
        - ./tools/gate/deploy-k8s.sh
        - - ./tools/deployment/common/setup-client.sh
          - ./tools/scripts/tls/cert-manager.sh
        - ./tools/deployment/component/ceph/ceph.sh
        - ./tools/deployment/component/ceph/ceph-ns-activate.sh
        - ./tools/deployment/component/common/ingress.sh
        - - ./tools/deployment/component/common/mariadb.sh
          - ./tools/deployment/component/common/memcached.sh
          - ./tools/deployment/component/common/rabbitmq.sh
        - ./tools/deployment/component/keystone/keystone.sh
        - - ./tools/deployment/component/cinder/cinder.sh
          - ./tools/deployment/component/heat/heat.sh
          - ./tools/deployment/component/glance/glance.sh
          - ./tools/deployment/component/compute-kit/openvswitch.sh
        - ./tools/deployment/component/compute-kit/libvirt.sh
        - ./tools/deployment/component/compute-kit/compute-kit.sh
        - - export OSH_TEST_TIMEOUT=1200;./tools/deployment/common/run-helm-tests.sh neutron
          - ./tools/deployment/common/run-helm-tests.sh nova;
            ./tools/deployment/common/run-helm-tests.sh glance;
            ./tools/deployment/common/run-helm-tests.sh keystone;
            ./tools/deployment/common/run-helm-tests.sh cinder;
        - ./tools/deployment/developer/common/170-setup-gateway.sh
        - - ./tools/deployment/developer/common/900-use-it.sh
          - ./tools/deployment/common/force-cronjob-run.sh

- job:
    name: openstack-helm-apparmor
    parent: openstack-helm-chart-deploy
    timeout: 9600
    vars:
      osh_params:
        openstack_release: wallaby
        container_distro_name: ubuntu
        container_distro_version: focal
        feature_gates: apparmor
      gate_scripts_relative_path: ../openstack-helm
      gate_scripts:
        - ./tools/deployment/common/install-packages.sh
        - ./tools/deployment/common/deploy-k8s.sh
        - ./tools/deployment/common/setup-client.sh
        - ./tools/deployment/apparmor/015-ingress.sh
        - ./tools/deployment/component/common/mariadb.sh
        - ./tools/deployment/component/common/memcached.sh
        - ./tools/deployment/component/common/rabbitmq.sh
        - ./tools/deployment/component/keystone/keystone.sh
        - ./tools/deployment/component/horizon/horizon.sh
        - ./tools/deployment/component/heat/heat.sh
        - ./tools/deployment/component/glance/glance.sh
        - ./tools/deployment/component/compute-kit/openvswitch.sh
        - ./tools/deployment/component/compute-kit/libvirt.sh
        - ./tools/deployment/developer/nfs/160-compute-kit.sh
        - ./tools/deployment/component/barbican/barbican.sh
        - ./tools/deployment/developer/common/170-setup-gateway.sh
        - ./tools/deployment/developer/common/900-use-it.sh

- job:
    name: openstack-helm-apparmor-cinder
    parent: openstack-helm-chart-deploy
    timeout: 9600
    vars:
      osh_params:
        openstack_release: wallaby
        container_distro_name: ubuntu
        container_distro_version: focal
        feature_gates: apparmor
      gate_scripts_relative_path: ../openstack-helm
      gate_scripts:
        - ./tools/deployment/common/install-packages.sh
        - ./tools/deployment/common/deploy-k8s.sh
        - ./tools/deployment/common/setup-client.sh
        - ./tools/deployment/component/ceph/ceph.sh
        - ./tools/deployment/component/ceph/ceph-ns-activate.sh
        - ./tools/deployment/apparmor/015-ingress.sh
        - ./tools/deployment/component/common/mariadb.sh
        - ./tools/deployment/component/common/memcached.sh
        - ./tools/deployment/component/common/rabbitmq.sh
        - ./tools/deployment/component/keystone/keystone.sh
        - ./tools/deployment/component/cinder/cinder.sh

- job:
    name: openstack-helm-tungsten-fabric
    parent: openstack-helm-compute-kit
    timeout: 9600
    nodeset: openstack-helm-single-node
    roles:
      - zuul: openstack/openstack-helm-infra
    required-projects:
      - openstack/openstack-helm-infra
    vars:
      zuul_osh_infra_relative_path: ../openstack-helm-infra/
      osh_params:
        feature_gates: tf
        openstack_release: wallaby
        container_distro_name: ubuntu
        container_distro_version: focal
      gate_scripts_relative_path: ../openstack-helm
      gate_scripts:
        - ./tools/deployment/common/install-packages.sh
        - ./tools/deployment/common/deploy-k8s.sh
        - ./tools/deployment/common/setup-client.sh
        - ./tools/deployment/component/common/ingress.sh
        - - ./tools/deployment/component/common/mariadb.sh
          - ./tools/deployment/component/common/memcached.sh
          - ./tools/deployment/component/common/rabbitmq.sh
        - - ./tools/deployment/component/compute-kit/tungsten-fabric.sh checkdns
          - ./tools/deployment/component/compute-kit/tungsten-fabric.sh setupdns
          - ./tools/deployment/component/keystone/keystone.sh
        - - ./tools/deployment/component/heat/heat.sh
          - ./tools/deployment/component/glance/glance.sh
          - ./tools/deployment/component/compute-kit/tungsten-fabric.sh prepare
          - ./tools/deployment/component/compute-kit/libvirt.sh
        - ./tools/deployment/component/compute-kit/compute-kit.sh
        - ./tools/deployment/component/compute-kit/tungsten-fabric.sh deploy

- job:
    name: openstack-helm-netpol-compute-kit
    parent: openstack-helm-chart-deploy
    timeout: 7200
    vars:
      osh_params:
        openstack_release: wallaby
        container_distro_name: ubuntu
        container_distro_version: focal
        feature_gates: netpol
      gate_scripts_relative_path: ../openstack-helm
      gate_scripts:
        - ./tools/deployment/common/install-packages.sh
        - ./tools/deployment/common/deploy-k8s.sh
        - ./tools/deployment/common/setup-client.sh
        - ./tools/deployment/component/common/ingress.sh
        - ./tools/deployment/common/lockdown-netpol.sh
        - ./tools/deployment/component/common/mariadb.sh
        - ./tools/deployment/component/common/memcached.sh
        - ./tools/deployment/component/common/rabbitmq.sh
        - ./tools/deployment/component/keystone/keystone.sh
        - ./tools/deployment/component/heat/heat.sh
        - ./tools/deployment/component/glance/glance.sh
        - ./tools/deployment/component/compute-kit/openvswitch.sh
        - ./tools/deployment/component/compute-kit/libvirt.sh
        - ./tools/deployment/component/compute-kit/compute-kit.sh
        - ./tools/deployment/developer/common/170-setup-gateway.sh
        - ./tools/deployment/component/horizon/horizon.sh
        - ./tools/deployment/common/openstack-exporter.sh
        - ./tools/deployment/developer/common/900-use-it.sh
        - ./tools/deployment/common/test-networkpolicy.sh

- job:
    name: openstack-helm-netpol-cinder
    parent: openstack-helm-chart-deploy
    timeout: 7200
    vars:
      osh_params:
        openstack_release: wallaby
        container_distro_name: ubuntu
        container_distro_version: focal
        feature_gates: netpol
      gate_scripts_relative_path: ../openstack-helm
      gate_scripts:
        - ./tools/deployment/common/install-packages.sh
        - ./tools/deployment/common/deploy-k8s.sh
        - ./tools/deployment/common/setup-client.sh
        - ./tools/deployment/component/ceph/ceph.sh
        - ./tools/deployment/component/ceph/ceph-ns-activate.sh
        - ./tools/deployment/common/lockdown-netpol.sh
        - ./tools/deployment/component/common/ingress.sh
        - ./tools/deployment/component/common/mariadb.sh
        - ./tools/deployment/component/common/memcached.sh
        - ./tools/deployment/component/common/rabbitmq.sh
        - ./tools/deployment/component/keystone/keystone.sh
        - ./tools/deployment/component/cinder/cinder.sh
        - ./tools/deployment/component/horizon/horizon.sh
        - ./tools/deployment/common/openstack-exporter.sh
        - ./tools/deployment/common/test-networkpolicy.sh