Skip to content

Commit 475df14

Browse files
committed
add kafka node affinity
1 parent 094322f commit 475df14

File tree

2 files changed

+31
-0
lines changed

2 files changed

+31
-0
lines changed

manageiq-operator/api/v1alpha1/helpers/miq-components/kafka/kafka.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -302,6 +302,8 @@ func KafkaCluster(cr *miqv1alpha1.ManageIQ, client client.Client, scheme *runtim
302302
zookeeperResourceLimits["memory"] = "512Mi"
303303
zookeeperResourceLimits["cpu"] = "250m"
304304

305+
kafkaCRSpec = miqutilsv1alpha1.SetKafkaNodeAffinity(kafkaCRSpec, []string{"amd64"})
306+
305307
mutateFunc := func() error {
306308
if err := controllerutil.SetControllerReference(cr, kafkaClusterCR, scheme); err != nil {
307309
return err

manageiq-operator/api/v1alpha1/miqutils/node_affinity.go

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,3 +59,32 @@ func SetDeploymentNodeAffinity(deployment *appsv1.Deployment, client client.Clie
5959
},
6060
}
6161
}
62+
63+
func SetKafkaNodeAffinity(kafkaCRSpec map[string]interface{}, archs []string) map[string]interface{} {
64+
nodeAffinity := map[string]interface{}{
65+
"nodeAffinity": map[string]interface{}{
66+
"requiredDuringSchedulingIgnoredDuringExecution": map[string]interface{}{
67+
"nodeSelectorTerms": []map[string]interface{}{
68+
map[string]interface{}{
69+
"matchExpressions": []map[string]interface{}{
70+
map[string]interface{}{
71+
"key": "kubernetes.io/arch",
72+
"operator": "In",
73+
"values": archs,
74+
},
75+
},
76+
},
77+
},
78+
},
79+
},
80+
}
81+
82+
kafkaPod := kafkaCRSpec["kafka"].(map[string]interface{})["template"].(map[string]interface{})["pod"].(map[string]interface{})
83+
kafkaPod["affinity"] = nodeAffinity
84+
zookeeperPod := kafkaCRSpec["zookeeper"].(map[string]interface{})["template"].(map[string]interface{})["pod"].(map[string]interface{})
85+
zookeeperPod["affinity"] = nodeAffinity
86+
operatorEntityPod := kafkaCRSpec["entityOperator"].(map[string]interface{})["template"].(map[string]interface{})["pod"].(map[string]interface{})
87+
operatorEntityPod["affinity"] = nodeAffinity
88+
89+
return kafkaCRSpec
90+
}

0 commit comments

Comments
 (0)