Add generic container-image-content-provider job#345
Conversation
Add an abstract Zuul job and playbook that builds a container image from the current change and serves it from a local registry. This provides a reusable content-provider pattern for repos like sg-core, prometheus-podman-exporter, and mysqld_exporter that need container image builds as part of the telemetry verification pipeline. Generated-By: Claude-Code claude-opus-4-6
c32ffdb to
1157716
Compare
|
|
||
| - name: Set full image reference | ||
| ansible.builtin.set_fact: | ||
| _container_image_url: "{{ cifmw_rp_registry_ip }}:5001/{{ container_build_image_name }}:{{ _container_image_tag }}" |
There was a problem hiding this comment.
Does this only support single container image?
Is there a usecase where we'd need to build multiple containers? e.g. with multiple depends-on?
There was a problem hiding this comment.
Yes, it supported only a single image, which was my original goal. But I think it's a good idea to just build all 3 of the images. Although I don't think we'll need to build more than 1 anytime soon, it'll be a bit more future-proof.
The 3rd commit rewrote the job to build all 3 images.
|
Address review feedback: use chdir as a direct parameter of the command module instead of nesting under args. Generated-By: Claude-Code claude-opus-4-6
Copy the abstract job definition from feature-verification-tests into sg-core so that Zuul can resolve the parent job before the fvt PR merges. Remove this once infrawatch/feature-verification-tests#345 lands. Generated-By: Claude-Code claude-opus-4-6
Copy the abstract job definition from feature-verification-tests into sg-core so that Zuul can resolve the parent job before the fvt PR merges. Remove this once infrawatch/feature-verification-tests#345 lands. Generated-By: Claude-Code claude-opus-4-6
Copy the abstract job definition from feature-verification-tests into sg-core so that Zuul can resolve the parent job before the fvt PR merges. Remove this once infrawatch/feature-verification-tests#345 lands. Generated-By: Claude-Code claude-opus-4-6
Copy the abstract job definition from feature-verification-tests into sg-core so that Zuul can resolve the parent job before the fvt PR merges. Remove this once infrawatch/feature-verification-tests#345 lands. Generated-By: Claude-Code claude-opus-4-6
Copy the job definition and playbooks from feature-verification-tests into sg-core so that Zuul can resolve the job before the fvt PR merges. Remove this once infrawatch/feature-verification-tests#345 lands. Generated-By: Claude-Code claude-opus-4-6
This is a bit of an issue, which is why I wanted to merge this PR and update the job as we start to use it. I'm pretty sure you need the job to exist outside of a PR branch, before you can define child jobs. But for now I solved it with just temporarily duplicating the whole job into my sg-core PR (openstack-k8s-operators/sg-core#33) . I'll try to keep this PR and the sg-core one in sync and once we see the content provider working there, we'll have a pretty good proof that this PR works. |
Copy the job definition and playbooks from feature-verification-tests into sg-core so that Zuul can resolve the job before the fvt PR merges. Remove this once infrawatch/feature-verification-tests#345 lands. Generated-By: Claude-Code claude-opus-4-6
Copy the job definition and playbooks from feature-verification-tests into sg-core so that Zuul can resolve the job before the fvt PR merges. Remove this once infrawatch/feature-verification-tests#345 lands. Generated-By: Claude-Code claude-opus-4-6
Copy the job definition and playbooks from feature-verification-tests into sg-core so that Zuul can resolve the job before the fvt PR merges. Remove this once infrawatch/feature-verification-tests#345 lands. Generated-By: Claude-Code claude-opus-4-6
Rework the content-provider job to build all three telemetry fork images (sg-core, prometheus-podman-exporter, mysqld-exporter) in a single job using a container_images list. The playbook loops over each entry to build, push, and return all image URLs. Generated-By: Claude-Code claude-opus-4-6
Set cifmw_update_containers to true in functional-tests-osp18 so the update_containers role applies per-image overrides (sg-core, mysqld-exporter) returned by the content-provider via zuul_return. Generated-By: Claude-Code claude-opus-4-6
4acad4e to
47a3500
Compare
The default centos-stream-9 nodeset can land on clouds with only private IPs, making the registry unreachable from functional test OCP clusters. Use centos-stream-9-vexxhost to ensure a public IP. Generated-By: Claude-Code claude-opus-4-6
Copy the job definition and playbooks from feature-verification-tests into sg-core so that Zuul can resolve the job before the fvt PR merges. Remove this once infrawatch/feature-verification-tests#345 lands. Generated-By: Claude-Code claude-opus-4-6
Include cifmw_crc_additional_insecure_registries and cifmw_crc_additional_allowed_registries in zuul_return so downstream functional test jobs automatically configure OCP to trust the content-provider's HTTP registry. Generated-By: Claude-Code claude-opus-4-6
Copy the job definition and playbooks from feature-verification-tests into sg-core so that Zuul can resolve the job before the fvt PR merges. Remove this once infrawatch/feature-verification-tests#345 lands. Generated-By: Claude-Code claude-opus-4-6
Copy the job definition and playbooks from feature-verification-tests into sg-core so that Zuul can resolve the job before the fvt PR merges. Remove this once infrawatch/feature-verification-tests#345 lands. Generated-By: Claude-Code claude-opus-4-6
|
recheck |
|
Zuul encountered a syntax error while parsing its The nodeset "centos-stream-9-vexxhost" was not found. The problem appears in the "telemetry-container-image-content-provider" job stanza: job: in "infrawatch/feature-verification-tests/.zuul.yaml@master", line 24 |
Copy the job definition and playbooks from feature-verification-tests into sg-core so that Zuul can resolve the job before the fvt PR merges. Remove this once infrawatch/feature-verification-tests#345 lands. Generated-By: Claude-Code claude-opus-4-6
Copy the job definition and playbooks from feature-verification-tests into sg-core so that Zuul can resolve the job before the fvt PR merges. Remove this once infrawatch/feature-verification-tests#345 lands. Generated-By: Claude-Code claude-opus-4-6
Add an abstract Zuul job and playbook that builds a container image from the current change and serves it from a local registry. This provides a reusable content-provider pattern for repos like sg-core, prometheus-podman-exporter, and mysqld_exporter that need container image builds as part of the telemetry verification pipeline.
Depends-On: openstack-k8s-operators/ci-framework#3856
Depends-On: openstack-k8s-operators/ci-framework#3938
Generated-By: Claude-Code claude-opus-4-6