139 lines
4.2 KiB
Smarty
139 lines
4.2 KiB
Smarty
|
{{- define "jupyterhub.userNodeAffinityRequired" -}}
|
||
|
{{- if eq .Values.scheduling.userPods.nodeAffinity.matchNodePurpose "require" -}}
|
||
|
- matchExpressions:
|
||
|
- key: hub.jupyter.org/node-purpose
|
||
|
operator: In
|
||
|
values: [user]
|
||
|
{{- end }}
|
||
|
{{- with .Values.singleuser.extraNodeAffinity.required }}
|
||
|
{{- . | toYaml | nindent 0 }}
|
||
|
{{- end }}
|
||
|
{{- end }}
|
||
|
|
||
|
{{- define "jupyterhub.userNodeAffinityPreferred" -}}
|
||
|
{{- if eq .Values.scheduling.userPods.nodeAffinity.matchNodePurpose "prefer" -}}
|
||
|
- weight: 100
|
||
|
preference:
|
||
|
matchExpressions:
|
||
|
- key: hub.jupyter.org/node-purpose
|
||
|
operator: In
|
||
|
values: [user]
|
||
|
{{- end }}
|
||
|
{{- with .Values.singleuser.extraNodeAffinity.preferred }}
|
||
|
{{- . | toYaml | nindent 0 }}
|
||
|
{{- end }}
|
||
|
{{- end }}
|
||
|
|
||
|
{{- define "jupyterhub.userPodAffinityRequired" -}}
|
||
|
{{- with .Values.singleuser.extraPodAffinity.required -}}
|
||
|
{{ . | toYaml }}
|
||
|
{{- end }}
|
||
|
{{- end }}
|
||
|
|
||
|
{{- define "jupyterhub.userPodAffinityPreferred" -}}
|
||
|
{{- with .Values.singleuser.extraPodAffinity.preferred -}}
|
||
|
{{ . | toYaml }}
|
||
|
{{- end }}
|
||
|
{{- end }}
|
||
|
|
||
|
{{- define "jupyterhub.userPodAntiAffinityRequired" -}}
|
||
|
{{- with .Values.singleuser.extraPodAntiAffinity.required -}}
|
||
|
{{ . | toYaml }}
|
||
|
{{- end }}
|
||
|
{{- end }}
|
||
|
|
||
|
{{- define "jupyterhub.userPodAntiAffinityPreferred" -}}
|
||
|
{{- with .Values.singleuser.extraPodAntiAffinity.preferred -}}
|
||
|
{{ . | toYaml }}
|
||
|
{{- end }}
|
||
|
{{- end }}
|
||
|
|
||
|
|
||
|
|
||
|
{{- /*
|
||
|
jupyterhub.userAffinity:
|
||
|
It is used by user-placeholder to set the same affinity on them as the
|
||
|
spawned user pods spawned by kubespawner.
|
||
|
*/}}
|
||
|
{{- define "jupyterhub.userAffinity" -}}
|
||
|
|
||
|
{{- $dummy := set . "nodeAffinityRequired" (include "jupyterhub.userNodeAffinityRequired" .) -}}
|
||
|
{{- $dummy := set . "podAffinityRequired" (include "jupyterhub.userPodAffinityRequired" .) -}}
|
||
|
{{- $dummy := set . "podAntiAffinityRequired" (include "jupyterhub.userPodAntiAffinityRequired" .) -}}
|
||
|
{{- $dummy := set . "nodeAffinityPreferred" (include "jupyterhub.userNodeAffinityPreferred" .) -}}
|
||
|
{{- $dummy := set . "podAffinityPreferred" (include "jupyterhub.userPodAffinityPreferred" .) -}}
|
||
|
{{- $dummy := set . "podAntiAffinityPreferred" (include "jupyterhub.userPodAntiAffinityPreferred" .) -}}
|
||
|
{{- $dummy := set . "hasNodeAffinity" (or .nodeAffinityRequired .nodeAffinityPreferred) -}}
|
||
|
{{- $dummy := set . "hasPodAffinity" (or .podAffinityRequired .podAffinityPreferred) -}}
|
||
|
{{- $dummy := set . "hasPodAntiAffinity" (or .podAntiAffinityRequired .podAntiAffinityPreferred) -}}
|
||
|
|
||
|
{{- if .hasNodeAffinity -}}
|
||
|
nodeAffinity:
|
||
|
{{- if .nodeAffinityRequired }}
|
||
|
requiredDuringSchedulingIgnoredDuringExecution:
|
||
|
nodeSelectorTerms:
|
||
|
{{- .nodeAffinityRequired | nindent 6 }}
|
||
|
{{- end }}
|
||
|
|
||
|
{{- if .nodeAffinityPreferred }}
|
||
|
preferredDuringSchedulingIgnoredDuringExecution:
|
||
|
{{- .nodeAffinityPreferred | nindent 4 }}
|
||
|
{{- end }}
|
||
|
{{- end }}
|
||
|
|
||
|
{{- if .hasPodAffinity }}
|
||
|
podAffinity:
|
||
|
{{- if .podAffinityRequired }}
|
||
|
requiredDuringSchedulingIgnoredDuringExecution:
|
||
|
{{- .podAffinityRequired | nindent 4 }}
|
||
|
{{- end }}
|
||
|
|
||
|
{{- if .podAffinityPreferred }}
|
||
|
preferredDuringSchedulingIgnoredDuringExecution:
|
||
|
{{- .podAffinityPreferred | nindent 4 }}
|
||
|
{{- end }}
|
||
|
{{- end }}
|
||
|
|
||
|
{{- if .hasPodAntiAffinity }}
|
||
|
podAntiAffinity:
|
||
|
{{- if .podAntiAffinityRequired }}
|
||
|
requiredDuringSchedulingIgnoredDuringExecution:
|
||
|
{{- .podAntiAffinityRequired | nindent 4 }}
|
||
|
{{- end }}
|
||
|
|
||
|
{{- if .podAntiAffinityPreferred }}
|
||
|
preferredDuringSchedulingIgnoredDuringExecution:
|
||
|
{{- .podAntiAffinityPreferred | nindent 4 }}
|
||
|
{{- end }}
|
||
|
{{- end }}
|
||
|
|
||
|
{{- end }}
|
||
|
|
||
|
|
||
|
|
||
|
{{- define "jupyterhub.coreAffinity" -}}
|
||
|
{{- $require := eq .Values.scheduling.corePods.nodeAffinity.matchNodePurpose "require" -}}
|
||
|
{{- $prefer := eq .Values.scheduling.corePods.nodeAffinity.matchNodePurpose "prefer" -}}
|
||
|
{{- if or $require $prefer -}}
|
||
|
affinity:
|
||
|
nodeAffinity:
|
||
|
{{- if $require }}
|
||
|
requiredDuringSchedulingIgnoredDuringExecution:
|
||
|
nodeSelectorTerms:
|
||
|
- matchExpressions:
|
||
|
- key: hub.jupyter.org/node-purpose
|
||
|
operator: In
|
||
|
values: [core]
|
||
|
{{- end }}
|
||
|
{{- if $prefer }}
|
||
|
preferredDuringSchedulingIgnoredDuringExecution:
|
||
|
- weight: 100
|
||
|
preference:
|
||
|
matchExpressions:
|
||
|
- key: hub.jupyter.org/node-purpose
|
||
|
operator: In
|
||
|
values: [core]
|
||
|
{{- end }}
|
||
|
{{- end }}
|
||
|
{{- end }}
|