Skip to content

Affinity📜

Pod constraints for this package are implemented following the kubernetes affinity documentation. Gatekeeper pods can be constrained using nodeSelector, nodeAffinity, or the pod Affinity/Anti-affinity feature.

These values are set per component under upstream. The components that accept them are controllerManager, audit, crds, postInstall, postUpgrade, and preUninstall. The examples below use controllerManager.

nodeSelector📜

in the values.yaml add nodeSelector like:

upstream:
  controllerManager:
    nodeSelector:
      <key>: <value>

nodeAffinity📜

in the values.yaml, add nodeAffinity like:

upstream:
  controllerManager:
    affinity:
      nodeAffinity:
        requiredDuringSchedulingIgnoredDuringExecution:
          nodeSelectorTerms:
          - matchExpressions:
            - key: kubernetes.io/e2e-az-name
              operator: In
              values:
              - e2e-az1
              - e2e-az2
        preferredDuringSchedulingIgnoredDuringExecution:
        - weight: 1
          preference:
            matchExpressions:
            - key: another-node-label-key
              operator: In
              values:
              - another-node-label-value

podAffinity📜

In values.yaml add pod affinity/anti-affinity like:

upstream:
  controllerManager:
    affinity:
      podAffinity:
        requiredDuringSchedulingIgnoredDuringExecution:
        - labelSelector:
            matchExpressions:
            - key: security
              operator: In
              values:
              - S1
          topologyKey: topology.kubernetes.io/zone
      podAntiAffinity:
        preferredDuringSchedulingIgnoredDuringExecution:
        - weight: 100
          podAffinityTerm:
            labelSelector:
              matchExpressions:
              - key: security
                operator: In
                values:
                - S2
            topologyKey: topology.kubernetes.io/zone