[ci] Speculative s2i watcher deploy via OpenStackVersion - #443
Conversation
|
[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 |
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Central YAML (base), Organization UI (inherited) Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (1)
Included review availability: Your plan provides up to 1 included review per hour; 0 remain after this review. 📝 WalkthroughSummary by CodeRabbit
WalkthroughThe 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. ChangesWatcher S2I validation
Estimated code review effort: 3 (Moderate) | ~25 minutes Merge Risk: ⚪ Minimal · up to 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
Suggested reviewers: 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
Full details: Docstring CoverageExplanation 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.) ✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
|
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. |
e58c227 to
90bbf62
Compare
90bbf62 to
7d3b880
Compare
|
the pre-commit fix is ready but i will wait for the pipeline to end first :) |
There was a problem hiding this comment.
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
|
Build failed (check pipeline). Post ✔️ openstack-meta-content-provider-master SUCCESS in 3h 05m 40s |
|
recheck |
6f1c29b to
e33a358
Compare
|
@SeanMooney it works kinda well I guess :) 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 |
Implement similar S2I testing workflow as watcher-operator [1] that adds: - s2i-speculative-deploy-test-telemetry job - validates speculatively-built S2I telemetry-operator container images against a live OpenStack deployment with telemetry enabled - s2i-openstack-container-content-provider job - builds S2I containers - Non-voting github-check jobs to validate S2I builds before merging This enables testing whether speculatively-rebuilt telemetry container images function correctly in real deployments. Cloudkitty s2i (cloudkitty/cloudkitty-api) deferred: the cloudkitty deploy path pulls the meta content provider, which conflicts with s2i image injection. Add when a clean deploy path exists. [1] openstack-k8s-operators/watcher-operator#443 Related-To: OSPRH-34558 Assisted-By: Claude Haiku 4.5 <noreply@anthropic.com> Signed-off-by: Daniel Pawlik <dpawlik@redhat.com>
Implement similar S2I testing workflow as watcher-operator [1] that adds: - s2i-speculative-deploy-test-telemetry job - validates speculatively-built S2I telemetry-operator container images against a live OpenStack deployment with telemetry enabled - s2i-openstack-container-content-provider job - builds S2I containers - Non-voting github-check jobs to validate S2I builds before merging This enables testing whether speculatively-rebuilt telemetry container images function correctly in real deployments. Cloudkitty s2i (cloudkitty/cloudkitty-api) deferred: the cloudkitty deploy path pulls the meta content provider, which conflicts with s2i image injection. Add when a clean deploy path exists. [1] openstack-k8s-operators/watcher-operator#443 Related-To: OSPRH-34558 Assisted-By: Claude Haiku 4.5 <noreply@anthropic.com> Depends-On: openstack-k8s-operators/ci-framework#4131 Signed-off-by: Daniel Pawlik <dpawlik@redhat.com>
so the tests that are failing are failing becuase its trying to gnocchi |
e33a358 to
cbadba8
Compare
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. Name the jobs watcher-s2i-content-provider and watcher-s2i-tempest, fold them into opendev-watcher-edpm-pipeline, and limit them to watcher/ source paths so python-watcherclient and watcher-tempest-plugin keep EDPM-only. Give watcher-s2i-tempest the same cifmw_extras as watcher-operator-base so telemetry metricStorage and watcher-tempest point at Prometheus, and pin tempest to the master-latest image so the plugin does not fall back to the antelope Gnocchi client. Depends-On: openstack-k8s-operators/ci-framework#4131 Co-authored-by: Cursor <cursoragent@cursor.com>
cbadba8 to
27890b1
Compare
| s2i_content_provider_os_custom_container_images | dict2items | | ||
| json_query('[].{name: key, full_registry: value}') | ||
| }} | ||
| # Same extras as watcher-operator-base: edpm.yml enables telemetry |
There was a problem hiding this comment.
we may want to use yaml ancors for this later but i think this should work
let see what ci says
we may also refactor this later because we will want this to inherit form
watcher-operator-base later.
but not now.
|
@SeanMooney can i mark the s2i jobs as voting? edit: lol i didn't see your message :D |
|
we could the one thing i want to figure out is have we lost/removed our all master job the current s2i job is testing watcher master (built by the content provider) but antelope of everything else, it would be nice to start moving all the ohter service contaienr to using the master-latest contianer images form quay.io so i dont knwo if we want to manually force that for now or just wait for that to be done in the openstack operator. but yes i think i would be ok with making it voting now that its green but we could also do that in a follow up after a week or so our watcher-operator-validation-master job is already voting with s2i images but using the quay.io ones that are updated perodically. that will eventully be replaced with your new job i think |
Summary
watcher-s2i-content-providerandwatcher-s2i-tempest. The tempest job applies s2i-built watcher images to OpenStackVersion duringedpm_prepare(cifmw_set_containers_images), not via a latepre_testspatch.opendev-watcher-edpm-pipelineso RDO config does not need a second template. The s2i jobs are limited towatcher/source paths so python-watcherclient and watcher-tempest-plugin keep EDPM-only.watcher-s2i-content-providerforwatcher/watcher-baseandwatcher-s2i-tempestafter the non-meta operator content provider.watcher-s2i-tempestwith the samecifmw_extrasaswatcher-operator-base(edpm.ymltelemetry/notifications +watcher-tempest.yml) and pin tempest toquay.io/openstack-k8s-operators/openstack-tempest:master-latestso tests use Prometheus instead of the antelope image's Gnocchi client.Test plan
watcher-s2i-content-providerandwatcher-s2i-tempestopenstack/watchercheck picks up the s2i jobs fromopendev-watcher-edpm-pipelinewith no extra project stanza in rdo configwatcher-s2i-tempestusesoptimize.datasource = prometheusand the master-latest tempest image (notpodified-antelope-centos9)Depends-On: openstack-k8s-operators/ci-framework#4131