Skip to content

Add consumer smoke job and deployment key validation - #53

Draft
rebtoor wants to merge 1 commit into
openstack-k8s-operators:mainfrom
rebtoor:feature/consumer-smoke-job
Draft

Add consumer smoke job and deployment key validation#53
rebtoor wants to merge 1 commit into
openstack-k8s-operators:mainfrom
rebtoor:feature/consumer-smoke-job

Conversation

@rebtoor

@rebtoor rebtoor commented Aug 12, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Add a non-voting consumer smoke Zuul job that validates images published by the content provider on a fresh consumer node
  • Add a unit test validating deployment keys in containers/image-mappings.yaml against OpenStackVersion.spec.customContainerImages fields (covers both ContainerTemplate and ContainerDefaults structs)

Consumer smoke job

The s2i-openstack-container-consumer-smoke job depends on the content provider, pulls all published images, inspects them, validates deployment key mappings, and smoke-tests Watcher service entrypoints. It runs as non-voting in the github-check pipeline.

Deployment key validation test

test_deployment_keys.py parses the central containers/image-mappings.yaml and checks every declared deployment key against the canonical OpenStackVersion CRD fields. When a local openstack-operator checkout is available, it parses the Go source live; otherwise it falls back to a frozen field set and flags staleness. Additional checks verify uniqueness, Containerfile existence, and mapping completeness.

Dependencies

Depends-On: #66
Depends-On: #65

(PR #66 provides the content provider job, Zuul configuration structure, and depends on #65 for containers/image-mappings.yaml)

Validation

@centosinfra-prod-github-app

Copy link
Copy Markdown

Merge Failed.

This change or one of its cross-repo dependencies was unable to be automatically merged with the current state of its repository. Please rebase the change and upload a new patchset.
Warning:
Error merging github.com/openstack-k8s-operators/s2i-openstack-containers for 14,7c28bbb0fb5588b6b3f29fed624f2cd17ee0aa50

@rebtoor
rebtoor force-pushed the feature/consumer-smoke-job branch from 5d1e94e to e3021d0 Compare August 12, 2026 07:51
@centosinfra-prod-github-app

Copy link
Copy Markdown

Merge Failed.

This change or one of its cross-repo dependencies was unable to be automatically merged with the current state of its repository. Please rebase the change and upload a new patchset.
Warning:
Error merging github.com/openstack-k8s-operators/s2i-openstack-containers for 14,7c28bbb0fb5588b6b3f29fed624f2cd17ee0aa50

@rebtoor
rebtoor force-pushed the feature/consumer-smoke-job branch from e3021d0 to fc62e10 Compare August 12, 2026 07:53
@centosinfra-prod-github-app

Copy link
Copy Markdown

Merge Failed.

This change or one of its cross-repo dependencies was unable to be automatically merged with the current state of its repository. Please rebase the change and upload a new patchset.
Warning:
Error merging github.com/openstack-k8s-operators/s2i-openstack-containers for 14,7c28bbb0fb5588b6b3f29fed624f2cd17ee0aa50

@rebtoor
rebtoor force-pushed the feature/consumer-smoke-job branch from fc62e10 to 6485046 Compare August 12, 2026 08:39
@centosinfra-prod-github-app

Copy link
Copy Markdown

Merge Failed.

This change or one of its cross-repo dependencies was unable to be automatically merged with the current state of its repository. Please rebase the change and upload a new patchset.
Warning:
Error merging github.com/openstack-k8s-operators/s2i-openstack-containers for 14,7c28bbb0fb5588b6b3f29fed624f2cd17ee0aa50

@rebtoor rebtoor changed the title Add non-voting consumer smoke job for content provider Add consumer smoke job and deployment key validation Aug 12, 2026
Comment on lines +15 to +30
- name: Require content provider metadata
ansible.builtin.assert:
that:
- s2i_ci_content is defined
- s2i_ci_content is mapping
- s2i_ci_content.registry is string
- s2i_ci_content.registry | length > 0
- s2i_ci_content.images is sequence
- s2i_ci_content.images | length > 0
- s2i_ci_content.selected_images is sequence
- s2i_ci_content.custom_container_images is mapping
- content_provider_os_custom_container_images is defined
- content_provider_os_custom_container_images is mapping
fail_msg: >-
Content provider metadata is missing or malformed.
Verify the content-provider job completed and paused successfully.

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.

+1
my current molecule test dont actully build the images
so this is adding some real test coverage.

https://github.com/openstack-k8s-operators/s2i-openstack-containers/pull/14/changes#diff-faa4894927d951222de1f48124fcb1fefdb1a87c18d3504a830522a7f6d4c005

currently they fake the metadata and include the task fiels and assert the sideffect i that if you have a malformed output that the taks fials.

this smoke test job will catch if we dont build the image and let us know without havign to dig through an edpm style jobs logs just to find that we used the wrong images.

in this repo at least we could optimise the jobs a littel by only runnign the edpm tempet job if this one also passes but that might be over optimizing.

Comment thread zuul.d/consumer-smoke.yaml Outdated
@rebtoor
rebtoor force-pushed the feature/consumer-smoke-job branch from 6485046 to c9aa18d Compare August 13, 2026 16:01
@openshift-ci

openshift-ci Bot commented Aug 13, 2026

Copy link
Copy Markdown

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by:
Once this PR has been reviewed and has the lgtm label, please assign yazug for approval. For more information see the Code Review Process.

The full list of commands accepted by this bot can be found 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

Merge Failed.

This change or one of its cross-repo dependencies was unable to be automatically merged with the current state of its repository. Please rebase the change and upload a new patchset.
Warning:
Error merging github.com/openstack-k8s-operators/s2i-openstack-containers for 14,69daadad5a003d51a7fbcb93bfcf6de7e849b6cb

@centosinfra-prod-github-app

Copy link
Copy Markdown

Merge Failed.

This change or one of its cross-repo dependencies was unable to be automatically merged with the current state of its repository. Please rebase the change and upload a new patchset.
Warning:
Error merging github.com/openstack-k8s-operators/s2i-openstack-containers for 14,69daadad5a003d51a7fbcb93bfcf6de7e849b6cb

@rebtoor

rebtoor commented Aug 13, 2026

Copy link
Copy Markdown
Contributor Author

recheck

@centosinfra-prod-github-app

Copy link
Copy Markdown

Zuul encountered a syntax error while parsing its
configuration in the repo openstack-k8s-operators/s2i-openstack-containers on branch main. The
problem was:

Job s2i-openstack-container-content-provider not defined

The problem appears in the "openstack-k8s-operators/s2i-openstack-containers" project stanza:

project:
name: openstack-k8s-operators/s2i-openstack-containers
github-check:
jobs:
- noop
- s2i-openstack-container-consumer-smoke:
voting: false
dependencies:
- s2i-openstack-container-content-provider

in "openstack-k8s-operators/s2i-openstack-containers/zuul.d/projects.yaml@main", line 2

@rebtoor

rebtoor commented Aug 13, 2026

Copy link
Copy Markdown
Contributor Author

recheck

@centosinfra-prod-github-app

Copy link
Copy Markdown

Zuul encountered a syntax error while parsing its
configuration in the repo openstack-k8s-operators/s2i-openstack-containers on branch main. The
problem was:

Job s2i-openstack-container-content-provider not defined

The problem appears in the "openstack-k8s-operators/s2i-openstack-containers" project stanza:

project:
name: openstack-k8s-operators/s2i-openstack-containers
github-check:
jobs:
- noop
- s2i-openstack-container-consumer-smoke:
voting: false
dependencies:
- s2i-openstack-container-content-provider

in "openstack-k8s-operators/s2i-openstack-containers/zuul.d/projects.yaml@main", line 2

@rebtoor
rebtoor force-pushed the feature/consumer-smoke-job branch from 74fc979 to 856cdab Compare August 13, 2026 16:15
Introduce two consumer-side additions to the content provider pipeline:

1. A non-voting Zuul job (s2i-openstack-container-consumer-smoke) that
   depends on the content provider, pulls all published images on a
   fresh consumer node, inspects them, validates deployment key
   mappings, and smoke-tests Watcher service entrypoints.

2. A unit test (test_deployment_keys.py) that validates every
   deployment key declared in containers/image-mappings.yaml against
   the OpenStackVersion.spec.customContainerImages fields from
   openstack-operator.  Covers ContainerTemplate and ContainerDefaults
   structs.  When a local openstack-operator checkout is available the
   test parses the Go source live; otherwise it falls back to a frozen
   field set and flags staleness.

Both additions strengthen the contract between s2i-built images and
the OpenStack deployment machinery without requiring a cluster.

Depends-On: openstack-k8s-operators#66

Assisted-By: Claude (Anthropic)
Co-authored-by: Cursor <cursoragent@cursor.com>
@rebtoor
rebtoor force-pushed the feature/consumer-smoke-job branch from 856cdab to 086a2e0 Compare August 13, 2026 16:16
@centosinfra-prod-github-app

Copy link
Copy Markdown

Zuul encountered a syntax error while parsing its
configuration in the repo openstack-k8s-operators/s2i-openstack-containers on branch main. The
problem was:

Job s2i-openstack-container-content-provider not defined

The problem appears in the "openstack-k8s-operators/s2i-openstack-containers" project stanza:

project:
name: openstack-k8s-operators/s2i-openstack-containers
github-check:
jobs:
- noop
- s2i-openstack-container-consumer-smoke:
voting: false
dependencies:
- s2i-openstack-container-content-provider

in "openstack-k8s-operators/s2i-openstack-containers/zuul.d/projects.yaml@main", line 2

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.

2 participants