58 lines
2.0 KiB
Smarty
58 lines
2.0 KiB
Smarty
{{/* Returns Runtime Class Name */}}
|
|
{{/* Call this template:
|
|
{{ include "tc.v1.common.lib.pod.runtimeClassName" (dict "rootCtx" $ "objectData" $objectData) }}
|
|
rootCtx: The root context of the chart.
|
|
objectData: The object data to be used to render the Pod.
|
|
*/}}
|
|
{{- define "tc.v1.common.lib.pod.runtimeClassName" -}}
|
|
{{- $rootCtx := .rootCtx -}}
|
|
{{- $objectData := .objectData -}}
|
|
|
|
{{- $runtime := "" -}}
|
|
|
|
{{/* Initialize from the "defaults" */}}
|
|
{{- with $rootCtx.Values.podOptions.runtimeClassName -}}
|
|
{{- $runtime = tpl . $rootCtx -}}
|
|
{{- end -}}
|
|
|
|
{{/* Override from the pod values, if defined */}}
|
|
{{- with $objectData.podSpec.runtimeClassName -}}
|
|
{{- $runtime = tpl . $rootCtx -}}
|
|
{{- end -}}
|
|
|
|
{{- if hasKey $rootCtx.Values.global "ixChartContext" -}}
|
|
{{- if $rootCtx.Values.global.ixChartContext.addNvidiaRuntimeClass -}}
|
|
|
|
{{- range $rootCtx.Values.scaleGPU -}}
|
|
{{- if .gpu -}} {{/* Make sure it has a value... */}}
|
|
{{- $gpuAssigned := false -}}
|
|
|
|
{{- range $k, $v := .gpu -}}
|
|
{{- if $v -}} {{/* Make sure value is not "0" or "" */}}
|
|
{{- $gpuAssigned = true -}}
|
|
{{- end -}}
|
|
{{- end -}}
|
|
|
|
{{- if $gpuAssigned -}}
|
|
{{- if (kindIs "map" .targetSelector) -}}
|
|
{{- range $podName, $containers := .targetSelector -}}
|
|
{{- if eq $objectData.shortName $podName -}} {{/* If the pod is selected */}}
|
|
{{- $runtime = $rootCtx.Values.global.ixChartContext.nvidiaRuntimeClassName -}}
|
|
{{- end -}}
|
|
{{- end -}}
|
|
|
|
{{- else if $objectData.primary -}}
|
|
|
|
{{/* If the pod is primary and no targetSelector is given, assign to primary */}}
|
|
{{- $runtime = $rootCtx.Values.global.ixChartContext.nvidiaRuntimeClassName -}}
|
|
|
|
{{- end -}}
|
|
{{- end -}}
|
|
{{- end -}}
|
|
{{- end -}}
|
|
{{- end -}}
|
|
{{- end -}}
|
|
|
|
{{- $runtime -}}
|
|
{{- end -}}
|