kayobe/zuul.d/jobs.yaml
Pierre Riteau ee79fc5d4d CI: Build default images in experimental jobs
This commit changes seed-images jobs to build seed and overcloud
container images, each with a customisable regex.

The rocky9 job continues to build only the base image, although for both
overcloud and seed instead of seed only.

The other seed-images jobs (centos9s and ubuntu-jammy) now build all
default overcloud images. This takes longer and can fail for various
reasons unrelated to Kayobe, but this is fine since the jobs are marked
as experimental.

This is to attempt to catch bugs in the image build code, such as the
ones fixed by [1].

Note that the ubuntu-jammy job does not build the bifrost-deploy seed
image because the build is currently timing out. The centos9s job builds
it successfully.

Also update release documentation to remind developers to run
experimental jobs.

[1] https://review.opendev.org/c/openstack/kayobe/+/921012

Change-Id: Idf705d9cf41766a897444898ac31c4635b70ec16
2024-06-05 11:33:48 +02:00

375 lines
11 KiB
YAML

---
- job:
name: kayobe-tox-ansible-syntax
description: |
Tox job that checks Ansible playbook syntax.
parent: openstack-tox
pre-run: playbooks/kayobe-tox-ansible-syntax/pre.yml
required-projects:
- name: openstack/ansible-collection-kolla
vars:
tox_envlist: ansible-syntax
ansible_collection_kolla_src_dir: "{{ ansible_env.PWD ~ '/' ~ zuul.projects['opendev.org/openstack/ansible-collection-kolla'].src_dir }}"
kayobe_src_dir: "{{ ansible_env.PWD ~ '/' ~ zuul.projects['opendev.org/openstack/kayobe'].src_dir }}"
irrelevant-files:
- ^.*\.rst$
- ^doc/.*
- ^kayobe/tests/
- ^LICENSE$
- ^molecule-requirements.txt
- ^releasenotes/.*
- ^setup.cfg$
- ^zuul.d/.*
- job:
name: kayobe-tox-ansible
description: |
Tox job that runs native Ansible role tests.
parent: openstack-tox-with-sudo
vars:
tox_envlist: ansible
required-projects:
- name: openstack/requirements
irrelevant-files:
- ^.*\.rst$
- ^doc/.*
- ^kayobe/tests/
- ^LICENSE$
- ^molecule-requirements.txt
- ^releasenotes/.*
- ^setup.cfg$
- ^zuul.d/.*
- job:
name: kayobe-tox-molecule
description: |
Tox job that runs molecule-based Ansible role tests.
parent: openstack-tox-with-sudo
pre-run: playbooks/kayobe-tox-molecule/pre.yml
timeout: 3600
required-projects:
- openstack/requirements
vars:
tox_envlist: molecule
irrelevant-files:
- ^.*\.rst$
- ^doc/.*
- ^kayobe/tests/
- ^LICENSE$
- ^releasenotes/.*
- ^setup.cfg$
- ^test-requirements.txt
- ^zuul.d/.*
- job:
name: kayobe-base
description: |
Base job for all deployment jobs.
pre-run: playbooks/kayobe-base/pre.yml
post-run: playbooks/kayobe-base/post.yml
attempts: 5
required-projects:
# Include kayobe to ensure other projects can use this job.
- name: openstack/ansible-collection-kolla
# TODO(priteau): Remove when kayobe stable/2024.1 exists.
override-checkout: stable/2024.1
- name: openstack/kayobe
- name: openstack/kayobe-config-dev
- name: openstack/kolla
# TODO(priteau): Remove when kayobe stable/2024.1 exists.
override-checkout: stable/2024.1
- name: openstack/kolla-ansible
# TODO(priteau): Remove when kayobe stable/2024.1 exists.
override-checkout: stable/2024.1
- name: openstack/requirements
# TODO(priteau): Remove when kayobe stable/2024.1 exists.
override-checkout: stable/2024.1
- name: openstack/tenks
irrelevant-files:
- ^\..+
- ^.*\.rst$
- ^doc/.*
- ^kayobe/tests/
- ^LICENSE$
- ^molecule-requirements.txt
- ^releasenotes/.*
- ^setup.cfg$
- ^test-requirements.txt
- ^tools/.*$
- ^tox.ini$
- ^zuul.d/.*
vars:
# Name of the release to upgrade from for upgrade jobs.
logs_dir: "/tmp/logs"
ansible_collection_kolla_src_dir: "{{ ansible_env.PWD ~ '/' ~ zuul.projects['opendev.org/openstack/ansible-collection-kolla'].src_dir }}"
kayobe_src_dir: "{{ ansible_env.PWD ~ '/' ~ zuul.projects['opendev.org/openstack/kayobe'].src_dir }}"
kayobe_config_src_dir: "{{ ansible_env.PWD ~ '/' ~ zuul.projects['opendev.org/openstack/kayobe-config-dev'].src_dir }}"
kolla_ansible_src_dir: "{{ ansible_env.PWD ~ '/' ~ zuul.projects['opendev.org/openstack/kolla-ansible'].src_dir }}"
previous_kayobe_src_dir: "{{ ansible_env.PWD ~ '/previous/kayobe' }}"
previous_kayobe_config_src_dir: "{{ ansible_env.PWD ~ '/previous/kayobe-config' }}"
previous_kolla_ansible_src_dir: "{{ ansible_env.PWD ~ '/previous/kolla-ansible' }}"
requirements_src_dir: "{{ ansible_env.PWD ~ '/' ~ zuul.projects['opendev.org/openstack/requirements'].src_dir }}"
tenks_src_dir: "{{ ansible_env.PWD ~ '/' ~ zuul.projects['opendev.org/openstack/tenks'].src_dir }}"
is_upgrade: "{{ 'upgrade' in zuul.job }}"
is_slurp: "{{ 'slurp' in zuul.job }}"
previous_release: "{{ '2023.1' if is_slurp else '2023.2' }}"
tls_enabled: false
ironic_boot_mode: "bios"
- job:
name: kayobe-overcloud-base
parent: kayobe-base
description: |
Base job for testing overcloud deployment.
Configures the primary VM as an overcloud controller.
pre-run: playbooks/kayobe-overcloud-base/pre.yml
run: playbooks/kayobe-overcloud-base/run.yml
timeout: 7200
- job:
name: kayobe-overcloud-centos9s
parent: kayobe-overcloud-base
nodeset: kayobe-centos9s
voting: false
- job:
name: kayobe-overcloud-rocky9
parent: kayobe-overcloud-base
nodeset: kayobe-rocky9
- job:
name: kayobe-overcloud-ubuntu-jammy
parent: kayobe-overcloud-base
nodeset: kayobe-ubuntu-jammy
- job:
name: kayobe-overcloud-tls-base
parent: kayobe-overcloud-base
vars:
tls_enabled: true
ironic_boot_mode: "uefi"
- job:
name: kayobe-overcloud-tls-centos9s
parent: kayobe-overcloud-tls-base
nodeset: kayobe-centos9s
voting: false
- job:
name: kayobe-overcloud-tls-rocky9
parent: kayobe-overcloud-tls-base
nodeset: kayobe-rocky9
- job:
name: kayobe-overcloud-upgrade-base
parent: kayobe-base
description: |
Base job for testing overcloud upgrades.
Configures the primary VM as an overcloud controller using the previous
OpenStack release, and upgrades it to the current release.
pre-run: playbooks/kayobe-overcloud-upgrade-base/pre.yml
run: playbooks/kayobe-overcloud-upgrade-base/run.yml
timeout: 10800
- job:
name: kayobe-overcloud-upgrade-rocky9
parent: kayobe-overcloud-upgrade-base
nodeset: kayobe-rocky9
- job:
name: kayobe-overcloud-upgrade-ubuntu-jammy
parent: kayobe-overcloud-upgrade-base
nodeset: kayobe-ubuntu-jammy
- job:
name: kayobe-overcloud-upgrade-slurp-rocky9
parent: kayobe-overcloud-upgrade-base
nodeset: kayobe-rocky9
- job:
name: kayobe-overcloud-upgrade-slurp-ubuntu-jammy
parent: kayobe-overcloud-upgrade-base
nodeset: kayobe-ubuntu-jammy
- job:
name: kayobe-seed-base
parent: kayobe-base
description: |
Base job for testing seed deployment.
Configures the primary VM as a seed.
pre-run: playbooks/kayobe-seed-base/pre.yml
run: playbooks/kayobe-seed-base/run.yml
timeout: 5400
vars:
build_images: false
- job:
name: kayobe-seed-centos9s
parent: kayobe-seed-base
nodeset: kayobe-centos9s
voting: false
- job:
name: kayobe-seed-rocky9
parent: kayobe-seed-base
nodeset: kayobe-rocky9
- job:
name: kayobe-seed-ubuntu-jammy
parent: kayobe-seed-base
nodeset: kayobe-ubuntu-jammy
- job:
name: kayobe-seed-images-base
parent: kayobe-seed-base
description: |
Base job for testing seed image builds.
Configures the primary VM as a seed.
vars:
build_images: true
- job:
name: kayobe-seed-images-centos9s
parent: kayobe-seed-images-base
nodeset: kayobe-centos9s
voting: false
# Build only the base container image in the kayobe-seed-images-rocky9 job
# which always runs. Use `check experimental` to run the other jobs which build
# more images.
- job:
name: kayobe-seed-images-rocky9
parent: kayobe-seed-images-base
nodeset: kayobe-rocky9
vars:
overcloud_container_image_regex: "^base"
seed_container_image_regex: "^base"
# This job builds default overcloud images but skips the build of bifrost seed
# images which are currently timing out on Ubuntu Jammy.
- job:
name: kayobe-seed-images-ubuntu-jammy
parent: kayobe-seed-images-base
nodeset: kayobe-ubuntu-jammy
vars:
seed_container_image_regex: "^base"
- job:
name: kayobe-overcloud-host-configure-base
parent: kayobe-overcloud-base
description: |
Base job for testing overcloud host configure.
Configures the primary VM as an overcloud controller.
pre-run: playbooks/kayobe-overcloud-host-configure-base/pre.yml
run: playbooks/kayobe-overcloud-host-configure-base/run.yml
timeout: 7200
- job:
name: kayobe-overcloud-host-configure-centos9s
parent: kayobe-overcloud-host-configure-base
nodeset: kayobe-centos9s
voting: false
- job:
name: kayobe-overcloud-host-configure-rocky9
parent: kayobe-overcloud-host-configure-base
nodeset: kayobe-rocky9
- job:
name: kayobe-overcloud-host-configure-ubuntu-jammy
parent: kayobe-overcloud-host-configure-base
nodeset: kayobe-ubuntu-jammy
- job:
name: kayobe-seed-upgrade-base
parent: kayobe-base
description: |
Base job for testing seed upgrades.
Configures the primary VM as a seed using the previous OpenStack release,
and upgrades it to the current release.
pre-run: playbooks/kayobe-seed-upgrade-base/pre.yml
run: playbooks/kayobe-seed-upgrade-base/run.yml
timeout: 5400
- job:
name: kayobe-seed-upgrade-rocky9
parent: kayobe-seed-upgrade-base
nodeset: kayobe-rocky9
- job:
name: kayobe-seed-upgrade-ubuntu-jammy
parent: kayobe-seed-upgrade-base
nodeset: kayobe-ubuntu-jammy
- job:
name: kayobe-seed-upgrade-slurp-rocky9
parent: kayobe-seed-upgrade-base
nodeset: kayobe-rocky9
- job:
name: kayobe-seed-upgrade-slurp-ubuntu-jammy
parent: kayobe-seed-upgrade-base
nodeset: kayobe-ubuntu-jammy
- job:
name: kayobe-seed-vm-base
parent: kayobe-base
description: |
Base job for testing seed VM provisioning.
Configures the primary VM as a libvirt hypervisor, and provisions a seed
as a VM.
pre-run: playbooks/kayobe-seed-vm-base/pre.yml
run: playbooks/kayobe-seed-vm-base/run.yml
timeout: 5400
- job:
name: kayobe-seed-vm-centos9s
parent: kayobe-seed-vm-base
nodeset: kayobe-centos9s
voting: false
- job:
name: kayobe-seed-vm-rocky9
parent: kayobe-seed-vm-base
nodeset: kayobe-rocky9
- job:
name: kayobe-seed-vm-ubuntu-jammy
parent: kayobe-seed-vm-base
nodeset: kayobe-ubuntu-jammy
- job:
name: kayobe-infra-vm-base
parent: kayobe-base
description: |
Base job for testing infra VM provisioning.
Configures the primary VM as a libvirt hypervisor, and provisions an
infra VM.
pre-run: playbooks/kayobe-infra-vm-base/pre.yml
run: playbooks/kayobe-infra-vm-base/run.yml
timeout: 5400
- job:
name: kayobe-infra-vm-centos9s
parent: kayobe-infra-vm-base
nodeset: kayobe-centos9s
voting: false
- job:
name: kayobe-infra-vm-rocky9
parent: kayobe-infra-vm-base
nodeset: kayobe-rocky9
- job:
name: kayobe-infra-vm-ubuntu-jammy
parent: kayobe-infra-vm-base
nodeset: kayobe-ubuntu-jammy