Clark Boylan 043f066380 Use podman to build non docker hub container images
We have two sets of image build jobs. The first are targetted
specifically at docker and docker hub. The second set use the generic
container image roles and jobs from zuul/zuul-jobs. In this second set
we have the choice of using either podman or docker. Choose podman
because podman plays nicer with mirroring images hosted outside of
docker hub. This is important for image builds like Gerrit where we
build a base image and a gerrit version specific image and we need to
lookup the base image from a mirror of a hosted versions outside of
docker hub.

The main drawback to keep in mind here is that podman handles multi arch
container image builds differently to docker. This means if/when we get
to porting the python base image builds that are multiarch to quay and
pordman we may need to add additional support for multiarch. Though
currently only nodepool-builder relies on this and it is being replaced
by zuul-launcher so we may just sidestep the issue entirely.

We update the hound Dockerfile to force a rebuild of this image. The
reason for that is that image is the only one currently affected by the
change to build images with podman. This ensures we don't discover
problems with podman building hound images later when we have a
different reason to rebuild that image.

Finally while we are at it drop container_command from the mirror
container images job because that job uses skopeo now and doesn't rely
on podman or docker. This should reduce overall confusion when trying to
understand the behavior of our jobs.

Change-Id: Ie7a309452e33e0996702c849167b7881d79db5fb
2025-04-23 10:07:03 -07:00

110 lines
4.8 KiB
YAML

