certificate controller: use contextual logging

This commit is contained in:
Mengjiao Liu
2022-11-18 11:56:32 +08:00
parent 2c8dffdd5f
commit 017bb93887
9 changed files with 65 additions and 44 deletions

View File

@@ -53,11 +53,13 @@ type CertificateController struct {
}
func NewCertificateController(
ctx context.Context,
name string,
kubeClient clientset.Interface,
csrInformer certificatesinformers.CertificateSigningRequestInformer,
handler func(context.Context, *certificates.CertificateSigningRequest) error,
) *CertificateController {
logger := klog.FromContext(ctx)
cc := &CertificateController{
name: name,
kubeClient: kubeClient,
@@ -73,12 +75,12 @@ func NewCertificateController(
csrInformer.Informer().AddEventHandler(cache.ResourceEventHandlerFuncs{
AddFunc: func(obj interface{}) {
csr := obj.(*certificates.CertificateSigningRequest)
klog.V(4).Infof("Adding certificate request %s", csr.Name)
logger.V(4).Info("Adding certificate request", "csr", csr.Name)
cc.enqueueCertificateRequest(obj)
},
UpdateFunc: func(old, new interface{}) {
oldCSR := old.(*certificates.CertificateSigningRequest)
klog.V(4).Infof("Updating certificate request %s", oldCSR.Name)
logger.V(4).Info("Updating certificate request", "old", oldCSR.Name)
cc.enqueueCertificateRequest(new)
},
DeleteFunc: func(obj interface{}) {
@@ -86,16 +88,16 @@ func NewCertificateController(
if !ok {
tombstone, ok := obj.(cache.DeletedFinalStateUnknown)
if !ok {
klog.V(2).Infof("Couldn't get object from tombstone %#v", obj)
logger.V(2).Info("Couldn't get object from tombstone", "object", obj)
return
}
csr, ok = tombstone.Obj.(*certificates.CertificateSigningRequest)
if !ok {
klog.V(2).Infof("Tombstone contained object that is not a CSR: %#v", obj)
logger.V(2).Info("Tombstone contained object that is not a CSR", "object", obj)
return
}
}
klog.V(4).Infof("Deleting certificate request %s", csr.Name)
logger.V(4).Info("Deleting certificate request", "csr", csr.Name)
cc.enqueueCertificateRequest(obj)
},
})
@@ -109,8 +111,9 @@ func (cc *CertificateController) Run(ctx context.Context, workers int) {
defer utilruntime.HandleCrash()
defer cc.queue.ShutDown()
klog.Infof("Starting certificate controller %q", cc.name)
defer klog.Infof("Shutting down certificate controller %q", cc.name)
logger := klog.FromContext(ctx)
logger.Info("Starting certificate controller", "name", cc.name)
defer logger.Info("Shutting down certificate controller", "name", cc.name)
if !cache.WaitForNamedCacheSync(fmt.Sprintf("certificate-%s", cc.name), ctx.Done(), cc.csrsSynced) {
return
@@ -142,7 +145,7 @@ func (cc *CertificateController) processNextWorkItem(ctx context.Context) bool {
if _, ignorable := err.(ignorableError); !ignorable {
utilruntime.HandleError(fmt.Errorf("Sync %v failed with : %v", cKey, err))
} else {
klog.V(4).Infof("Sync %v failed with : %v", cKey, err)
klog.FromContext(ctx).V(4).Info("Sync certificate request failed", "csr", cKey, "err", err)
}
return true
}
@@ -162,13 +165,14 @@ func (cc *CertificateController) enqueueCertificateRequest(obj interface{}) {
}
func (cc *CertificateController) syncFunc(ctx context.Context, key string) error {
logger := klog.FromContext(ctx)
startTime := time.Now()
defer func() {
klog.V(4).Infof("Finished syncing certificate request %q (%v)", key, time.Since(startTime))
logger.V(4).Info("Finished syncing certificate request", "csr", key, "elapsedTime", time.Since(startTime))
}()
csr, err := cc.csrLister.Get(key)
if errors.IsNotFound(err) {
klog.V(3).Infof("csr has been deleted: %v", key)
logger.V(3).Info("csr has been deleted", "csr", key)
return nil
}
if err != nil {