Fix: Cannot update application status ComponentsReady to "true" (#6524)

Fix: Cannot update application status ComponentsReady to "true" (#2444)

* Fix: Cannot update application status ComponentsReady to "true"



* update



---------

Signed-off-by: wenhaozhou <wenhaozhou@yunify.com>
This commit is contained in:
Wenhao Zhou
2025-06-13 09:48:48 +08:00
committed by GitHub
parent bc1ae3f641
commit 405d0e3896

View File

@@ -89,8 +89,7 @@ func (r *Reconciler) SetupWithManager(mgr *kscontroller.Manager) error {
Name: GetApplictionName(obj.GetLabels()),
Namespace: obj.GetNamespace()}}}
})
p := predicate.GenerationChangedPredicate{
TypedFuncs: predicate.Funcs{
p := predicate.Funcs{
UpdateFunc: func(e event.UpdateEvent) bool {
return isApp(e.ObjectOld, e.ObjectOld)
},
@@ -100,7 +99,6 @@ func (r *Reconciler) SetupWithManager(mgr *kscontroller.Manager) error {
DeleteFunc: func(e event.DeleteEvent) bool {
return isApp(e.Object)
},
},
}
// Watch for changes to Application
err = c.Watch(source.Kind(mgr.GetCache(), s, h, p))
@@ -139,12 +137,14 @@ func (r *Reconciler) Reconcile(ctx context.Context, req ctrl.Request) (ctrl.Resu
newApplicationStatus := r.getNewApplicationStatus(ctx, &app, resources, &errs)
newApplicationStatus.ObservedGeneration = app.Generation
if equality.Semantic.DeepEqual(newApplicationStatus, &app.Status) {
return ctrl.Result{}, nil
if !equality.Semantic.DeepEqual(newApplicationStatus, &app.Status) {
err = r.updateApplicationStatus(ctx, req.NamespacedName, newApplicationStatus)
if err != nil {
return ctrl.Result{}, err
}
}
err = r.updateApplicationStatus(ctx, req.NamespacedName, newApplicationStatus)
return ctrl.Result{}, err
return ctrl.Result{}, nil
}
func (r *Reconciler) updateComponents(ctx context.Context, app *appv1beta1.Application) ([]*unstructured.Unstructured, []error) {
@@ -240,15 +240,15 @@ func (r *Reconciler) setOwnerRefForResources(ctx context.Context, ownerRef metav
if !ownerRefFound {
ownerRefs = append(ownerRefs, ownerRef)
}
resource.SetOwnerReferences(ownerRefs)
err := r.Client.Update(ctx, resource)
err := r.Update(ctx, resource)
if err != nil {
// We log this error, but we continue and try to set the ownerRefs on the other resources.
klog.Error(err, "ErrorSettingOwnerRef", "gvk", resource.GroupVersionKind().String(),
"namespace", resource.GetNamespace(), "name", resource.GetName())
}
}
}
return nil
}