Skip to content

USHIFT-6978: install dracut-fips in RHEL 9 bootc FIPS images#6657

Open
agullon wants to merge 1 commit into
openshift:mainfrom
agullon:USHIFT-6978
Open

USHIFT-6978: install dracut-fips in RHEL 9 bootc FIPS images#6657
agullon wants to merge 1 commit into
openshift:mainfrom
agullon:USHIFT-6978

Conversation

@agullon
Copy link
Copy Markdown
Contributor

@agullon agullon commented May 12, 2026

Summary

  • Install dracut-fips in RHEL 9 bootc FIPS containerfiles (presubmit and release)
  • On RHEL 9, the fips dracut module is in the separate dracut-fips package — without it the initramfs lacks the module and the lsinitrd FIPS check fails
  • On RHEL 10+, this module was merged into the base dracut package and is always present

Test plan

  • Verify el98-lrel@ai-model-serving-online-fips scenario passes on RHEL 9 bootc
  • Verify FIPS test still passes on RHEL 10 bootc

Jira: https://issues.redhat.com/browse/USHIFT-6978

🤖 Generated with Claude Code

Summary by CodeRabbit

  • New Features
    • FIPS-enabled EL9 RHEL98 boot container images now include FIPS initramfs support (dracut-fips) and required runtime components, ensuring images are built with the FIPS crypto policy and compatible boot behavior.

@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 12, 2026
@openshift-ci-robot
Copy link
Copy Markdown

openshift-ci-robot commented May 12, 2026

@agullon: This pull request references USHIFT-6978 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:

Summary

  • Skip the lsinitrd -m | grep fips initramfs check on RHEL 9 bootc systems
  • On RHEL 9, the fips dracut module is in the separate dracut-fips package, which is not installed in bootc images
  • On RHEL 10+, this module was merged into the base dracut package and is always present
  • The other two checks (kernel fips flag + crypto policy) already verify FIPS is properly enabled on both versions

Test plan

  • Verify el98-lrel@ai-model-serving-online-fips scenario passes on RHEL 9 bootc
  • Verify FIPS test still passes on RHEL 10 bootc (lsinitrd check still runs)

Jira: https://issues.redhat.com/browse/USHIFT-6978

🤖 Generated with Claude Code

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 eslutsky and kasturinarra May 12, 2026 15:05
@openshift-ci
Copy link
Copy Markdown
Contributor

openshift-ci Bot commented May 12, 2026

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: agullon

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

@openshift-ci openshift-ci Bot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label May 12, 2026
@agullon
Copy link
Copy Markdown
Contributor Author

agullon commented May 12, 2026

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

@agullon
Copy link
Copy Markdown
Contributor Author

agullon commented May 12, 2026

/cherrypick release-4.22

@openshift-cherrypick-robot
Copy link
Copy Markdown

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

/cherrypick 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.

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented May 12, 2026

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

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

Review profile: CHILL

Plan: Enterprise

Run ID: 1461311f-a71e-4c82-8c27-2805a26963e2

📥 Commits

Reviewing files that changed from the base of the PR and between aab0521 and 8a3b3a5.

📒 Files selected for processing (2)
  • test/image-blueprints-bootc/el9/layer2-presubmit/group2/rhel98-bootc-source-fips.containerfile
  • test/image-blueprints-bootc/el9/layer4-release/group2/rhel98-bootc-brew-lrel-fips.containerfile
🚧 Files skipped from review as they are similar to previous changes (2)
  • test/image-blueprints-bootc/el9/layer4-release/group2/rhel98-bootc-brew-lrel-fips.containerfile
  • test/image-blueprints-bootc/el9/layer2-presubmit/group2/rhel98-bootc-source-fips.containerfile

Walkthrough

Two EL9 RHEL98 bootc FIPS containerfiles were changed to include the dracut-fips package in their dnf install command; other steps remain unchanged.

Changes

FIPS Dracut Package Installation

