in operator/controllers/operator/eventexporter_controller.go [159:185]
func (r *EventExporterReconciler) checkState(ctx context.Context, log logr.Logger, eventExporter *operatorv1alpha1.EventExporter) error {
overlay := operatorv1alpha1.EventExporterStatus{}
deployment := apps.Deployment{}
errCol := new(kubernetes.ErrorCollector)
if err := r.Client.Get(ctx, client.ObjectKey{Namespace: eventExporter.Namespace,
Name: eventExporter.Name + "-eventexporter"}, &deployment); err != nil && !apierrors.IsNotFound(err) {
errCol.Collect(fmt.Errorf("failed to get deployment: %w", err))
} else {
overlay.Conditions = deployment.Status.Conditions
overlay.AvailableReplicas = deployment.Status.AvailableReplicas
overlay.ConfigMapName = configMapName(eventExporter)
}
if apiequal.Semantic.DeepDerivative(overlay, eventExporter.Status) {
log.Info("Status keeps the same as before")
return errCol.Error()
}
if err := r.updateStatus(ctx, eventExporter, overlay, errCol); err != nil {
errCol.Collect(fmt.Errorf("failed to update status of EventExporter: %w", err))
}
log.Info("updated Status sub resource")
return errCol.Error()
}