Skip to content

fix(k0s): select RHEL 9 NVIDIA DKMS stream for air-gap installs - #180

Merged
kbhos-splunk merged 1 commit into
ai-tier-ga-internalfrom
codex/fix-rhel9-airgap-nvidia-stream
Aug 20, 2026
Merged

fix(k0s): select RHEL 9 NVIDIA DKMS stream for air-gap installs#180
kbhos-splunk merged 1 commit into
ai-tier-ga-internalfrom
codex/fix-rhel9-airgap-nvidia-stream

Conversation

@kbhos-splunk

Copy link
Copy Markdown
Collaborator

Description

Fix RHEL 9 air-gap NVIDIA closure staging when the CUDA repository's default
open-dkms module stream hides the established
kmod-nvidia-latest-dkms package from a plain dnf download operation.

The air-gap installer now checks whether the RPM is already visible and, only
for RHEL 9, resets a conflicting/default NVIDIA stream and enables
nvidia-driver:latest-dkms before resolving the existing package closure.
RHEL 10 continues using ordinary RPMs, Ubuntu 24.04 continues using its APT
container path, and the non-air-gap installer is unchanged.

Related Issues

  • No linked issue

Type of Change

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • Documentation update
  • Refactoring (no functional changes)
  • Performance improvement
  • Test improvement
  • CI/CD improvement
  • Chore (dependency updates, etc.)

Changes Made

  • Add a RHEL 9-only helper that selects nvidia-driver:latest-dkms when
    kmod-nvidia-latest-dkms is hidden by modular filtering.
  • Preserve an already-compatible module selection and verify that the package
    becomes visible after changing streams.
  • Add mocked regression coverage for hidden and already-visible RHEL 9 streams,
    RHEL 10, Ubuntu 24.04, and non-air-gap isolation.
  • Document the automatic stream selection and update the manual closure recipe.

Testing Performed

  • Unit tests pass (bash tools/cluster_setup/test_k0s_cluster_with_stack.sh — 246 passed, 0 failed)
  • Linting passes (shellcheck is not installed in the development environment)
  • Integration tests pass (not run)
  • E2E tests pass (not run)
  • Manual testing performed (verified live NVIDIA RHEL 9/RHEL 10 repository and module metadata)

Test Environment

  • Kubernetes Version: Not applicable to unit tests
  • Cloud Provider: AWS EC2
  • Deployment Method: k0s air-gap installer

Test Steps

  1. Run bash -n against the modified installer and test scripts.
  2. Run bash tools/cluster_setup/test_k0s_cluster_with_stack.sh.
  3. Run bash tools/cluster_setup/test_installer_dry_run.sh.
  4. Verify the RHEL 9 module metadata defaults to open-dkms while
    latest-dkms remains available as a separate stream.
  5. Verify the RHEL 10 repository publishes kmod-nvidia-latest-dkms as an
    ordinary RPM and therefore bypasses the RHEL 9-only helper.

Documentation

  • Updated inline code comments
  • Updated README.md
  • Updated API documentation
  • Updated deployment guides
  • Updated CHANGELOG.md
  • No documentation needed

Checklist

  • My code follows the project's style guidelines
  • I have performed a self-review of my code
  • I have commented my code, particularly in hard-to-understand areas
  • I have made corresponding changes to the documentation
  • My changes generate no new warnings in the executed test suites
  • I have added tests that prove my fix is effective
  • New and existing unit tests pass locally with my changes
  • Any dependent changes have been merged and published (none required)
  • I have updated the Helm chart version (not applicable)
  • I have updated CRD schemas (not applicable)

Breaking Changes

Impact: None. The new behavior is limited to RHEL 9 air-gap NVIDIA closure
resolution when the requested driver RPM is not already visible.

Migration Path: None required.

Screenshots/Recordings

Not applicable.

Additional Notes

The original failure occurred before cluster installation while building the
NVIDIA closure. An end-to-end air-gap cluster installation should be performed
before merging to confirm the repository closure resolves and installs on the
target GPU nodes.

Reviewer Notes

Please pay special attention to:

  • The RHEL 9-only guard around DNF module changes.
  • Preservation of the RHEL 10, Ubuntu 24.04, and non-air-gap code paths.
  • Whether changing the build host's selected NVIDIA module stream should be
    restored after closure creation.

Commit Message Convention: This PR follows Conventional Commits

@kbhos-splunk
kbhos-splunk marked this pull request as ready for review August 20, 2026 11:58
@spl-arif
spl-arif self-requested a review August 20, 2026 12:09
@kbhos-splunk
kbhos-splunk merged commit 9ba66c0 into ai-tier-ga-internal Aug 20, 2026
@kbhos-splunk
kbhos-splunk deleted the codex/fix-rhel9-airgap-nvidia-stream branch August 20, 2026 16:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants