Skip to content

Revert "OSAC-2801: Add CaaS Netris full-install E2E workflow" - #166

Merged
eliorerz merged 1 commit into
mainfrom
revert-110-feat/add-caas-netris-e2e
Aug 5, 2026
Merged

eliorerz merged 1 commit into
mainfrom
revert-110-feat/add-caas-netris-e2e

Conversation

@eliorerz

@eliorerz eliorerz commented Aug 5, 2026 •

Copy link
Copy Markdown
Contributor

Netris Job is still not stable and blocking PRs reverting #110

Summary by CodeRabbit

  • Tests
    • Added automated full-install end-to-end testing for pull requests, scheduled runs, merge queues, and manual execution.
    • Added configurable test suite, test filters, and test infrastructure version inputs.
    • Added support for building required component images and reporting test failures or cancellations.
    • Removed the separate Netris full-install end-to-end workflow.

@openshift-ci-robot

openshift-ci-robot commented Aug 5, 2026 •

Copy link
Copy Markdown

@eliorerz: This pull request references OSAC-2801 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:

Netris Job is still not stable and blocking PRs reverting #110

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 CrystalChun and tzvatot August 5, 2026 20:28
@openshift-ci

openshift-ci Bot commented Aug 5, 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 Aug 5, 2026 •

Copy link
Copy Markdown
Contributor

Review Change Stack

Walkthrough

The PR adds a generic CaaS full-install E2E workflow with configurable inputs, change filtering, component image builds, and final status reporting. It removes the Netris-specific full-install workflow.

Changes

CaaS full-install E2E

Layer / File(s) Summary
Workflow triggers and change gating
.github/workflows/e2e-caas-full-install.yml
The workflow supports pull requests, merge queues, schedules, and manual dispatches. Manual inputs configure the test suite, filter, and test-infrastructure ref. Documentation-only, license-only, and ownership-only changes are filtered.
Reusable full-install execution
.github/workflows/e2e-caas-full-install.yml
The reusable workflow receives pull-request repository and ref metadata, test settings, fork authorization data, and component image build targets.
Final E2E status reporting
.github/workflows/e2e-caas-full-install.yml
The e2e job evaluates upstream results and fails when the change-filter or full-install job fails or is cancelled.
Netris workflow removal
.github/workflows/e2e-caas-netris-full-install.yml
The Netris-specific full-install workflow is deleted.

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

Sequence Diagram(s)

sequenceDiagram
  participant GitHub
  participant changes
  participant full_install
  participant e2e
  GitHub->>changes: Start workflow and evaluate changed paths
  changes-->>full_install: Provide should-run result
  full_install->>full_install: Build configured component images
  full_install-->>e2e: Return install status
  changes-->>e2e: Return filter status
  e2e->>e2e: Report failure for failed or cancelled upstream jobs
Loading

Possibly related PRs

Suggested reviewers: danmanor, omer-vishlitzky

🚥 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 primary change as reverting the unstable CaaS Netris full-install E2E workflow.
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 added workflow has no literal secret assignments, private-key material, embedded credentials, or credential-shaped tokens; its only long literal is a known 40-character pinned action SHA reused...
No-Weak-Crypto ✅ Passed The patch adds and removes only GitHub Actions workflow YAML; no MD5, SHA1, DES, RC4, Blowfish, ECB, custom crypto, or secret comparisons are present.
No-Injection-Vectors ✅ Passed The commit changes only workflow YAML; no SQL concatenation, shell=True, eval/exec, pickle.loads, yaml.load, os.system, or dangerouslySetInnerHTML sink appears. The run block only echoes job results.
Container-Privileges ✅ Passed No changed container or Kubernetes manifest declares privileged execution, host namespace access, SYS_ADMIN, privilege escalation, or unjustified root execution.
No-Sensitive-Data-In-Logs ✅ Passed The added workflow logs only fixed status labels and needs.*.result values; it does not echo secrets, tokens, credentials, PII, hostnames, or customer data.
Ai-Attribution ✅ Passed The PR description and its sole commit do not mention AI tools; the commit has no attribution trailer, so no Red Hat AI attribution requirement is triggered.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch revert-110-feat/add-caas-netris-e2e

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 81-108: The reusable workflow reference in the
e2e-caas-full-install job is unpinned; replace `@main` with the reviewed commit
SHA. Add cosign or Sigstore signing and verification for every image declared in
components, ensuring verification completes before deployment proceeds.
- Around line 81-108: Update the e2e-caas-full-install job to pin the reusable
workflow reference currently set to `@main` to a full commit SHA. Add SAST and SCA
checks to the workflow invocation or its supported inputs so they run for every
entry in the components list, covering all six configured component builds
without omitting either execution-environment build.
🪄 Autofix

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: CHILL

Plan: Enterprise

Run ID: bb597347-3480-4af9-a4c6-8929d68b0c14

📥 Commits

Reviewing files that changed from the base of the PR and between 7f331a0 and e41a00b.

