openstack-helm/zuul.d/jobs-openstack-helm.yaml
Dustin Specker 078a496937 upgrading umbrella w/o changes has no app changes
If a Helm upgrade is performed on the OpenStack Umbrella chart using
the exact same configuration as the first release, then it's expected
for no DaemonSets, Deployments, or StatefulSets to be updated.
This did not work as expected.

A few changes were required to support this desired behavior:
1. Update glance's configmap-etc.yaml to trim whitespace and convert
   YAML comment to Helm template comment. Before this change, Helm
   rendered the template with the YAML comment and a newline for the
   install phase. On upgrades, Helm rendered the template without the
   YAML comment and newline causing the hash of configmap-etc to change,
   thus causing the glance-api Deployment to update.
2. Update openstack.sh script to create a randomly generated memcache
   secret for glance. Without this change, the glance-api deployment
   changes each time since Helm randomly generates a new memcache
   secret if not provided.

This behavior is enforced via a new test script,
validate-umbrella-upgrade-no-side-effects.sh.

The following jobs are always recreated due to hooks:
- keystone-bootstrap
- keystone-credential-setup
- keystone-db-init
- keystone-db-sync
- keystone-domain-manage
- keystone-fernet-setup
- keystone-rabbit-init
- rabbitmq-cluster-wait

Some Jobs are created via CronJobs and could be created during
validation. So far, heat-engine-cleaner has been seen, but others
could be caught too.

So the validation script ignores these pod changes by ignoring if
Jobs were recreated. Plus Jobs being recreated should not impact
the OpenStack deployment.

Change-Id: Iffaa346d814b8d0a3e2292849943219f70d50a23
2022-06-28 15:55:31 -05:00

506 lines
19 KiB
YAML

---
# 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-ussuri-ubuntu_bionic
parent: openstack-helm-cinder
vars:
osh_params:
openstack_release: ussuri
container_distro_name: ubuntu
container_distro_version: bionic
- 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/.*$
- ^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$
- ^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
- job:
name: openstack-helm-compute-kit-ussuri-ubuntu_bionic
parent: openstack-helm-compute-kit
vars:
osh_params:
openstack_release: ussuri
container_distro_name: ubuntu
container_distro_version: bionic
- 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-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:
timeout: 10800
name: openstack-helm-multinode-compute-kit-ussuri-ubuntu_bionic
parent: openstack-helm-chart-deploy
nodeset: openstack-helm-five-node-ubuntu
vars:
zuul_osh_infra_relative_path: ../openstack-helm-infra/
osh_params:
openstack_release: ussuri
container_distro_name: ubuntu
container_distro_version: bionic
pre-run:
- tools/gate/playbooks/multinode-base.yaml
- tools/gate/playbooks/osh-infra-upgrade-host.yaml
- tools/gate/playbooks/osh-infra-deploy-docker.yaml
- tools/gate/playbooks/osh-infra-build.yaml
- tools/gate/playbooks/osh-infra-deploy-k8s.yaml
run: tools/gate/playbooks/multinode-deploy-compute-kit.yaml
- job:
timeout: 9600
name: openstack-helm-multinode-cinder-ussuri-ubuntu_bionic
parent: openstack-helm-chart-deploy
nodeset: openstack-helm-five-node-ubuntu
vars:
zuul_osh_infra_relative_path: ../openstack-helm-infra/
osh_params:
openstack_release: ussuri
container_distro_name: ubuntu
container_distro_version: bionic
pre-run:
- tools/gate/playbooks/multinode-base.yaml
- tools/gate/playbooks/osh-infra-upgrade-host.yaml
- tools/gate/playbooks/osh-infra-deploy-docker.yaml
- tools/gate/playbooks/osh-infra-build.yaml
- tools/gate/playbooks/osh-infra-deploy-k8s.yaml
run: tools/gate/playbooks/multinode-deploy-cinder.yaml
- 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-ussuri
parent: openstack-helm-compute-kit
timeout: 9600
nodeset: openstack-helm-single-16GB-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: ussuri
container_distro_name: ubuntu
container_distro_version: bionic
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