@@ -79,26 +79,27 @@ func newSpecModifier(logger logger.Interface, cfg *config.Config, ociSpec oci.Sp
79
79
if err != nil {
80
80
return nil , err
81
81
}
82
- // For CDI mode we make no additional modifications.
83
- if mode == "cdi" {
84
- return modeModifier , nil
85
- }
86
82
87
- graphicsModifier , err := modifier .NewGraphicsModifier (logger , cfg , image , driver )
88
- if err != nil {
89
- return nil , err
90
- }
91
-
92
- featureModifier , err := modifier .NewFeatureGatedModifier (logger , cfg , image )
93
- if err != nil {
94
- return nil , err
83
+ var modifiers modifier.List
84
+ for _ , modifierType := range supportedModifierTypes (mode ) {
85
+ switch modifierType {
86
+ case "mode" :
87
+ modifiers = append (modifiers , modeModifier )
88
+ case "graphics" :
89
+ graphicsModifier , err := modifier .NewGraphicsModifier (logger , cfg , image , driver )
90
+ if err != nil {
91
+ return nil , err
92
+ }
93
+ modifiers = append (modifiers , graphicsModifier )
94
+ case "feature-gated" :
95
+ featureGatedModifier , err := modifier .NewFeatureGatedModifier (logger , cfg , image )
96
+ if err != nil {
97
+ return nil , err
98
+ }
99
+ modifiers = append (modifiers , featureGatedModifier )
100
+ }
95
101
}
96
102
97
- modifiers := modifier .Merge (
98
- modeModifier ,
99
- graphicsModifier ,
100
- featureModifier ,
101
- )
102
103
return modifiers , nil
103
104
}
104
105
@@ -114,3 +115,17 @@ func newModeModifier(logger logger.Interface, mode string, cfg *config.Config, o
114
115
115
116
return nil , fmt .Errorf ("invalid runtime mode: %v" , cfg .NVIDIAContainerRuntimeConfig .Mode )
116
117
}
118
+
119
+ // supportedModifierTypes returns the modifiers supported for a specific runtime mode.
120
+ func supportedModifierTypes (mode string ) []string {
121
+ switch mode {
122
+ case "cdi" :
123
+ // For CDI mode we make no additional modifications.
124
+ return []string {"mode" }
125
+ case "csv" :
126
+ // For CSV mode we support mode and feature-gated modification.
127
+ return []string {"mode" , "feature-gated" }
128
+ default :
129
+ return []string {"mode" , "graphics" , "feature-gated" }
130
+ }
131
+ }
0 commit comments