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

Function transformVGPUManagerContainer

controllers/object_controls.go:3813–3868  ·  view source on GitHub ↗
(obj *appsv1.DaemonSet, config *gpuv1.ClusterPolicySpec, n ClusterPolicyController)

Source from the content-addressed store, hash-verified

3811}
3812
3813func 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
3870func applyUpdateStrategyConfig(obj *appsv1.DaemonSet, config *gpuv1.ClusterPolicySpec) error {

Callers 1

TransformVGPUManagerFunction · 0.85

Calls 6

findContainerByNameFunction · 0.85
resolveDriverTagFunction · 0.85
addPullSecretsFunction · 0.85
setContainerEnvFunction · 0.85
createConfigMapVolumeFunction · 0.70

Tested by

no test coverage detected