@@ -52,7 +52,7 @@ type resourceSyncFunc func(destination, source resourcesynccontroller.ResourceLo
5252// resources to sync.
5353// It returns the observed config, sync rules and possibly an error. Nil sync rules mean to ignore all resources
5454// in case of error. Otherwise, resources are deleted by default and the returned sync rules are taken as overrides of that.
55- type observeAPIServerConfigFunc func (apiServer * configv1.APIServer , recorder events.Recorder , previouslyObservedConfig map [string ]interface {}) (map [string ]interface {}, syncActionRules , []error )
55+ type observeAPIServerConfigFunc func (apiServer * configv1.APIServer , recorder events.Recorder , previouslyObservedConfig map [string ]interface {}, listers * configobservation. Listers ) (map [string ]interface {}, syncActionRules , []error )
5656
5757// ObserveUserClientCABundle returns an ObserveConfigFunc that observes a user managed certificate bundle containing
5858// signers that will be recognized for incoming client certificates in addition to the operator managed signers.
@@ -74,7 +74,7 @@ var ObserveNamedCertificates configobserver.ObserveConfigFunc = (&apiServerObser
7474
7575// observeUserClientCABundle observes a user managed ConfigMap containing a certificate bundle for the signers that will
7676// be recognized for incoming client certificates in addition to the operator managed signers.
77- func observeUserClientCABundle (apiServer * configv1.APIServer , recorder events.Recorder , previouslyObservedConfig map [string ]interface {}) (map [string ]interface {}, syncActionRules , []error ) {
77+ func observeUserClientCABundle (apiServer * configv1.APIServer , recorder events.Recorder , previouslyObservedConfig map [string ]interface {}, listers * configobservation. Listers ) (map [string ]interface {}, syncActionRules , []error ) {
7878 configMapName := apiServer .Spec .ClientCA .Name
7979 if len (configMapName ) == 0 {
8080 return nil , nil , nil // previously observed resource (if any) should be deleted
@@ -88,7 +88,7 @@ func observeUserClientCABundle(apiServer *configv1.APIServer, recorder events.Re
8888
8989// observeNamedCertificates observes user managed Secrets containing TLS cert info for serving secure traffic to
9090// specific hostnames.
91- func observeNamedCertificates (apiServer * configv1.APIServer , recorder events.Recorder , previouslyObservedConfig map [string ]interface {}) (map [string ]interface {}, syncActionRules , []error ) {
91+ func observeNamedCertificates (apiServer * configv1.APIServer , recorder events.Recorder , previouslyObservedConfig map [string ]interface {}, listers * configobservation. Listers ) (map [string ]interface {}, syncActionRules , []error ) {
9292 var errs []error
9393 observedConfig := map [string ]interface {}{}
9494
@@ -142,6 +142,11 @@ func observeNamedCertificates(apiServer *configv1.APIServer, recorder events.Rec
142142 recorder .Warningf ("ObserveNamedCertificatesFailed" , err .Error ())
143143 return previouslyObservedConfig , nil , append (errs , err )
144144 }
145+
146+ // check that secret exists and readable by operator
147+ if _ , err := listers .ConfigSecretLister ().Secrets (operatorclient .GlobalUserSpecifiedConfigNamespace ).Get (namedCertificate .ServingCertificate .Name ); err != nil {
148+ return previouslyObservedConfig , nil , append (errs , err )
149+ }
145150 // pick one of the available target resource names
146151 targetSecretName := fmt .Sprintf (namedUserServingCertResourceNameFormat , index )
147152
@@ -209,7 +214,7 @@ func (o *apiServerObserver) observe(genericListers configobserver.Listers, recor
209214 return previouslyObservedConfig , append (errs , err )
210215 }
211216
212- observedConfig , observedResources , errs := o .observerFunc (apiServer , recorder , previouslyObservedConfig )
217+ observedConfig , observedResources , errs := o .observerFunc (apiServer , recorder , previouslyObservedConfig , & listers )
213218
214219 // if we get error during observation, skip the merging and return previous config and errors.
215220 if len (errs ) > 0 {
0 commit comments