Skip to content

Commit

Permalink
Set runtimeClass for operands unless CRI-O is the runtime and CDI is …
Browse files Browse the repository at this point in the history
…disabled

Signed-off-by: Christopher Desiniotis <[email protected]>
  • Loading branch information
cdesiniotis committed Jun 5, 2024
1 parent 58afc29 commit 11cf3a5
Showing 1 changed file with 17 additions and 12 deletions.
29 changes: 17 additions & 12 deletions controllers/object_controls.go
Original file line number Diff line number Diff line change
Expand Up @@ -824,7 +824,7 @@ func TransformGPUDiscoveryPlugin(obj *appsv1.DaemonSet, config *gpuv1.ClusterPol
}

// set RuntimeClass for supported runtimes
setRuntimeClass(&obj.Spec.Template.Spec, n.runtime, config.Operator.RuntimeClass)
setRuntimeClass(&obj.Spec.Template.Spec, n, config.Operator.RuntimeClass)

// update env required for MIG support
applyMIGConfiguration(&(obj.Spec.Template.Spec.Containers[0]), config.MIG.Strategy)
Expand Down Expand Up @@ -1270,7 +1270,7 @@ func TransformDevicePlugin(obj *appsv1.DaemonSet, config *gpuv1.ClusterPolicySpe
}

// set RuntimeClass for supported runtimes
setRuntimeClass(&obj.Spec.Template.Spec, n.runtime, config.Operator.RuntimeClass)
setRuntimeClass(&obj.Spec.Template.Spec, n, config.Operator.RuntimeClass)

// update env required for MIG support
applyMIGConfiguration(&(obj.Spec.Template.Spec.Containers[0]), config.MIG.Strategy)
Expand Down Expand Up @@ -1472,7 +1472,7 @@ func TransformDCGMExporter(obj *appsv1.DaemonSet, config *gpuv1.ClusterPolicySpe
}

// set RuntimeClass for supported runtimes
setRuntimeClass(&obj.Spec.Template.Spec, n.runtime, config.Operator.RuntimeClass)
setRuntimeClass(&obj.Spec.Template.Spec, n, config.Operator.RuntimeClass)

// mount configmap for custom metrics if provided by user
if config.DCGMExporter.MetricsConfig != nil && config.DCGMExporter.MetricsConfig.Name != "" {
Expand Down Expand Up @@ -1589,7 +1589,7 @@ func TransformDCGM(obj *appsv1.DaemonSet, config *gpuv1.ClusterPolicySpec, n Clu
}

// set RuntimeClass for supported runtimes
setRuntimeClass(&obj.Spec.Template.Spec, n.runtime, config.Operator.RuntimeClass)
setRuntimeClass(&obj.Spec.Template.Spec, n, config.Operator.RuntimeClass)

return nil
}
Expand Down Expand Up @@ -1639,7 +1639,7 @@ func TransformMIGManager(obj *appsv1.DaemonSet, config *gpuv1.ClusterPolicySpec,
}

// set RuntimeClass for supported runtimes
setRuntimeClass(&obj.Spec.Template.Spec, n.runtime, config.Operator.RuntimeClass)
setRuntimeClass(&obj.Spec.Template.Spec, n, config.Operator.RuntimeClass)

// set ConfigMap name for "mig-parted-config" Volume
for i, vol := range obj.Spec.Template.Spec.Volumes {
Expand Down Expand Up @@ -1948,7 +1948,7 @@ func TransformValidator(obj *appsv1.DaemonSet, config *gpuv1.ClusterPolicySpec,
}

// set RuntimeClass for supported runtimes
setRuntimeClass(&obj.Spec.Template.Spec, n.runtime, config.Operator.RuntimeClass)
setRuntimeClass(&obj.Spec.Template.Spec, n, config.Operator.RuntimeClass)

var validatorErr error
// apply changes for individual component validators(initContainers)
Expand Down Expand Up @@ -2280,13 +2280,18 @@ func getRuntimeClass(config *gpuv1.ClusterPolicySpec) string {
return DefaultRuntimeClass
}

func setRuntimeClass(podSpec *corev1.PodSpec, runtime gpuv1.Runtime, runtimeClass string) {
if runtime == gpuv1.Containerd {
if runtimeClass == "" {
runtimeClass = DefaultRuntimeClass
}
podSpec.RuntimeClassName = &runtimeClass
// setRuntimeClass sets the runtimeClass for a pod, unless CRI-O is the container runtime
// being used and CDI is not enabled. In this case, an OCI hook is used and the nvidia
// runtime is not configured.
func setRuntimeClass(podSpec *corev1.PodSpec, n ClusterPolicyController, runtimeClass string) {
if n.runtime == gpuv1.CRIO && !n.singleton.Spec.CDI.IsEnabled() {
return
}

if runtimeClass == "" {
runtimeClass = DefaultRuntimeClass
}
podSpec.RuntimeClassName = &runtimeClass
}

func setContainerProbe(container *corev1.Container, probe *gpuv1.ContainerProbeSpec, probeType ContainerProbe) {
Expand Down

0 comments on commit 11cf3a5

Please sign in to comment.