Skip to content

USHIFT-6983: Drop optional components from tuned CI images#6782

Merged
openshift-merge-bot[bot] merged 1 commit into
openshift:mainfrom
pacevedom:USHIFT-6983
Jun 2, 2026
Merged

USHIFT-6983: Drop optional components from tuned CI images#6782
openshift-merge-bot[bot] merged 1 commit into
openshift:mainfrom
pacevedom:USHIFT-6983

Conversation

@pacevedom

@pacevedom pacevedom commented Jun 1, 2026

Copy link
Copy Markdown
Contributor

The tuned containerfiles inherited from the optional base image, which installed OLM, Istio, cert-manager, SR-IOV, and other optional components. None of the 3 scenarios using this image test optionals, but those components generated 58% of the slow etcd requests during startup on CPU-constrained ARM64 VMs (TuneD isolates most CPUs, leaving only 2 for system services). This etcd pressure contributes to PodSecurity admission timeouts that crash MicroShift on restart.

Make the tuned containerfiles self-contained: inherit from test-agent, install only core MicroShift + microshift-low-latency, and configure firewall directly. This eliminates the optional component overhead without affecting any other image consumers.

Summary by CodeRabbit

  • Chores
    • Updated test container images to install MicroShift packages (including low-latency variant), enable MicroShift services, and include RPM repo handling for offline installs.
    • Added explicit offline firewall configuration opening required SSH/HTTP/HTTPS/DNS/Kubernetes API and NodePort ports.
    • CI now forces rebuilds of tuned bootc images for EL9/EL10 group2 to ensure these updates are applied.

The tuned containerfiles inherited from the optional base image, which
installed OLM, Istio, cert-manager, SR-IOV, and other optional components.
None of the 3 scenarios using this image test optionals, but those
components generated 58% of the slow etcd requests during startup on
CPU-constrained ARM64 VMs (TuneD isolates most CPUs, leaving only 2 for
system services). This etcd pressure contributes to PodSecurity admission
timeouts that crash MicroShift on restart.

Make the tuned containerfiles self-contained: inherit from test-agent,
install only core MicroShift + microshift-low-latency, and configure
firewall directly. This eliminates the optional component overhead
without affecting any other image consumers.
@openshift-ci openshift-ci Bot added the do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. label Jun 1, 2026
@openshift-ci-robot openshift-ci-robot added the jira/valid-reference Indicates that this PR references a valid Jira ticket of any type. label Jun 1, 2026
@openshift-ci

openshift-ci Bot commented Jun 1, 2026

Copy link
Copy Markdown
Contributor

Skipping CI for Draft Pull Request.
If you want CI signal for your change, please convert it to an actual PR.
You can still manually trigger a test run with /test all

@openshift-ci-robot

openshift-ci-robot commented Jun 1, 2026

Copy link
Copy Markdown

@pacevedom: This pull request references USHIFT-6983 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 bug to target the "5.0.0" version, but no target version was set.

Details

In response to this:

The tuned containerfiles inherited from the optional base image, which installed OLM, Istio, cert-manager, SR-IOV, and other optional components. None of the 3 scenarios using this image test optionals, but those components generated 58% of the slow etcd requests during startup on CPU-constrained ARM64 VMs (TuneD isolates most CPUs, leaving only 2 for system services). This etcd pressure contributes to PodSecurity admission timeouts that crash MicroShift on restart.

Make the tuned containerfiles self-contained: inherit from test-agent, install only core MicroShift + microshift-low-latency, and configure firewall directly. This eliminates the optional component overhead without affecting any other image consumers.

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.

@coderabbitai

coderabbitai Bot commented Jun 1, 2026

Copy link
Copy Markdown
Contributor

Walkthrough

Two RHEL bootc test container images (EL10 rhel102 and EL9 rhel98) switch to test-agent bases, add templated RPM-repo copying and MicroShift RPM installs, enable MicroShift services, apply offline firewall rules, and CI now forces group2 tuned image rebuilds.

Changes

MicroShift Test Container Updates

Layer / File(s) Summary
EL10 containerfile: base, repo copy, install, firewall
test/image-blueprints-bootc/el10/layer4-release/group2/rhel102-bootc-brew-lrel-tuned.containerfile
Base image switched to localhost/rhel102-test-agent:latest; build args and COPY add RPM repo and .repo files; DNF installs MicroShift RPMs (templated by MICROSHIFT_MANDATORY_RPMS and BREW_LREL_RELEASE_VERSION), enables services, cleans repos, and applies firewall-offline-cmd rules.
EL9 containerfile: base, repo copy, install, firewall
test/image-blueprints-bootc/el9/layer4-release/group2/rhel98-bootc-brew-lrel-tuned.containerfile
Base image switched to rhel98-test-agent; templated build args/COPY of RPM repo and .repo files; DNF installs MicroShift RPMs and deps, enables services, removes repo artifacts, cleans DNF, and applies firewall-offline-cmd rules including NodePort TCP/UDP ranges.
CI: force rebuild group2 tuned images
test/bin/ci_phase_iso_build.sh
run_bootc_image_build path now calls build_bootc_images.sh -f -g .../group2 for EL9 and EL10 to force rebuilding the layer4-release tuned group2 images before early return.

