in operator/controllers/operator/oapserverconfig_controller.go [244:281]
func (r *OAPServerConfigReconciler) checkState(ctx context.Context, log logr.Logger,
oapServerConfig *operatorv1alpha1.OAPServerConfig, oapList operatorv1alpha1.OAPServerList) error {
errCol := new(kubernetes.ErrorCollector)
nilTime := metav1.Time{}
now := metav1.NewTime(time.Now())
overlay := operatorv1alpha1.OAPServerConfigStatus{}
// get Instances and AvailableReplicas
for i := range oapList.Items {
if oapList.Items[i].Spec.Version == oapServerConfig.Spec.Version {
overlay.Desired += int(oapList.Items[i].Spec.Instances)
overlay.Ready += int(oapList.Items[i].Status.AvailableReplicas)
}
}
if oapServerConfig.Status.CreationTime == nilTime {
overlay.CreationTime = now
overlay.LastUpdateTime = now
} else {
overlay.CreationTime = oapServerConfig.Status.CreationTime
overlay.LastUpdateTime = now
}
oapServerConfig.Status = overlay
oapServerConfig.Kind = "OAPServerConfig"
if err := kubernetes.ApplyOverlay(oapServerConfig, &operatorv1alpha1.OAPServerConfig{Status: overlay}); err != nil {
errCol.Collect(fmt.Errorf("failed to apply overlay: %w", err))
return errCol.Error()
}
if err := r.updateStatus(ctx, oapServerConfig, overlay, errCol); err != nil {
errCol.Collect(fmt.Errorf("failed to update status of OAPServerConfig: %w", err))
}
log.Info("updated OAPServerConfig sub resource")
return errCol.Error()
}