Repository navigation
OSAC-1675: Add component image build support to e2e full install - #118
Conversation
Add inputs for building a component image from source on the self-hosted runner and loading it directly onto the cluster node. New inputs: component-repo, component-ref, component-image-key, component-containerfile. When provided, the workflow clones the component repo, builds the image with podman, and pipes it to the cluster node via 'podman save | ssh sudo podman load'. CRI-O shares storage with root podman on RHCOS, so the image is available to the kubelet without pushing to any registry.
|
@eliorerz: This pull request references OSAC-1675 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 story to target the "5.0.0" version, but no target version was set. DetailsIn response to this:
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. |
|
[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 DetailsNeeds approval from an approver in each of these files:
Approvers can indicate their approval by writing |
|
Warning Review limit reached
More reviews will be available in 12 minutes and 41 seconds. Learn how PR review limits work. Your organization has used up its prepaid credits, and credit purchases are no longer available. Enable the review add-on in the billing tab to keep reviews running — you're only billed for reviews past your plan's rate limits ($0.25/file). ⌛ How to resolve this issue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based credits. 🚦 How do rate limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please see our Fair Usage Limits Policy for further information. ℹ️ Review info⚙️ Run configurationConfiguration used: Repository: osac-project/coderabbit/.coderabbit.yaml Review profile: ASSERTIVE Plan: Enterprise Run ID: 📒 Files selected for processing (2)
WalkthroughThe ChangesComponent image build and Helm override injection
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~20 minutes Possibly related PRs
Suggested reviewers
Poem
Caution Pre-merge checks failedPlease resolve all errors before merging. Addressing warnings is optional.
❌ Failed checks (1 error)
✅ Passed checks (10 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
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. Comment |
There was a problem hiding this comment.
Actionable comments posted: 4
🤖 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-vmaas-full-install.yml:
- Around line 301-324: The component image created in this workflow is only
removed from the runner source directory, so `component-pr:${GITHUB_RUN_ID}`
will accumulate on both the self-hosted runner and the cluster node across runs.
Update the image build/load flow around `COMPONENT_TAG`, `podman build`, and
`podman save | ssh ... sudo podman load` to ensure the tag is passed into
teardown, then explicitly remove the image from the remote node and clean up the
local image on the runner after tests complete.
- Around line 67-86: The component input set in the workflow should be treated
as all-or-none, since `component-repo` can currently trigger the build while
`component-ref` and `component-image-key` remain empty. Update the input
validation and build path in the workflow sections around the component inputs
so that the job only proceeds when all component-related inputs are provided
together, and otherwise skips or fails fast with a clear message. Apply the same
guard consistently wherever the component build logic is defined, including the
other referenced workflow blocks, using the existing `component-repo`,
`component-ref`, `component-image-key`, and `component-containerfile` inputs as
the control points.
- Around line 292-309: The “Build and load component image” step in the workflow
currently clones and builds a caller-supplied COMPONENT_REPO without any trust
gate, which is unsafe on the self-hosted runner. Add an allowlist or equivalent
validation before the git clone/podman build path, and fail early unless
COMPONENT_REPO matches an approved source; keep the check close to the existing
COMPONENT_REPO/COMPONENT_REF environment setup so it is easy to audit. Ensure
this guard applies before any PR-controlled source is fetched or built,
especially for PR-triggered runs.
- Around line 303-305: The component checkout in the workflow currently uses the
clone-and-branch flow, which only works for branch/tag names and not arbitrary
Git refs like SHAs or refs/pull/*; update the component source setup to fetch
the requested ref and perform a detached checkout instead. Keep the logic around
COMPONENT_REPO and COMPONENT_REF, but replace the git clone --branch usage in
the component-src preparation step so it can resolve any documented ref, or
otherwise tighten the input contract to match the current behavior.
🪄 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: Enterprise
Run ID: 06fa4eb0-1047-425d-ac5e-8cf6b7db9208
📒 Files selected for processing (1)
.github/workflows/e2e-vmaas-full-install.yml
setup.sh checks for helm at the top, even when SETUP_PHASE=prerequisites. Move tool installation from the Install OSAC step to before setup.sh runs.
- Validate all component inputs are provided together (all-or-none) - Add org allowlist (osac-project/, eliorerz/) before cloning/building - Clean up component image from both runner and cluster node in teardown - Clarify input descriptions: component-ref must be a branch/tag name
65d0b8d to
57eb338
Compare
Summary
e2e-vmaas-full-installreusable workflow for building a component image from sourcepodman save | ssh sudo podman loadNew inputs
component-repoosac-project/fulfillment-service)component-refcomponent-image-keyservice.images.service)component-containerfileContainerfile)How component repos use it
Test plan
Summary by CodeRabbit