Skip to content

Commit f168061

Browse files
authored
Merge pull request #5881 from mszacillo/set-purge-mode
Failover controllers now build eviction tasks for purgemode immediately
2 parents b399c8b + a393653 commit f168061

File tree

2 files changed

+28
-8
lines changed

2 files changed

+28
-8
lines changed

pkg/controllers/applicationfailover/crb_application_failover_controller.go

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -157,22 +157,33 @@ func (c *CRBApplicationFailoverController) evictBinding(binding *workv1alpha2.Cl
157157
switch binding.Spec.Failover.Application.PurgeMode {
158158
case policyv1alpha1.Graciously:
159159
if features.FeatureGate.Enabled(features.GracefulEviction) {
160-
binding.Spec.GracefulEvictCluster(cluster, workv1alpha2.NewTaskOptions(workv1alpha2.WithProducer(CRBApplicationFailoverControllerName), workv1alpha2.WithReason(workv1alpha2.EvictionReasonApplicationFailure), workv1alpha2.WithGracePeriodSeconds(binding.Spec.Failover.Application.GracePeriodSeconds)))
160+
binding.Spec.GracefulEvictCluster(cluster, workv1alpha2.NewTaskOptions(
161+
workv1alpha2.WithPurgeMode(policyv1alpha1.Graciously),
162+
workv1alpha2.WithProducer(CRBApplicationFailoverControllerName),
163+
workv1alpha2.WithReason(workv1alpha2.EvictionReasonApplicationFailure),
164+
workv1alpha2.WithGracePeriodSeconds(binding.Spec.Failover.Application.GracePeriodSeconds)))
161165
} else {
162166
err := fmt.Errorf("GracefulEviction featureGate must be enabled when purgeMode is %s", policyv1alpha1.Graciously)
163167
klog.Error(err)
164168
return err
165169
}
166170
case policyv1alpha1.Never:
167171
if features.FeatureGate.Enabled(features.GracefulEviction) {
168-
binding.Spec.GracefulEvictCluster(cluster, workv1alpha2.NewTaskOptions(workv1alpha2.WithProducer(CRBApplicationFailoverControllerName), workv1alpha2.WithReason(workv1alpha2.EvictionReasonApplicationFailure), workv1alpha2.WithSuppressDeletion(ptr.To[bool](true))))
172+
binding.Spec.GracefulEvictCluster(cluster, workv1alpha2.NewTaskOptions(
173+
workv1alpha2.WithPurgeMode(policyv1alpha1.Never),
174+
workv1alpha2.WithProducer(CRBApplicationFailoverControllerName),
175+
workv1alpha2.WithReason(workv1alpha2.EvictionReasonApplicationFailure),
176+
workv1alpha2.WithSuppressDeletion(ptr.To[bool](true))))
169177
} else {
170178
err := fmt.Errorf("GracefulEviction featureGate must be enabled when purgeMode is %s", policyv1alpha1.Never)
171179
klog.Error(err)
172180
return err
173181
}
174182
case policyv1alpha1.Immediately:
175-
binding.Spec.RemoveCluster(cluster)
183+
binding.Spec.GracefulEvictCluster(cluster, workv1alpha2.NewTaskOptions(
184+
workv1alpha2.WithPurgeMode(policyv1alpha1.Immediately),
185+
workv1alpha2.WithProducer(CRBApplicationFailoverControllerName),
186+
workv1alpha2.WithReason(workv1alpha2.EvictionReasonApplicationFailure)))
176187
}
177188
}
178189

pkg/controllers/applicationfailover/rb_application_failover_controller.go

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -157,24 +157,33 @@ func (c *RBApplicationFailoverController) evictBinding(binding *workv1alpha2.Res
157157
switch binding.Spec.Failover.Application.PurgeMode {
158158
case policyv1alpha1.Graciously:
159159
if features.FeatureGate.Enabled(features.GracefulEviction) {
160-
binding.Spec.GracefulEvictCluster(cluster, workv1alpha2.NewTaskOptions(workv1alpha2.WithProducer(RBApplicationFailoverControllerName),
161-
workv1alpha2.WithReason(workv1alpha2.EvictionReasonApplicationFailure), workv1alpha2.WithGracePeriodSeconds(binding.Spec.Failover.Application.GracePeriodSeconds)))
160+
binding.Spec.GracefulEvictCluster(cluster, workv1alpha2.NewTaskOptions(
161+
workv1alpha2.WithPurgeMode(policyv1alpha1.Graciously),
162+
workv1alpha2.WithProducer(RBApplicationFailoverControllerName),
163+
workv1alpha2.WithReason(workv1alpha2.EvictionReasonApplicationFailure),
164+
workv1alpha2.WithGracePeriodSeconds(binding.Spec.Failover.Application.GracePeriodSeconds)))
162165
} else {
163166
err := fmt.Errorf("GracefulEviction featureGate must be enabled when purgeMode is %s", policyv1alpha1.Graciously)
164167
klog.Error(err)
165168
return err
166169
}
167170
case policyv1alpha1.Never:
168171
if features.FeatureGate.Enabled(features.GracefulEviction) {
169-
binding.Spec.GracefulEvictCluster(cluster, workv1alpha2.NewTaskOptions(workv1alpha2.WithProducer(RBApplicationFailoverControllerName),
170-
workv1alpha2.WithReason(workv1alpha2.EvictionReasonApplicationFailure), workv1alpha2.WithSuppressDeletion(ptr.To[bool](true))))
172+
binding.Spec.GracefulEvictCluster(cluster, workv1alpha2.NewTaskOptions(
173+
workv1alpha2.WithPurgeMode(policyv1alpha1.Never),
174+
workv1alpha2.WithProducer(RBApplicationFailoverControllerName),
175+
workv1alpha2.WithReason(workv1alpha2.EvictionReasonApplicationFailure),
176+
workv1alpha2.WithSuppressDeletion(ptr.To[bool](true))))
171177
} else {
172178
err := fmt.Errorf("GracefulEviction featureGate must be enabled when purgeMode is %s", policyv1alpha1.Never)
173179
klog.Error(err)
174180
return err
175181
}
176182
case policyv1alpha1.Immediately:
177-
binding.Spec.RemoveCluster(cluster)
183+
binding.Spec.GracefulEvictCluster(cluster, workv1alpha2.NewTaskOptions(
184+
workv1alpha2.WithPurgeMode(policyv1alpha1.Immediately),
185+
workv1alpha2.WithProducer(RBApplicationFailoverControllerName),
186+
workv1alpha2.WithReason(workv1alpha2.EvictionReasonApplicationFailure)))
178187
}
179188
}
180189

0 commit comments

Comments
 (0)