📒 Files selected for processing (2)
  • .github/workflows/e2e-caas-full-install.yml
  • .github/workflows/e2e-caas-netris-full-install.yml
💤 Files with no reviewable changes (1)
  • .github/workflows/e2e-caas-netris-full-install.yml

Comment on lines +81 to +108
e2e-caas-full-install:
needs: changes
if: needs.changes.outputs.should-run == 'true'
uses: osac-project/osac-test-infra/.github/workflows/e2e-caas-full-install.yml@main
with:
test-suite: ${{ inputs.test-suite || 'caas' }}
test-filter: ${{ inputs.test-filter || '' }}
# osac-installer now lives as a subdirectory of this same monorepo checkout
# (its Chart.yaml deps resolve fulfillment-service/osac-operator/osac-aap/BMF
# as ../../../<name> siblings within it), so a PR touching those components
# must deploy from this PR's own fork/ref, not the reusable workflow's
# standalone-repo default.
installer-repo: ${{ github.event.pull_request.head.repo.full_name || github.repository }}
installer-ref: ${{ github.event.pull_request.head.ref || github.ref_name }}
# Build all component images from the PR's fork/branch (same monorepo checkout).
# osac-aap's execution-environment is built twice (aap.bootstrap.image and
# aap.configAsCode.eeImage): the two are logically the same image but the
# override mechanism keys strictly off imageKey, one build per key, so this
# is the only way to get both fields covered without changing that mechanism
# (which lives in osac-test-infra, not here). See OSAC-3546.
components: '[{"repo":"${{ github.event.pull_request.head.repo.full_name || github.repository }}","ref":"${{ github.event.pull_request.head.ref || github.ref_name }}","containerfile":"fulfillment-service/Containerfile","context":".","imageKey":"service.images.service"},{"repo":"${{ github.event.pull_request.head.repo.full_name || github.repository }}","ref":"${{ github.event.pull_request.head.ref || github.ref_name }}","containerfile":"osac-operator/Containerfile","context":".","imageKey":"operator.image.repository"},{"repo":"${{ github.event.pull_request.head.repo.full_name || github.repository }}","ref":"${{ github.event.pull_request.head.ref || github.ref_name }}","containerfile":"osac-aap/execution-environment/execution-environment.yaml","imageKey":"aap.bootstrap.image","buildType":"ansible-builder"},{"repo":"${{ github.event.pull_request.head.repo.full_name || github.repository }}","ref":"${{ github.event.pull_request.head.ref || github.ref_name }}","containerfile":"osac-aap/execution-environment/execution-environment.yaml","imageKey":"aap.configAsCode.eeImage","buildType":"ansible-builder"},{"repo":"${{ github.event.pull_request.head.repo.full_name || github.repository }}","ref":"${{ github.event.pull_request.head.ref || github.ref_name }}","containerfile":"bare-metal-fulfillment-operator/Containerfile","context":".","imageKey":"bmf.image.repository"},{"repo":"${{ github.event.pull_request.head.repo.full_name || github.repository }}","ref":"${{ github.event.pull_request.head.ref || github.ref_name }}","containerfile":"osac-metering/metering-service/Containerfile","imageKey":"metering.image.repository"}]'
# Pass author_association for fork PR authorization (empty for non-fork PRs)
fork-pr-author-association: ${{ github.event.pull_request.head.repo.fork && github.event.pull_request.author_association || '' }}
fork-pr-author: ${{ github.event.pull_request.head.repo.fork && github.event.pull_request.user.login || '' }}
pr-number: ${{ github.event.pull_request.number }}
# Checkout osac-test-infra for tests/Containerfile (not the caller repo)
test-infra-repository: osac-project/osac-test-infra
test-infra-ref: ${{ inputs.test-infra-ref || 'main' }}

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.

🔒 Security & Privacy | 🟠 Major | ⚡ Quick win

🧩 Analysis chain

🏁 Script executed:

set -eu
url='https://raw.githubusercontent.com/osac-project/osac-test-infra/main/.github/workflows/e2e-caas-full-install.yml'
status=$(curl -L -sS -o /tmp/e2e-caas-full-install.yml -w '%{http_code}' "$url")
printf 'HTTP status: %s\n' "$status"
if [ "$status" = 200 ]; then
  rg -n -i 'cosign|sigstore|sign|build-push|push|publish|registry' /tmp/e2e-caas-full-install.yml || true
  sed -n '1,260p' /tmp/e2e-caas-full-install.yml
fi

Repository: osac-project/osac

Length of output: 10598


🏁 Script executed:

set -eu
sed -n '250,700p' /tmp/e2e-caas-full-install.yml
printf '\nReferenced local actions:\n'
rg -n 'uses: \./|run:|buildah|podman|docker|push|publish|sign|cosign|sigstore' /tmp/e2e-caas-full-install.yml

Repository: osac-project/osac

Length of output: 24713


Security Misconfiguration (CWE-693)

Reachability: External · Exploitability: Moderate

