@@ -101,13 +101,13 @@ func newSpecModifier(logger logger.Interface, cfg *config.Config, ociSpec oci.Sp
101101 return modifiers , nil
102102}
103103
104- func newModeModifier (logger logger.Interface , mode string , cfg * config.Config , image image.CUDA ) (oci.SpecModifier , error ) {
104+ func newModeModifier (logger logger.Interface , mode info. RuntimeMode , cfg * config.Config , image image.CUDA ) (oci.SpecModifier , error ) {
105105 switch mode {
106- case "legacy" :
106+ case info . LegacyRuntimeMode :
107107 return modifier .NewStableRuntimeModifier (logger , cfg .NVIDIAContainerRuntimeHookConfig .Path ), nil
108- case "csv" :
108+ case info . CSVRuntimeMode :
109109 return modifier .NewCSVModifier (logger , cfg , image )
110- case "cdi" :
110+ case info . CDIRuntimeMode :
111111 return modifier .NewCDIModifier (logger , cfg , image )
112112 }
113113
@@ -119,7 +119,7 @@ func newModeModifier(logger logger.Interface, mode string, cfg *config.Config, i
119119// The image is also used to determine the runtime mode to apply.
120120// If a non-CDI mode is detected we ensure that the image does not process
121121// annotation devices.
122- func initRuntimeModeAndImage (logger logger.Interface , cfg * config.Config , ociSpec oci.Spec ) (string , * image.CUDA , error ) {
122+ func initRuntimeModeAndImage (logger logger.Interface , cfg * config.Config , ociSpec oci.Spec ) (info. RuntimeMode , * image.CUDA , error ) {
123123 rawSpec , err := ociSpec .Load ()
124124 if err != nil {
125125 return "" , nil , fmt .Errorf ("failed to load OCI spec: %v" , err )
@@ -142,7 +142,7 @@ func initRuntimeModeAndImage(logger logger.Interface, cfg *config.Config, ociSpe
142142 )
143143 mode := modeResolver .ResolveRuntimeMode (cfg .NVIDIAContainerRuntimeConfig .Mode )
144144 // We update the mode here so that we can continue passing just the config to other functions.
145- cfg .NVIDIAContainerRuntimeConfig .Mode = mode
145+ cfg .NVIDIAContainerRuntimeConfig .Mode = string ( mode )
146146
147147 if mode == "cdi" || len (cfg .NVIDIAContainerRuntimeConfig .Modes .CDI .AnnotationPrefixes ) == 0 {
148148 return mode , & image , nil
@@ -158,12 +158,12 @@ func initRuntimeModeAndImage(logger logger.Interface, cfg *config.Config, ociSpe
158158}
159159
160160// supportedModifierTypes returns the modifiers supported for a specific runtime mode.
161- func supportedModifierTypes (mode string ) []string {
161+ func supportedModifierTypes (mode info. RuntimeMode ) []string {
162162 switch mode {
163- case "cdi" :
163+ case info . CDIRuntimeMode :
164164 // For CDI mode we make no additional modifications.
165165 return []string {"nvidia-hook-remover" , "mode" }
166- case "csv" :
166+ case info . CSVRuntimeMode :
167167 // For CSV mode we support mode and feature-gated modification.
168168 return []string {"nvidia-hook-remover" , "feature-gated" , "mode" }
169169 default :
0 commit comments