Skip to content

[s2i_content_set] Resolve promoted S2I images for OpenStackVersion - #4167

Open
rebtoor wants to merge 1 commit into
openstack-k8s-operators:mainfrom
rebtoor:feature/anvil-275-s2i-content-set
Open

[s2i_content_set] Resolve promoted S2I images for OpenStackVersion#4167
rebtoor wants to merge 1 commit into
openstack-k8s-operators:mainfrom
rebtoor:feature/anvil-275-s2i-content-set

Conversation

@rebtoor

@rebtoor rebtoor commented Sep 8, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Add a s2i_content_set role that resolves a hash-stable S2I content set (s2iCommit + image digests) from a pin file, a post-merge catalog, or Quay labels, then emits cifmw_set_containers_images for edpm_prepare.
  • Wire it into deploy-edpm.yml behind cifmw_s2i_content_set so operator jobs can consume quay.io/openstack-s2i-containers without racing :master-latest.
  • Preserve unlisted OpenStackVersion keys so unmapped services stay on payload defaults.

Related-Issue: ANVIL-275

Test plan

  • Molecule s2i_content_set (catalog + inspect plays)
  • cifmw-molecule-s2i_content_set in Zuul
  • Exercise with the openstack-operator openstack-operator-tempest-multinode change (Depends-On)

Made with Cursor

@qodo-code-review

Copy link
Copy Markdown

Qodo reviews are paused for this user.

Troubleshooting steps vary by plan Learn more →

On a Teams plan?
Reviews resume once this user has a paid seat and their Git account is linked in Qodo.
Link Git account →

Using GitHub Enterprise Server, GitLab Self-Managed, or Bitbucket Data Center?
These require an Enterprise plan - Contact us
Contact us →

@centosinfra-prod-github-app

Copy link
Copy Markdown

Build failed (check pipeline). Post recheck (without leading slash)
to rerun all jobs. Make sure the failure cause has been resolved before
you rerun jobs.

https://gateway-cloud-softwarefactory.apps.ocp.cloud.ci.centos.org/zuul/t/rdoproject.org/buildset/128f784c7c0549fb90ed1a9f40869475

✔️ openstack-k8s-operators-content-provider SUCCESS in 2h 14m 05s
✔️ podified-multinode-edpm-deployment-crc SUCCESS in 1h 23m 12s
✔️ cifmw-crc-podified-edpm-baremetal SUCCESS in 1h 32m 17s
cifmw-crc-podified-edpm-baremetal-minor-update NODE_FAILURE Node(set) request 099-0000195774 failed in 0s
✔️ cifmw-pod-zuul-files SUCCESS in 4m 36s
✔️ openstack-k8s-operators-content-provider-bootc SUCCESS in 2h 26m 11s
✔️ cifmw-crc-podified-edpm-baremetal-bootc SUCCESS in 1h 32m 30s
✔️ noop SUCCESS in 0s
✔️ cifmw-pod-ansible-test SUCCESS in 8m 24s
✔️ cifmw-pod-pre-commit SUCCESS in 8m 04s
✔️ cifmw-molecule-s2i_content_set SUCCESS in 6m 01s

@rebtoor
rebtoor force-pushed the feature/anvil-275-s2i-content-set branch from 4de1d9a to 1fbce2f Compare September 10, 2026 07:26
@rebtoor
rebtoor requested a review from a team September 10, 2026 07:26
Comment thread roles/s2i_content_set/handlers/main.yml Outdated

# Explicit s2i-openstack-containers git SHA. Wins over the pin file and
# over inspecting :master-latest.
cifmw_s2i_content_set_commit: ""

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It is optional, not required. Empty means “discover the commit” (pin, then catalog, then probe labels). The | default('') in tasks/main.yml is only a guard if the var is unset; same empty default as defaults/main.yml.

Comment thread roles/s2i_content_set/tasks/emit.yml Outdated
Add openstack-k8s-operators/s2i-openstack-containers to required-projects.

- name: Load image mappings
ansible.builtin.include_vars:

@danpawlik danpawlik Sep 10, 2026

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: suggest to use helpers: https://github.com/openstack-k8s-operators/ci-framework/blob/main/roles/cifmw_helpers/tasks/include_file.yml as include_vars are taking vars on the host where ansible was executed

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

include_file.yml is for remote files that contain Jinja, and it does not support name:, so it would dump openstack_version into the play vars. image-mappings.yaml is static YAML and we load it namespaced as cifmw_s2i_content_set_mappings. Same pattern as the pin/catalog loads. This role runs on the job node where the s2i checkout already lives, so include_vars reads the right path.

danpawlik
danpawlik previously approved these changes Sep 10, 2026
@centosinfra-prod-github-app

Copy link
Copy Markdown

Build failed (check pipeline). Post recheck (without leading slash)
to rerun all jobs. Make sure the failure cause has been resolved before
you rerun jobs.

https://gateway-cloud-softwarefactory.apps.ocp.cloud.ci.centos.org/zuul/t/rdoproject.org/buildset/49e15652baa1405c9c79a674c82b6791

✔️ openstack-k8s-operators-content-provider SUCCESS in 2h 18m 34s
✔️ podified-multinode-edpm-deployment-crc SUCCESS in 1h 19m 59s
✔️ cifmw-crc-podified-edpm-baremetal SUCCESS in 1h 33m 39s
✔️ cifmw-crc-podified-edpm-baremetal-minor-update SUCCESS in 1h 58m 32s
✔️ cifmw-pod-zuul-files SUCCESS in 4m 56s
✔️ openstack-k8s-operators-content-provider-bootc SUCCESS in 1h 12m 15s
cifmw-crc-podified-edpm-baremetal-bootc FAILURE in 28m 19s
✔️ noop SUCCESS in 0s
✔️ cifmw-pod-ansible-test SUCCESS in 8m 32s
✔️ cifmw-pod-pre-commit SUCCESS in 8m 43s
✔️ cifmw-molecule-s2i_content_set SUCCESS in 6m 16s

Comment thread roles/s2i_content_set/molecule/default/files/skopeo
Comment thread roles/s2i_content_set/tasks/write_artifact.yml
Comment thread roles/s2i_content_set/defaults/main.yml
Comment thread roles/s2i_content_set/molecule/default/files/content-set.yaml
Comment thread roles/s2i_content_set/defaults/main.yml
Comment thread roles/s2i_content_set/tasks/inspect_set.yml
Operator jobs need a hash-stable service content set rather than racing
quay.io/openstack-s2i-containers :master-latest. Resolve s2iCommit once
(from a pin, catalog, or image label), emit cifmw_set_containers_images,
and keep unmapped services on payload defaults.

Related-Issue: ANVIL-275
Co-authored-by: Cursor <cursoragent@cursor.com>
Signed-off-by: Roberto Alfieri <ralfieri@redhat.com>
Co-authored-by: Cursor <cursoragent@cursor.com>

@evallesp evallesp left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

/lgtm

@centosinfra-prod-github-app

Copy link
Copy Markdown

Build failed (check pipeline). Post recheck (without leading slash)
to rerun all jobs. Make sure the failure cause has been resolved before
you rerun jobs.

https://gateway-cloud-softwarefactory.apps.ocp.cloud.ci.centos.org/zuul/t/rdoproject.org/buildset/19c20ec4db454deb8f432ab82d9e04cd

✔️ openstack-k8s-operators-content-provider SUCCESS in 2h 00m 54s
✔️ podified-multinode-edpm-deployment-crc SUCCESS in 1h 22m 00s
✔️ cifmw-crc-podified-edpm-baremetal SUCCESS in 1h 32m 36s
cifmw-crc-podified-edpm-baremetal-minor-update NODE_FAILURE Node(set) request 099-0000199327 failed in 0s
✔️ cifmw-pod-zuul-files SUCCESS in 4m 43s
✔️ openstack-k8s-operators-content-provider-bootc SUCCESS in 3h 21m 15s
✔️ cifmw-crc-podified-edpm-baremetal-bootc SUCCESS in 1h 24m 42s
✔️ noop SUCCESS in 0s
✔️ cifmw-pod-ansible-test SUCCESS in 8m 26s
✔️ cifmw-pod-pre-commit SUCCESS in 8m 34s
✔️ cifmw-molecule-s2i_content_set SUCCESS in 5m 23s

@rebtoor

rebtoor commented Sep 10, 2026

Copy link
Copy Markdown
Contributor Author

recheck

@michburk michburk left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

/approve

@openshift-ci

openshift-ci Bot commented Sep 10, 2026

Copy link
Copy Markdown
Contributor

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: michburk

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@centosinfra-prod-github-app

Copy link
Copy Markdown

Build failed (check pipeline). Post recheck (without leading slash)
to rerun all jobs. Make sure the failure cause has been resolved before
you rerun jobs.

https://gateway-cloud-softwarefactory.apps.ocp.cloud.ci.centos.org/zuul/t/rdoproject.org/buildset/07e7a9b1b9ce4c35bb1d310278a43283

✔️ openstack-k8s-operators-content-provider SUCCESS in 2h 19m 00s
✔️ podified-multinode-edpm-deployment-crc SUCCESS in 1h 23m 11s
cifmw-crc-podified-edpm-baremetal NODE_FAILURE Node(set) request 099-0000199540 failed in 0s
✔️ cifmw-crc-podified-edpm-baremetal-minor-update SUCCESS in 1h 56m 35s
✔️ cifmw-pod-zuul-files SUCCESS in 4m 42s
✔️ openstack-k8s-operators-content-provider-bootc SUCCESS in 2h 03m 13s
✔️ cifmw-crc-podified-edpm-baremetal-bootc SUCCESS in 1h 26m 26s
✔️ noop SUCCESS in 0s
✔️ cifmw-pod-ansible-test SUCCESS in 8m 39s
✔️ cifmw-pod-pre-commit SUCCESS in 8m 32s
✔️ cifmw-molecule-s2i_content_set SUCCESS in 5m 36s

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants