Add consumer smoke job and deployment key validation - #53
Conversation
|
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. |
5d1e94e to
e3021d0
Compare
|
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. |
e3021d0 to
fc62e10
Compare
|
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. |
fc62e10 to
6485046
Compare
|
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. |
| - 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. |
There was a problem hiding this comment.
+1
my current molecule test dont actully build the images
so this is adding some real test coverage.
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.
6485046 to
c9aa18d
Compare
|
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: The full list of commands accepted by this bot can be found here. DetailsNeeds approval from an approver in each of these files:Approvers can indicate their approval by writing |
|
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. |
c9aa18d to
74fc979
Compare
|
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. |
|
recheck |
|
Zuul encountered a syntax error while parsing its Job s2i-openstack-container-content-provider not defined The problem appears in the "openstack-k8s-operators/s2i-openstack-containers" project stanza: project: in "openstack-k8s-operators/s2i-openstack-containers/zuul.d/projects.yaml@main", line 2 |
|
recheck |
|
Zuul encountered a syntax error while parsing its Job s2i-openstack-container-content-provider not defined The problem appears in the "openstack-k8s-operators/s2i-openstack-containers" project stanza: project: in "openstack-k8s-operators/s2i-openstack-containers/zuul.d/projects.yaml@main", line 2 |
74fc979 to
856cdab
Compare
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>
856cdab to
086a2e0
Compare
|
Zuul encountered a syntax error while parsing its Job s2i-openstack-container-content-provider not defined The problem appears in the "openstack-k8s-operators/s2i-openstack-containers" project stanza: project: in "openstack-k8s-operators/s2i-openstack-containers/zuul.d/projects.yaml@main", line 2 |
Summary
containers/image-mappings.yamlagainstOpenStackVersion.spec.customContainerImagesfields (covers bothContainerTemplateandContainerDefaultsstructs)Consumer smoke job
The
s2i-openstack-container-consumer-smokejob 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 thegithub-checkpipeline.Deployment key validation test
test_deployment_keys.pyparses the centralcontainers/image-mappings.yamland checks every declared deployment key against the canonicalOpenStackVersionCRD fields. When a localopenstack-operatorcheckout 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
python3 -m unittest tests.test_deployment_keys -v— 2 passed, 4 skipped (mapping file not yet onmain)image-mappings.yamlcontent