From 94c001e81cb48f5ef6fc705eb48c1ff8bda65e89 Mon Sep 17 00:00:00 2001
From: Andrea Scarpino <andrea@scarpino.dev>
Date: Wed, 13 Mar 2024 14:29:04 +0000
Subject: [PATCH] Add TopologySpreadConstraints to server pod (#27)

---
 cmd/client/utils.go | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/cmd/client/utils.go b/cmd/client/utils.go
index 7b87ef4..14673b2 100644
--- a/cmd/client/utils.go
+++ b/cmd/client/utils.go
@@ -48,6 +48,18 @@ func ensureServerPod(ctx context.Context, cs kubernetes.Interface, svrImg, names
 					ImagePullPolicy: corev1.PullAlways,
 				},
 			},
+			TopologySpreadConstraints: []corev1.TopologySpreadConstraint{
+				{
+					MaxSkew:           1,
+					TopologyKey:       "kubernetes.io/hostname",
+					WhenUnsatisfiable: "ScheduleAnyway",
+					LabelSelector: &metav1.LabelSelector{
+						MatchLabels: map[string]string{
+							"app": constants.ServerName,
+						},
+					},
+				},
+			},
 		},
 	}, metav1.CreateOptions{})
 	if err != nil {