Skip to content

OSAC-3519: Add bare-metal-fulfillment-operator to e2e-vmaas/e2e-caas components arrays - #55

Merged
eliorerz merged 1 commit into
osac-project:mainfrom
eliorerz:osac-3519-bmf-vmaas-caas
Aug 1, 2026
Merged

eliorerz merged 1 commit into
osac-project:mainfrom
eliorerz:osac-3519-bmf-vmaas-caas

Conversation

@eliorerz

@eliorerz eliorerz commented Jul 31, 2026 •

Copy link
Copy Markdown
Contributor

Summary

Final slice of OSAC-3519 -- extends PR #51's bmaas fix (merged) to the other two e2e flows. Same change, same imageKey, same containerfile path:

  • e2e-vmaas-full-install.yml: added bare-metal-fulfillment-operator (BMF) as a 4th components entry (alongside fulfillment-service, osac-operator, osac-aap).
  • e2e-caas-full-install.yml: added BMF as a 3rd components entry. Note this file's own components array only has 2 entries today (no osac-aap) -- that's a pre-existing scope decision for this flow unrelated to BMF, left untouched.

Both use containerfile: "bare-metal-fulfillment-operator/Containerfile", imageKey: "bmf.image.repository" (no buildType, same as fulfillment-service/osac-operator's entries), matching what was verified end-to-end in PR #51.

Important: this is currently a no-op for both of these flows specifically

Re-confirmed against osac-installer's actual current values files before writing anything:

  • values/vmaas-ci/values.yaml: bmf.enabled: false
  • values/caas-ci/values.yaml: bmf.enabled: false

BMF's chart isn't deployed at all in either flow (unlike values/bmaas-ci/values.yaml, where it's true), so the bmf.image.repository override has nothing to apply to -- no running BMF pod exists in these clusters for the freshly-built image to reach. This is not a bug in this change, just a real, currently-inert side effect worth being explicit about rather than silent.

Added anyway, for the same reason the other 3 components are built from source in every flow regardless of what each flow exercises: consistency (all 4 mono-repo components build from the PR everywhere), and it costs nothing beyond one extra image build per run. If vmaas/caas ever need BMF enabled, this wiring is already in place and will start actually mattering with no further change needed here.

Validation

YAML parse + yamllint -c .yamllint.yaml --strict clean on both files. Also parsed the embedded components JSON strings directly to confirm 4 entries (vmaas) / 3 entries (caas) with the expected keys.

Verification plan

Will trigger real e2e-vmaas and e2e-caas runs and confirm from the logs that BMF builds from source (same evidence standard as PR #51 -- component build log entry, submodule replacement, image load), even though the override itself won't be exercised by a running BMF pod in either flow. Will report back with run links before this is ready to merge.

Not merging this myself. Once this merges, OSAC-3519 is fully done (all 3 e2e flows) and I'll close the ticket.

Summary by CodeRabbit

  • Chores
    • Updated end-to-end installation workflows to build the bare-metal fulfillment operator alongside existing components.
    • Added the operator’s image configuration to both full-install workflows.
    • Documented that operator deployment remains disabled in the CAAS workflow.

@openshift-ci-robot

openshift-ci-robot commented Jul 31, 2026 •

Copy link
Copy Markdown

@eliorerz: This pull request references OSAC-3519 which is a valid jira issue.

Warning: The referenced jira issue has an invalid target version for the target branch this PR targets: expected the task to target the "5.0.0" version, but no target version was set.

Details

In response to this:

Summary

Final slice of OSAC-3519 -- extends PR #51's bmaas fix (merged) to the other two e2e flows. Same change, same imageKey, same containerfile path:

  • e2e-vmaas-full-install.yml: added bare-metal-fulfillment-operator (BMF) as a 4th components entry (alongside fulfillment-service, osac-operator, osac-aap).
  • e2e-caas-full-install.yml: added BMF as a 3rd components entry. Note this file's own components array only has 2 entries today (no osac-aap) -- that's a pre-existing scope decision for this flow unrelated to BMF, left untouched.

Both use containerfile: "bare-metal-fulfillment-operator/Containerfile", imageKey: "bmf.image.repository" (no buildType, same as fulfillment-service/osac-operator's entries), matching what was verified end-to-end in PR #51.

Important: this is currently a no-op for both of these flows specifically

Re-confirmed against osac-installer's actual current values files before writing anything:

  • values/vmaas-ci/values.yaml: bmf.enabled: false
  • values/caas-ci/values.yaml: bmf.enabled: false

BMF's chart isn't deployed at all in either flow (unlike values/bmaas-ci/values.yaml, where it's true), so the bmf.image.repository override has nothing to apply to -- no running BMF pod exists in these clusters for the freshly-built image to reach. This is not a bug in this change, just a real, currently-inert side effect worth being explicit about rather than silent.

Added anyway, for the same reason the other 3 components are built from source in every flow regardless of what each flow exercises: consistency (all 4 mono-repo components build from the PR everywhere), and it costs nothing beyond one extra image build per run. If vmaas/caas ever need BMF enabled, this wiring is already in place and will start actually mattering with no further change needed here.

Validation

YAML parse + yamllint -c .yamllint.yaml --strict clean on both files. Also parsed the embedded components JSON strings directly to confirm 4 entries (vmaas) / 3 entries (caas) with the expected keys.

Verification plan

Will trigger real e2e-vmaas and e2e-caas runs and confirm from the logs that BMF builds from source (same evidence standard as PR #51 -- component build log entry, submodule replacement, image load), even though the override itself won't be exercised by a running BMF pod in either flow. Will report back with run links before this is ready to merge.

Not merging this myself. Once this merges, OSAC-3519 is fully done (all 3 e2e flows) and I'll close the ticket.

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the openshift-eng/jira-lifecycle-plugin repository.

@openshift-ci
openshift-ci Bot requested review from rgolangh and ybettan July 31, 2026 23:42
@openshift-ci

openshift-ci Bot commented Jul 31, 2026

Copy link
Copy Markdown
Contributor

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: eliorerz

The full list of commands accepted by this bot can be found here.

The pull request process is described 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 Jul 31, 2026 •

Copy link
Copy Markdown
Contributor

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Repository: osac-project/coderabbit/.coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: 8de8035e-0186-45ab-8450-0e2b7ff5e265

📥 Commits

Reviewing files that changed from the base of the PR and between 2746deb and a9cd15f.

📒 Files selected for processing (2)
  • .github/workflows/e2e-caas-full-install.yml
  • .github/workflows/e2e-vmaas-full-install.yml

Walkthrough

The CaaS and VMaaS full-install workflows now build bare-metal-fulfillment-operator from pull request source. Both workflows use its Containerfile and bmf.image.repository. Deployment remains disabled.

Changes

E2E workflow image builds

Layer / File(s) Summary
Add bare-metal operator image builds
.github/workflows/e2e-caas-full-install.yml, .github/workflows/e2e-vmaas-full-install.yml
Both workflows build bare-metal-fulfillment-operator and document that its deployment remains disabled.

Estimated code review effort: 2 (Simple) | ~10 minutes

Possibly related PRs

Suggested labels: ok-to-test

Suggested reviewers: rgolangh, ybettan

🚥 Pre-merge checks | ✅ 11
✅ Passed checks (11 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly identifies the addition of bare-metal-fulfillment-operator to both e2e workflow component arrays.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
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.
No-Hardcoded-Secrets ✅ Passed The commit changes only two workflow files; added lines contain component paths, image keys, and GitHub expressions, with no literal credentials, keys, tokens, passwords, auth URLs, or long blobs.
No-Weak-Crypto ✅ Passed The PR only adds BMF workflow component wiring and comments; added lines contain no MD5, SHA1, DES, RC4, Blowfish, ECB, custom crypto, or secret comparisons.
No-Injection-Vectors ✅ Passed The added workflow entries use static Containerfile and imageKey values; added-line scans found no SQL, eval/exec, pickle, unsafe YAML, os.system, jq, or HTML injection patterns.
Container-Privileges ✅ Passed The PR changes only workflow component arrays and comments; it adds no privileged, host namespace, SYS_ADMIN, root, or privilege-escalation setting. BMF uses USER 1001 and runAsNonRoot.
No-Sensitive-Data-In-Logs ✅ Passed The patch adds component wiring and comments only. It adds no log commands or secret references; existing echoes report only workflow job results.
Ai-Attribution ✅ Passed The authored PR description names no AI tool, and the current commit has no trailers; no AI use is established, so no attribution trailer is required.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

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.

@coderabbitai coderabbitai Bot left a comment

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.

Actionable comments posted: 2

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In @.github/workflows/e2e-caas-full-install.yml:
- Around line 59-61: Update the comments in
.github/workflows/e2e-caas-full-install.yml lines 59-61 and
.github/workflows/e2e-vmaas-full-install.yml lines 59-63 to distinguish image
building from deployment: state that enabled components are installed together,
while bare-metal-fulfillment-operator (BMF) is built only and not deployed
because bmf.enabled is false.

In @.github/workflows/e2e-vmaas-full-install.yml:
- Around line 71-73: Update the comment near the VMaaS component build
configuration to remove or narrow the claim that all four components build in
every e2e flow; describe the expectation only for this VMaaS flow while
preserving the note about revisiting BMF support.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository: osac-project/coderabbit/.coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: 37600280-0877-4338-bb4f-d3a3cbfa19dc

📥 Commits

Reviewing files that changed from the base of the PR and between 741c512 and 2746deb.

📒 Files selected for processing (2)
  • .github/workflows/e2e-caas-full-install.yml
  • .github/workflows/e2e-vmaas-full-install.yml

Comment thread .github/workflows/e2e-caas-full-install.yml
Comment on lines +71 to +73
# built from source for consistency with the other 3 components (all 4
# should build from the PR in every e2e flow, even where one isn't
# currently deployed) -- revisit if vmaas ever needs BMF enabled.

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.

📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win

Limit the “every e2e flow” claim.

.github/workflows/e2e-caas-full-install.yml Lines 66-67 explicitly exclude osac-aap. Therefore, all four components do not build in every e2e flow. Scope this statement to the VMaaS flow or remove the cross-flow claim.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.github/workflows/e2e-vmaas-full-install.yml around lines 71 - 73, Update
the comment near the VMaaS component build configuration to remove or narrow the
claim that all four components build in every e2e flow; describe the expectation
only for this VMaaS flow while preserving the note about revisiting BMF support.

@eliorerz

eliorerz commented Aug 1, 2026

Copy link
Copy Markdown
Contributor Author

Verification results

e2e-caas: https://github.com/osac-project/osac/actions/runs/30673628729

  • First attempt failed at "Setup CaaS agent" -- ERROR: Failed to create host type (HTTP 503), an Envoy upstream connection failure ("Connection refused") calling fulfillment-service, well after the component build step and completely unrelated to BMF (which isn't even deployed in this flow). Reran the job (gh run rerun --failed): passed cleanly end-to-end, confirming it was a transient infrastructure flake, not caused by this change.
  • BMF confirmed built from source: Build component[2]: eliorerz/osac@osac-3519-bmf-vmaas-caas (bare-metal-fulfillment-operator/Containerfile), real podman build, submodule correctly replaced.
  • Final result: 2 passed, all jobs green.

e2e-vmaas: https://github.com/osac-project/osac/actions/runs/30673628790

  • First attempt failed at "Run E2E tests" -- test_compute_instance_api_fields timed out waiting for a KubeVirt VM to transition Running -> Stopped (300s budget). Unrelated to BMF (also not deployed in this flow) and unrelated to osac-operator/fulfillment-service's images, which built fine -- the other 59 tests in the same run, including several other compute-instance lifecycle tests exercising the same controllers, all passed. Reran the job: passed cleanly, confirming it was a timing flake.
  • BMF confirmed built from source: Build component[3]: eliorerz/osac@osac-3519-bmf-vmaas-caas (bare-metal-fulfillment-operator/Containerfile), real podman build, submodule correctly replaced.
  • Final result: 60 passed, all jobs green.

Both flows confirm the same evidence standard as PR #51 (bmaas): BMF genuinely builds from this PR's source and gets substituted into the installer, even though bmf.enabled: false in both values/vmaas-ci/values.yaml and values/caas-ci/values.yaml means the built image currently has no running pod to reach (as called out in the PR description).

Ready for review. Not merging this myself.

@eliorerz

eliorerz commented Aug 1, 2026 •

Copy link
Copy Markdown
Contributor Author

Update on the two flaky-looking failures mentioned above: dug further and both turned out to be known, already-tracked issues, not generic flakiness:

  • The e2e-caas failure is OSAC-3505 (closed, fix merged in osac-test-infra) recurring here specifically because this repo's e2e caller workflows pin a stale osac-test-infra SHA that predates that fix by 13 commits. Filed OSAC-3521 to track bumping the pin -- worth picking up separately since it'll keep causing recurrences of any future osac-test-infra orchestration-level fix, not just this one.
  • The e2e-vmaas failure's symptom closely matches OSAC-3403 (open). Added supporting evidence there.

Neither is caused by this PR -- BMF's build/substitution succeeded in both runs before either unrelated failure occurred -- but wanted to correct the record rather than leave "just a flake" as the final word.

@eliorerz
eliorerz force-pushed the osac-3519-bmf-vmaas-caas branch from 2746deb to a9cd15f Compare August 1, 2026 02:42
eliorerz pushed a commit that referenced this pull request Aug 1, 2026
…-latest

MGMT-23507: Update submodules to latest main
@eliorerz
eliorerz merged commit 8c86882 into osac-project:main Aug 1, 2026
22 of 23 checks passed
@eliorerz
eliorerz deleted the osac-3519-bmf-vmaas-caas branch August 1, 2026 04:14
eliorerz pushed a commit that referenced this pull request Sep 16, 2026
OSAC-4141: add end-to-end Metal3 installation documentation
eliorerz pushed a commit that referenced this pull request Sep 18, 2026
OSAC-1960: Add GitHub Release creation to publish-charts workflow

This branch was previously deployed

1 inactive deployment
e2e-test — a9cd15fd Deployed Aug 1, 2026 by eliorerz via e2e-caas-full-install / e2e #103
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