Skip to content

[ci] Speculative s2i watcher deploy via OpenStackVersion - #443

Open
rebtoor wants to merge 1 commit into
mainfrom
feature/s2i-speculative-test
Open

[ci] Speculative s2i watcher deploy via OpenStackVersion#443
rebtoor wants to merge 1 commit into
mainfrom
feature/s2i-speculative-test

Conversation

@rebtoor

@rebtoor rebtoor commented Aug 21, 2026

Copy link
Copy Markdown

Summary

  • Add s2i-speculative-deploy-test-watcher that applies s2i-built watcher images to OpenStackVersion during edpm_prepare (cifmw_set_containers_images), not via a late pre_tests patch.
  • Fold those jobs into the existing opendev-watcher-edpm-pipeline so RDO config does not need a second template. The s2i jobs are limited to watcher/ source paths so python-watcherclient and watcher-tempest-plugin keep EDPM-only.
  • On github-check, run the s2i content provider for watcher/watcher-base and the consumer after the existing meta content provider.

Test plan

  • github-check schedules s2i-openstack-container-content-provider and s2i-speculative-deploy-test-watcher
  • Gerrit openstack/watcher check picks up the s2i jobs from opendev-watcher-edpm-pipeline with no extra project stanza in rdo config
  • python-watcherclient / watcher-tempest-plugin do not run the s2i jobs

Depends-On: openstack-k8s-operators/s2i-openstack-containers#91
Depends-On: openstack-k8s-operators/ci-framework#4131

@openshift-ci
openshift-ci Bot requested review from dprince and stuggi August 21, 2026 14:14
@openshift-ci

openshift-ci Bot commented Aug 21, 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 rlandy 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

@coderabbitai

coderabbitai Bot commented Aug 21, 2026

Copy link
Copy Markdown

Review Change Stack

Important

  • 🔍 Trigger review

This repository does not receive automatic reviews because it has fewer than 10 stars.

⚙️ Run configuration

Configuration used: Central YAML (base), Organization UI (inherited)

Review profile: CHILL

Plan: Pro Plus

Run ID: b415a9bb-a4a0-4730-ab65-93f4ade436c0

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Central YAML (base), Organization UI (inherited)

Review profile: CHILL

Plan: Pro Plus

Run ID: 1f716b54-a070-47a1-a950-0e1191263941

📥 Commits

Reviewing files that changed from the base of the PR and between 6c158b4 and 6f1c29b.

📒 Files selected for processing (1)
  • .zuul.yaml

Included review availability: Your plan provides up to 1 included review per hour; 0 remain after this review.


📝 Walkthrough

Summary by CodeRabbit

  • CI/CD Improvements
    • Added speculative deployment testing for Watcher images built with Source-to-Image.
    • Updated validation and KUTTL tests to use the appropriate operator content provider.
    • Enhanced EDPM pipeline coverage with S2I content and deployment checks.
    • Limited Watcher image builds to the relevant base image in project checks.
    • Improved pipeline-specific provider selection and validation configuration.

Walkthrough

The Zuul configuration changes content-provider selection and adds speculative S2I Watcher image deployment jobs. GitHub-check and EDPM pipelines now wire operator content builds, S2I jobs, path filters, dependencies, and validation settings.

Changes

Watcher S2I validation

Layer / File(s) Summary
Content-provider selection
.zuul.yaml
Validation and KUTTL jobs use pipeline-specific content providers.
Speculative S2I deployment job
.zuul.yaml
The new job prepares speculative S2I Watcher images, sets the registry address, preserves unlisted containers, and maps custom images with cifmw_set_containers_images.
Pipeline job wiring
.zuul.yaml
GitHub-check and EDPM pipelines add operator-only content builds, non-voting S2I jobs, speculative deployment jobs, path filters, dependencies, and validation settings.

Estimated code review effort: 3 (Moderate) | ~25 minutes

Merge Risk: ⚪ Minimal · up to 6f1c2

This change updates CI scheduling for speculative watcher deployments. No actionable merge-blocking risk remains based on the supplied evidence; it is merge-ready after normal checks.

Sequence Diagram(s)

sequenceDiagram
  participant Pipeline as Zuul pipeline
  participant Provider as Content provider
  participant S2I as S2I image job
  participant Deploy as Speculative deployment
  Pipeline->>Provider: Build operator or S2I content
  Pipeline->>S2I: Run watcher/watcher-base image build
  Provider->>Deploy: Provide registry content
  S2I->>Deploy: Provide speculative Watcher images
  Deploy->>Deploy: Apply set_containers image mappings
Loading

