Skip to content

Commit b951d19

Browse files
committed
Optionally disable native cert-signing support for KafkaUser
This is useful in environments where certsigningrequests resources cannot be watched due to RBAC restrictions
1 parent 4c20ca6 commit b951d19

File tree

5 files changed

+17
-8
lines changed

5 files changed

+17
-8
lines changed

charts/kafka-operator/templates/operator-deployment-with-webhook.yaml

+3
Original file line numberDiff line numberDiff line change
@@ -150,6 +150,9 @@ spec:
150150
- --enable-leader-election
151151
- --cert-manager-namespace={{ .Values.certManager.namespace }}
152152
- --cert-manager-enabled={{ .Values.certManager.enabled }}
153+
{{- if not .Values.certSigning.enabled }}
154+
- --disable-cert-signing-support
155+
{{- end }}
153156
{{- if not .Values.webhook.enabled }}
154157
- --disable-webhooks
155158
{{- end }}

charts/kafka-operator/values.yaml

+3
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,9 @@ certManager:
4242
namespace: "cert-manager"
4343
enabled: false
4444

45+
certSigning:
46+
enabled: true
47+
4548
alertManager:
4649
enable: true
4750

controllers/kafkauser_controller.go

+7-6
Original file line numberDiff line numberDiff line change
@@ -55,14 +55,15 @@ import (
5555
var userFinalizer = "finalizer.kafkausers.kafka.banzaicloud.io"
5656

5757
// SetupKafkaUserWithManager registers KafkaUser controller to the manager
58-
func SetupKafkaUserWithManager(mgr ctrl.Manager, certManagerNamespace bool, log logr.Logger) *ctrl.Builder {
58+
func SetupKafkaUserWithManager(mgr ctrl.Manager, certSigningEnabled bool, certManagerNamespace bool, log logr.Logger) *ctrl.Builder {
5959
builder := ctrl.NewControllerManagedBy(mgr).
6060
For(&v1alpha1.KafkaUser{}).Named("KafkaUser")
61-
builder.Watches(
62-
&source.Kind{Type: &certsigningreqv1.CertificateSigningRequest{}},
63-
handler.EnqueueRequestsFromMapFunc(certificateSigningRequestMapper),
64-
ctrlBuilder.WithPredicates(certificateSigningRequestFilter(log)))
65-
61+
if certSigningEnabled {
62+
builder.Watches(
63+
&source.Kind{Type: &certsigningreqv1.CertificateSigningRequest{}},
64+
handler.EnqueueRequestsFromMapFunc(certificateSigningRequestMapper),
65+
ctrlBuilder.WithPredicates(certificateSigningRequestFilter(log)))
66+
}
6667
if certManagerNamespace {
6768
builder.Owns(&certv1.Certificate{})
6869
}

controllers/tests/suite_test.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -169,7 +169,7 @@ var _ = BeforeSuite(func() {
169169
Log: ctrl.Log.WithName("controllers").WithName("KafkaUser"),
170170
}
171171

172-
err = controllers.SetupKafkaUserWithManager(mgr, true, kafkaUserReconciler.Log).Complete(&kafkaUserReconciler)
172+
err = controllers.SetupKafkaUserWithManager(mgr, true, true, kafkaUserReconciler.Log).Complete(&kafkaUserReconciler)
173173
Expect(err).NotTo(HaveOccurred())
174174

175175
kafkaClusterCCReconciler := controllers.CruiseControlTaskReconciler{

main.go

+3-1
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,7 @@ func main() {
8282
webhookDisabled bool
8383
developmentLogging bool
8484
verboseLogging bool
85+
certSigningDisabled bool
8586
certManagerEnabled bool
8687
maxKafkaTopicConcurrentReconciles int
8788
)
@@ -95,6 +96,7 @@ func main() {
9596
flag.BoolVar(&developmentLogging, "development", false, "Enable development logging")
9697
flag.BoolVar(&verboseLogging, "verbose", false, "Enable verbose logging")
9798
flag.BoolVar(&certManagerEnabled, "cert-manager-enabled", false, "Enable cert-manager integration")
99+
flag.BoolVar(&certSigningDisabled, "disable-cert-signing-support", false, "Disable native certificate signing integration")
98100
flag.IntVar(&maxKafkaTopicConcurrentReconciles, "max-kafka-topic-concurrent-reconciles", 10, "Define max amount of concurrent KafkaTopic reconciles")
99101
flag.Parse()
100102

@@ -164,7 +166,7 @@ func main() {
164166
Log: ctrl.Log.WithName("controllers").WithName("KafkaUser"),
165167
}
166168

167-
if err = controllers.SetupKafkaUserWithManager(mgr, certManagerEnabled, kafkaUserReconciler.Log).Complete(kafkaUserReconciler); err != nil {
169+
if err = controllers.SetupKafkaUserWithManager(mgr, !certSigningDisabled, certManagerEnabled, kafkaUserReconciler.Log).Complete(kafkaUserReconciler); err != nil {
168170
setupLog.Error(err, "unable to create controller", "controller", "KafkaUser")
169171
os.Exit(1)
170172
}

0 commit comments

Comments
 (0)