Skip to content

MGMT-24194: add required vmaas E2E presubmit tests to osac-aap#78718

Open
omer-vishlitzky wants to merge 1 commit intoopenshift:mainfrom
omer-vishlitzky:MGMT-24194-osac-aap
Open

MGMT-24194: add required vmaas E2E presubmit tests to osac-aap#78718
omer-vishlitzky wants to merge 1 commit intoopenshift:mainfrom
omer-vishlitzky:MGMT-24194-osac-aap

Conversation

@omer-vishlitzky
Copy link
Copy Markdown
Contributor

@omer-vishlitzky omer-vishlitzky commented May 3, 2026

Summary

https://redhat.atlassian.net/browse/MGMT-24194

Add 8 required vmaas E2E presubmit tests to osac-aap. Tests build the Ansible Execution Environment image from the PR source, plus a modified osac-installer image with the PR's manifests swapped in.

Depends on

Test plan

  • Rehearsal jobs pass after step registry PR merges

Summary by CodeRabbit

  • Chores

    • Added image build pipeline including execution environment and installer images.
    • Introduced a new nightly release candidate target for OCP 4.20.
    • Added dedicated resource limits for CI test jobs.
  • Tests

    • Expanded CI with multiple intranet-capable E2E workflows, selecting component and installer image overrides and running distinct Python test suites.

@openshift-ci-robot
Copy link
Copy Markdown
Contributor

openshift-ci-robot commented May 3, 2026

@omer-vishlitzky: This pull request references MGMT-24194 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.

Details

In response to this:

Summary

https://redhat.atlassian.net/browse/MGMT-24194

Add 8 required vmaas E2E presubmit tests to osac-aap. Tests build the Ansible Execution Environment image from the PR source, plus a modified osac-installer image with the PR's manifests swapped in.

Depends on

Test plan

  • Rehearsal jobs pass after step registry PR merges

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-robot openshift-ci-robot added the jira/valid-reference Indicates that this PR references a valid Jira ticket of any type. label May 3, 2026
@openshift-ci openshift-ci Bot requested review from adriengentil and danmanor May 3, 2026 09:25
@openshift-ci
Copy link
Copy Markdown
Contributor

openshift-ci Bot commented May 3, 2026

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by: omer-vishlitzky
Once this PR has been reviewed and has the lgtm label, please assign akshaynadkarni for approval. For more information see the Code Review Process.

The full list of commands accepted by this bot can be found 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
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented May 3, 2026

Walkthrough

CI configuration for the osac-aap project is expanded: it adds base image mappings, two new image build definitions (execution environment and installer variant), a releases.latest entry for OCP nightly 4.20, a dedicated resource profile, and replaces a placeholder test with multiple Packet-assisted intranet E2E workflows.

Changes

OSAC AAP CI Configuration

Layer / File(s) Summary
Base Images
ci-operator/config/osac-project/osac-aap/osac-project-osac-aap-main.yaml (lines 1–41)
Adds base_images mapping multiple OSAC/assisted component image names to backplane-5.0 tags and appropriate namespaces.
Build Root / Positioning
ci-operator/config/.../osac-project-osac-aap-main.yaml (line ~42)
Retains existing build_root.image_stream_tag (repositioned after base_images).
Image Builds
ci-operator/config/.../osac-project-osac-aap-main.yaml (lines 47–87)
Introduces images.items with two dockerfile_literal builds: osac-aap-pr (CentOS Stream 9 EE with Python 3.12, Ansible deps, collections/vendor, oc and kubectl symlink) and osac-installer-with-pr (copies config/ into installer image).
Releases
ci-operator/config/.../osac-project-osac-aap-main.yaml (lines 88–93)
Adds releases.latest entry for product: ocp, stream: nightly, version: "4.20".
Resources
ci-operator/config/.../osac-project-osac-aap-main.yaml (lines 94–107)
Keeps global * resource settings and adds osac-aap-pr profile with 8Gi memory limit and 100m CPU / 200Mi memory requests.
E2E Tests
ci-operator/config/.../osac-project-osac-aap-main.yaml (lines 108–287)
Replaces single temp test with multiple intranet-capable Packet-assisted E2E tests. Each test: targets osac-project-ofcir-baremetal-component workflow, selects COMPONENT_IMAGE/OSAC_INSTALLER_IMAGE variants (osac-aap-pr / osac-installer-with-pr), sets AAP_EE_IMAGE_OVERRIDE, includes ASSISTED_CONFIG with OPENSHIFT_VERSION=4.20, and runs distinct Python test files for various scenarios (compute, API, CLI fields, delete, restart, negative, subnet/virtual-network lifecycle).

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