Layer / File(s) Summary
Presubmit FIPS stage
test/image-blueprints-bootc/el9/layer2-presubmit/group2/rhel98-bootc-source-fips.containerfile
Added dracut-fips to the dnf install package list during the FIPS package installation step.
Release FIPS stage
test/image-blueprints-bootc/el9/layer4-release/group2/rhel98-bootc-brew-lrel-fips.containerfile
Added dracut-fips to the dnf install package list during the FIPS package installation step.

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~2 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 accurately describes the main change: installing dracut-fips package in RHEL 9 bootc FIPS images, which matches the file-level summaries.
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 PR contains only containerfile modifications, no Go/Ginkgo test files. Check for stable test names is not applicable.
Test Structure And Quality ✅ Passed No Ginkgo tests present in PR. Changes are only to containerfile build configs, not test code. Custom check for test structure/quality is not applicable.
Microshift Test Compatibility ✅ Passed No Ginkgo e2e tests are added in this PR. Changes are limited to containerfiles for bootc image building, which are outside the scope of this check.
Single Node Openshift (Sno) Test Compatibility ✅ Passed SNO test compatibility check not applicable. PR contains no Ginkgo e2e test additions, only containerfile modifications for dracut-fips installation.
Topology-Aware Scheduling Compatibility ✅ Passed Not applicable. The PR only modifies Containerfiles for bootc image builds (adding dracut-fips package), not deployment manifests, operator code, controllers, or any scheduling constraints.
Ote Binary Stdout Contract ✅ Passed PR only modifies containerfiles to add dracut-fips package. No Go code, main functions, OTE binaries, or test setup code is changed. Check not applicable.
Ipv6 And Disconnected Network Test Compatibility ✅ Passed No new Ginkgo e2e tests added. PR only modifies containerfiles (container build specifications) to add dracut-fips package. Custom check does not apply.

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

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

Tip

💬 Introducing Slack Agent: The best way for teams to turn conversations into code.

Slack Agent is built on CodeRabbit's deep understanding of your code, so your team can collaborate across the entire SDLC without losing context.

  • Generate code and open pull requests
  • Plan features and break down work
  • Investigate incidents and troubleshoot customer tickets together
  • Automate recurring tasks and respond to alerts with triggers
  • Summarize progress and report instantly

Built for teams:

  • Shared memory across your entire org—no repeating context
  • Per-thread sandboxes to safely plan and execute work
  • Governance built-in—scoped access, auditability, and budget controls

One agent for your entire SDLC. Right inside Slack.

👉 Get started


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

@agullon
Copy link
Copy Markdown
Contributor Author

agullon commented May 12, 2026

/override ci/prow/e2e-aws-tests-release
/override ci/prow/e2e-aws-tests-release-arm

@openshift-ci
Copy link
Copy Markdown
Contributor

openshift-ci Bot commented May 12, 2026

@agullon: Overrode contexts on behalf of agullon: ci/prow/e2e-aws-tests-release, ci/prow/e2e-aws-tests-release-arm

Details

In response to this:

/override ci/prow/e2e-aws-tests-release
/override ci/prow/e2e-aws-tests-release-arm

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.

Comment thread test/suites/fips/validate-fips.robot Outdated
... bash -c 'lsinitrd -m 2>/dev/null | grep -Fxq fips'
... sudo=False return_rc=True return_stdout=True return_stderr=True
Should Be Equal As Integers 0 ${rc}
END
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.

Can we install the missing package instead of disabling the test?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

yes, we can, it's another possible approach, I thought about it
I prefer to keep the test prerequisites as small and simple as possible. I don't see a benefict of adding a new package for a small check. Also, this new package is not needed and tested for RHEL10.

Also, whit this extra if in the test we have documented in the test code the differences between RHEL9 and RHEL10 which may be useful as extra info in the future.

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.

We should either remove the test completely, or make it work on both operating systems.
Adding OS-specific conditional code should only be a last resort.

On RHEL 9, the fips dracut module is in the separate dracut-fips
package. Without it, the initramfs does not contain the fips module
and the lsinitrd FIPS validation check fails.

On RHEL 10+, this module was merged into the base dracut package and
is always present.

Add dracut-fips to both RHEL 9 FIPS containerfiles (presubmit and
release) so the FIPS test passes consistently across RHEL versions.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

pre-commit.check-secrets: ENABLED
@agullon agullon marked this pull request as draft May 13, 2026 07:30
@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 May 13, 2026
@agullon agullon changed the title USHIFT-6978: skip lsinitrd FIPS check on bootc RHEL 9 USHIFT-6978: install dracut-fips in RHEL 9 bootc FIPS images May 13, 2026
@agullon agullon marked this pull request as ready for review May 13, 2026 07:31
@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 May 13, 2026
@openshift-ci openshift-ci Bot requested review from jogeo and pacevedom May 13, 2026 07:32
@openshift-ci
Copy link
Copy Markdown
Contributor

openshift-ci Bot commented May 13, 2026

@agullon: The following test 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/prow/e2e-aws-tests-arm 8a3b3a5 link true /test e2e-aws-tests-arm

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.

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.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants