From f445d4b614dfbe4f795dd6ccb120d8bc68ee908f Mon Sep 17 00:00:00 2001 From: Evan Lezar Date: Sun, 9 Feb 2025 23:12:16 +0100 Subject: [PATCH] Add ldconfig hook in legacy mode Signed-off-by: Evan Lezar --- internal/modifier/gated.go | 12 ++++++++++++ internal/runtime/runtime_factory.go | 2 ++ 2 files changed, 14 insertions(+) diff --git a/internal/modifier/gated.go b/internal/modifier/gated.go index 409f793b..6902e7a3 100644 --- a/internal/modifier/gated.go +++ b/internal/modifier/gated.go @@ -82,6 +82,18 @@ func NewFeatureGatedModifier(logger logger.Interface, cfg *config.Config, image if !cfg.Features.AllowCUDACompatLibsFromContainer.IsEnabled() { compatLibHookDiscoverer := discover.NewCUDACompatHookDiscoverer(logger, cfg.NVIDIACTKConfig.Path, driver) discoverers = append(discoverers, compatLibHookDiscoverer) + if cfg.NVIDIAContainerRuntimeConfig.Mode == "legacy" { + ldcacheUpdateHookDiscoverer, err := discover.NewLDCacheUpdateHook( + logger, + discover.None{}, + cfg.NVIDIACTKConfig.Path, + "", + ) + if err != nil { + return nil, fmt.Errorf("failed to construct ldcache update discoverer: %w", err) + } + discoverers = append(discoverers, ldcacheUpdateHookDiscoverer) + } } return NewModifierFromDiscoverer(logger, discover.Merge(discoverers...)) diff --git a/internal/runtime/runtime_factory.go b/internal/runtime/runtime_factory.go index 537b1727..aca8ab44 100644 --- a/internal/runtime/runtime_factory.go +++ b/internal/runtime/runtime_factory.go @@ -75,6 +75,8 @@ func newSpecModifier(logger logger.Interface, cfg *config.Config, ociSpec oci.Sp } mode := info.ResolveAutoMode(logger, cfg.NVIDIAContainerRuntimeConfig.Mode, image) + // We update the mode here so that we can continue passing just the config to other functions. + cfg.NVIDIAContainerRuntimeConfig.Mode = mode modeModifier, err := newModeModifier(logger, mode, cfg, ociSpec, image) if err != nil { return nil, err