@@ -20,7 +20,6 @@ import (
2020 core_v1 "k8s.io/api/core/v1"
2121 apierrors "k8s.io/apimachinery/pkg/api/errors"
2222 meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
23- "k8s.io/apimachinery/pkg/types"
2423 "k8s.io/apimachinery/pkg/util/rand"
2524 controllerruntime "sigs.k8s.io/controller-runtime"
2625 "sigs.k8s.io/controller-runtime/pkg/client"
@@ -41,28 +40,28 @@ const (
4140)
4241
4342type certificateController struct {
44- globalSettingsName types.NamespacedName
45- kubernetesClient client.Client
46- dataBrokerClient databrokerpb.DataBrokerServiceClient
43+ cfg * controllerConfig
44+ kubernetesClient client.Client
45+ dataBrokerClient databrokerpb.DataBrokerServiceClient
46+
4747 dataBrokerCollector * dataBrokerCollector
4848}
4949
5050// NewCertificateController creates a new certificate controller.
5151func NewCertificateController (
5252 mgr controllerruntime.Manager ,
53- globalSettingsName types.NamespacedName ,
5453 dataBrokerClient databrokerpb.DataBrokerServiceClient ,
55- controllerName string ,
54+ options ... Option ,
5655) error {
5756 c := & certificateController {
58- globalSettingsName : globalSettingsName ,
59- kubernetesClient : mgr .GetClient (),
60- dataBrokerClient : dataBrokerClient ,
57+ cfg : getControllerConfig ( options ... ) ,
58+ kubernetesClient : mgr .GetClient (),
59+ dataBrokerClient : dataBrokerClient ,
6160 }
6261 c .dataBrokerCollector = newDataBrokerCollector (c )
6362
6463 err := controllerruntime .NewControllerManagedBy (mgr ).
65- Named (controllerName ).
64+ Named (c . cfg . controllerName ).
6665 Watches (new (core_v1.Secret ), & handler.EnqueueRequestForObject {}).
6766 Watches (new (pomerium_ingress_v1.Pomerium ), & handler.EnqueueRequestForObject {}).
6867 Watches (new (certmanager_v1.Certificate ), & handler.EnqueueRequestForObject {}).
@@ -83,7 +82,7 @@ func (c *certificateController) reconcile(ctx context.Context) error {
8382 // retrieve the settings, certificates and secrets
8483
8584 var settings pomerium_ingress_v1.Pomerium
86- if err := c .kubernetesClient .Get (ctx , c .globalSettingsName , & settings ); err != nil {
85+ if err := c .kubernetesClient .Get (ctx , c .cfg . globalSettingsName , & settings ); err != nil {
8786 return fmt .Errorf ("error retrieving pomerium settings: %w" , err )
8887 }
8988
@@ -106,6 +105,10 @@ func (c *certificateController) reconcile(ctx context.Context) error {
106105 }
107106 }
108107
108+ if c .cfg .namespace != nil {
109+ namespace = * c .cfg .namespace
110+ }
111+
109112 // if no namespace was defined, use the current pod namespace
110113 if namespace == "" {
111114 var err error
0 commit comments