Skip to content
This repository was archived by the owner on Mar 26, 2025. It is now read-only.

Commit 4b192f4

Browse files
committed
Fix CruiseControl resource names to be able to run multiple kafka clusters on single namespace
1 parent 0bd5313 commit 4b192f4

File tree

8 files changed

+63
-58
lines changed

8 files changed

+63
-58
lines changed

internal/alertmanager/currentalert/process.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ func downScale(labels model.LabelSet, client client.Client) error {
5959
return err
6060
}
6161

62-
brokerId, err := scale.GetBrokerIDWithLeastPartition(string(labels["namespace"]), cr.Spec.CruiseControlConfig.CruiseControlEndpoint)
62+
brokerId, err := scale.GetBrokerIDWithLeastPartition(string(labels["namespace"]), cr.Spec.CruiseControlConfig.CruiseControlEndpoint, cr.Name)
6363
if err != nil {
6464
return err
6565
}

pkg/k8sutil/resource.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -134,7 +134,7 @@ func Reconcile(log logr.Logger, client runtimeClient.Client, desired runtime.Obj
134134
}
135135
}
136136
if current.(*corev1.Pod).Status.Phase == corev1.PodRunning && brokerState.GracefulActionState.CruiseControlState == banzaicloudv1alpha1.GracefulUpdateRequired {
137-
scaleErr := scale.UpScaleCluster(desired.(*corev1.Pod).Labels["brokerId"], desired.(*corev1.Pod).Namespace, cr.Spec.CruiseControlConfig.CruiseControlEndpoint)
137+
scaleErr := scale.UpScaleCluster(desired.(*corev1.Pod).Labels["brokerId"], desired.(*corev1.Pod).Namespace, cr.Spec.CruiseControlConfig.CruiseControlEndpoint, cr.Name)
138138
if scaleErr != nil {
139139
log.Error(err, "graceful upscale failed, or cluster just started")
140140
statusErr := updateGracefulScaleStatus(client, brokerId, cr,

pkg/resources/cruisecontrol/configmap.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ import (
3030

3131
func (r *Reconciler) configMap(log logr.Logger) runtime.Object {
3232
configMap := &corev1.ConfigMap{
33-
ObjectMeta: templates.ObjectMeta(configAndVolumeName, labelSelector, r.KafkaCluster),
33+
ObjectMeta: templates.ObjectMeta(fmt.Sprintf(configAndVolumeNameTemplate, r.KafkaCluster.Name), labelSelector, r.KafkaCluster),
3434
Data: map[string]string{
3535
"cruisecontrol.properties": r.KafkaCluster.Spec.CruiseControlConfig.Config + fmt.Sprintf(`
3636
# The Kafka cluster to control.

pkg/resources/cruisecontrol/cruisecontrol.go

Lines changed: 14 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@
1515
package cruisecontrol
1616

1717
import (
18+
"fmt"
19+
1820
banzaicloudv1alpha1 "github.com/banzaicloud/kafka-operator/pkg/apis/banzaicloud/v1alpha1"
1921
"github.com/banzaicloud/kafka-operator/pkg/k8sutil"
2022
"github.com/banzaicloud/kafka-operator/pkg/resources"
@@ -24,17 +26,17 @@ import (
2426
)
2527

2628
const (
27-
componentName = "cruisecontrol"
28-
serviceName = "cruisecontrol-svc"
29-
configAndVolumeName = "cruisecontrol-config"
30-
modconfigAndVolumeName = "cruisecontrol-modconfig"
31-
deploymentName = "cruisecontrol"
32-
keystoreVolume = "ks-files"
33-
keystoreVolumePath = "/var/run/secrets/java.io/keystores"
34-
pemFilesVolume = "pem-files"
35-
jmxVolumePath = "/opt/jmx-exporter/"
36-
jmxVolumeName = "jmx-jar-data"
37-
metricsPort = 9020
29+
componentNameTemplate = "%s-cruisecontrol"
30+
serviceNameTemplate = "%s-cruisecontrol-svc"
31+
configAndVolumeNameTemplate = "%s-cruisecontrol-config"
32+
modconfigAndVolumeName = "cruisecontrol-modconfig"
33+
deploymentNameTemplate = "%s-cruisecontrol"
34+
keystoreVolume = "ks-files"
35+
keystoreVolumePath = "/var/run/secrets/java.io/keystores"
36+
pemFilesVolume = "pem-files"
37+
jmxVolumePath = "/opt/jmx-exporter/"
38+
jmxVolumeName = "jmx-jar-data"
39+
metricsPort = 9020
3840
)
3941

4042
var labelSelector = map[string]string{
@@ -58,7 +60,7 @@ func New(client client.Client, cluster *banzaicloudv1alpha1.KafkaCluster) *Recon
5860

5961
// Reconcile implements the reconcile logic for CC
6062
func (r *Reconciler) Reconcile(log logr.Logger) error {
61-
log = log.WithValues("component", componentName)
63+
log = log.WithValues("component", fmt.Sprintf(componentNameTemplate, r.KafkaCluster.Name))
6264

6365
log.V(1).Info("Reconciling")
6466

pkg/resources/cruisecontrol/deployment.go

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -37,18 +37,18 @@ func (r *Reconciler) deployment(log logr.Logger) runtime.Object {
3737
if r.KafkaCluster.Spec.ListenersConfig.SSLSecrets != nil && util.IsSSLEnabledForInternalCommunication(r.KafkaCluster.Spec.ListenersConfig.InternalListeners) {
3838
volume = append(volume, generateVolumesForSSL(r.KafkaCluster.Spec.ListenersConfig.SSLSecrets.TLSSecretName)...)
3939
volumeMount = append(volumeMount, generateVolumeMountForSSL()...)
40-
initContainers = append(initContainers, generateInitContainerForSSL(r.KafkaCluster.Spec.ListenersConfig.SSLSecrets.JKSPasswordName, r.KafkaCluster.Spec.BrokerConfigs[0].Image))
40+
initContainers = append(initContainers, generateInitContainerForSSL(r.KafkaCluster.Spec.ListenersConfig.SSLSecrets.JKSPasswordName, r.KafkaCluster.Spec.BrokerConfigs[0].Image, r.KafkaCluster.Name))
4141
} else {
4242
volumeMount = append(volumeMount, []corev1.VolumeMount{
4343
{
44-
Name: configAndVolumeName,
44+
Name: fmt.Sprintf(configAndVolumeNameTemplate, r.KafkaCluster.Name),
4545
MountPath: "/opt/cruise-control/config",
4646
},
4747
}...)
4848
}
4949

5050
return &appsv1.Deployment{
51-
ObjectMeta: templates.ObjectMeta(deploymentName, labelSelector, r.KafkaCluster),
51+
ObjectMeta: templates.ObjectMeta(fmt.Sprintf(deploymentNameTemplate, r.KafkaCluster.Name), labelSelector, r.KafkaCluster),
5252
Spec: appsv1.DeploymentSpec{
5353
Selector: &metav1.LabelSelector{
5454
MatchLabels: labelSelector,
@@ -75,7 +75,7 @@ func (r *Reconciler) deployment(log logr.Logger) runtime.Object {
7575
}...),
7676
Containers: []corev1.Container{
7777
{
78-
Name: deploymentName,
78+
Name: fmt.Sprintf(deploymentNameTemplate, r.KafkaCluster.Name),
7979
Env: []corev1.EnvVar{
8080
{
8181
Name: "KAFKA_OPTS",
@@ -125,10 +125,10 @@ func (r *Reconciler) deployment(log logr.Logger) runtime.Object {
125125
},
126126
Volumes: append(volume, []corev1.Volume{
127127
{
128-
Name: configAndVolumeName,
128+
Name: fmt.Sprintf(configAndVolumeNameTemplate, r.KafkaCluster.Name),
129129
VolumeSource: corev1.VolumeSource{
130130
ConfigMap: &corev1.ConfigMapVolumeSource{
131-
LocalObjectReference: corev1.LocalObjectReference{Name: configAndVolumeName},
131+
LocalObjectReference: corev1.LocalObjectReference{Name: fmt.Sprintf(configAndVolumeNameTemplate, r.KafkaCluster.Name)},
132132
DefaultMode: util.Int32Pointer(0644),
133133
},
134134
},
@@ -155,7 +155,7 @@ func (r *Reconciler) deployment(log logr.Logger) runtime.Object {
155155
}
156156
}
157157

158-
func generateInitContainerForSSL(secretName, image string) corev1.Container {
158+
func generateInitContainerForSSL(secretName, image, clusterName string) corev1.Container {
159159
// Keystore generator
160160
initPemToKeyStore := corev1.Container{
161161
Name: "pem-to-jks",
@@ -193,7 +193,7 @@ func generateInitContainerForSSL(secretName, image string) corev1.Container {
193193
MountPath: "/var/run/secrets/pemfiles",
194194
},
195195
{
196-
Name: configAndVolumeName,
196+
Name: fmt.Sprintf(configAndVolumeNameTemplate, clusterName),
197197
MountPath: "/config",
198198
},
199199
{

pkg/resources/cruisecontrol/service.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@
1515
package cruisecontrol
1616

1717
import (
18+
"fmt"
19+
1820
"github.com/banzaicloud/kafka-operator/pkg/resources/templates"
1921
"github.com/go-logr/logr"
2022
corev1 "k8s.io/api/core/v1"
@@ -24,7 +26,7 @@ import (
2426

2527
func (r *Reconciler) service(log logr.Logger) runtime.Object {
2628
return &corev1.Service{
27-
ObjectMeta: templates.ObjectMeta(serviceName, labelSelector, r.KafkaCluster),
29+
ObjectMeta: templates.ObjectMeta(fmt.Sprintf(serviceNameTemplate, r.KafkaCluster.Name), labelSelector, r.KafkaCluster),
2830
Spec: corev1.ServiceSpec{
2931
Selector: labelSelector,
3032
Ports: []corev1.ServicePort{

pkg/resources/kafka/kafka.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -167,7 +167,7 @@ func (r *Reconciler) Reconcile(log logr.Logger) error {
167167
deletedBrokers = append(deletedBrokers, pod)
168168
}
169169
for _, broker := range deletedBrokers {
170-
err = scale.DownsizeCluster(broker.Labels["brokerId"], broker.Namespace, r.KafkaCluster.Spec.CruiseControlConfig.CruiseControlEndpoint)
170+
err = scale.DownsizeCluster(broker.Labels["brokerId"], broker.Namespace, r.KafkaCluster.Spec.CruiseControlConfig.CruiseControlEndpoint, r.KafkaCluster.Name)
171171
if err != nil {
172172
log.Error(err, "graceful downscale failed.")
173173
}

0 commit comments

Comments
 (0)