Merge pull request #97507 from aldudko/controller-logging

Migrate deployment controller log messages to structured logging
This commit is contained in:
Kubernetes Prow Robot 2021-03-03 22:49:59 -08:00 committed by GitHub
commit 3ce93161fe
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -150,8 +150,8 @@ func (dc *DeploymentController) Run(workers int, stopCh <-chan struct{}) {
defer utilruntime.HandleCrash() defer utilruntime.HandleCrash()
defer dc.queue.ShutDown() defer dc.queue.ShutDown()
klog.Infof("Starting deployment controller") klog.InfoS("Starting controller", "controller", "deployment")
defer klog.Infof("Shutting down deployment controller") defer klog.InfoS("Shutting down controller", "controller", "deployment")
if !cache.WaitForNamedCacheSync("deployment", stopCh, dc.dListerSynced, dc.rsListerSynced, dc.podListerSynced) { if !cache.WaitForNamedCacheSync("deployment", stopCh, dc.dListerSynced, dc.rsListerSynced, dc.podListerSynced) {
return return
@ -166,14 +166,14 @@ func (dc *DeploymentController) Run(workers int, stopCh <-chan struct{}) {
func (dc *DeploymentController) addDeployment(obj interface{}) { func (dc *DeploymentController) addDeployment(obj interface{}) {
d := obj.(*apps.Deployment) d := obj.(*apps.Deployment)
klog.V(4).Infof("Adding deployment %s", d.Name) klog.V(4).InfoS("Adding deployment", "deployment", klog.KObj(d))
dc.enqueueDeployment(d) dc.enqueueDeployment(d)
} }
func (dc *DeploymentController) updateDeployment(old, cur interface{}) { func (dc *DeploymentController) updateDeployment(old, cur interface{}) {
oldD := old.(*apps.Deployment) oldD := old.(*apps.Deployment)
curD := cur.(*apps.Deployment) curD := cur.(*apps.Deployment)
klog.V(4).Infof("Updating deployment %s", oldD.Name) klog.V(4).InfoS("Updating deployment", "deployment", klog.KObj(oldD))
dc.enqueueDeployment(curD) dc.enqueueDeployment(curD)
} }
@ -191,7 +191,7 @@ func (dc *DeploymentController) deleteDeployment(obj interface{}) {
return return
} }
} }
klog.V(4).Infof("Deleting deployment %s", d.Name) klog.V(4).InfoS("Deleting deployment", "deployment", klog.KObj(d))
dc.enqueueDeployment(d) dc.enqueueDeployment(d)
} }
@ -212,7 +212,7 @@ func (dc *DeploymentController) addReplicaSet(obj interface{}) {
if d == nil { if d == nil {
return return
} }
klog.V(4).Infof("ReplicaSet %s added.", rs.Name) klog.V(4).InfoS("ReplicaSet added", "replicaSet", klog.KObj(rs))
dc.enqueueDeployment(d) dc.enqueueDeployment(d)
return return
} }
@ -223,7 +223,7 @@ func (dc *DeploymentController) addReplicaSet(obj interface{}) {
if len(ds) == 0 { if len(ds) == 0 {
return return
} }
klog.V(4).Infof("Orphan ReplicaSet %s added.", rs.Name) klog.V(4).InfoS("Orphan ReplicaSet added", "replicaSet", klog.KObj(rs))
for _, d := range ds { for _, d := range ds {
dc.enqueueDeployment(d) dc.enqueueDeployment(d)
} }
@ -243,8 +243,8 @@ func (dc *DeploymentController) getDeploymentsForReplicaSet(rs *apps.ReplicaSet)
if len(deployments) > 1 { if len(deployments) > 1 {
// ControllerRef will ensure we don't do anything crazy, but more than one // ControllerRef will ensure we don't do anything crazy, but more than one
// item in this list nevertheless constitutes user error. // item in this list nevertheless constitutes user error.
klog.V(4).Infof("user error! more than one deployment is selecting replica set %s/%s with labels: %#v, returning %s/%s", klog.V(4).InfoS("user error! more than one deployment is selecting replica set",
rs.Namespace, rs.Name, rs.Labels, deployments[0].Namespace, deployments[0].Name) "replicaSet", klog.KObj(rs), "labels", rs.Labels, "deployment", klog.KObj(deployments[0]))
} }
return deployments return deployments
} }
@ -278,7 +278,7 @@ func (dc *DeploymentController) updateReplicaSet(old, cur interface{}) {
if d == nil { if d == nil {
return return
} }
klog.V(4).Infof("ReplicaSet %s updated.", curRS.Name) klog.V(4).InfoS("ReplicaSet updated", "replicaSet", klog.KObj(curRS))
dc.enqueueDeployment(d) dc.enqueueDeployment(d)
return return
} }
@ -291,7 +291,7 @@ func (dc *DeploymentController) updateReplicaSet(old, cur interface{}) {
if len(ds) == 0 { if len(ds) == 0 {
return return
} }
klog.V(4).Infof("Orphan ReplicaSet %s updated.", curRS.Name) klog.V(4).InfoS("Orphan ReplicaSet updated", "replicaSet", klog.KObj(curRS))
for _, d := range ds { for _, d := range ds {
dc.enqueueDeployment(d) dc.enqueueDeployment(d)
} }
@ -330,7 +330,7 @@ func (dc *DeploymentController) deleteReplicaSet(obj interface{}) {
if d == nil { if d == nil {
return return
} }
klog.V(4).Infof("ReplicaSet %s deleted.", rs.Name) klog.V(4).InfoS("ReplicaSet deleted", "replicaSet", klog.KObj(rs))
dc.enqueueDeployment(d) dc.enqueueDeployment(d)
} }
@ -354,7 +354,7 @@ func (dc *DeploymentController) deletePod(obj interface{}) {
return return
} }
} }
klog.V(4).Infof("Pod %s deleted.", pod.Name) klog.V(4).InfoS("Pod deleted", "pod", klog.KObj(pod))
if d := dc.getDeploymentForPod(pod); d != nil && d.Spec.Strategy.Type == apps.RecreateDeploymentStrategyType { if d := dc.getDeploymentForPod(pod); d != nil && d.Spec.Strategy.Type == apps.RecreateDeploymentStrategyType {
// Sync if this Deployment now has no more Pods. // Sync if this Deployment now has no more Pods.
rsList, err := util.ListReplicaSets(d, util.RsListFromClient(dc.client.AppsV1())) rsList, err := util.ListReplicaSets(d, util.RsListFromClient(dc.client.AppsV1()))
@ -422,7 +422,7 @@ func (dc *DeploymentController) getDeploymentForPod(pod *v1.Pod) *apps.Deploymen
} }
rs, err = dc.rsLister.ReplicaSets(pod.Namespace).Get(controllerRef.Name) rs, err = dc.rsLister.ReplicaSets(pod.Namespace).Get(controllerRef.Name)
if err != nil || rs.UID != controllerRef.UID { if err != nil || rs.UID != controllerRef.UID {
klog.V(4).Infof("Cannot get replicaset %q for pod %q: %v", controllerRef.Name, pod.Name, err) klog.V(4).InfoS("Cannot get replicaset for pod", "ownerReference", controllerRef.Name, "pod", klog.KObj(pod), "err", err)
return nil return nil
} }
@ -483,7 +483,7 @@ func (dc *DeploymentController) handleErr(err error, key interface{}) {
ns, name, keyErr := cache.SplitMetaNamespaceKey(key.(string)) ns, name, keyErr := cache.SplitMetaNamespaceKey(key.(string))
if keyErr != nil { if keyErr != nil {
klog.ErrorS(err, "Failed to split meta namespace cache key", "key", key) klog.ErrorS(err, "Failed to split meta namespace cache key", "cacheKey", key)
} }
if dc.queue.NumRequeues(key) < maxRetries { if dc.queue.NumRequeues(key) < maxRetries {
@ -493,7 +493,7 @@ func (dc *DeploymentController) handleErr(err error, key interface{}) {
} }
utilruntime.HandleError(err) utilruntime.HandleError(err)
klog.V(2).Infof("Dropping deployment %q out of the queue: %v", key, err) klog.V(2).InfoS("Dropping deployment out of the queue", "deployment", klog.KRef(ns, name), "err", err)
dc.queue.Forget(key) dc.queue.Forget(key)
} }
@ -566,19 +566,21 @@ func (dc *DeploymentController) getPodMapForDeployment(d *apps.Deployment, rsLis
// syncDeployment will sync the deployment with the given key. // syncDeployment will sync the deployment with the given key.
// This function is not meant to be invoked concurrently with the same key. // This function is not meant to be invoked concurrently with the same key.
func (dc *DeploymentController) syncDeployment(key string) error { func (dc *DeploymentController) syncDeployment(key string) error {
startTime := time.Now()
klog.V(4).Infof("Started syncing deployment %q (%v)", key, startTime)
defer func() {
klog.V(4).Infof("Finished syncing deployment %q (%v)", key, time.Since(startTime))
}()
namespace, name, err := cache.SplitMetaNamespaceKey(key) namespace, name, err := cache.SplitMetaNamespaceKey(key)
if err != nil { if err != nil {
klog.ErrorS(err, "Failed to split meta namespace cache key", "cacheKey", key)
return err return err
} }
startTime := time.Now()
klog.V(4).InfoS("Started syncing deployment", "deployment", klog.KRef(namespace, name), "startTime", startTime)
defer func() {
klog.V(4).InfoS("Finished syncing deployment", "deployment", klog.KRef(namespace, name), "duration", time.Since(startTime))
}()
deployment, err := dc.dLister.Deployments(namespace).Get(name) deployment, err := dc.dLister.Deployments(namespace).Get(name)
if errors.IsNotFound(err) { if errors.IsNotFound(err) {
klog.V(2).Infof("Deployment %v has been deleted", key) klog.V(2).InfoS("Deployment has been deleted", "deployment", klog.KRef(namespace, name))
return nil return nil
} }
if err != nil { if err != nil {