Pin the reusable workflow and sign images. Replace @main with a reviewed commit SHA. Add Sigstore or cosign signing and verification for every component image before deployment.

🤖 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-caas-full-install.yml around lines 81 - 108, The
reusable workflow reference in the e2e-caas-full-install job is unpinned;
replace `@main` with the reviewed commit SHA. Add cosign or Sigstore signing and
verification for every image declared in components, ensuring verification
completes before deployment proceeds.

Source: Path instructions


🔒 Security & Privacy | 🟠 Major | ⚡ Quick win

🧩 Analysis chain

🏁 Script executed:

set -eu
printf '%s\n' '--- caller reference ---'
sed -n '81,108p' .github/workflows/e2e-caas-full-install.yml

printf '%s\n' '--- called workflow at main ---'
curl -fsSL --max-time 20 \
  https://raw.githubusercontent.com/osac-project/osac-test-infra/main/.github/workflows/e2e-caas-full-install.yml |
  sed -n '1,260p'

printf '%s\n' '--- called workflow refs and security steps ---'
curl -fsSL --max-time 20 \
  https://raw.githubusercontent.com/osac-project/osac-test-infra/main/.github/workflows/e2e-caas-full-install.yml |
  rg -n -i 'uses:|sast|sca|semgrep|codeql|trivy|grype|syft|snyk|dependenc|security|scan'

Repository: osac-project/osac

Length of output: 14686


🏁 Script executed:

set -eu
tmp=$(mktemp)
curl -fsSL --max-time 20 \
  https://raw.githubusercontent.com/osac-project/osac-test-infra/main/.github/workflows/e2e-caas-full-install.yml > "$tmp"

printf '%s\n' '--- component build path ---'
nl -ba "$tmp" | sed -n '250,520p'

printf '%s\n' '--- all build and scan-like commands ---'
rg -n -i 'build|containerfile|ansible-builder|docker|podman|buildah|sast|sca|semgrep|codeql|trivy|grype|syft|snyk|dependency|security|scan' "$tmp"

printf '%s\n' '--- referenced local action metadata ---'
for action in validate-and-bootstrap authorize-fork-pr fetch-and-write-secrets gather-artifacts; do
  url="https://raw.githubusercontent.com/osac-project/osac-test-infra/main/.github/actions/$action/action.yml"
  printf '\n### %s\n' "$action"
  curl -fsSL --max-time 20 "$url" | rg -n -i 'run:|uses:|build|scan|sast|sca|semgrep|codeql|trivy|grype|syft|snyk|dependenc|security'
done
rm -f "$tmp"

Repository: osac-project/osac

Length of output: 4815


Security Misconfiguration (CWE-693)

Reachability: External · Exploitability: Moderate

Add SAST and SCA checks for all component builds

The reusable workflow at @main builds the six configured components but has no SAST or SCA step. Pin it to a full commit SHA and add checks that cover every component build.

🤖 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-caas-full-install.yml around lines 81 - 108, Update
the e2e-caas-full-install job to pin the reusable workflow reference currently
set to `@main` to a full commit SHA. Add SAST and SCA checks to the workflow
invocation or its supported inputs so they run for every entry in the components
list, covering all six configured component builds without omitting either
execution-environment build.

Source: Path instructions

@eliorerz
eliorerz merged commit c6ca1ac into main Aug 5, 2026
18 of 22 checks passed
@eliorerz
eliorerz deleted the revert-110-feat/add-caas-netris-e2e branch August 5, 2026 20:35
eliorerz added a commit to eliorerz/osac that referenced this pull request Aug 5, 2026
PR osac-project#110 (OSAC-2801) added this suite auto-triggered on every PR. It
started failing on every PR (including unrelated ones) with 'gh:
Resource not accessible by personal access token (HTTP 403)' when
registering the ephemeral EC2 instance as a JIT GitHub Actions runner
-- a separate, still-open token/permissions problem, not addressed
here. PR osac-project#166 reverted it entirely rather than leave every PR red.

Restores the original file (git show 4416ff2) with one substantive
change: the changes job's should-run output now also requires
github.run_attempt != '1' on pull_request events, so the suite is
skipped (not run) on a PR's automatic first check run. schedule/
workflow_dispatch/merge_group are untouched -- always real runs.

github.run_attempt is 1 for a workflow's original run and 2+ for each
rerun. osac-test-infra's existing shared slash-command-handler.yml
(unchanged) already finds an existing PR-triggered run for a given
workflow at the PR's head SHA and reruns it on /test <workflow> --
that's exactly attempt 2+. Keeping on: pull_request means there's
always a run to find and rerun. No new mechanism, no shared-code
changes, no effect on e2e-bmaas/e2e-vmaas/e2e-caas-full-install's own
/test commands.
eliorerz pushed a commit that referenced this pull request Sep 18, 2026
…tion

OSAC-4327: Storage review section and VM detail tier display

This branch had an error being deployed

1 failed deployment
e2e-test — e41a00b8 Deployed Aug 5, 2026 by eliorerz via e2e-caas-full-install / e2e #560
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