Suggested reviewers: amoralej

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly summarizes the main change: speculative S2I Watcher deployment through OpenStackVersion.
Description check ✅ Passed The description accurately covers the new S2I deployment job, pipeline integration, path filtering, and test plan.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 0 files. (1 skipped: 1 unsupported.)
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feature/s2i-speculative-test

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@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/watcher-operator for 443,e58c22706abe07191dee4c83df0047122e2e876f

Comment thread .zuul.yaml
- watcher-operator-validation-epoxy-ocp4-18

- project-template:
name: opendev-watcher-edpm-pipeline

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

we should probaly update this in place instead
so that we do not need to replace teh one we apply via rdo config to the watcher projects

you can just reband this as neded

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

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

ack!

@rebtoor
rebtoor force-pushed the feature/s2i-speculative-test branch from e58c227 to 90bbf62 Compare August 21, 2026 14:18
@rebtoor
rebtoor force-pushed the feature/s2i-speculative-test branch from 90bbf62 to 7d3b880 Compare August 21, 2026 14:25
@rebtoor

rebtoor commented Aug 21, 2026

Copy link
Copy Markdown
Author

the pre-commit fix is ready but i will wait for the pipeline to end first :)

Comment thread .zuul.yaml
watcher-tempest-plugin. The s2i jobs are limited to watcher/
source paths so client and tempest-plugin changes do not rebuild
containers (auto-detect would find no sources.txt match).
openstack-check:

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

i shoudl also methion that this template is updating

openstack-check: which is used to triger jobs agains upstream chagne to watcher on opendev before merge. so to test this end to end properly we need to create a DNM patch to watcher with a depend on agains this pr

but that will only work once we are updating the opendev-watcher-edpm-pipeline template instead since that is the one that is configured in teh rdo zuul ocnfig repo

Comment thread .zuul.yaml Outdated

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

once the s2i provider is workign this can be reverted to the non meta version as well as it will only need to build the operator iamges

@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/895669cd7b9c4be98efc94a462ba6033

✔️ openstack-meta-content-provider-master SUCCESS in 3h 05m 40s
✔️ watcher-operator-validation-master SUCCESS in 2h 23m 02s
✔️ noop SUCCESS in 0s
watcher-operator-kuttl RETRY_LIMIT in 6m 46s
✔️ s2i-openstack-container-content-provider SUCCESS in 1h 21m 56s (non-voting)
s2i-speculative-deploy-test-watcher FAILURE in 29m 55s (non-voting)

@rebtoor

rebtoor commented Aug 24, 2026

Copy link
Copy Markdown
Author

recheck

Inject s2i-built watcher images through cifmw_set_containers_images
during edpm_prepare so they land in OpenStackVersion before the control
plane deploys. github-check uses the non-meta operator content provider
for operator images and appends the s2i registry as an extra insecure
registry so CRC can pull both the operator catalog and watcher service
images.

Fold the s2i provider and deploy jobs into opendev-watcher-edpm-pipeline
and limit them to watcher/ source paths so python-watcherclient and
watcher-tempest-plugin keep EDPM-only.

Depends-On: openstack-k8s-operators/s2i-openstack-containers#91
Depends-On: openstack-k8s-operators/ci-framework#4131
Co-authored-by: Cursor <cursoragent@cursor.com>
@rebtoor
rebtoor force-pushed the feature/s2i-speculative-test branch from 6f1c29b to e33a358 Compare August 24, 2026 15:23
@rebtoor

rebtoor commented Aug 24, 2026

Copy link
Copy Markdown
Author

@SeanMooney it works kinda well I guess :)

https://gateway-cloud-softwarefactory.apps.ocp.cloud.ci.centos.org/logs//446/rdoproject.org/4462fe3ffce347febe61aab68ec091c1/controller/ci-framework-data/logs/openstack-must-gather/quay-io-openstack-k8s-operators-openstack-must-gather-sha256-7c4e74411335a883ab800a2f1812e725a15ea42bdf17bba8192fc315f7f72332/namespaces/openstack/crs/openstackversions.core.openstack.org/controlplane.yaml

spec:
  customContainerImages:
    watcherAPIImage: 38.102.83.106:5001/openstack/openstack-watcher-base:443-e33a3586f74b0ade0480f74a86b9baf09a40b493
    watcherApplierImage: 38.102.83.106:5001/openstack/openstack-watcher-base:443-e33a3586f74b0ade0480f74a86b9baf09a40b493
    watcherDecisionEngineImage: 38.102.83.106:5001/openstack/openstack-watcher-base:443-e33a3586f74b0ade0480f74a86b9baf09a40b493

the job has failed on tempest -> https://gateway-cloud-softwarefactory.apps.ocp.cloud.ci.centos.org/logs//446/rdoproject.org/4462fe3ffce347febe61aab68ec091c1/controller/ci-framework-data/tests/test_operator/tempest-tests-tempest/tempest_results.html

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants