Skip to content

ROX-33792: extract operator bundle build to separate job#19656

Merged
janisz merged 1 commit intomasterfrom
ROX-33792-extract-operator-bundle
Mar 31, 2026
Merged

ROX-33792: extract operator bundle build to separate job#19656
janisz merged 1 commit intomasterfrom
ROX-33792-extract-operator-bundle

Conversation

@janisz
Copy link
Copy Markdown
Contributor

@janisz janisz commented Mar 27, 2026

Description

Extract operator bundle generation from the build-and-push-operator matrix job into a standalone build-operator-bundle job.

User-facing documentation

Testing and quality

  • the change is production ready: the change is GA, or otherwise the functionality is gated by a feature flag
  • CI results are inspected

Automated testing

  • added unit tests
  • added e2e tests
  • added regression tests
  • added compatibility tests
  • modified existing tests

How I validated my change

CI

Extract operator bundle generation from the build-and-push-operator matrix
job into a standalone build-operator-bundle job.

Changes:
- Add new build-operator-bundle job that runs on ubuntu-latest
- Job has no dependencies (starts immediately for max parallelism)
- Fixed RHACS_BRANDING only (no matrix, no community bundle)
- Includes Python setup for bundle helper scripts
- Remove bundle build/push/index steps from build-and-push-operator job
- Update slack-on-build-failure to depend on build-operator-bundle

Benefits:
- Maximum parallelism: bundle starts immediately, no waiting
- No wasted matrix slots on conditional bundle steps
- Simpler operator build matrix (only handles operator images)
- No container overhead (runs on host with Go + Python + Docker)
- Cleaner separation of bundle vs operator image logic

Related: ROX-33792

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
@janisz janisz requested a review from a team as a code owner March 27, 2026 15:01
Copy link
Copy Markdown
Contributor

@sourcery-ai sourcery-ai bot left a comment

Choose a reason for hiding this comment

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

Hey - I've left some high level feedback:

  • The new build-operator-bundle job always runs with ROX_PRODUCT_BRANDING: RHACS_BRANDING; if this workflow is also used for upstream/STACKROX branding, consider adding a conditional (similar to the previous matrix.name != 'STACKROX_BRANDING' check) so you don’t build/push RHACS-specific bundles on non-RHACS runs.
  • QUAY credentials are currently exposed as job-level environment variables; consider scoping QUAY_RHACS_ENG_RW_USERNAME/QUAY_RHACS_ENG_RW_PASSWORD only to the login/push steps to minimize their visibility across unrelated steps.
Prompt for AI Agents
Please address the comments from this code review:

## Overall Comments
- The new `build-operator-bundle` job always runs with `ROX_PRODUCT_BRANDING: RHACS_BRANDING`; if this workflow is also used for upstream/STACKROX branding, consider adding a conditional (similar to the previous `matrix.name != 'STACKROX_BRANDING'` check) so you don’t build/push RHACS-specific bundles on non-RHACS runs.
- QUAY credentials are currently exposed as job-level environment variables; consider scoping `QUAY_RHACS_ENG_RW_USERNAME`/`QUAY_RHACS_ENG_RW_PASSWORD` only to the login/push steps to minimize their visibility across unrelated steps.

Sourcery is free for open source - if you like our reviews please consider sharing them ✨
Help me be more useful! Please click 👍 or 👎 on each comment and I'll use the feedback to improve your reviews.

@rhacs-bot
Copy link
Copy Markdown
Contributor

Images are ready for the commit at 6b13f56.

To use with deploy scripts, first export MAIN_IMAGE_TAG=4.11.x-472-g6b13f5641f.

@codecov
Copy link
Copy Markdown

codecov bot commented Mar 27, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 49.37%. Comparing base (7837075) to head (6b13f56).
⚠️ Report is 21 commits behind head on master.

Additional details and impacted files
@@           Coverage Diff           @@
##           master   #19656   +/-   ##
=======================================
  Coverage   49.37%   49.37%           
=======================================
  Files        2743     2743           
  Lines      207020   207020           
=======================================
+ Hits       102215   102219    +4     
+ Misses      97221    97218    -3     
+ Partials     7584     7583    -1     
Flag Coverage Δ
go-unit-tests 49.37% <ø> (+<0.01%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@janisz janisz requested review from GrimmiMeloni and porridge March 30, 2026 08:12
@GrimmiMeloni
Copy link
Copy Markdown
Contributor

The change looks reasonable, but let me first ask: Why? What is the motivation for this change?

@janisz
Copy link
Copy Markdown
Contributor Author

janisz commented Mar 30, 2026

@GrimmiMeloni Good point. I should have link the original PR #19417

Currently operator builds are not optimal with lot of duplicated work and not effective cache usage. The goal is to have full build in less then 10 minutes.

@janisz janisz requested a review from davdhacs March 30, 2026 14:23
Copy link
Copy Markdown
Contributor

@porridge porridge left a comment

Choose a reason for hiding this comment

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

Yes, upstream (where we don't embed content digests of images in the bundle) this is fine.
I also checked that populate_stackrox_image_list correctly lists all operator-related images and does not assume that all are ready once one of them is.

@janisz janisz merged commit 7072ab4 into master Mar 31, 2026
104 checks passed
@janisz janisz deleted the ROX-33792-extract-operator-bundle branch March 31, 2026 09:35
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.

5 participants