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

Function transformDriverContainer

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

Source from the content-addressed store, hash-verified

3556}
3557
3558func transformDriverContainer(obj *appsv1.DaemonSet, config *gpuv1.ClusterPolicySpec, n ClusterPolicyController) error {
3559 podSpec := &obj.Spec.Template.Spec
3560 driverContainer := findContainerByName(podSpec.Containers, "nvidia-driver-ctr")
3561 if driverContainer == nil {
3562 return fmt.Errorf("driver container (nvidia-driver-ctr) is missing from the driver daemonset manifest")
3563 }
3564
3565 image, err := resolveDriverTag(n, &config.Driver)
3566 if err != nil {
3567 return err
3568 }
3569 if image != "" {
3570 driverContainer.Image = image
3571 }
3572
3573 // update image pull policy
3574 driverContainer.ImagePullPolicy = gpuv1.ImagePullPolicy(config.Driver.ImagePullPolicy)
3575
3576 // set image pull secrets
3577 if len(config.Driver.ImagePullSecrets) > 0 {
3578 addPullSecrets(&obj.Spec.Template.Spec, config.Driver.ImagePullSecrets)
3579 }
3580 // set resource limits
3581 if config.Driver.Resources != nil {
3582 driverContainer.Resources.Requests = config.Driver.Resources.Requests
3583 driverContainer.Resources.Limits = config.Driver.Resources.Limits
3584 }
3585 // set arguments if specified for driver container
3586 if len(config.Driver.Args) > 0 {
3587 driverContainer.Args = config.Driver.Args
3588 }
3589
3590 if len(config.Driver.KernelModuleType) > 0 {
3591 setContainerEnv(driverContainer, KernelModuleTypeEnvName, config.Driver.KernelModuleType)
3592 // we set the "OPEN_KERNEL_MODULES_ENABLED" envar for backwards compatibility with older driver containers
3593 if config.Driver.OpenKernelModulesEnabled() {
3594 setContainerEnv(driverContainer, OpenKernelModulesEnabledEnvName, "true")
3595 }
3596 }
3597
3598 // set container probe timeouts
3599 if config.Driver.StartupProbe != nil {
3600 setContainerProbe(driverContainer, config.Driver.StartupProbe, Startup)
3601 }
3602 if config.Driver.LivenessProbe != nil {
3603 setContainerProbe(driverContainer, config.Driver.LivenessProbe, Liveness)
3604 }
3605 if config.Driver.ReadinessProbe != nil {
3606 setContainerProbe(driverContainer, config.Driver.ReadinessProbe, Readiness)
3607 }
3608
3609 if config.GDRCopy != nil && config.GDRCopy.IsEnabled() {
3610 // set env indicating gdrcopy is enabled
3611 setContainerEnv(driverContainer, GDRCopyEnabledEnvName, "true")
3612 }
3613 if config.GPUDirectStorage != nil && config.GPUDirectStorage.IsEnabled() {
3614 // set env indicating gds is enabled
3615 setContainerEnv(driverContainer, GDSEnabledEnvName, "true")

Callers 1

TransformDriverFunction · 0.85

Calls 15

findContainerByNameFunction · 0.85
resolveDriverTagFunction · 0.85
addPullSecretsFunction · 0.85
setContainerEnvFunction · 0.85
setContainerProbeFunction · 0.85
applyLicensingConfigFunction · 0.85
createSecretEnvReferenceFunction · 0.85
applyOCPProxySpecFunction · 0.85
getRepoConfigPathMethod · 0.80
getCertConfigPathMethod · 0.80

Tested by

no test coverage detected