(obj *appsv1.DaemonSet, config *gpuv1.ClusterPolicySpec, n ClusterPolicyController)
| 3811 | } |
| 3812 | |
| 3813 | func transformVGPUManagerContainer(obj *appsv1.DaemonSet, config *gpuv1.ClusterPolicySpec, n ClusterPolicyController) error { |
| 3814 | podSpec := &obj.Spec.Template.Spec |
| 3815 | container := findContainerByName(obj.Spec.Template.Spec.Containers, "nvidia-vgpu-manager-ctr") |
| 3816 | |
| 3817 | if container == nil { |
| 3818 | return fmt.Errorf("failed to find nvidia-vgpu-manager-ctr in spec") |
| 3819 | } |
| 3820 | |
| 3821 | image, err := resolveDriverTag(n, &config.VGPUManager) |
| 3822 | if err != nil { |
| 3823 | return err |
| 3824 | } |
| 3825 | if image != "" { |
| 3826 | container.Image = image |
| 3827 | } |
| 3828 | |
| 3829 | // update image pull policy |
| 3830 | container.ImagePullPolicy = gpuv1.ImagePullPolicy(config.VGPUManager.ImagePullPolicy) |
| 3831 | |
| 3832 | // set image pull secrets |
| 3833 | if len(config.VGPUManager.ImagePullSecrets) > 0 { |
| 3834 | addPullSecrets(&obj.Spec.Template.Spec, config.VGPUManager.ImagePullSecrets) |
| 3835 | } |
| 3836 | // set resource limits |
| 3837 | if config.VGPUManager.Resources != nil { |
| 3838 | container.Resources.Requests = config.VGPUManager.Resources.Requests |
| 3839 | container.Resources.Limits = config.VGPUManager.Resources.Limits |
| 3840 | } |
| 3841 | // set arguments if specified for driver container |
| 3842 | if len(config.VGPUManager.Args) > 0 { |
| 3843 | container.Args = config.VGPUManager.Args |
| 3844 | } |
| 3845 | |
| 3846 | // add env for OCP |
| 3847 | if len(n.openshift) > 0 { |
| 3848 | setContainerEnv(container, "OPENSHIFT_VERSION", n.openshift) |
| 3849 | } |
| 3850 | |
| 3851 | if len(config.VGPUManager.Env) > 0 { |
| 3852 | for _, env := range config.VGPUManager.Env { |
| 3853 | setContainerEnv(&(obj.Spec.Template.Spec.Containers[0]), env.Name, env.Value) |
| 3854 | } |
| 3855 | } |
| 3856 | |
| 3857 | // mount any custom kernel module configuration parameters at /drivers |
| 3858 | if config.VGPUManager.KernelModuleConfig != nil && config.VGPUManager.KernelModuleConfig.Name != "" { |
| 3859 | volumeMounts, itemsToInclude, err := createConfigMapVolumeMounts(n, config.VGPUManager.KernelModuleConfig.Name, driversDir) |
| 3860 | if err != nil { |
| 3861 | return fmt.Errorf("failed to create ConfigMap VolumeMounts for kernel module configuration: %w", err) |
| 3862 | } |
| 3863 | container.VolumeMounts = append(container.VolumeMounts, volumeMounts...) |
| 3864 | podSpec.Volumes = append(podSpec.Volumes, createConfigMapVolume(config.VGPUManager.KernelModuleConfig.Name, itemsToInclude)) |
| 3865 | } |
| 3866 | |
| 3867 | return nil |
| 3868 | } |
| 3869 | |
| 3870 | func applyUpdateStrategyConfig(obj *appsv1.DaemonSet, config *gpuv1.ClusterPolicySpec) error { |
no test coverage detected