zuul-jobs/zuul-tests.d/container-roles-jobs.yaml
Clark Boylan b007e86a0f Support new style mirror_info in use-docker-mirror
This adds new style mirror_info handling to use-docker-mirror to give us
greater control over whether or not docker hub should be mirrored. We
ignore old style configuration if new style is present which gives us
this control. Otherwise we fallback to the old behavior.

We also update the ensure-docker test jobs to be triggered by updates to
the use-docker-mirror roles as ensure-docker includes this role. We
should get decent functional testing coverage this way.

Change-Id: Ia1b216a6dd68bcafbe599777037c5d7b1b3e8201
2024-11-19 14:56:56 -08:00

627 lines
20 KiB
YAML

- job:
name: zuul-jobs-test-ensure-docker
description: Tests ensure-docker role
abstract: true
files:
- .*ensure-docker.*
- roles/use-docker-mirror/.*
- roles/ensure-package-repositories/.*
- test-requirements.txt
run: test-playbooks/ensure-docker.yaml
tags:
- debuntu-platforms
- centos-platforms
- fedora-platforms
- job:
name: zuul-jobs-test-ensure-docker-centos-9-stream
description: Tests ensure-docker role on centos-9-stream
parent: zuul-jobs-test-ensure-docker
tags: auto-generated
nodeset:
nodes:
- name: centos-9-stream
label: centos-9-stream
- job:
name: zuul-jobs-test-ensure-docker-debian-bookworm
description: Tests ensure-docker role on debian-bookworm
parent: zuul-jobs-test-ensure-docker
tags: auto-generated
nodeset:
nodes:
- name: debian-bookworm
label: debian-bookworm
- job:
name: zuul-jobs-test-ensure-docker-debian-bullseye
description: Tests ensure-docker role on debian-bullseye
parent: zuul-jobs-test-ensure-docker
tags: auto-generated
nodeset:
nodes:
- name: debian-bullseye
label: debian-bullseye
- job:
name: zuul-jobs-test-ensure-docker-ubuntu-focal
description: Tests ensure-docker role on ubuntu-focal
parent: zuul-jobs-test-ensure-docker
tags: auto-generated
nodeset:
nodes:
- name: ubuntu-focal
label: ubuntu-focal
- job:
name: zuul-jobs-test-ensure-docker-ubuntu-jammy
description: Tests ensure-docker role on ubuntu-jammy
parent: zuul-jobs-test-ensure-docker
tags: auto-generated
nodeset:
nodes:
- name: ubuntu-jammy
label: ubuntu-jammy
- job:
name: zuul-jobs-test-ensure-docker-ubuntu-noble
description: Tests ensure-docker role on ubuntu-noble
parent: zuul-jobs-test-ensure-docker
tags: auto-generated
nodeset:
nodes:
- name: ubuntu-noble
label: ubuntu-noble
- job:
name: zuul-jobs-test-build-docker-or-container-image-base
abstract: true
description: |
A parent job for both docker and container image building jobs.
nodeset:
nodes:
- name: builder
label: ubuntu-jammy
pre-run: test-playbooks/container/test-build-container-image-pre.yaml
run: test-playbooks/container/test-build-container-image.yaml
# The following jobs are focused on the "container" roles:
- job:
name: zuul-jobs-test-build-container-image-base
parent: zuul-jobs-test-build-docker-or-container-image-base
abstract: true
description: |
A parent for container image building jobs.
files:
- test-playbooks/container/.*
- roles/ensure-package-repositories/.*
- roles/build-container-image/.*
- roles/upload-container-image/.*
- roles/promote-container-image/.*
- roles/ensure-docker/.*
- roles/ensure-podman/.*
- roles/ensure-skopeo/.*
vars:
promote: false
roleset: container
multiarch: false
- job:
name: zuul-jobs-test-build-container-image-docker-release
parent: zuul-jobs-test-build-container-image-base
description: |
Test building a container image with docker in a release pipeline.
vars:
container_command: docker
- job:
name: zuul-jobs-test-build-container-image-docker-release-multiarch
parent: zuul-jobs-test-build-container-image-base
description: |
Test building a multi-arch container image with docker in a release pipeline.
vars:
container_command: docker
multiarch: true
- job:
name: zuul-jobs-test-build-container-image-docker-release-multiarch-multinode
parent: zuul-jobs-test-build-container-image-docker-release-multiarch
description: |
Test building a multi-arch container image with docker in a release pipeline
across two nodes (native multiple architecture system).
NOTE(mnaser): Since OpenDev doesn't natively support a provider that has
both x86_64 and arm64 nodes, we're using the same architecture for both.
nodeset:
nodes:
- name: amd64
label: ubuntu-jammy
- name: arm64
label: ubuntu-jammy
- job:
name: zuul-jobs-test-build-container-image-podman-release
parent: zuul-jobs-test-build-container-image-base
description: |
Test building a container image with podman in a release pipeline.
vars:
container_command: podman
- job:
name: zuul-jobs-test-build-container-image-promote-base
parent: zuul-jobs-test-build-container-image-base
abstract: true
description: |
Test building a container image in gate and promote pipelines.
vars:
promote: true
- job:
name: zuul-jobs-test-build-container-image-docker-promote
parent: zuul-jobs-test-build-container-image-promote-base
description: |
Test building a container image with docker in a promote pipeline.
vars:
container_command: docker
- job:
name: zuul-jobs-test-build-container-image-docker-promote-multiarch
parent: zuul-jobs-test-build-container-image-promote-base
description: |
Test building a multi-arch container image with docker in a promote pipeline.
vars:
container_command: docker
multiarch: true
- job:
name: zuul-jobs-test-build-container-image-podman-promote
parent: zuul-jobs-test-build-container-image-promote-base
description: |
Test building a container image with podman in a promote pipeline.
vars:
container_command: podman
# The following jobs are focused on the "docker" roles:
- job:
name: zuul-jobs-test-build-docker-image-base
parent: zuul-jobs-test-build-docker-or-container-image-base
abstract: true
description: |
A parent for docker image building jobs.
files:
- test-playbooks/container/.*
- roles/ensure-package-repositories/.*
- roles/build-docker-image/.*
- roles/upload-docker-image/.*
- roles/ensure-docker/.*
vars:
container_command: docker
multiarch: false
promote: false
roleset: docker
- job:
name: zuul-jobs-test-build-docker-image-release
parent: zuul-jobs-test-build-docker-image-base
description: |
Test building a docker image in a release pipeline.
- job:
name: zuul-jobs-test-build-docker-image-release-multiarch
parent: zuul-jobs-test-build-docker-image-base
description: |
Test building a docker image in a release pipeline.
vars:
multiarch: true
# End container building job tests
- job:
name: zuul-jobs-test-registry-docker
description: |
Test the intermediate registry roles.
This job tests changes to the intermediate registry roles. It
is not meant to be used directly but rather run on changes to
roles in the zuul-jobs repo.
files:
- roles/pull-from-intermediate-registry/.*
- roles/push-to-intermediate-registry/.*
- roles/ensure-docker/.*
- roles/ensure-package-repositories/.*
- roles/build-docker-image/.*
- roles/run-buildset-registry/.*
- roles/use-buildset-registry/.*
- test-playbooks/registry/.*
pre-run: test-playbooks/registry/test-registry-pre.yaml
run: test-playbooks/registry/test-registry.yaml
post-run: test-playbooks/registry/test-registry-post.yaml
vars:
container_command: docker
multiarch: false
nodeset: &registry_nodeset
nodes:
- name: intermediate-registry
label: ubuntu-jammy
- name: executor
label: debian-bookworm
- name: builder
label: ubuntu-jammy
- job:
name: zuul-jobs-test-registry-docker-multiarch
description: |
Test the intermediate registry roles with multiarch.
This job tests changes to the intermediate registry roles. It
is not meant to be used directly but rather run on changes to
roles in the zuul-jobs repo.
files:
- roles/pull-from-intermediate-registry/.*
- roles/push-to-intermediate-registry/.*
- roles/ensure-docker/.*
- roles/build-docker-image/.*
- roles/run-buildset-registry/.*
- roles/use-buildset-registry/.*
- test-playbooks/registry/.*
pre-run: test-playbooks/registry/test-registry-pre.yaml
run: test-playbooks/registry/test-registry.yaml
post-run: test-playbooks/registry/test-registry-post.yaml
vars:
container_command: docker
multiarch: true
nodeset: *registry_nodeset
- job:
name: zuul-jobs-test-registry-podman
description: |
Test the intermediate registry roles.
This job tests changes to the intermediate registry roles using
podman rather than docker. It is not meant to be used directly
but rather run on changes to roles in the zuul-jobs repo.
files:
- roles/pull-from-intermediate-registry/.*
- roles/push-to-intermediate-registry/.*
- roles/ensure-podman/.*
- roles/ensure-package-repositories/.*
- roles/build-container-image/.*
- roles/run-buildset-registry/.*
- roles/use-buildset-registry/.*
- test-playbooks/registry/.*
pre-run: test-playbooks/registry/test-registry-pre.yaml
run: test-playbooks/registry/test-registry.yaml
post-run: test-playbooks/registry/test-registry-post.yaml
vars:
container_command: podman
multiarch: false
nodeset: *registry_nodeset
- job:
name: zuul-jobs-test-registry-buildset-registry
parent: opendev-buildset-registry
description: |
Run a buildset registry for the test-registry jobs
This runs two registries: a real buildset registry so that we
can receive speculative zuul-registry images, and a fake
buildset registry (running the speculative or latest
zuul-registry) that is used to test using the buildset registry
role.
It is not meant to be used directly but rather run on changes
to roles in the zuul-jobs repo.
files:
- roles/pull-from-intermediate-registry/.*
- roles/push-to-intermediate-registry/.*
- roles/ensure-docker/.*
- roles/ensure-kubernetes/.*
- roles/ensure-openshift/.*
- roles/ensure-package-repositories/.*
- roles/build-docker-image/.*
- roles/run-buildset-registry/.*
- roles/use-buildset-registry/.*
- test-playbooks/registry/.*
- zuul-tests.d/container-roles-jobs.yaml
pre-run: test-playbooks/registry/buildset-registry-pre.yaml
run: test-playbooks/registry/buildset-registry.yaml
post-run: test-playbooks/registry/test-registry-post.yaml
vars:
container_command: docker
# Override the docker_mirror_base_url back to the role default. OpenDev
# base jobs set this to the OpenDev mirrors but those mirrors only host
# Ubuntu not Debian packages.
docker_mirror_base_url: '{{ _docker_mirror_base_url }}'
nodeset:
nodes:
- name: debian-bookworm
label: debian-bookworm
- job:
name: zuul-jobs-test-registry-buildset-registry-k8s-microk8s
dependencies: zuul-jobs-test-registry-buildset-registry
description: |
Test a buildset registry with microk8s
It is not meant to be used directly but rather run on changes
to roles in the zuul-jobs repo.
files:
- roles/pull-from-intermediate-registry/.*
- roles/push-to-intermediate-registry/.*
- roles/ensure-docker/.*
- roles/ensure-package-repositories/.*
- roles/build-docker-image/.*
- roles/run-buildset-registry/.*
- roles/use-buildset-registry/.*
- test-playbooks/registry/.*
run: test-playbooks/registry/buildset-registry-k8s-microk8s.yaml
post-run:
- test-playbooks/registry/test-registry-post.yaml
- job:
name: zuul-jobs-test-registry-buildset-registry-k8s-crio
dependencies: zuul-jobs-test-registry-buildset-registry
description: |
Test a buildset registry with kubernetes and CRIO
It is not meant to be used directly but rather run on changes
to roles in the zuul-jobs repo.
files:
- roles/pull-from-intermediate-registry/.*
- roles/push-to-intermediate-registry/.*
- roles/ensure-docker/.*
- roles/ensure-kubernetes/.*
- roles/ensure-package-repositories/.*
- roles/build-docker-image/.*
- roles/run-buildset-registry/.*
- roles/use-buildset-registry/.*
- test-playbooks/registry/.*
run: test-playbooks/registry/buildset-registry-k8s-crio.yaml
post-run:
- test-playbooks/registry/buildset-registry-k8s-crio-post.yaml
- test-playbooks/registry/test-registry-post.yaml
vars:
container_command: podman
# There seems to be flakiness in pre-Noble
nodeset:
nodes:
- name: ubuntu-noble
label: ubuntu-noble
- job:
name: zuul-jobs-test-ensure-kubernetes-crio
description: |
Test the ensure-kubernetes role with crio-o
This job tests changes to the ensure-kubernetes roles. It
is not meant to be used directly but rather run on changes to
roles in the zuul-jobs repo.
# Does not work under ubuntu-bionic
abstract: true
files:
- roles/collect-container-logs/.*
- roles/collect-kubernetes-logs/.*
- roles/ensure-docker/.*
- roles/ensure-kubernetes/.*
- roles/ensure-package-repositories/.*
- test-playbooks/ensure-kubernetes/.*
run: test-playbooks/ensure-kubernetes/crio.yaml
post-run: test-playbooks/ensure-kubernetes/post.yaml
- job:
name: zuul-jobs-test-ensure-kubernetes-crio-ubuntu-focal
description: Test the ensure-kubernetes role with crio-o on ubuntu-focal
parent: zuul-jobs-test-ensure-kubernetes-crio
nodeset:
nodes:
- name: ubuntu-focal
label: ubuntu-focal
- job:
name: zuul-jobs-test-ensure-kubernetes-podman
description: |
Test the ensure-kubernetes role with minikube+podman+cri-o
This job tests changes to the ensure-kubernetes roles. It
is not meant to be used directly but rather run on changes to
roles in the zuul-jobs repo.
# Requires at least ubuntu-noble
abstract: true
files:
- roles/collect-container-logs/.*
- roles/collect-kubernetes-logs/.*
- roles/ensure-docker/.*
- roles/ensure-kubernetes/.*
- roles/ensure-package-repositories/.*
- test-playbooks/ensure-kubernetes/.*
run: test-playbooks/ensure-kubernetes/minikube.yaml
post-run: test-playbooks/ensure-kubernetes/post.yaml
- job:
name: zuul-jobs-test-ensure-kubernetes-podman-ubuntu-noble
description: Test the ensure-kubernetes role with minikube on ubuntu-noble
parent: zuul-jobs-test-ensure-kubernetes-podman
nodeset:
nodes:
- name: ubuntu-noble
label: ubuntu-noble
- job:
name: zuul-jobs-test-ensure-kubernetes-microk8s
description: |
Test the ensure-kubernetes role with microk8s
This job tests changes to the ensure-kubernetes roles. It
is not meant to be used directly but rather run on changes to
roles in the zuul-jobs repo.
abstract: true
files:
- roles/collect-container-logs/.*
- roles/collect-kubernetes-logs/.*
- roles/ensure-docker/.*
- roles/ensure-kubernetes/.*
- roles/ensure-package-repositories/.*
- test-playbooks/ensure-kubernetes/.*
run: test-playbooks/ensure-kubernetes/microk8s.yaml
post-run: test-playbooks/ensure-kubernetes/post.yaml
# NOTE(ianw) 2022-12-08 : only supported on jammy
# NOTE(corvus) 2023-08-14 : also supported on bookworm
- job:
name: zuul-jobs-test-ensure-kubernetes-microk8s-ubuntu-jammy
description: Test the ensure-kubernetes role with docker on ubuntu-jammy
parent: zuul-jobs-test-ensure-kubernetes-microk8s
nodeset:
nodes:
- name: ubuntu-jammy
label: ubuntu-jammy
- job:
name: zuul-jobs-test-ensure-kubernetes-microk8s-debian-bookworm
description: Test the ensure-kubernetes role with docker on debian-bookworm
parent: zuul-jobs-test-ensure-kubernetes-microk8s
nodeset:
nodes:
- name: debian-bookworm
label: debian-bookworm
- job:
name: zuul-jobs-test-ensure-podman
description: |
Test the ensure-podman role
This job tests the ensure-podman role. It is not meant to be
used directly but rather run on changes to roles in the
zuul-jobs repo.
abstract: true
files:
- roles/ensure-podman/.*
- roles/ensure-package-repositories/.*
- test-playbooks/ensure-podman/.*
run: test-playbooks/ensure-podman/main.yaml
vars:
ensure_podman_validate: true
- job:
name: zuul-jobs-test-ensure-skopeo
description: |
Test the ensure-skopeo role
This job tests the ensure-skopeo role. It is not meant to be
used directly but rather run on changes to roles in the
zuul-jobs repo.
abstract: true
tags: debuntu-platforms
files:
- roles/ensure-skopeo/.*
- roles/ensure-package-repositories/.*
- test-playbooks/ensure-skopeo/.*
run: test-playbooks/ensure-skopeo/main.yaml
- job:
name: zuul-jobs-test-ensure-skopeo-debian-bookworm
description: Test the ensure-skopeo role on debian-bookworm
parent: zuul-jobs-test-ensure-skopeo
tags: auto-generated
nodeset:
nodes:
- name: debian-bookworm
label: debian-bookworm
- job:
name: zuul-jobs-test-ensure-skopeo-debian-bullseye
description: Test the ensure-skopeo role on debian-bullseye
parent: zuul-jobs-test-ensure-skopeo
tags: auto-generated
nodeset:
nodes:
- name: debian-bullseye
label: debian-bullseye
- job:
name: zuul-jobs-test-ensure-skopeo-ubuntu-focal
description: Test the ensure-skopeo role on ubuntu-focal
parent: zuul-jobs-test-ensure-skopeo
tags: auto-generated
nodeset:
nodes:
- name: ubuntu-focal
label: ubuntu-focal
- job:
name: zuul-jobs-test-ensure-skopeo-ubuntu-jammy
description: Test the ensure-skopeo role on ubuntu-jammy
parent: zuul-jobs-test-ensure-skopeo
tags: auto-generated
nodeset:
nodes:
- name: ubuntu-jammy
label: ubuntu-jammy
- job:
name: zuul-jobs-test-ensure-skopeo-ubuntu-noble
description: Test the ensure-skopeo role on ubuntu-noble
parent: zuul-jobs-test-ensure-skopeo
tags: auto-generated
nodeset:
nodes:
- name: ubuntu-noble
label: ubuntu-noble
- job:
name: zuul-jobs-test-ensure-podman-debian-bullseye
description: Tests ensure-podman role on debian-bullseye
parent: zuul-jobs-test-ensure-podman
nodeset:
nodes:
- name: debian-bullseye
label: debian-bullseye
# -* AUTOGENERATED *-
# The following project section is autogenerated by
# tox -e update-test-platforms
# Please re-run to generate new job lists
- project:
check:
jobs: &id001
- zuul-jobs-test-ensure-docker-centos-9-stream
- zuul-jobs-test-ensure-docker-debian-bookworm
- zuul-jobs-test-ensure-docker-debian-bullseye
- zuul-jobs-test-ensure-docker-ubuntu-focal
- zuul-jobs-test-ensure-docker-ubuntu-jammy
- zuul-jobs-test-ensure-docker-ubuntu-noble
- zuul-jobs-test-build-container-image-docker-release
- zuul-jobs-test-build-container-image-docker-release-multiarch
- zuul-jobs-test-build-container-image-docker-release-multiarch-multinode
- zuul-jobs-test-build-container-image-podman-release
- zuul-jobs-test-build-container-image-docker-promote
- zuul-jobs-test-build-container-image-docker-promote-multiarch
- zuul-jobs-test-build-container-image-podman-promote
- zuul-jobs-test-build-docker-image-release
- zuul-jobs-test-build-docker-image-release-multiarch
- zuul-jobs-test-registry-docker
- zuul-jobs-test-registry-docker-multiarch
- zuul-jobs-test-registry-podman
- zuul-jobs-test-registry-buildset-registry
- zuul-jobs-test-registry-buildset-registry-k8s-microk8s
- zuul-jobs-test-registry-buildset-registry-k8s-crio
- zuul-jobs-test-ensure-kubernetes-crio-ubuntu-focal
- zuul-jobs-test-ensure-kubernetes-podman-ubuntu-noble
- zuul-jobs-test-ensure-kubernetes-microk8s-ubuntu-jammy
- zuul-jobs-test-ensure-kubernetes-microk8s-debian-bookworm
- zuul-jobs-test-ensure-skopeo-debian-bookworm
- zuul-jobs-test-ensure-skopeo-debian-bullseye
- zuul-jobs-test-ensure-skopeo-ubuntu-focal
- zuul-jobs-test-ensure-skopeo-ubuntu-jammy
- zuul-jobs-test-ensure-skopeo-ubuntu-noble
- zuul-jobs-test-ensure-podman-debian-bullseye
gate:
jobs: *id001
periodic-weekly:
jobs: *id001