| 2935 | } |
| 2936 | |
| 2937 | func 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 | |
| 2976 | func transformPeerMemoryContainer(obj *appsv1.DaemonSet, config *gpuv1.ClusterPolicySpec, n ClusterPolicyController) error { |
| 2977 | for i, container := range obj.Spec.Template.Spec.Containers { |