@@ -17,6 +17,8 @@ base_img := "localhost/bootc"
1717integration_img := base_img + " -integration"
1818# Has a synthetic upgrade
1919integration_upgrade_img := integration_img + " -upgrade"
20+ # Registry image for multi-VM testing
21+ integration_registry_img := integration_img + " -registry"
2022
2123# ostree: The default
2224# composefs-sealeduki-sdboot: A system with a sealed composefs using systemd-boot
@@ -41,6 +43,7 @@ buildargs := "--build-arg=base=" + base + " --build-arg=variant=" + variant
4143# Note commonly you might want to override the base image via e.g.
4244# `just build --build-arg=base=quay.io/fedora/fedora-bootc:42`
4345build : package
46+ ./ hack/ setup-registry-certs.sh
4447 podman build {{ base_buildargs}} -t {{ base_img}} -bin {{ buildargs}} .
4548 ./ tests/ build-sealed {{ variant}} {{ base_img}} -bin {{ base_img}} {{ buildroot_base}}
4649
@@ -98,7 +101,9 @@ copy-packages-from PATH:
98101
99102# This container image has additional testing content and utilities
100103build-integration-test-image : build
101- cd hack && podman build {{ base_buildargs}} -t {{ integration_img}} -bin -f Containerfile .
104+ # Generate TLS certificates for registry trust (idempotent - skips if exists)
105+ ./ hack/ setup-registry-certs.sh
106+ podman build {{ base_buildargs}} -t {{ integration_img}} -bin -f hack/ Containerfile .
102107 ./ tests/ build-sealed {{ variant}} {{ integration_img}} -bin {{ integration_img}} {{ buildroot_base}}
103108 # Keep these in sync with what's used in hack/lbi
104109 podman pull -q --retry 5 --retry-delay 5 s quay.io/ curl/ curl:latest quay.io/ curl/ curl-base:latest registry.access.redhat.com/ ubi9/ podman:latest
@@ -140,18 +145,28 @@ validate:
140145#
141146# To run an individual test, pass it as an argument like:
142147# `just test-tmt readonly`
143- test-tmt * ARGS : build-integration-test-image _build-upgrade-image
148+ test-tmt * ARGS : build-integration-test-image _build-upgrade-image _build-registry-image
144149 @ just test-tmt-nobuild {{ ARGS}}
145150
146151# Generate a local synthetic upgrade
147152_ build-upgrade-image :
148153 cat tmt/ tests/ Dockerfile.upgrade | podman build -t {{ integration_upgrade_img}} -bin --from={{ integration_img}} -bin -
149154 ./ tests/ build-sealed {{ variant}} {{ integration_upgrade_img}} -bin {{ integration_upgrade_img}} {{ buildroot_base}}
150155
156+ # Build a registry VM image for multi-VM testing
157+ # Uses Podman Quadlet for idiomatic container-as-service setup
158+ _ build-registry-image :
159+ # Generate TLS certificates for the registry (idempotent - skips if exists)
160+ ./ hack/ setup-registry-certs.sh
161+ # Build registry image with Quadlet configuration
162+ # Pre pull registry container to be used as a LBI
163+ podman pull quay.io/ libpod/ registry:2.8.2
164+ podman build -t {{ integration_registry_img}} -f hack/ Containerfile.registry --build-arg=base={{ buildroot_base}} .
165+
151166# Assume the localhost/bootc-integration image is up to date, and just run tests.
152167# Useful for iterating on tests quickly.
153168test-tmt-nobuild * ARGS :
154- cargo xtask run-tmt --env =BOOTC_variant={{ variant}} --upgrade-image={{ integration_upgrade_img}} {{ integration_img}} {{ ARGS}}
169+ cargo xtask run-tmt --env =BOOTC_variant={{ variant}} --upgrade-image={{ integration_upgrade_img}} --registry-image= {{ integration_registry_img }} {{ integration_img}} {{ ARGS}}
155170
156171# Cleanup all test VMs created by tmt tests
157172tmt-vm-cleanup :
0 commit comments