in pkg/controller/common/resource_reconciler.go [60:89]
func (r *resourceReconciler) tick(ctx context.Context) error {
var err error
start := time.Now()
r.logger.Info("starting to reconcile resources")
defer func() {
r.logger.Info("finished reconciling resources", "latencySec", time.Since(start).Seconds())
metrics.HandleControllerReconcileMetrics(r.name, ctrl.Result{}, err)
}()
for _, res := range r.resources {
lgr := r.logger.WithValues("name", res.GetName(), "namespace", res.GetNamespace(), "kind", res.GetObjectKind().GroupVersionKind())
copy := res.DeepCopyObject().(client.Object)
if copy.GetDeletionTimestamp() != nil {
lgr.Info("deleting resource")
if err = r.client.Delete(ctx, copy); err != nil && !k8serrors.IsNotFound(err) {
r.logger.Error(err, "deleting unneeded resources")
}
continue
}
lgr.Info("upserting resource")
if err = util.Upsert(ctx, r.client, copy); err != nil {
r.logger.Error(err, "upserting resources")
return err
}
}
return nil
}