Skip to content

Commit

Permalink
csm sync issue fixed (#259)
Browse files Browse the repository at this point in the history
  • Loading branch information
jooseppi-luna authored Jun 5, 2023
1 parent 59b64c9 commit 9ceaa98
Showing 1 changed file with 24 additions and 11 deletions.
35 changes: 24 additions & 11 deletions pkg/utils/status.go
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@ import (

t1 "k8s.io/apimachinery/pkg/types"
"k8s.io/apimachinery/pkg/util/wait"
"k8s.io/client-go/util/retry"
"sigs.k8s.io/controller-runtime/pkg/client"
"sigs.k8s.io/controller-runtime/pkg/reconcile"
)
Expand Down Expand Up @@ -293,20 +294,32 @@ func UpdateStatus(ctx context.Context, instance *csmv1.ContainerStorageModule, r
newStatus.ControllerStatus, "Node", newStatus.NodeStatus)

_, merr := calculateState(ctx, instance, r, newStatus)
csm := new(csmv1.ContainerStorageModule)
err := r.GetClient().Get(ctx, t1.NamespacedName{Name: instance.Name,
Namespace: instance.GetNamespace()}, csm)

err := retry.RetryOnConflict(retry.DefaultRetry, func() error {
log := logger.GetLogger(ctx)

csm := new(csmv1.ContainerStorageModule)
err := r.GetClient().Get(ctx, t1.NamespacedName{Name: instance.Name,
Namespace: instance.GetNamespace()}, csm)
if err != nil {
return err
}

log.Infow("instance - new controller Status", "desired", instance.Status.ControllerStatus.Desired)
log.Infow("instance - new controller Status", "Available", instance.Status.ControllerStatus.Available)
log.Infow("instance - new controller Status", "numberUnavailable", instance.Status.ControllerStatus.Failed)
log.Infow("instance - new controller Status", "State", instance.Status.State)

csm.Status = instance.Status
err = r.GetClient().Status().Update(ctx, csm)
return err
})
if err != nil {
// May be conflict if max retries were hit, or may be something unrelated
// like permissions or a network error
log.Error(err, " Failed to update CR status")
return err
}

log.Infow("instance - new controller Status", "desired", instance.Status.ControllerStatus.Desired)
log.Infow("instance - new controller Status", "Available", instance.Status.ControllerStatus.Available)
log.Infow("instance - new controller Status", "numberUnavailable", instance.Status.ControllerStatus.Failed)
log.Infow("instance - new controller Status", "State", instance.Status.State)

csm.Status = instance.Status
err = r.GetClient().Status().Update(ctx, csm)
if err != nil {
log.Error(err, " Failed to update CR status")
return err
Expand Down

0 comments on commit 9ceaa98

Please sign in to comment.