Sequence Diagram(s)

sequenceDiagram
  participant ComponentA
  participant ComponentB
  ComponentA->>ComponentB: observable interaction
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Possibly related PRs

Suggested reviewers

  • vanhalenar
  • eslutsky
🚥 Pre-merge checks | ✅ 15
✅ Passed checks (15 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately summarizes the main change: dropping optional components from tuned CI container images by switching from optional base images to test-agent base.
Docstring Coverage ✅ Passed Docstring coverage is 100.00% which is sufficient. The required threshold is 80.00%.
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 PR contains no Ginkgo tests; only containerfiles and CI scripts. The check for stable/deterministic test names is not applicable.
Test Structure And Quality ✅ Passed No Ginkgo test files modified in this PR. The changes are containerfiles and CI shell scripts, not test code subject to this check.
Microshift Test Compatibility ✅ Passed No Ginkgo e2e tests are added in this PR; only Containerfile and CI script changes. The custom check applies only to new Ginkgo e2e tests.
Single Node Openshift (Sno) Test Compatibility ✅ Passed No Ginkgo e2e tests are added in this PR. Changes are limited to Containerfiles and a CI shell script; no Go test code present.
Topology-Aware Scheduling Compatibility ✅ Passed PR changes are containerfiles and CI scripts, not deployment manifests, operator code, or controllers. No Kubernetes scheduling constraints introduced.
Ote Binary Stdout Contract ✅ Passed PR modifies containerfiles and shell scripts, not OTE/Go test binaries. The stdout contract check applies only to Go test code; this PR contains no such code.
Ipv6 And Disconnected Network Test Compatibility ✅ Passed No Ginkgo e2e tests were added in this PR. Changes are limited to Containerfiles and a bash CI script, not test code.
No-Weak-Crypto ✅ Passed No weak cryptographic algorithms (MD5, SHA1, DES, RC4, 3DES, Blowfish, ECB), custom crypto implementations, or non-constant-time secret comparisons found in modified Containerfiles or CI script.
Container-Privileges ✅ Passed No privileged containers, elevated capabilities, hostNetwork/PID/IPC, SYS_ADMIN, or allowPrivilegeEscalation settings found. Changes only add package installations and standard firewall configuration.
No-Sensitive-Data-In-Logs ✅ Passed No sensitive data logging detected. Changes only log build paths, package names, firewall rules, and resource configuration—no passwords, tokens, API keys, or PII.

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

✨ 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 and usage tips.

@pacevedom

Copy link
Copy Markdown
Contributor Author

/test ?

@openshift-ci openshift-ci Bot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Jun 1, 2026
@pacevedom

Copy link
Copy Markdown
Contributor Author

/test e2e-aws-tests-bootc-release-arm-el9
/test e2e-aws-tests-release-arm
/test e2e-aws-tests-bootc-release-arm-el10

@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
`@test/image-blueprints-bootc/el10/layer4-release/group2/rhel102-bootc-brew-lrel-tuned.containerfile`:
- Around line 12-14: The COPY instruction currently copies
microshift-fast-datapath-rhel9.repo into the RHEL10 image (see the COPY line
referencing ./bootc-images/microshift-fast-datapath-rhel9.repo and the variable
USHIFT_RPM_REPO_NAME); update the containerfile so it copies the appropriate
RHEL10 fast-datapath repo (e.g., microshift-fast-datapath-rhel10.repo) or, if
using the RHEL9 repo is intentional, add a brief comment above the COPY
explaining why the RHEL9 repo is valid for this RHEL10 image and ensure the repo
file name/contents and USHIFT_RPM_REPO_NAME usage reflect that decision.
- Around line 19-23: EL10's RUN instruction installs "openssl" alongside
"firewalld" and "systemd-resolved" to force an OpenSSL upgrade for the
systemd-resolved/systemd bump; align the EL9 containerfile to match by adding
"openssl" to its dnf install line (and the same explanatory comment) or, if EL9
is intentionally different, add a clear comment in the EL9 containerfile
explaining why the OpenSSL workaround is not needed; update the RUN/dnf install
invocation that currently contains "firewalld systemd-resolved" to include
"openssl" (and mirror the repoinfo/install pattern) or add the justification
comment so the discrepancy is documented.
🪄 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: c11db495-55f5-441d-84ed-0ec1c1e89821

📥 Commits

Reviewing files that changed from the base of the PR and between 8161288 and f3b0e25.

📒 Files selected for processing (2)
  • test/image-blueprints-bootc/el10/layer4-release/group2/rhel102-bootc-brew-lrel-tuned.containerfile
  • test/image-blueprints-bootc/el9/layer4-release/group2/rhel98-bootc-brew-lrel-tuned.containerfile

@pacevedom

Copy link
Copy Markdown
Contributor Author

/test e2e-aws-tests-bootc-release-arm-el9
/test e2e-aws-tests-bootc-release-arm-el10

4 similar comments
@pacevedom

Copy link
Copy Markdown
Contributor Author

/test e2e-aws-tests-bootc-release-arm-el9
/test e2e-aws-tests-bootc-release-arm-el10

@pacevedom

Copy link
Copy Markdown
Contributor Author

/test e2e-aws-tests-bootc-release-arm-el9
/test e2e-aws-tests-bootc-release-arm-el10

@pacevedom

Copy link
Copy Markdown
Contributor Author

/test e2e-aws-tests-bootc-release-arm-el9
/test e2e-aws-tests-bootc-release-arm-el10

@pacevedom

Copy link
Copy Markdown
Contributor Author

/test e2e-aws-tests-bootc-release-arm-el9
/test e2e-aws-tests-bootc-release-arm-el10

@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: 1

🤖 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 `@test/bin/ci_phase_iso_build.sh`:
- Around line 128-130: This TEMP forced-rebuild block using $(dry_run) bash -x
./bin/build_bootc_images.sh -f -g
./image-blueprints-bootc/el9/layer4-release/group2 and the el10 equivalent must
be removed before merge; while it exists, change it to (1) gate the invocation
by the job OS so an arm-el9 job does not also trigger the el10 build (use
whatever job OS/env variable is available in the script to conditionally run the
el9 vs el10 call), and (2) avoid rebuilding the whole group by invoking
build_bootc_images.sh in a mode that only rebuilds changed containerfiles (or
pass a list of changed blueprints) instead of -g .../group2; keep the $(dry_run)
behavior intact while testing.
🪄 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: adc343f4-f933-45e8-af05-6a16ad2a85e3

📥 Commits

Reviewing files that changed from the base of the PR and between f3b0e25 and 5e69f56.

📒 Files selected for processing (1)
  • test/bin/ci_phase_iso_build.sh

Comment thread test/bin/ci_phase_iso_build.sh Outdated
@pacevedom

Copy link
Copy Markdown
Contributor Author

/test e2e-aws-tests-bootc-release-arm-el9
/test e2e-aws-tests-bootc-release-arm-el10

@pacevedom pacevedom marked this pull request as ready for review June 2, 2026 12:36
@openshift-ci openshift-ci Bot removed the do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. label Jun 2, 2026
@openshift-ci openshift-ci Bot requested review from ggiguash and vanhalenar June 2, 2026 12:38
@ggiguash

ggiguash commented Jun 2, 2026

Copy link
Copy Markdown
Contributor

/lgtm

@openshift-ci openshift-ci Bot added the lgtm Indicates that a PR is ready to be merged. label Jun 2, 2026
@openshift-ci

openshift-ci Bot commented Jun 2, 2026

Copy link
Copy Markdown
Contributor

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: ggiguash, pacevedom

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

@pacevedom

Copy link
Copy Markdown
Contributor Author

/verified by CI

@openshift-ci-robot openshift-ci-robot added the verified Signifies that the PR passed pre-merge verification criteria label Jun 2, 2026
@openshift-ci-robot

Copy link
Copy Markdown

@pacevedom: This PR has been marked as verified by CI.

Details

In response to this:

/verified by CI

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.

@pacevedom

Copy link
Copy Markdown
Contributor Author

/override ci/prow/e2e-aws-tests-bootc-release-arm-el9
/override ci/prow/e2e-aws-tests-bootc-release-arm-el10

@pacevedom

Copy link
Copy Markdown
Contributor Author

/cherry-pick release-4.22

@openshift-cherrypick-robot

Copy link
Copy Markdown

@pacevedom: once the present PR merges, I will cherry-pick it on top of release-4.22 in a new PR and assign it to you.

Details

In response to this:

/cherry-pick release-4.22

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.

@openshift-ci

openshift-ci Bot commented Jun 2, 2026

Copy link
Copy Markdown
Contributor

@pacevedom: Overrode contexts on behalf of pacevedom: ci/prow/e2e-aws-tests-bootc-release-arm-el10, ci/prow/e2e-aws-tests-bootc-release-arm-el9

Details

In response to this:

/override ci/prow/e2e-aws-tests-bootc-release-arm-el9
/override ci/prow/e2e-aws-tests-bootc-release-arm-el10

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.

@openshift-merge-bot openshift-merge-bot Bot merged commit 5280d21 into openshift:main Jun 2, 2026
16 checks passed
@openshift-cherrypick-robot

Copy link
Copy Markdown

@pacevedom: new pull request created: #6791

Details

In response to this:

/cherry-pick release-4.22

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

approved Indicates a PR has been approved by an approver from all required OWNERS files. jira/valid-reference Indicates that this PR references a valid Jira ticket of any type. lgtm Indicates that a PR is ready to be merged. verified Signifies that the PR passed pre-merge verification criteria

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants