Skip to content

Commit d3306df

Browse files
committed
Add knobs for tls support on controllers
Signed-off-by: Matthias Wessendorf <mwessend@redhat.com>
1 parent 2a07961 commit d3306df

File tree

2 files changed

+24
-14
lines changed

2 files changed

+24
-14
lines changed

cmd/controller/main.go

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -20,15 +20,15 @@ import (
2020
// Uncomment the following line to load the gcp plugin (only required to authenticate against GKE clusters).
2121
// _ "k8s.io/client-go/plugin/pkg/client/auth/gcp"
2222

23+
"knative.dev/eventing/pkg/apis/feature"
2324
"knative.dev/eventing/pkg/client/certmanager/injection/informers/acme/v1/challenge"
2425
v1certificate "knative.dev/eventing/pkg/client/certmanager/injection/informers/certmanager/v1/certificate"
25-
2626
"knative.dev/eventing/pkg/client/certmanager/injection/informers/certmanager/v1/certificaterequest"
2727
"knative.dev/eventing/pkg/client/certmanager/injection/informers/certmanager/v1/clusterissuer"
2828
"knative.dev/eventing/pkg/client/certmanager/injection/informers/certmanager/v1/issuer"
2929
"knative.dev/pkg/injection"
30-
3130
"knative.dev/pkg/injection/sharedmain"
31+
"knative.dev/pkg/logging"
3232

3333
filteredFactory "knative.dev/pkg/client/injection/kube/informers/factory/filtered"
3434
"knative.dev/pkg/signals"
@@ -64,9 +64,15 @@ func main() {
6464
"app.kubernetes.io/name",
6565
)
6666

67-
for _, inf := range []injection.InformerInjector{challenge.WithInformer, v1certificate.WithInformer, certificaterequest.WithInformer, clusterissuer.WithInformer, issuer.WithInformer} {
68-
injection.Default.RegisterInformer(inf)
69-
}
67+
var featureStore *feature.Store
68+
featureStore = feature.NewStore(logging.FromContext(ctx).Named("feature-config-store"), func(name string, value interface{}) {
69+
featureFlags := value.(feature.Flags)
70+
if !featureFlags.IsDisabledTransportEncryption() && featureStore != nil {
71+
for _, inf := range []injection.InformerInjector{challenge.WithInformer, v1certificate.WithInformer, certificaterequest.WithInformer, clusterissuer.WithInformer, issuer.WithInformer} {
72+
injection.Default.RegisterInformer(inf)
73+
}
74+
}
75+
})
7076

7177
sharedmain.MainWithContext(ctx, "controller",
7278
// Messaging

pkg/reconciler/integration/sink/controller.go

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@ package sink
1919
import (
2020
"context"
2121

22+
cmclient "knative.dev/eventing/pkg/client/certmanager/injection/client"
23+
cmcertinformer "knative.dev/eventing/pkg/client/certmanager/injection/informers/certmanager/v1/certificate"
2224
pkgreconciler "knative.dev/pkg/reconciler"
2325

2426
"k8s.io/client-go/tools/cache"
@@ -30,9 +32,6 @@ import (
3032
deploymentinformer "knative.dev/pkg/client/injection/kube/informers/apps/v1/deployment"
3133
"knative.dev/pkg/client/injection/kube/informers/core/v1/service"
3234

33-
cmclient "knative.dev/eventing/pkg/client/certmanager/injection/client"
34-
cmcertinformer "knative.dev/eventing/pkg/client/certmanager/injection/informers/certmanager/v1/certificate"
35-
3635
integrationsinkreconciler "knative.dev/eventing/pkg/client/injection/reconciler/sinks/v1alpha1/integrationsink"
3736
kubeclient "knative.dev/pkg/client/injection/kube/client"
3837
secretinformer "knative.dev/pkg/client/injection/kube/informers/core/v1/secret/filtered"
@@ -51,8 +50,6 @@ func NewController(
5150
eventPolicyInformer := eventpolicy.Get(ctx)
5251
deploymentInformer := deploymentinformer.Get(ctx)
5352

54-
cmCertificateInformer := cmcertinformer.Get(ctx)
55-
5653
serviceInformer := service.Get(ctx)
5754

5855
r := &Reconciler{
@@ -61,12 +58,12 @@ func NewController(
6158
deploymentLister: deploymentInformer.Lister(),
6259
serviceLister: serviceInformer.Lister(),
6360

64-
secretLister: secretInformer.Lister(),
65-
eventPolicyLister: eventPolicyInformer.Lister(),
66-
cmCertificateLister: cmCertificateInformer.Lister(),
67-
certManagerClient: cmclient.Get(ctx),
61+
secretLister: secretInformer.Lister(),
62+
eventPolicyLister: eventPolicyInformer.Lister(),
6863
}
6964

65+
// featureFlags := feature.FromContext(ctx)
66+
7067
var globalResync func(obj interface{})
7168

7269
featureStore := feature.NewStore(logging.FromContext(ctx).Named("feature-config-store"), func(name string, value interface{}) {
@@ -76,6 +73,13 @@ func NewController(
7673
})
7774
featureStore.WatchConfigs(cmw)
7875

76+
// If not enabled, it is disable, strict or Permissive
77+
if featureStore.Load().IsPermissiveTransportEncryption() || featureStore.Load().IsStrictTransportEncryption() {
78+
cmCertificateInformer := cmcertinformer.Get(ctx)
79+
r.cmCertificateLister = cmCertificateInformer.Lister()
80+
r.certManagerClient = cmclient.Get(ctx)
81+
}
82+
7983
impl := integrationsinkreconciler.NewImpl(ctx, r, func(impl *controller.Impl) controller.Options {
8084
return controller.Options{
8185
ConfigStore: featureStore,

0 commit comments

Comments
 (0)