istio.io/istio@v0.0.0-20240520182934-d79c90f27776/manifests/charts/gateways/istio-egress/templates/_affinity.tpl (about)

     1  {{/* affinity - https://kubernetes.io/docs/concepts/configuration/assign-pod-node/ */}}
     2  
     3  {{ define "nodeaffinity" }}
     4  nodeAffinity:
     5    requiredDuringSchedulingIgnoredDuringExecution:
     6    {{- include "nodeAffinityRequiredDuringScheduling" . }}
     7    preferredDuringSchedulingIgnoredDuringExecution:
     8    {{- include "nodeAffinityPreferredDuringScheduling" . }}
     9  {{- end }}
    10  
    11  {{- define "nodeAffinityRequiredDuringScheduling" }}
    12    {{- $nodeSelector := default .global.defaultNodeSelector .nodeSelector -}}
    13    {{- if or .global.arch $nodeSelector }}
    14        nodeSelectorTerms:
    15        - matchExpressions:
    16          {{- if .global.arch }}
    17          - key: kubernetes.io/arch
    18            operator: In
    19            values:
    20          {{- range $key, $val := .global.arch }}
    21            {{- if gt ($val | int) 0 }}
    22            - {{ $key | quote }}
    23            {{- end }}
    24          {{- end }}
    25          {{- end }}
    26          {{- range $key, $val := $nodeSelector }}
    27          - key: {{ $key }}
    28            operator: In
    29            values:
    30            - {{ $val | quote }}
    31          {{- end }}
    32    {{- end }}
    33  {{- end }}
    34  
    35  {{- define "nodeAffinityPreferredDuringScheduling" }}
    36    {{- range $key, $val := .global.arch }}
    37      {{- if gt ($val | int) 0 }}
    38      - weight: {{ $val | int }}
    39        preference:
    40          matchExpressions:
    41          - key: kubernetes.io/arch
    42            operator: In
    43            values:
    44            - {{ $key | quote }}
    45      {{- end }}
    46    {{- end }}
    47  {{- end }}
    48  
    49  {{- define "podAntiAffinity" }}
    50  {{- if or .podAntiAffinityLabelSelector .podAntiAffinityTermLabelSelector}}
    51    podAntiAffinity:
    52      {{- if .podAntiAffinityLabelSelector }}
    53      requiredDuringSchedulingIgnoredDuringExecution:
    54      {{- include "podAntiAffinityRequiredDuringScheduling" . }}
    55      {{- end }}
    56      {{- if .podAntiAffinityTermLabelSelector }}
    57      preferredDuringSchedulingIgnoredDuringExecution:
    58      {{- include "podAntiAffinityPreferredDuringScheduling" . }}
    59      {{- end }}
    60  {{- end }}
    61  {{- end }}
    62  
    63  {{- define "podAntiAffinityRequiredDuringScheduling" }}
    64      {{- range $index, $item := .podAntiAffinityLabelSelector }}
    65      - labelSelector:
    66          matchExpressions:
    67          - key: {{ $item.key }}
    68            operator: {{ $item.operator }}
    69            {{- if $item.values }}
    70            values:
    71            {{- $vals := split "," $item.values }}
    72            {{- range $i, $v := $vals }}
    73            - {{ $v | quote }}
    74            {{- end }}
    75            {{- end }}
    76        topologyKey: {{ $item.topologyKey }}
    77        {{- if $item.namespaces }}
    78        namespaces:
    79        {{- $ns := split "," $item.namespaces }}
    80        {{- range $i, $n := $ns }}
    81        - {{ $n | quote }}
    82        {{- end }}
    83        {{- end }}
    84      {{- end }}
    85  {{- end }}
    86  
    87  {{- define "podAntiAffinityPreferredDuringScheduling" }}
    88      {{- range $index, $item := .podAntiAffinityTermLabelSelector }}
    89      - podAffinityTerm:
    90          labelSelector:
    91            matchExpressions:
    92            - key: {{ $item.key }}
    93              operator: {{ $item.operator }}
    94              {{- if $item.values }}
    95              values:
    96              {{- $vals := split "," $item.values }}
    97              {{- range $i, $v := $vals }}
    98              - {{ $v | quote }}
    99              {{- end }}
   100              {{- end }}
   101          topologyKey: {{ $item.topologyKey }}
   102        weight: 100
   103      {{- end }}
   104  {{- end }}