🚥 Pre-merge checks | ✅ 12
✅ Passed checks (12 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The PR title clearly indicates it adds E2E presubmit tests to osac-aap, which aligns with the primary change of expanding test coverage with multiple E2E workflows.
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.
Stable And Deterministic Test Names ✅ Passed This repository contains CI/CD configuration files (YAML) and does not include Ginkgo test files with test definitions, making the stable test names check not applicable.
Test Structure And Quality ✅ Passed PR modifies only CI configuration YAML, not Ginkgo test code, making this check inapplicable to the pull request context.
Microshift Test Compatibility ✅ Passed This PR does not add any Ginkgo e2e tests. Changes consist entirely of CI operator YAML configuration defining test jobs.
Single Node Openshift (Sno) Test Compatibility ✅ Passed This pull request does not add any new Ginkgo e2e tests written in Go. The PR exclusively modifies CI configuration files (YAML files in the ci-operator/config/ directory) to set up test infrastructure and orchestration. While the CI configuration references test execution workflows and Python test files, no Go test code containing Ginkgo constructs (It(), Describe(), Context(), When(), etc.) is being introduced. Therefore, the SNO (Single Node OpenShift) test compatibility check is not applicable to this PR.
Topology-Aware Scheduling Compatibility ✅ Passed CI-operator configuration file for osac-aap component contains build specifications and test workflows, not customer-facing deployment manifests with scheduling constraints.
Ote Binary Stdout Contract ✅ Passed OTE Binary Stdout Contract check is not applicable as PR only modifies YAML CI configuration files, not Go test binaries or source code.
Ipv6 And Disconnected Network Test Compatibility ✅ Passed PR adds Python-based E2E tests and CI configuration without Ginkgo test patterns; check is not applicable.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Review rate limit: 6/10 reviews remaining, refill in 20 minutes and 3 seconds.

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🧹 Nitpick comments (1)
ci-operator/config/osac-project/osac-aap/osac-project-osac-aap-main.yaml (1)

108-111: ⚡ Quick win

Drop the no-op temp presubmit.

This leaves an extra required context that does not validate the PR and still consumes CI capacity. If it is only a placeholder, it should be removed or made optional.

Possible cleanup
- - as: temp
-   commands: echo "Test"
-   container:
-     from: src
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@ci-operator/config/osac-project/osac-aap/osac-project-osac-aap-main.yaml`
around lines 108 - 111, The presubmit entry currently defined as "as: temp" with
"commands: echo \"Test\"" and "container: from: src" is a no-op that creates a
required CI context; remove this presubmit block entirely or convert it into an
optional check by adding "optional: true" under that entry (or otherwise
removing the required context) so it no longer blocks PR validation or consumes
CI capacity.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@ci-operator/config/osac-project/osac-aap/osac-project-osac-aap-main.yaml`:
- Around line 49-59: The Dockerfile snippet under dockerfile_literal uses
unpinned external inputs (FROM quay.io/centos/centos:stream9 and packages like
ansible-core and ansible-runner plus pip requirements in
execution-environment/requirements.txt); update the Dockerfile to pin or mirror
those inputs by replacing the base image with a specific digest or internal
registry mirror, pin package versions (e.g., ansible-core==<version>,
ansible-runner==<version> or install from a mirrored index), and vendor or pin
the pip requirements (freeze versions in execution-environment/requirements.txt
or point to a hosted requirements artifact); modify the dockerfile_literal entry
so it references the pinned/mirrored artifacts and ensure any CI job manifest
references the mirrored base image in the same way.

---

Nitpick comments:
In `@ci-operator/config/osac-project/osac-aap/osac-project-osac-aap-main.yaml`:
- Around line 108-111: The presubmit entry currently defined as "as: temp" with
"commands: echo \"Test\"" and "container: from: src" is a no-op that creates a
required CI context; remove this presubmit block entirely or convert it into an
optional check by adding "optional: true" under that entry (or otherwise
removing the required context) so it no longer blocks PR validation or consumes
CI capacity.
🪄 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 YAML (base), Central YAML (inherited)

Review profile: CHILL

Plan: Enterprise

Run ID: 8c9bd32e-e9e4-490d-9b7b-d6ca0ea21ad4

📥 Commits

Reviewing files that changed from the base of the PR and between 47e52e1 and 6f737be.

⛔ Files ignored due to path filters (1)
  • ci-operator/jobs/osac-project/osac-aap/osac-project-osac-aap-main-presubmits.yaml is excluded by !ci-operator/jobs/**
📒 Files selected for processing (1)
  • ci-operator/config/osac-project/osac-aap/osac-project-osac-aap-main.yaml

Comment on lines +49 to +59
- dockerfile_literal: |
FROM quay.io/centos/centos:stream9

RUN dnf install -y python3.12 python3.12-pip python3.12-devel \
git-core bind-utils krb5-devel gcc systemd-libs systemd-devel && \
dnf clean all

COPY execution-environment/requirements.txt /tmp/requirements.txt
RUN python3.12 -m pip install --no-cache-dir \
ansible-core ansible-runner dumb-init==1.2.5 \
-r /tmp/requirements.txt
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.

⚠️ Potential issue | 🟠 Major

🧩 Analysis chain

🏁 Script executed:

find . -name "osac-project-osac-aap-main.yaml" -type f

Repository: openshift/release

Length of output: 136


🏁 Script executed:

cat -n ./ci-operator/config/osac-project/osac-aap/osac-project-osac-aap-main.yaml

Repository: openshift/release

Length of output: 10155


Pin the EE image's external build inputs before making these jobs required.

This image is built from unpinned upstream inputs (quay.io/centos/centos:stream9, ansible-core, ansible-runner), so required presubmits can start failing without any repo change. Pin or mirror those inputs to ensure the new jobs remain reproducible.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@ci-operator/config/osac-project/osac-aap/osac-project-osac-aap-main.yaml`
around lines 49 - 59, The Dockerfile snippet under dockerfile_literal uses
unpinned external inputs (FROM quay.io/centos/centos:stream9 and packages like
ansible-core and ansible-runner plus pip requirements in
execution-environment/requirements.txt); update the Dockerfile to pin or mirror
those inputs by replacing the base image with a specific digest or internal
registry mirror, pin package versions (e.g., ansible-core==<version>,
ansible-runner==<version> or install from a mirrored index), and vendor or pin
the pip requirements (freeze versions in execution-environment/requirements.txt
or point to a hosted requirements artifact); modify the dockerfile_literal entry
so it references the pinned/mirrored artifacts and ensure any CI job manifest
references the mirrored base image in the same way.

Add 8 required vmaas E2E presubmit tests that run on every
osac-aap PR. Tests build the Ansible Execution Environment image
from the PR source, plus a modified osac-installer image with
the PR's manifests swapped in.
@omer-vishlitzky
Copy link
Copy Markdown
Contributor Author

/pj-rehearse pull-ci-osac-project-osac-aap-main-e2e-metal-vmaas-compute-instance-api-fields pull-ci-osac-project-osac-aap-main-e2e-metal-vmaas-compute-instance-cli-fields pull-ci-osac-project-osac-aap-main-e2e-metal-vmaas-compute-instance-creation pull-ci-osac-project-osac-aap-main-e2e-metal-vmaas-compute-instance-delete-during-provision pull-ci-osac-project-osac-aap-main-e2e-metal-vmaas-compute-instance-restart pull-ci-osac-project-osac-aap-main-e2e-metal-vmaas-compute-instance-restart-negative pull-ci-osac-project-osac-aap-main-e2e-metal-vmaas-subnet-lifecycle pull-ci-osac-project-osac-aap-main-e2e-metal-vmaas-virtual-network-lifecycle

@openshift-merge-bot
Copy link
Copy Markdown
Contributor

@omer-vishlitzky: now processing your pj-rehearse request. Please allow up to 10 minutes for jobs to trigger or cancel.

Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

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

♻️ Duplicate comments (1)
ci-operator/config/osac-project/osac-aap/osac-project-osac-aap-main.yaml (1)

49-59: ⚠️ Potential issue | 🟠 Major | ⚡ Quick win

Pin EE build inputs before keeping these jobs required.

The EE image still depends on floating upstream inputs (quay.io/centos/centos:stream9, unpinned ansible-core, ansible-runner), so required presubmits can fail without repo changes.

Suggested change pattern
-      FROM quay.io/centos/centos:stream9
+      FROM quay.io/centos/centos@sha256:<pinned-digest>

-      RUN python3.12 -m pip install --no-cache-dir \
-          ansible-core ansible-runner dumb-init==1.2.5 \
+      RUN python3.12 -m pip install --no-cache-dir \
+          ansible-core==<pinned-version> ansible-runner==<pinned-version> dumb-init==1.2.5 \
           -r /tmp/requirements.txt
#!/bin/bash
set -euo pipefail

file="$(fd -a 'osac-project-osac-aap-main.yaml' | head -n1)"
nl -ba "$file" | sed -n '49,60p'

# Verify:
# 1) FROM uses digest-pinned image (or an internal mirrored image alias).
# 2) ansible-core / ansible-runner are version-pinned.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@ci-operator/config/osac-project/osac-aap/osac-project-osac-aap-main.yaml`
around lines 49 - 59, The Dockerfile fragment in dockerfile_literal uses
floating inputs: the FROM line (FROM quay.io/centos/centos:stream9) and the pip
installs in the RUN python3.12 -m pip install command (ansible-core,
ansible-runner) — update the FROM to a digest-pinned base image or internal
mirror alias and pin the pip packages to specific versions (e.g.,
ansible-core==X.Y.Z, ansible-runner==A.B.C); ensure any additional dependencies
in COPY execution-environment/requirements.txt are also version-pinned or
validated, then rerun the presubmit checks.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Duplicate comments:
In `@ci-operator/config/osac-project/osac-aap/osac-project-osac-aap-main.yaml`:
- Around line 49-59: The Dockerfile fragment in dockerfile_literal uses floating
inputs: the FROM line (FROM quay.io/centos/centos:stream9) and the pip installs
in the RUN python3.12 -m pip install command (ansible-core, ansible-runner) —
update the FROM to a digest-pinned base image or internal mirror alias and pin
the pip packages to specific versions (e.g., ansible-core==X.Y.Z,
ansible-runner==A.B.C); ensure any additional dependencies in COPY
execution-environment/requirements.txt are also version-pinned or validated,
then rerun the presubmit checks.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository YAML (base), Central YAML (inherited)

Review profile: CHILL

Plan: Enterprise

Run ID: 3bac881a-3b57-453d-94d5-171d048c176d

📥 Commits

Reviewing files that changed from the base of the PR and between 6f737be and 0814186.

⛔ Files ignored due to path filters (1)
  • ci-operator/jobs/osac-project/osac-aap/osac-project-osac-aap-main-presubmits.yaml is excluded by !ci-operator/jobs/**
📒 Files selected for processing (1)
  • ci-operator/config/osac-project/osac-aap/osac-project-osac-aap-main.yaml

@omer-vishlitzky
Copy link
Copy Markdown
Contributor Author

/pj-rehearse pull-ci-osac-project-osac-aap-main-e2e-metal-vmaas-compute-instance-api-fields pull-ci-osac-project-osac-aap-main-e2e-metal-vmaas-compute-instance-cli-fields pull-ci-osac-project-osac-aap-main-e2e-metal-vmaas-compute-instance-creation pull-ci-osac-project-osac-aap-main-e2e-metal-vmaas-compute-instance-delete-during-provision pull-ci-osac-project-osac-aap-main-e2e-metal-vmaas-compute-instance-restart pull-ci-osac-project-osac-aap-main-e2e-metal-vmaas-compute-instance-restart-negative pull-ci-osac-project-osac-aap-main-e2e-metal-vmaas-subnet-lifecycle pull-ci-osac-project-osac-aap-main-e2e-metal-vmaas-virtual-network-lifecycle

@openshift-merge-bot
Copy link
Copy Markdown
Contributor

@omer-vishlitzky: now processing your pj-rehearse request. Please allow up to 10 minutes for jobs to trigger or cancel.

@omer-vishlitzky
Copy link
Copy Markdown
Contributor Author

/retest

@openshift-ci
Copy link
Copy Markdown
Contributor

openshift-ci Bot commented May 4, 2026

@omer-vishlitzky: The following tests failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name Commit Details Required Rerun command
ci/rehearse/osac-project/osac-aap/main/e2e-metal-vmaas-subnet-lifecycle 0814186 link unknown /pj-rehearse pull-ci-osac-project-osac-aap-main-e2e-metal-vmaas-subnet-lifecycle
ci/rehearse/osac-project/osac-aap/main/e2e-metal-vmaas-compute-instance-creation 0814186 link unknown /pj-rehearse pull-ci-osac-project-osac-aap-main-e2e-metal-vmaas-compute-instance-creation
ci/rehearse/osac-project/osac-aap/main/e2e-metal-vmaas-compute-instance-restart-negative 0814186 link unknown /pj-rehearse pull-ci-osac-project-osac-aap-main-e2e-metal-vmaas-compute-instance-restart-negative
ci/rehearse/osac-project/osac-aap/main/e2e-metal-vmaas-virtual-network-lifecycle 0814186 link unknown /pj-rehearse pull-ci-osac-project-osac-aap-main-e2e-metal-vmaas-virtual-network-lifecycle
ci/rehearse/osac-project/osac-aap/main/e2e-metal-vmaas-compute-instance-cli-fields 0814186 link unknown /pj-rehearse pull-ci-osac-project-osac-aap-main-e2e-metal-vmaas-compute-instance-cli-fields
ci/rehearse/osac-project/osac-aap/main/e2e-metal-vmaas-compute-instance-restart 0814186 link unknown /pj-rehearse pull-ci-osac-project-osac-aap-main-e2e-metal-vmaas-compute-instance-restart
ci/rehearse/osac-project/osac-aap/main/e2e-metal-vmaas-compute-instance-api-fields 0814186 link unknown /pj-rehearse pull-ci-osac-project-osac-aap-main-e2e-metal-vmaas-compute-instance-api-fields
ci/rehearse/osac-project/osac-aap/main/e2e-metal-vmaas-compute-instance-delete-during-provision 0814186 link unknown /pj-rehearse pull-ci-osac-project-osac-aap-main-e2e-metal-vmaas-compute-instance-delete-during-provision

Full PR test history. Your PR dashboard.

Details

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 kubernetes-sigs/prow repository. I understand the commands that are listed here.

@openshift-ci openshift-ci Bot added the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label May 4, 2026
@openshift-ci
Copy link
Copy Markdown
Contributor

openshift-ci Bot commented May 4, 2026

PR needs rebase.

Details

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 kubernetes-sigs/prow repository.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

jira/valid-reference Indicates that this PR references a valid Jira ticket of any type. needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants