TransformCCManager transforms CC Manager daemonset with required config as per ClusterPolicy
(obj *appsv1.DaemonSet, config *gpuv1.ClusterPolicySpec, n ClusterPolicyController)
| 2190 | |
| 2191 | // TransformCCManager transforms CC Manager daemonset with required config as per ClusterPolicy |
| 2192 | func TransformCCManager(obj *appsv1.DaemonSet, config *gpuv1.ClusterPolicySpec, n ClusterPolicyController) error { |
| 2193 | // update image |
| 2194 | image, err := gpuv1.ImagePath(&config.CCManager) |
| 2195 | if err != nil { |
| 2196 | return err |
| 2197 | } |
| 2198 | obj.Spec.Template.Spec.Containers[0].Image = image |
| 2199 | |
| 2200 | // update image pull policy |
| 2201 | obj.Spec.Template.Spec.Containers[0].ImagePullPolicy = gpuv1.ImagePullPolicy(config.CCManager.ImagePullPolicy) |
| 2202 | |
| 2203 | // set image pull secrets |
| 2204 | if len(config.CCManager.ImagePullSecrets) > 0 { |
| 2205 | addPullSecrets(&obj.Spec.Template.Spec, config.CCManager.ImagePullSecrets) |
| 2206 | } |
| 2207 | |
| 2208 | // set resource limits |
| 2209 | if config.CCManager.Resources != nil { |
| 2210 | // apply resource limits to all containers |
| 2211 | for i := range obj.Spec.Template.Spec.Containers { |
| 2212 | obj.Spec.Template.Spec.Containers[i].Resources.Requests = config.CCManager.Resources.Requests |
| 2213 | obj.Spec.Template.Spec.Containers[i].Resources.Limits = config.CCManager.Resources.Limits |
| 2214 | } |
| 2215 | } |
| 2216 | |
| 2217 | // set arguments if specified for cc-manager container |
| 2218 | if len(config.CCManager.Args) > 0 { |
| 2219 | obj.Spec.Template.Spec.Containers[0].Args = config.CCManager.Args |
| 2220 | } |
| 2221 | |
| 2222 | // set default cc mode env |
| 2223 | if config.CCManager.DefaultMode != "" { |
| 2224 | setContainerEnv(&(obj.Spec.Template.Spec.Containers[0]), DefaultCCModeEnvName, config.CCManager.DefaultMode) |
| 2225 | } |
| 2226 | |
| 2227 | // set/append environment variables for cc-manager container |
| 2228 | if len(config.CCManager.Env) > 0 { |
| 2229 | for _, env := range config.CCManager.Env { |
| 2230 | setContainerEnv(&(obj.Spec.Template.Spec.Containers[0]), env.Name, env.Value) |
| 2231 | } |
| 2232 | } |
| 2233 | |
| 2234 | // set hostNetwork for cc-manager if specified |
| 2235 | applyHostNetworkConfig(&obj.Spec.Template.Spec, config.CCManager.HostNetwork) |
| 2236 | |
| 2237 | return nil |
| 2238 | } |
| 2239 | |
| 2240 | // TransformVGPUDeviceManager transforms VGPU Device Manager daemonset with required config as per ClusterPolicy |
| 2241 | func TransformVGPUDeviceManager(obj *appsv1.DaemonSet, config *gpuv1.ClusterPolicySpec, n ClusterPolicyController) error { |