@@ -90,6 +90,8 @@ func (r *ExporterReconciler) exporterSecretExists(
9090 ctx context.Context ,
9191 exporter * jumpstarterdevv1alpha1.Exporter ,
9292) (bool , error ) {
93+ logger := log .FromContext (ctx )
94+
9395 if exporter .Status .Credential == nil {
9496 return false , nil
9597 }
@@ -99,8 +101,18 @@ func (r *ExporterReconciler) exporterSecretExists(
99101 Namespace : exporter .Namespace ,
100102 Name : exporter .Status .Credential .Name ,
101103 }, secret )
104+ if err != nil {
105+ return false , client .IgnoreNotFound (err )
106+ }
107+
108+ token , ok := secret .Data ["token" ]
109+
110+ if ! ok || r .Signer .Verify (string (token )) != nil {
111+ logger .Info ("reconcileStatusCredential: the exporter secret is invalid" , "exporter" , exporter .Name )
112+ return false , r .Delete (ctx , secret )
113+ }
102114
103- return err == nil , client . IgnoreNotFound ( err )
115+ return true , nil
104116}
105117
106118func (r * ExporterReconciler ) reconcileStatusCredential (
@@ -118,7 +130,7 @@ func (r *ExporterReconciler) reconcileStatusCredential(
118130 if ! exists {
119131 if exporter .Status .Credential != nil {
120132 // TODO: Send an alert notification to cluster
121- logger .Info ("the exporter secret has ceased to exist, will be recreated" , "exporter" , exporter .Name )
133+ logger .Info ("reconcileStatusCredential: the exporter secret has ceased to exist, will be recreated" , "exporter" , exporter .Name )
122134 } else {
123135 logger .Info ("reconcileStatusCredential: creating credential for exporter" )
124136 }
@@ -197,7 +209,7 @@ func (r *ExporterReconciler) secretForExporter(exporter *jumpstarterdevv1alpha1.
197209 },
198210 }
199211 // enable garbage collection on the created resource
200- if err := controllerutil .SetOwnerReference (exporter , secret , r .Scheme ); err != nil {
212+ if err := controllerutil .SetControllerReference (exporter , secret , r .Scheme ); err != nil {
201213 return nil , fmt .Errorf ("secretForExporter, error setting owner reference: %w" , err )
202214 }
203215 return secret , nil
@@ -208,5 +220,6 @@ func (r *ExporterReconciler) SetupWithManager(mgr ctrl.Manager) error {
208220 return ctrl .NewControllerManagedBy (mgr ).
209221 For (& jumpstarterdevv1alpha1.Exporter {}).
210222 Owns (& jumpstarterdevv1alpha1.Lease {}).
223+ Owns (& corev1.Secret {}).
211224 Complete (r )
212225}
0 commit comments