@@ -28,8 +28,7 @@ import (
28
28
"sigs.k8s.io/controller-runtime/pkg/manager"
29
29
30
30
"k8s.io/client-go/tools/record"
31
-
32
- log "github.com/sirupsen/logrus"
31
+ "k8s.io/klog/v2"
33
32
34
33
"sigs.k8s.io/secrets-store-csi-driver/apis/v1alpha1"
35
34
"sigs.k8s.io/secrets-store-csi-driver/pkg/client/clientset/versioned/scheme"
@@ -61,7 +60,6 @@ const (
61
60
type SecretProviderClassPodStatusReconciler struct {
62
61
client.Client
63
62
mutex * sync.Mutex
64
- log * log.Logger
65
63
scheme * apiruntime.Scheme
66
64
nodeID string
67
65
reader client.Reader
@@ -97,14 +95,14 @@ func (r *SecretProviderClassPodStatusReconciler) RunPatcher(stopCh <-chan struct
97
95
return
98
96
case <- ticker .C :
99
97
if err := r .Patcher (); err != nil {
100
- log . Errorf ( "failed to patch secret owner ref, err: %+v" , err )
98
+ klog . ErrorS ( err , "failed to patch secret owner ref" )
101
99
}
102
100
}
103
101
}
104
102
}
105
103
106
104
func (r * SecretProviderClassPodStatusReconciler ) Patcher () error {
107
- log . Debugf ("patcher started" )
105
+ klog . V ( 5 ). Infof ("patcher started" )
108
106
r .mutex .Lock ()
109
107
defer r .mutex .Unlock ()
110
108
@@ -126,8 +124,7 @@ func (r *SecretProviderClassPodStatusReconciler) Patcher() error {
126
124
spc = & val
127
125
} else {
128
126
if err := r .reader .Get (ctx , client.ObjectKey {Namespace : spcPodStatuses [i ].Namespace , Name : spcName }, spc ); err != nil {
129
- log .Errorf ("failed to get spc %s, err: %+v" , spcName , err )
130
- return err
127
+ return fmt .Errorf ("failed to get spc %s, err: %+v" , spcName , err )
131
128
}
132
129
spcMap [spcPodStatuses [i ].Namespace + "/" + spcName ] = * spc
133
130
}
@@ -146,7 +143,7 @@ func (r *SecretProviderClassPodStatusReconciler) Patcher() error {
146
143
patchFn := func () (bool , error ) {
147
144
if err := r .patchSecretWithOwnerRef (ctx , secret .Name , secret .Namespace , owners ... ); err != nil {
148
145
if ! apierrors .IsConflict (err ) || ! apierrors .IsTimeout (err ) {
149
- log . Errorf ( "failed to set owner ref for secret, err: %+v" , err )
146
+ klog . ErrorS ( err , "failed to set owner ref for secret" , "secret" , klog. ObjectRef { Namespace : secret . Namespace , Name : secret . Name } )
150
147
}
151
148
return false , nil
152
149
}
@@ -162,7 +159,7 @@ func (r *SecretProviderClassPodStatusReconciler) Patcher() error {
162
159
}
163
160
}
164
161
165
- log . Debugf ("patcher completed" )
162
+ klog . V ( 5 ). Infof ("patcher completed" )
166
163
return nil
167
164
}
168
165
@@ -184,54 +181,54 @@ func (r *SecretProviderClassPodStatusReconciler) Reconcile(req ctrl.Request) (ct
184
181
defer r .mutex .Unlock ()
185
182
186
183
ctx := context .Background ()
187
- logger := log .WithFields (log.Fields {"secretproviderclasspodstatus" : req .NamespacedName , "node" : r .nodeID })
188
- logger .Info ("reconcile started" )
184
+ klog .InfoS ("reconcile started" , "spcps" , req .NamespacedName .String ())
189
185
190
- var spcPodStatus v1alpha1.SecretProviderClassPodStatus
191
- if err := r .reader .Get (ctx , req .NamespacedName , & spcPodStatus ); err != nil {
186
+ spcPodStatus := & v1alpha1.SecretProviderClassPodStatus {}
187
+ if err := r .reader .Get (ctx , req .NamespacedName , spcPodStatus ); err != nil {
192
188
if apierrors .IsNotFound (err ) {
189
+ klog .InfoS ("reconcile complete" , "spcps" , req .NamespacedName .String ())
193
190
return ctrl.Result {}, nil
194
191
}
195
- logger . Errorf ( "failed to get spc pod status, err: %+v" , err )
192
+ klog . ErrorS ( err , "failed to get spc pod status" , "spcps" , req . NamespacedName . String () )
196
193
return ctrl.Result {}, err
197
194
}
198
195
199
196
// reconcile delete
200
197
if ! spcPodStatus .GetDeletionTimestamp ().IsZero () {
201
- logger . Infof ("reconcile complete" )
198
+ klog . InfoS ("reconcile complete" , "spcps" , req . NamespacedName . String () )
202
199
return ctrl.Result {}, nil
203
200
}
204
201
205
202
node , ok := spcPodStatus .GetLabels ()[v1alpha1 .InternalNodeLabel ]
206
203
if ! ok {
207
- logger . Info ( "node label not found, ignoring this spc pod status" )
204
+ klog . V ( 3 ). InfoS ( "node label not found, ignoring this spc pod status" , "spcps" , klog . KObj ( spcPodStatus ) )
208
205
return ctrl.Result {}, nil
209
206
}
210
207
if ! strings .EqualFold (node , r .nodeID ) {
211
- logger . Infof ( "ignoring as spc pod status belongs to node %s" , node )
208
+ klog . V ( 3 ). InfoS ( "ignoring as spc pod status belongs diff node" , "node" , node , "spcps" , klog . KObj ( spcPodStatus ) )
212
209
return ctrl.Result {}, nil
213
210
}
214
211
215
212
spcName := spcPodStatus .Status .SecretProviderClassName
216
213
spc := & v1alpha1.SecretProviderClass {}
217
214
if err := r .reader .Get (ctx , client.ObjectKey {Namespace : req .Namespace , Name : spcName }, spc ); err != nil {
218
- logger . Errorf ( "failed to get spc %s, err: %+v" , spcName , err )
215
+ klog . ErrorS ( err , "failed to get spc" , "spc" , spcName )
219
216
if apierrors .IsNotFound (err ) {
220
217
return ctrl.Result {RequeueAfter : 5 * time .Second }, nil
221
218
}
222
219
return ctrl.Result {}, err
223
220
}
224
221
225
222
if len (spc .Spec .SecretObjects ) == 0 {
226
- logger . Infof ("no secret objects defined for spc, nothing to reconcile" )
223
+ klog . InfoS ("no secret objects defined for spc, nothing to reconcile" , "spc" , klog . KObj ( spc ), "spcps" , klog . KObj ( spcPodStatus ) )
227
224
return ctrl.Result {}, nil
228
225
}
229
226
230
227
// Obtain the full pod metadata. An object reference is needed for sending
231
228
// events and the UID is helpful for validating the SPCPS TargetPath.
232
229
pod := & v1.Pod {}
233
230
if err := r .reader .Get (ctx , client.ObjectKey {Namespace : req .Namespace , Name : spcPodStatus .Status .PodName }, pod ); err != nil {
234
- logger . Errorf ( "failed to get pod %s/%s, err: %+v" , req .Namespace , spcPodStatus .Status .PodName , err )
231
+ klog . ErrorS ( err , "failed to get pod" , "pod" , klog. ObjectRef { Namespace : req .Namespace , Name : spcPodStatus .Status .PodName } )
235
232
if apierrors .IsNotFound (err ) {
236
233
return ctrl.Result {RequeueAfter : 5 * time .Second }, nil
237
234
}
@@ -255,21 +252,21 @@ func (r *SecretProviderClassPodStatusReconciler) Reconcile(req ctrl.Request) (ct
255
252
files , err := fileutil .GetMountedFiles (spcPodStatus .Status .TargetPath )
256
253
if err != nil {
257
254
r .generateEvent (pod , corev1 .EventTypeWarning , secretCreationFailedReason , fmt .Sprintf ("failed to get mounted files, err: %+v" , err ))
258
- logger . Errorf ( "failed to get mounted files, err: %+v" , err )
255
+ klog . ErrorS ( err , "failed to get mounted files" , "spc" , klog . KObj ( spc ), "pod" , klog . KObj ( pod ), "spcps" , klog . KObj ( spcPodStatus ) )
259
256
return ctrl.Result {RequeueAfter : 10 * time .Second }, err
260
257
}
261
258
errs := make ([]error , 0 )
262
259
for _ , secretObj := range spc .Spec .SecretObjects {
263
260
secretName := strings .TrimSpace (secretObj .SecretName )
264
261
265
262
if err = secretutil .ValidateSecretObject (* secretObj ); err != nil {
266
- logger . Errorf ( "failed to validate secret object in spc %s/%s, err: %+v" , spc . Namespace , spc . Name , err )
263
+ klog . ErrorS ( err , "failed to validate secret object in spc" , "spc" , klog . KObj ( spc ), "pod" , klog . KObj ( pod ), "spcps" , klog . KObj ( spcPodStatus ) )
267
264
errs = append (errs , fmt .Errorf ("failed to validate secret object in spc %s/%s, err: %+v" , spc .Namespace , spc .Name , err ))
268
265
continue
269
266
}
270
267
exists , err := r .secretExists (ctx , secretName , req .Namespace )
271
268
if err != nil {
272
- logger . Errorf ( "failed to check if secret %s exists, err: %+v" , secretName , err )
269
+ klog . ErrorS ( err , "failed to check if secret exists" , "secret" , klog. ObjectRef { Namespace : req . Namespace , Name : secretName }, "spc" , klog . KObj ( spc ), "pod" , klog . KObj ( pod ), "spcps" , klog . KObj ( spcPodStatus ) )
273
270
errs = append (errs , fmt .Errorf ("failed to check if secret %s exists, err: %+v" , secretName , err ))
274
271
continue
275
272
}
@@ -282,7 +279,7 @@ func (r *SecretProviderClassPodStatusReconciler) Reconcile(req ctrl.Request) (ct
282
279
datamap := make (map [string ][]byte )
283
280
if datamap , err = secretutil .GetSecretData (secretObj .Data , secretType , files ); err != nil {
284
281
r .generateEvent (pod , corev1 .EventTypeWarning , secretCreationFailedReason , fmt .Sprintf ("failed to get data in spc %s/%s for secret %s, err: %+v" , req .Namespace , spcName , secretName , err ))
285
- log . Errorf ( "failed to get data in spc %s/%s for secret %s, err: %+v" , req .Namespace , spcName , secretName , err )
282
+ klog . ErrorS ( err , "failed to get data in spc for secret" , "spc" , klog . KObj ( spc ), "pod" , klog . KObj ( pod ), "secret" , klog. ObjectRef { Namespace : req .Namespace , Name : secretName }, "spcps" , klog . KObj ( spcPodStatus ) )
286
283
errs = append (errs , fmt .Errorf ("failed to get data in spc %s/%s for secret %s, err: %+v" , req .Namespace , spcName , secretName , err ))
287
284
continue
288
285
}
@@ -298,7 +295,7 @@ func (r *SecretProviderClassPodStatusReconciler) Reconcile(req ctrl.Request) (ct
298
295
299
296
createFn := func () (bool , error ) {
300
297
if err := r .createK8sSecret (ctx , secretName , req .Namespace , datamap , labelsMap , secretType ); err != nil {
301
- logger . Errorf ( "failed createK8sSecret, err: %v for secret: %s" , err , secretName )
298
+ klog . ErrorS ( err , "failed to create Kubernetes secret" , "spc" , klog . KObj ( spc ), "pod" , klog . KObj ( pod ), "secret" , klog. ObjectRef { Namespace : req . Namespace , Name : secretName }, "spcps" , klog . KObj ( spcPodStatus ) )
302
299
return false , nil
303
300
}
304
301
return true , nil
@@ -323,7 +320,7 @@ func (r *SecretProviderClassPodStatusReconciler) Reconcile(req ctrl.Request) (ct
323
320
return ctrl.Result {Requeue : true }, nil
324
321
}
325
322
326
- logger . Info ("reconcile complete" )
323
+ klog . InfoS ("reconcile complete" , "spc" , klog . KObj ( spc ), "pod" , klog . KObj ( pod ), "spcps" , klog . KObj ( spcPodStatus ) )
327
324
// requeue the spc pod status again after 5mins to check if secret and ownerRef exists
328
325
// and haven't been modified. If secret doesn't exist, then this requeue will ensure it's
329
326
// created in the next reconcile and the owner ref patched again
@@ -351,7 +348,7 @@ func (r *SecretProviderClassPodStatusReconciler) createK8sSecret(ctx context.Con
351
348
352
349
err := r .writer .Create (ctx , secret )
353
350
if err == nil {
354
- log . Infof ( " created k8s secret: %s/%s" , namespace , name )
351
+ klog . InfoS ( "successfully created Kubernetes secret" , "secret" , klog. ObjectRef { Namespace : namespace , Name : name } )
355
352
return nil
356
353
}
357
354
if apierrors .IsAlreadyExists (err ) {
@@ -369,7 +366,7 @@ func (r *SecretProviderClassPodStatusReconciler) patchSecretWithOwnerRef(ctx con
369
366
}
370
367
if err := r .Client .Get (ctx , secretKey , secret ); err != nil {
371
368
if apierrors .IsNotFound (err ) {
372
- log . Debugf ( "secret %s/%s not found for patching" , namespace , name )
369
+ klog . V ( 5 ). InfoS ( "secret not found for patching" , "secret" , klog. ObjectRef { Namespace : namespace , Name : name } )
373
370
return nil
374
371
}
375
372
return err
0 commit comments