Skip to content

Commit f527e97

Browse files
Nikhil-Ladhamergify[bot]
authored andcommitted
remove replicating condition when state is secondary
remove replicating condition from VR/VGR status when the image/group is demoted to secondary state. Signed-off-by: Nikhil-Ladha <nikhilladha1999@gmail.com>
1 parent 5bd1fc3 commit f527e97

File tree

2 files changed

+14
-0
lines changed

2 files changed

+14
-0
lines changed

internal/controller/replication.storage/status.go

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ package controller
1818

1919
import (
2020
"fmt"
21+
"slices"
2122
"time"
2223

2324
"github.com/csi-addons/kubernetes-csi-addons/api/replication.storage/v1alpha1"
@@ -318,3 +319,10 @@ func findCondition(existingConditions []metav1.Condition, conditionType string)
318319

319320
return nil
320321
}
322+
323+
// removes the given condition from Conditions slice.
324+
func removeCondition(conditions *[]metav1.Condition, conditionType string) []metav1.Condition {
325+
return slices.DeleteFunc(*conditions, func(condition metav1.Condition) bool {
326+
return condition.Type == conditionType
327+
})
328+
}

internal/controller/replication.storage/volumereplication_controller.go

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -410,6 +410,9 @@ func (r *VolumeReplicationReconciler) Reconcile(ctx context.Context, req ctrl.Re
410410

411411
if requeueForResync {
412412
logger.Info("volume is not ready to use, requeuing for resync")
413+
// Remove replicating condition if it exists for secondary state
414+
updatedConditions := removeCondition(&vr.instance.Status.Conditions, replicationv1alpha1.ConditionReplicating)
415+
vr.instance.Status.Conditions = updatedConditions
413416

414417
err = r.updateReplicationStatus(instance, logger, GetCurrentReplicationState(instance.Status.State), "volume is degraded")
415418
if err != nil {
@@ -474,6 +477,9 @@ func (r *VolumeReplicationReconciler) Reconcile(ctx context.Context, req ctrl.Re
474477
}
475478
if instance.Spec.ReplicationState == replicationv1alpha1.Secondary {
476479
instance.Status.LastSyncTime = nil
480+
// Remove replicating condition if it exists for secondary state
481+
updatedConditions := removeCondition(&vr.instance.Status.Conditions, replicationv1alpha1.ConditionReplicating)
482+
vr.instance.Status.Conditions = updatedConditions
477483
}
478484
err = r.updateReplicationStatus(instance, logger, GetReplicationState(instance.Spec.ReplicationState), msg)
479485
if err != nil {

0 commit comments

Comments
 (0)