# Base image building jobs
# Docker + Docker Hub
- secret:
name: system-config-dockerhub
data:
username: opendevzuul
password: !encrypted/pkcs1-oaep
- FF2mwsdYo4b9QI/kEmeFdZS32I+OJUac2xy4JEQJaIevRK9E3rQ/11cBn7xX6zelA/htY
hENMM1gGTYO8BKgTVNijFfCiVCTYFJ9efsOrSeMdj2aLcq/OkZFeq8gMHAZDv+3qaiggq
hbDmldgSouNahhJByWMsDjYqnItfR8w1dYisNQBkDEJdNW5+Cin5WgHRYv2skui9pjumU
vWHjwLbITLEjb0hwVErggAzvED4x0UjNEMfb6KCpoXeKdlCaI8h1DXVD9RdQ4s1WvUCro
xwl4AIUyCmdtXbqW787PQ4j8BgdOi8RD40ZTSxpoV/bwT+/NrP3Jj2KVYdEKQJimzXnwL
goDclapu9aFrAaqwWSnWCRc7GQptSZ7DBXmA7MsNinBclWHX/chX5k9Q1+XifAhmKJZqP
ovkzEGtmUjTQZFjvuCtFxIWZEGVtGHDmgEkzevgVCeuHDTeIDlkAvA3+TT+/A70zyYdbP
EHOTSSjCU6RSlJxAXjNb5pzKjpeT7PyX2f4/8Zn3JnwTlfPJ0C7qdEYjQ54hbsKynjrpQ
7f6NN9pAeQS1pid5J7oH4f7YaKM78pnhoTxRl3LmeitIlAG+zCpiT4J+se2eG27ep4aUA
bYuO0L+KBosY6DcvEbR9TqkYLPgJuEPi/6SQr9bBOldEspXXAv9msyCB4VMhVU=
- job:
name: system-config-build-image
parent: opendev-build-docker-image
dependencies: opendev-buildset-registry
abstract: true
vars:
docker_mirror_base_url: "https://{{ zuul_site_mirror_fqdn }}/deb-docker/{{ ansible_distribution_release }}"
zuul_work_dir: "{{ zuul.projects['opendev.org/opendev/system-config'].src_dir }}"
- job:
name: system-config-upload-image
parent: opendev-upload-docker-image
dependencies: opendev-buildset-registry
abstract: true
vars:
docker_mirror_base_url: "https://{{ zuul_site_mirror_fqdn }}/deb-docker/{{ ansible_distribution_release }}"
zuul_work_dir: "{{ zuul.projects['opendev.org/opendev/system-config'].src_dir }}"
secrets:
name: docker_credentials
secret: system-config-dockerhub
pass-to-parent: true
- job:
name: system-config-promote-image
parent: opendev-promote-docker-image
abstract: true
secrets:
name: docker_credentials
secret: system-config-dockerhub
pass-to-parent: true
# Docker + Quay.io
- secret:
name: system-config-quayio
data:
quay.io:
username: opendevorg+opendevrobot
password: !encrypted/pkcs1-oaep
- ciY1a7eIFcRsx6t13tsrga0AtQHXxC7hitboOS5yiqNcBhB1zeWOVmShFukNZeKNooDhH
DjacDEI2vp61mvZphahyjbH9O1Zuoy/F2TNn3JO1EaFFMSiPvT6BH5UhRZnUwWMuP5sLP
6EogAAy02HglHck6H3+HSSLwawdW5zwXxUsQhjxItG0psKtIKBMHPwdBw+Iva8jexrtX6
jxgAm8NU8dr7BZs/wLPYQrLfiBF4mxOsYsjoSOQzWMqp0y/HUVd5YW01bUEeWHTkdL1ir
gU23UcMnC+MEwT7snK623i+fD5oW2L6TCvdJGMSpJLku60h9MXKx+KpM3gYU4OEst/Vfv
rwrIkwjE3CsXOiIORYB+Nq/RiMwHMEzA1EMAmg3Mgbr/JZNILh7nSY9AkbhI7wun1jFnN
mUE6zRBEkxgHj9W0R6imCEbHhm/pJD2Apxzkcjty9BuY/flT6dm14hHzn22kUf2Vu0AXF
GkyqHIO8ANkRkrrrVkMj9+wNoAynKVqa7MKS7Ye7XPAHdEsL9bXlaS0o6EAaGK5ApJ9mG
XZJ5pgSvl7dJ5So3YOkIT2PnwmpaF9iHIpjyk7+pjfk3oz3Gx2UdDdyxooZoDNOCIzoTC
aXORFbHQbvjAphygrFyr6h3NhOFsnZ8RC+HBgnAjyTRiqXdw5c5IMebMiWphoA=
api_token: !encrypted/pkcs1-oaep
- S60USRQz0l1eQtc5uXEJZzFf1IyDofbN5mHyMx/lAhdSLa/oc5UMjH/rF2dfQ57f1VZLi
qU8SkGDk5Qg0ODujdbH5rreKlLEg+r2YfUGMtN6cq/faOpoWu0TPEpHBcEd0B4HmgMBIl
LcDdKsQmooas1dAaEcOqxTn8LJXaBZlb5ABYrKeSo4j3pQZJtJRSBVdc8WBAtzWJK27q6
F390tT331JLDk4Q9pw9txc5iWIoftsPkR/RLWyuddZx9nYU1GLt5pS/Ep9HIbADmz2wWT
3f2mc+IE00ZautUuW1ikjhzelx/oXhUzIlwCuftXpTksDdeGn46IS9Qo2wA/clHRcmFUo
r08fp4cMWwOuBkVSIrICu07CuEBNNSroS4ZZGfHdowcHIFS5PUs0491lNZ8n8sKnN+H7C
+KXvKonyolD1YO7UTgZQGd+Nf0NMGDBagAZe08d28RL/yvAHScqssiFdOk6x0gejaLGNP
s1SW4/FePyJ4a/G4NqzYWfukEPnawONarv7sVxHyu4ZBGvN8yeh5K6KtOxyFanO0r/lO/
Dh6UGjVFGgfVagl9l1dpqLX3ENjrYTyQnxpytFpxLBr5xPgYiuSI8McH4JBrzsBkuP0Vd
orQikh+hhVTuMZ/arspkVA/LC7uZqp6UUq3jt9wWlES8/PLoEA+b43UQzBCHmM=
- job:
name: system-config-build-container-image
parent: opendev-build-container-image
dependencies: opendev-buildset-registry
abstract: true
vars: &system_config_image_vars
docker_mirror_base_url: "https://{{ zuul_site_mirror_fqdn }}/deb-docker/{{ ansible_distribution_release }}"
zuul_work_dir: "{{ zuul.projects['opendev.org/opendev/system-config'].src_dir }}"
promote_container_image_method: intermediate-registry
container_command: podman
- job:
name: system-config-upload-container-image
parent: opendev-upload-container-image
dependencies: opendev-buildset-registry
abstract: true
vars: *system_config_image_vars
secrets:
name: container_registry_credentials
secret: system-config-quayio
pass-to-parent: true
- job:
name: system-config-promote-container-image
parent: opendev-promote-container-image
abstract: true
vars: *system_config_image_vars
secrets:
name: container_registry_credentials
secret: system-config-quayio
pass-to-parent: true