Skip to content

Commit 6b94a2f

Browse files
committed
add kafka node affinity
1 parent a730b96 commit 6b94a2f

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
@@ -356,6 +356,8 @@ func KafkaCluster(cr *miqv1alpha1.ManageIQ, client client.Client, scheme *runtim
356356

357357
kafkaCRSpec = miqutilsv1alpha1.SetKafkaNodeAffinity(kafkaCRSpec, []string{"amd64"})
358358

359+
kafkaCRSpec = miqutilsv1alpha1.SetKafkaNodeAffinity(kafkaCRSpec, []string{"amd64"})
360+
359361
mutateFunc := func() error {
360362
if err := controllerutil.SetControllerReference(cr, kafkaClusterCR, scheme); err != nil {
361363
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)