MCPcopy Create free account
hub / github.com/NVIDIA/gpu-operator / transformDriverManagerInitContainer

Function transformDriverManagerInitContainer

controllers/object_controls.go:2937–2974  ·  view source on GitHub ↗
(obj *appsv1.DaemonSet, driverManagerSpec *gpuv1.DriverManagerSpec, rdmaSpec *gpuv1.GPUDirectRDMASpec)

Source from the content-addressed store, hash-verified

2935}
2936
2937func transformDriverManagerInitContainer(obj *appsv1.DaemonSet, driverManagerSpec *gpuv1.DriverManagerSpec, rdmaSpec *gpuv1.GPUDirectRDMASpec) error {
2938 container := findContainerByName(obj.Spec.Template.Spec.InitContainers, "k8s-driver-manager")
2939
2940 if container == nil {
2941 return fmt.Errorf("failed to find k8s-driver-manager initContainer in spec")
2942 }
2943
2944 managerImage, err := gpuv1.ImagePath(driverManagerSpec)
2945 if err != nil {
2946 return err
2947 }
2948 container.Image = managerImage
2949
2950 if driverManagerSpec.ImagePullPolicy != "" {
2951 container.ImagePullPolicy = gpuv1.ImagePullPolicy(driverManagerSpec.ImagePullPolicy)
2952 }
2953
2954 if rdmaSpec != nil && rdmaSpec.IsEnabled() {
2955 setContainerEnv(container, GPUDirectRDMAEnabledEnvName, "true")
2956 if rdmaSpec.IsHostMOFED() {
2957 setContainerEnv(container, UseHostMOFEDEnvName, "true")
2958 }
2959 }
2960
2961 // set/append environment variables for driver-manager initContainer
2962 if len(driverManagerSpec.Env) > 0 {
2963 for _, env := range driverManagerSpec.Env {
2964 setContainerEnv(container, env.Name, env.Value)
2965 }
2966 }
2967
2968 // add any pull secrets needed for driver-manager image
2969 if len(driverManagerSpec.ImagePullSecrets) > 0 {
2970 addPullSecrets(&obj.Spec.Template.Spec, driverManagerSpec.ImagePullSecrets)
2971 }
2972
2973 return nil
2974}
2975
2976func transformPeerMemoryContainer(obj *appsv1.DaemonSet, config *gpuv1.ClusterPolicySpec, n ClusterPolicyController) error {
2977 for i, container := range obj.Spec.Template.Spec.Containers {

Callers 4

TransformDriverFunction · 0.85
TransformVGPUManagerFunction · 0.85
TransformVFIOManagerFunction · 0.85

Calls 5

findContainerByNameFunction · 0.85
setContainerEnvFunction · 0.85
addPullSecretsFunction · 0.85
IsHostMOFEDMethod · 0.80
IsEnabledMethod · 0.45

Tested by 1