123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255 |
- {{/* affinity - https://kubernetes.io/docs/concepts/configuration/assign-pod-node/ */}}
- {{- define "appNodeaffinity" }}
- nodeAffinity:
- requiredDuringSchedulingIgnoredDuringExecution:
- {{- include "appNodeAffinityRequiredDuringScheduling" . }}
- preferredDuringSchedulingIgnoredDuringExecution:
- {{- include "appNodeAffinityPreferredDuringScheduling" . }}
- {{- end }}
- {{- define "appNodeAffinityRequiredDuringScheduling" }}
- {{- if or .Values.app.nodeAffinityLabelSelector .Values.global.nodeAffinityLabelSelector }}
- nodeSelectorTerms:
- {{- range $matchExpressionsIndex, $matchExpressionsItem := .Values.app.nodeAffinityLabelSelector }}
- - matchExpressions:
- {{- range $Index, $item := $matchExpressionsItem.matchExpressions }}
- - key: {{ $item.key }}
- operator: {{ $item.operator }}
- {{- if $item.values }}
- values:
- {{- $vals := split "," $item.values }}
- {{- range $i, $v := $vals }}
- - {{ $v | quote }}
- {{- end }}
- {{- end }}
- {{- end }}
- {{- end }}
- {{- range $matchExpressionsIndex, $matchExpressionsItem := .Values.global.nodeAffinityLabelSelector }}
- - matchExpressions:
- {{- range $Index, $item := $matchExpressionsItem.matchExpressions }}
- - key: {{ $item.key }}
- operator: {{ $item.operator }}
- {{- if $item.values }}
- values:
- {{- $vals := split "," $item.values }}
- {{- range $i, $v := $vals }}
- - {{ $v | quote }}
- {{- end }}
- {{- end }}
- {{- end }}
- {{- end }}
- {{- end }}
- {{- end }}
- {{- define "appNodeAffinityPreferredDuringScheduling" }}
- {{- range $weightIndex, $weightItem := .Values.app.nodeAffinityTermLabelSelector }}
- - weight: {{ $weightItem.weight }}
- preference:
- matchExpressions:
- {{- range $Index, $item := $weightItem.matchExpressions }}
- - key: {{ $item.key }}
- operator: {{ $item.operator }}
- {{- if $item.values }}
- values:
- {{- $vals := split "," $item.values }}
- {{- range $i, $v := $vals }}
- - {{ $v | quote }}
- {{- end }}
- {{- end }}
- {{- end }}
- {{- end }}
- {{- range $weightIndex, $weightItem := .Values.global.nodeAffinityTermLabelSelector }}
- - weight: {{ $weightItem.weight }}
- preference:
- matchExpressions:
- {{- range $Index, $item := $weightItem.matchExpressions }}
- - key: {{ $item.key }}
- operator: {{ $item.operator }}
- {{- if $item.values }}
- values:
- {{- $vals := split "," $item.values }}
- {{- range $i, $v := $vals }}
- - {{ $v | quote }}
- {{- end }}
- {{- end }}
- {{- end }}
- {{- end }}
- {{- end }}
- {{- define "appPodAffinity" }}
- {{- if or .Values.app.podAffinityLabelSelector .Values.app.podAffinityTermLabelSelector}}
- podAffinity:
- {{- if .Values.app.podAffinityLabelSelector }}
- requiredDuringSchedulingIgnoredDuringExecution:
- {{- include "appPodAffinityRequiredDuringScheduling" . }}
- {{- end }}
- {{- if or .Values.app.podAffinityTermLabelSelector}}
- preferredDuringSchedulingIgnoredDuringExecution:
- {{- include "appPodAffinityPreferredDuringScheduling" . }}
- {{- end }}
- {{- end }}
- {{- end }}
- {{- define "appPodAffinityRequiredDuringScheduling" }}
- {{- range $labelSelector, $labelSelectorItem := .Values.app.podAffinityLabelSelector }}
- - labelSelector:
- matchExpressions:
- {{- range $index, $item := $labelSelectorItem.labelSelector }}
- - key: {{ $item.key }}
- operator: {{ $item.operator }}
- {{- if $item.values }}
- values:
- {{- $vals := split "," $item.values }}
- {{- range $i, $v := $vals }}
- - {{ $v | quote }}
- {{- end }}
- {{- end }}
- {{- end }}
- topologyKey: {{ $labelSelectorItem.topologyKey }}
- {{- end }}
- {{- range $labelSelector, $labelSelectorItem := .Values.global.podAffinityLabelSelector }}
- - labelSelector:
- matchExpressions:
- {{- range $index, $item := $labelSelectorItem.labelSelector }}
- - key: {{ $item.key }}
- operator: {{ $item.operator }}
- {{- if $item.values }}
- values:
- {{- $vals := split "," $item.values }}
- {{- range $i, $v := $vals }}
- - {{ $v | quote }}
- {{- end }}
- {{- end }}
- {{- end }}
- topologyKey: {{ $labelSelectorItem.topologyKey }}
- {{- end }}
- {{- end }}
- {{- define "appPodAffinityPreferredDuringScheduling" }}
- {{- range $labelSelector, $labelSelectorItem := .Values.app.podAffinityTermLabelSelector }}
- - podAffinityTerm:
- labelSelector:
- matchExpressions:
- {{- range $index, $item := $labelSelectorItem.labelSelector }}
- - key: {{ $item.key }}
- operator: {{ $item.operator }}
- {{- if $item.values }}
- values:
- {{- $vals := split "," $item.values }}
- {{- range $i, $v := $vals }}
- - {{ $v | quote }}
- {{- end }}
- {{- end }}
- {{- end }}
- topologyKey: {{ $labelSelectorItem.topologyKey }}
- weight: {{ $labelSelectorItem.weight }}
- {{- end }}
- {{- range $labelSelector, $labelSelectorItem := .Values.global.podAffinityTermLabelSelector }}
- - podAffinityTerm:
- labelSelector:
- matchExpressions:
- {{- range $index, $item := $labelSelectorItem.labelSelector }}
- - key: {{ $item.key }}
- operator: {{ $item.operator }}
- {{- if $item.values }}
- values:
- {{- $vals := split "," $item.values }}
- {{- range $i, $v := $vals }}
- - {{ $v | quote }}
- {{- end }}
- {{- end }}
- {{- end }}
- topologyKey: {{ $labelSelectorItem.topologyKey }}
- weight: {{ $labelSelectorItem.weight }}
- {{- end }}
- {{- end }}
- {{- define "appPodAntiAffinity" }}
- {{- if or .Values.app.podAntiAffinityLabelSelector .Values.app.podAntiAffinityTermLabelSelector}}
- podAntiAffinity:
- {{- if .Values.app.podAntiAffinityLabelSelector }}
- requiredDuringSchedulingIgnoredDuringExecution:
- {{- include "appPodAntiAffinityRequiredDuringScheduling" . }}
- {{- end }}
- {{- if or .Values.app.podAntiAffinityTermLabelSelector}}
- preferredDuringSchedulingIgnoredDuringExecution:
- {{- include "appPodAntiAffinityPreferredDuringScheduling" . }}
- {{- end }}
- {{- end }}
- {{- end }}
- {{- define "appPodAntiAffinityRequiredDuringScheduling" }}
- {{- range $labelSelectorIndex, $labelSelectorItem := .Values.app.podAntiAffinityLabelSelector }}
- - labelSelector:
- matchExpressions:
- {{- range $index, $item := $labelSelectorItem.labelSelector }}
- - key: {{ $item.key }}
- operator: {{ $item.operator }}
- {{- if $item.values }}
- values:
- {{- $vals := split "," $item.values }}
- {{- range $i, $v := $vals }}
- - {{ $v | quote }}
- {{- end }}
- {{- end }}
- {{- end }}
- topologyKey: {{ $labelSelectorItem.topologyKey }}
- {{- end }}
- {{- range $labelSelectorIndex, $labelSelectorItem := .Values.global.podAntiAffinityLabelSelector }}
- - labelSelector:
- matchExpressions:
- {{- range $index, $item := $labelSelectorItem.labelSelector }}
- - key: {{ $item.key }}
- operator: {{ $item.operator }}
- {{- if $item.values }}
- values:
- {{- $vals := split "," $item.values }}
- {{- range $i, $v := $vals }}
- - {{ $v | quote }}
- {{- end }}
- {{- end }}
- {{- end }}
- topologyKey: {{ $labelSelectorItem.topologyKey }}
- {{- end }}
- {{- end }}
- {{- define "appPodAntiAffinityPreferredDuringScheduling" }}
- {{- range $labelSelectorIndex, $labelSelectorItem := .Values.app.podAntiAffinityTermLabelSelector }}
- - podAffinityTerm:
- labelSelector:
- matchExpressions:
- {{- range $index, $item := $labelSelectorItem.labelSelector }}
- - key: {{ $item.key }}
- operator: {{ $item.operator }}
- {{- if $item.values }}
- values:
- {{- $vals := split "," $item.values }}
- {{- range $i, $v := $vals }}
- - {{ $v | quote }}
- {{- end }}
- {{- end }}
- {{- end }}
- topologyKey: {{ $labelSelectorItem.topologyKey }}
- weight: {{ $labelSelectorItem.weight }}
- {{- end }}
- {{- range $labelSelectorIndex, $labelSelectorItem := .Values.global.podAntiAffinityTermLabelSelector }}
- - podAffinityTerm:
- labelSelector:
- matchExpressions:
- {{- range $index, $item := $labelSelectorItem.labelSelector }}
- - key: {{ $item.key }}
- operator: {{ $item.operator }}
- {{- if $item.values }}
- values:
- {{- $vals := split "," $item.values }}
- {{- range $i, $v := $vals }}
- - {{ $v | quote }}
- {{- end }}
- {{- end }}
- {{- end }}
- topologyKey: {{ $labelSelectorItem.topologyKey }}
- weight: {{ $labelSelectorItem.weight }}
- {{- end }}
- {{- end }}
|