fix(hami): clean up leftover hami-dra references and harden defaults
Remove broken hami-dra subchart dependency from vendored chart (Chart.yaml, Chart.lock, values.yaml) and strip DRA condition guards from all templates since the subchart was already deleted. Override devicePlugin updateStrategy to OnDelete to prevent destructive rolling updates of GPU workloads. Align gpu-operator template with project pattern (unconditional values emission). Add nodeConfiguration format documentation and test for conflicting valuesOverride scenario. Signed-off-by: Arsolitt <arsolitt@gmail.com>
This commit is contained in:
parent
ab7deb2b05
commit
2734dc0bcb
33 changed files with 55 additions and 92 deletions
|
|
@ -1,5 +1,5 @@
|
|||
{{- define "cozystack.defaultGpuOperatorValues" -}}
|
||||
{{- if and (hasKey .Values.addons "hami") .Values.addons.hami.enabled }}
|
||||
{{- if .Values.addons.hami.enabled }}
|
||||
gpu-operator:
|
||||
devicePlugin:
|
||||
enabled: false
|
||||
|
|
@ -40,10 +40,8 @@ spec:
|
|||
{{- $defaults := fromYaml (include "cozystack.defaultGpuOperatorValues" .) }}
|
||||
{{- $overrides := deepCopy (default (dict) .Values.addons.gpuOperator.valuesOverride) }}
|
||||
{{- $merged := mergeOverwrite (default (dict) $defaults) $overrides }}
|
||||
{{- with $merged }}
|
||||
values:
|
||||
{{- toYaml . | nindent 4 }}
|
||||
{{- end }}
|
||||
{{- if $merged }}{{ toYaml $merged | nindent 4 }}{{ end }}
|
||||
|
||||
dependsOn:
|
||||
{{- if lookup "helm.toolkit.fluxcd.io/v2" "HelmRelease" .Release.Namespace .Release.Name }}
|
||||
|
|
|
|||
|
|
@ -26,8 +26,9 @@ tests:
|
|||
enabled: false
|
||||
valuesOverride: {}
|
||||
asserts:
|
||||
- notExists:
|
||||
- equal:
|
||||
path: spec.values
|
||||
value: null
|
||||
|
||||
- it: should allow user overrides to merge with hami defaults
|
||||
set:
|
||||
|
|
@ -66,6 +67,28 @@ tests:
|
|||
path: spec.values.gpu-operator.devicePlugin.enabled
|
||||
value: true
|
||||
|
||||
- it: should let user explicitly override devicePlugin.enabled to true with hami enabled
|
||||
set:
|
||||
addons:
|
||||
gpuOperator:
|
||||
enabled: true
|
||||
valuesOverride:
|
||||
gpu-operator:
|
||||
devicePlugin:
|
||||
enabled: true
|
||||
driver:
|
||||
enabled: false
|
||||
hami:
|
||||
enabled: true
|
||||
valuesOverride: {}
|
||||
asserts:
|
||||
- equal:
|
||||
path: spec.values.gpu-operator.devicePlugin.enabled
|
||||
value: true
|
||||
- equal:
|
||||
path: spec.values.gpu-operator.driver.enabled
|
||||
value: false
|
||||
|
||||
- it: should not render when gpuOperator is disabled
|
||||
set:
|
||||
addons:
|
||||
|
|
|
|||
|
|
@ -1,6 +0,0 @@
|
|||
dependencies:
|
||||
- name: hami-dra
|
||||
repository: https://project-hami.github.io/HAMi-DRA/
|
||||
version: 0.1.0
|
||||
digest: sha256:374551539570bcee82c1c4dea93eac59e6f410b6d5967d188efd630e203d43bb
|
||||
generated: "2026-04-17T04:06:47.689117678Z"
|
||||
|
|
@ -1,10 +1,6 @@
|
|||
apiVersion: v2
|
||||
appVersion: 2.8.1
|
||||
dependencies:
|
||||
- condition: dra.enabled
|
||||
name: hami-dra
|
||||
repository: https://project-hami.github.io/HAMi-DRA/
|
||||
version: 0.1.0
|
||||
dependencies: []
|
||||
description: Heterogeneous AI Computing Virtualization Middleware
|
||||
keywords:
|
||||
- vgpu
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
{{- if and .Values.devicePlugin.enabled (not .Values.devicePlugin.nodeConfiguration.externalConfigName) (not .Values.dra.enabled) -}}
|
||||
{{- if and .Values.devicePlugin.enabled (not .Values.devicePlugin.nodeConfiguration.externalConfigName) -}}
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
{{- if and .Values.devicePlugin.enabled (not .Values.dra.enabled) }}
|
||||
{{- if .Values.devicePlugin.enabled }}
|
||||
apiVersion: apps/v1
|
||||
kind: DaemonSet
|
||||
metadata:
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
{{- if and .Values.devicePlugin.enabled (not .Values.dra.enabled) -}}
|
||||
{{- if .Values.devicePlugin.enabled -}}
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRole
|
||||
metadata:
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
{{- if and .Values.devicePlugin.enabled (not .Values.dra.enabled) -}}
|
||||
{{- if .Values.devicePlugin.enabled -}}
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRoleBinding
|
||||
metadata:
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
{{- if and .Values.devicePlugin.enabled (not .Values.dra.enabled) -}}
|
||||
{{- if .Values.devicePlugin.enabled -}}
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
{{- if and .Values.devicePlugin.enabled (not .Values.dra.enabled) -}}
|
||||
{{- if .Values.devicePlugin.enabled -}}
|
||||
apiVersion: v1
|
||||
kind: ServiceAccount
|
||||
metadata:
|
||||
|
|
|
|||
|
|
@ -1,5 +1,4 @@
|
|||
{{- if and .Values.devicePlugin.enabled (not .Values.dra.enabled) -}}
|
||||
{{- if and .Values.devicePlugin.createRuntimeClass .Values.devicePlugin.runtimeClassName }}
|
||||
{{- if and .Values.devicePlugin.enabled .Values.devicePlugin.createRuntimeClass .Values.devicePlugin.runtimeClassName -}}
|
||||
apiVersion: node.k8s.io/v1
|
||||
kind: RuntimeClass
|
||||
metadata:
|
||||
|
|
@ -7,5 +6,4 @@ metadata:
|
|||
annotations:
|
||||
helm.sh/hook: pre-install,pre-upgrade
|
||||
handler: nvidia
|
||||
{{- end }}
|
||||
{{- end -}}
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
{{- if and .Values.scheduler.admissionWebhook.enabled (not .Values.dra.enabled) -}}
|
||||
{{- if .Values.scheduler.admissionWebhook.enabled -}}
|
||||
{{- if .Values.scheduler.certManager.enabled }}
|
||||
apiVersion: cert-manager.io/v1
|
||||
kind: Certificate
|
||||
|
|
|
|||
|
|
@ -1,4 +1,3 @@
|
|||
{{- if not .Values.dra.enabled -}}
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRole
|
||||
metadata:
|
||||
|
|
@ -33,4 +32,3 @@ rules:
|
|||
resources: ["nodes"]
|
||||
verbs: ["get", "update", "list", "patch"]
|
||||
{{- end -}}
|
||||
{{- end }}
|
||||
|
|
|
|||
|
|
@ -1,4 +1,3 @@
|
|||
{{- if not .Values.dra.enabled -}}
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRoleBinding
|
||||
metadata:
|
||||
|
|
@ -45,5 +44,4 @@ roleRef:
|
|||
subjects:
|
||||
- kind: ServiceAccount
|
||||
name: {{ include "hami-vgpu.scheduler" . }}
|
||||
namespace: {{ include "hami-vgpu.namespace" . }}
|
||||
{{- end }}
|
||||
namespace: {{ include "hami-vgpu.namespace" . }}
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
{{- if and .Values.scheduler.kubeScheduler.enabled (not .Values.dra.enabled) -}}
|
||||
{{- if .Values.scheduler.kubeScheduler.enabled -}}
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
{{- if and .Values.scheduler.kubeScheduler.enabled (not .Values.dra.enabled) -}}
|
||||
{{- if .Values.scheduler.kubeScheduler.enabled -}}
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
|
|
|
|||
|
|
@ -1,4 +1,3 @@
|
|||
{{- if not .Values.dra.enabled -}}
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
|
|
@ -223,5 +222,4 @@ spec:
|
|||
{{- end }}
|
||||
{{- if .Values.scheduler.nodeName }}
|
||||
nodeName: {{ .Values.scheduler.nodeName }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
|
|
@ -1,4 +1,3 @@
|
|||
{{- if not .Values.dra.enabled -}}
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
|
|
@ -406,5 +405,4 @@ data:
|
|||
memory: 12288
|
||||
aiCore: 4
|
||||
aiCPU: 4
|
||||
{{ end }}
|
||||
{{- end }}
|
||||
{{ end }}
|
||||
|
|
@ -1,5 +1,4 @@
|
|||
{{- if and .Values.scheduler.admissionWebhook.enabled (not .Values.dra.enabled) -}}
|
||||
{{- if and (.Values.scheduler.patch.enabled) (not .Values.scheduler.certManager.enabled) }}
|
||||
{{- if and .Values.scheduler.admissionWebhook.enabled (.Values.scheduler.patch.enabled) (not .Values.scheduler.certManager.enabled) -}}
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRole
|
||||
metadata:
|
||||
|
|
@ -27,4 +26,3 @@ rules:
|
|||
- {{ include "hami-vgpu.fullname" . }}-admission
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
|
|
|
|||
|
|
@ -1,5 +1,4 @@
|
|||
{{- if and .Values.scheduler.admissionWebhook.enabled (not .Values.dra.enabled) -}}
|
||||
{{- if and (.Values.scheduler.patch.enabled) (not .Values.scheduler.certManager.enabled) }}
|
||||
{{- if and .Values.scheduler.admissionWebhook.enabled (.Values.scheduler.patch.enabled) (not .Values.scheduler.certManager.enabled) -}}
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRoleBinding
|
||||
metadata:
|
||||
|
|
@ -19,4 +18,3 @@ subjects:
|
|||
name: {{ include "hami-vgpu.fullname" . }}-admission
|
||||
namespace: {{ include "hami-vgpu.namespace" . }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
|
|
|
|||
|
|
@ -1,5 +1,4 @@
|
|||
{{- if and .Values.scheduler.admissionWebhook.enabled (not .Values.dra.enabled) -}}
|
||||
{{- if and (.Values.scheduler.patch.enabled) (not .Values.scheduler.certManager.enabled) }}
|
||||
{{- if and .Values.scheduler.admissionWebhook.enabled (.Values.scheduler.patch.enabled) (not .Values.scheduler.certManager.enabled) -}}
|
||||
apiVersion: batch/v1
|
||||
kind: Job
|
||||
metadata:
|
||||
|
|
@ -67,4 +66,3 @@ spec:
|
|||
runAsNonRoot: true
|
||||
runAsUser: {{ .Values.scheduler.patch.runAsUser }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
|
|
|
|||
|
|
@ -1,5 +1,4 @@
|
|||
{{- if and .Values.scheduler.admissionWebhook.enabled (not .Values.dra.enabled) -}}
|
||||
{{- if and (.Values.scheduler.patch.enabled) (not .Values.scheduler.certManager.enabled) }}
|
||||
{{- if and .Values.scheduler.admissionWebhook.enabled (.Values.scheduler.patch.enabled) (not .Values.scheduler.certManager.enabled) -}}
|
||||
apiVersion: batch/v1
|
||||
kind: Job
|
||||
metadata:
|
||||
|
|
@ -62,4 +61,3 @@ spec:
|
|||
runAsNonRoot: true
|
||||
runAsUser: {{ .Values.scheduler.patch.runAsUser }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
|
|
|
|||
|
|
@ -1,5 +1,4 @@
|
|||
{{- if and .Values.scheduler.admissionWebhook.enabled (not .Values.dra.enabled) -}}
|
||||
{{- if and (.Values.scheduler.patch.enabled) (not .Values.scheduler.certManager.enabled) }}
|
||||
{{- if and .Values.scheduler.admissionWebhook.enabled (.Values.scheduler.patch.enabled) (not .Values.scheduler.certManager.enabled) -}}
|
||||
{{- if .Values.podSecurityPolicy.enabled }}
|
||||
apiVersion: policy/v1beta1
|
||||
kind: PodSecurityPolicy
|
||||
|
|
@ -37,4 +36,3 @@ spec:
|
|||
- downwardAPI
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
|
|
|
|||
|
|
@ -1,5 +1,4 @@
|
|||
{{- if and .Values.scheduler.admissionWebhook.enabled (not .Values.dra.enabled) -}}
|
||||
{{- if and (.Values.scheduler.patch.enabled) (not .Values.scheduler.certManager.enabled) }}
|
||||
{{- if and .Values.scheduler.admissionWebhook.enabled (.Values.scheduler.patch.enabled) (not .Values.scheduler.certManager.enabled) -}}
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: Role
|
||||
metadata:
|
||||
|
|
@ -20,4 +19,3 @@ rules:
|
|||
- get
|
||||
- create
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
|
|
|
|||
|
|
@ -1,5 +1,4 @@
|
|||
{{- if and .Values.scheduler.admissionWebhook.enabled (not .Values.dra.enabled) -}}
|
||||
{{- if and (.Values.scheduler.patch.enabled) (not .Values.scheduler.certManager.enabled) }}
|
||||
{{- if and .Values.scheduler.admissionWebhook.enabled (.Values.scheduler.patch.enabled) (not .Values.scheduler.certManager.enabled) -}}
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: RoleBinding
|
||||
metadata:
|
||||
|
|
@ -20,4 +19,3 @@ subjects:
|
|||
name: {{ include "hami-vgpu.fullname" . }}-admission
|
||||
namespace: {{ include "hami-vgpu.namespace" . }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
|
|
|
|||
|
|
@ -1,5 +1,4 @@
|
|||
{{- if and .Values.scheduler.admissionWebhook.enabled (not .Values.dra.enabled) }}
|
||||
{{- if and (.Values.scheduler.patch.enabled) (not .Values.scheduler.certManager.enabled) }}
|
||||
{{- if and .Values.scheduler.admissionWebhook.enabled (.Values.scheduler.patch.enabled) (not .Values.scheduler.certManager.enabled) }}
|
||||
apiVersion: v1
|
||||
kind: ServiceAccount
|
||||
metadata:
|
||||
|
|
@ -12,4 +11,3 @@ metadata:
|
|||
{{- include "hami-vgpu.labels" . | nindent 4 }}
|
||||
app.kubernetes.io/component: admission-webhook
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
|
|
|
|||
|
|
@ -1,4 +1,3 @@
|
|||
{{- if not .Values.dra.enabled -}}
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: Role
|
||||
metadata:
|
||||
|
|
@ -10,5 +9,4 @@ metadata:
|
|||
rules:
|
||||
- apiGroups: ["coordination.k8s.io"]
|
||||
resources: ["leases"]
|
||||
verbs: ["create", "list", "watch", "get", "update", "patch"]
|
||||
{{- end }}
|
||||
verbs: ["create", "list", "watch", "get", "update", "patch"]
|
||||
|
|
@ -1,4 +1,3 @@
|
|||
{{- if not .Values.dra.enabled -}}
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: RoleBinding
|
||||
metadata:
|
||||
|
|
@ -30,4 +29,3 @@ subjects:
|
|||
name: {{ include "hami-vgpu.mock-device-plugin" . }}
|
||||
namespace: {{ include "hami-vgpu.namespace" . }}
|
||||
{{- end -}}
|
||||
{{- end }}
|
||||
|
|
|
|||
|
|
@ -1,4 +1,3 @@
|
|||
{{- if not .Values.dra.enabled }}
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
|
|
@ -32,5 +31,4 @@ spec:
|
|||
protocol: TCP
|
||||
selector:
|
||||
app.kubernetes.io/component: hami-scheduler
|
||||
{{- include "hami-vgpu.selectorLabels" . | nindent 4 }}
|
||||
{{- end }}
|
||||
{{- include "hami-vgpu.selectorLabels" . | nindent 4 }}
|
||||
|
|
@ -1,4 +1,3 @@
|
|||
{{- if not .Values.dra.enabled -}}
|
||||
apiVersion: v1
|
||||
kind: ServiceAccount
|
||||
metadata:
|
||||
|
|
@ -15,4 +14,3 @@ metadata:
|
|||
name: {{ include "hami-vgpu.mock-device-plugin" . }}
|
||||
namespace: {{ include "hami-vgpu.namespace" . }}
|
||||
{{- end -}}
|
||||
{{- end }}
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
{{- if and .Values.scheduler.admissionWebhook.enabled (not .Values.dra.enabled) -}}
|
||||
{{- if .Values.scheduler.admissionWebhook.enabled -}}
|
||||
apiVersion: admissionregistration.k8s.io/v1
|
||||
kind: MutatingWebhookConfiguration
|
||||
metadata:
|
||||
|
|
|
|||
|
|
@ -392,24 +392,6 @@ mockDevicePlugin:
|
|||
## - myRegistryKeySecretName
|
||||
##
|
||||
pullSecrets: []
|
||||
# If this option is enabled, the DRA will be installed and the scheduler extender will not be installed.
|
||||
dra:
|
||||
enabled: false
|
||||
|
||||
# Configuration for the hami-dra subchart, which includes DRA drivers.
|
||||
# This is part of config for DRA, please refer to the DRA documentation for more details.
|
||||
hami-dra:
|
||||
monitor:
|
||||
enabled: true
|
||||
drivers:
|
||||
nvidia:
|
||||
enabled: true
|
||||
# If you are using gpu driver on host, you need to set this to false
|
||||
containerDriver: true
|
||||
image:
|
||||
repository: projecthami/k8s-dra-driver
|
||||
tag: "v0.0.1-dev"
|
||||
|
||||
devices:
|
||||
amd:
|
||||
customresources:
|
||||
|
|
|
|||
|
|
@ -1,6 +1,10 @@
|
|||
hami:
|
||||
devicePlugin:
|
||||
runtimeClassName: nvidia
|
||||
updateStrategy:
|
||||
type: OnDelete
|
||||
# See upstream charts/hami/values.yaml for nodeConfiguration format.
|
||||
# Each entry: {"name": "node-name", "operatingmode": "hami-core", "devicesplitcount": N, ...}
|
||||
nodeConfiguration:
|
||||
config: |
|
||||
{
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue