diff --git a/infrastructure/nginx-system/release.yaml b/infrastructure/nginx-system/release.yaml
index 3cb4e942a698b6c2d9234afc7372df6d53cc333d..ce63b577d966aea5d5874a16cf067a79e52d72a7 100644
--- a/infrastructure/nginx-system/release.yaml
+++ b/infrastructure/nginx-system/release.yaml
@@ -31,6 +31,47 @@ metadata:
 data:
   values.yaml: |
     controller:
+      affinity:
+        # Force spread across nodes
+        podAntiAffinity:
+          requiredDuringSchedulingIgnoredDuringExecution:
+          - labelSelector:
+              matchExpressions:
+              - key: app.kubernetes.io/name
+                operator: In
+                values:
+                - ingress-nginx
+              - key: app.kubernetes.io/instance
+                operator: In
+                values:
+                - nginx-ingress
+              - key: app.kubernetes.io/component
+                operator: In
+                values:
+                - controller
+            topologyKey: "kubernetes.io/hostname"
+        nodeAffinity:
+          preferredDuringSchedulingIgnoredDuringExecution:
+          - weight: 5
+            preference:
+              matchExpressions:
+              - key: feature.node.kubernetes.io/cpu-cpuid.AESNI
+                operator: Exists
+          - weight: 1
+            preference:
+              matchExpressions:
+              - key: feature.node.kubernetes.io/cpu-cpuid.SHA
+                operator: Exists
+          - weight: 1
+            preference:
+              matchExpressions:
+              - key: feature.node.kubernetes.io/cpu-cpuid.AVX
+                operator: Exists
+          - weight: 1
+            preference:
+              matchExpressions:
+              - key: feature.node.kubernetes.io/cpu-cpuid.AVX2
+                operator: Exists
       ingressClassResource:
         name: nginx
         enabled: true