Skip to content

Conversation

@elezar
Copy link
Member

@elezar elezar commented Dec 8, 2025

This change adds a "none" runtime to the toolkit installer to enable use cases where the NVIDIA Container Toolkit is required without configuring the underlying runtime.

Fixes #1513

@coveralls
Copy link

coveralls commented Dec 8, 2025

Pull Request Test Coverage Report for Build 20989964385

Details

  • 7 of 44 (15.91%) changed or added relevant lines in 2 files are covered.
  • 2 unchanged lines in 1 file lost coverage.
  • Overall coverage decreased (-0.04%) to 37.104%

Changes Missing Coverage Covered Lines Changed/Added Lines %
cmd/nvidia-ctk-installer/main.go 7 14 50.0%
cmd/nvidia-ctk-installer/container/runtime/runtime.go 0 30 0.0%
Files with Coverage Reduction New Missed Lines %
cmd/nvidia-ctk-installer/main.go 2 48.57%
Totals Coverage Status
Change from base Build 20968656981: -0.04%
Covered Lines: 5258
Relevant Lines: 14171

💛 - Coveralls

@elezar elezar force-pushed the install-only-mode branch from 86509b4 to 73cbb5e Compare December 8, 2025 16:23
Copy link
Collaborator

@ArangoGutierrez ArangoGutierrez left a comment

Choose a reason for hiding this comment

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

LGTM

@ArangoGutierrez
Copy link
Collaborator

The only comment I had was addressed with a recent commit update.

@cdesiniotis
Copy link
Contributor

Note, as currently implemented in the operator, setting RUNTIME=none in the toolkit will not work. We process user-supplied envvars here but we call transformForRuntime() right after which unconditionally sets the RUNTIME variable (this will override what the user set). I believe we decided to call transformForRuntime last since any envvars configured in that method are considered to be tightly-coupled with the runtime, and therefore, we do not expect users to set these themselves. I am open to revisiting the behavior here though.

cc @tariq1890

@elezar
Copy link
Member Author

elezar commented Jan 6, 2026

Note, as currently implemented in the operator, setting RUNTIME=none in the toolkit will not work. We process user-supplied envvars here but we call transformForRuntime() right after which unconditionally sets the RUNTIME variable (this will override what the user set). I believe we decided to call transformForRuntime last since any envvars configured in that method are considered to be tightly-coupled with the runtime, and therefore, we do not expect users to set these themselves. I am open to revisiting the behavior here though.

cc @tariq1890

Thanks for calling this out @cdesiniotis. You're correct then that this is only a piece of the required functionality.

@just1not2 it may be good to expand #1513 with additional requirements / details on how you would like the operator to behave and also how you are currently configuring it.

Converting this to a draft until we have clarified things.

Update: Created NVIDIA/gpu-operator#2041 to add basic support for this to the operator. The thinking is that if a user explicitly sets RUNTIME=none in the toolkit enf, this disables the injection of sockets and config files so that no runtime configuration is performed.

@tariq1890
Copy link
Contributor

@elezar I lean towards using a flag to trigger a certain behaviour as opposed to relying on a specific value (RUNTIME=none) to trigger said behaviour. Moreover the notion of RUNTIME=none is rather ambiguous and could be interpreted in multiple ways by users.

I don't want to block on this if others are okay with the proposed approach, but my preference right is now if we used a flag like --no-runtime-config (as discussed offline) instead

@elezar
Copy link
Member Author

elezar commented Jan 14, 2026

@elezar I lean towards using a flag to trigger a certain behaviour as opposed to relying on a specific value (RUNTIME=none) to trigger said behaviour. Moreover the notion of RUNTIME=none is rather ambiguous and could be interpreted in multiple ways by users.

I don't want to block on this if others are okay with the proposed approach, but my preference right is now if we used a flag like --no-runtime-config (as discussed offline) instead

I think a dedicated flag makes more sense too. Abusing the RUNTIME envvar was motivated by my (incorrect) assumption that this would not require changes to the GPU Operator. Since these are required anyway, let me rework this.

This change adds an interface (and a basic type) for configuring a
target runtime from the nvidia-ctk-installer.

Signed-off-by: Evan Lezar <[email protected]>
This change adds a --no-runtime-config flag to the nvidia-ctk-installer.
When specified, the configuration (and cleanup) of a supported runtime
is skipped. This can be used in cases where a user has already configured
the runtime for use with the NVIDIA Container Toolkit and no config
modifications are required.

Signed-off-by: Evan Lezar <[email protected]>
@elezar elezar force-pushed the install-only-mode branch from 73cbb5e to 85dce4a Compare January 14, 2026 09:58
@elezar elezar changed the title Add none runtime to toolkit installer Add no-runtime-configure option to the toolkit installer Jan 14, 2026
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.

Install only mode for the container toolkit

5 participants