kayobe/zuul.d/jobs.yaml
Mark Goddard c16597aa2d Add seed VM provisioning CI job
Adds the kayobe-seed-vm-centos8 CI job to configure the Zuul VM as a
seed hypervisor, and use nested virt to provision a seed VM.  This
ensures that the seed hypervisor code paths are tested.

The job uses a Cirros image for the seed VM rather than the usual CentOS
cloud image. This is to reduce bandwidth required to download the image.
It does mean that the resulting seed VM cannot be used as a seed, but
nested virt would make this slow and unreliable anyway. Cirros does not
load cdrom drivers by default, so we add the configdrive as a disk
rather than a cdrom device.

Depends-On: https://review.opendev.org/617161

Change-Id: I2268a1ddf9a2870c713f32a40689e1686365aabd
Story: 2001655
Task: 6683
2020-06-16 17:19:47 +01:00

185 lines
5.4 KiB
YAML

---
- job:
name: kayobe-tox-ansible-syntax
description: |
Tox job that checks Ansible playbook syntax.
parent: openstack-tox
vars:
tox_envlist: ansible-syntax
irrelevant-files:
- ^.*\.rst$
- ^doc/.*
- ^releasenotes/.*
- ^setup.cfg$
- 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/.*
- ^releasenotes/.*
- ^setup.cfg$
- 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/.*
- ^releasenotes/.*
- ^setup.cfg$
- 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/kayobe
- name: openstack/kayobe-config-dev
- name: openstack/kolla
- name: openstack/kolla-ansible
- name: openstack/requirements
- name: openstack/tenks
irrelevant-files:
- ^.*\.rst$
- ^doc/.*
- ^releasenotes/.*
- ^setup.cfg$
- ^tools/.*$
- ^tox.ini$
vars:
# Name of the release to upgrade from for upgrade jobs.
previous_release: ussuri
logs_dir: "/tmp/logs"
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 }}"
previous_kayobe_src_dir: "{{ ansible_env.PWD ~ '/previous/kayobe' }}"
previous_kayobe_config_src_dir: "{{ ansible_env.PWD ~ '/previous/kayobe-config' }}"
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 }}"
- 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-centos8
parent: kayobe-overcloud-base
nodeset: kayobe-centos8
- 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: 9000
# Use fewer attempts for upgrades, since pre.yml includes deployment of the
# previous release which takes a considerable amount of time.
attempts: 3
- job:
name: kayobe-overcloud-upgrade-centos8
parent: kayobe-overcloud-upgrade-base
nodeset: kayobe-centos8
- 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
- job:
name: kayobe-seed-centos8
parent: kayobe-seed-base
nodeset: kayobe-centos8
- 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-centos8
parent: kayobe-overcloud-host-configure-base
nodeset: kayobe-centos8
- 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
# Use fewer attempts for upgrades, since pre.yml includes deployment of the
# previous release which takes a considerable amount of time.
attempts: 3
- job:
name: kayobe-seed-upgrade-centos8
parent: kayobe-seed-upgrade-base
nodeset: kayobe-centos8
- 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-centos8
parent: kayobe-seed-vm-base
nodeset: kayobe-centos8