Refactor suspend

This commit is contained in:
mmontes11
2024-08-02 14:53:13 +02:00
committed by Martin Montes
parent 4d4c8467b8
commit be15667f40
3 changed files with 25 additions and 20 deletions

View File

@ -114,15 +114,6 @@ func (r *MariaDBReconciler) Reconcile(ctx context.Context, req ctrl.Request) (ct
if err := r.Get(ctx, req.NamespacedName, &mariadb); err != nil {
return ctrl.Result{}, client.IgnoreNotFound(err)
}
if mariadb.IsSuspended() {
log.FromContext(ctx).V(1).Info("MariaDB is suspended. Skipping...")
return ctrl.Result{}, r.patchStatus(ctx, &mariadb, func(status *mariadbv1alpha1.MariaDBStatus) error {
condition.SetReadyWithMariaDB(&mariadb.Status, nil, &mariadb)
return nil
})
}
phases := []reconcilePhaseMariaDB{
{
Name: "Spec",
@ -132,6 +123,10 @@ func (r *MariaDBReconciler) Reconcile(ctx context.Context, req ctrl.Request) (ct
Name: "Status",
Reconcile: r.reconcileStatus,
},
{
Name: "Suspend",
Reconcile: r.reconcileSuspend,
},
{
Name: "Secret",
Reconcile: r.reconcileSecret,
@ -788,6 +783,14 @@ func (r *MariaDBReconciler) setSpecDefaults(ctx context.Context, mariadb *mariad
})
}
func (r *MariaDBReconciler) reconcileSuspend(ctx context.Context, mariadb *mariadbv1alpha1.MariaDB) (ctrl.Result, error) {
if mariadb.IsSuspended() {
log.FromContext(ctx).V(1).Info("MariaDB is suspended. Skipping...")
return ctrl.Result{RequeueAfter: 10 * time.Second}, nil
}
return ctrl.Result{}, nil
}
func (r *MariaDBReconciler) reconcileConnection(ctx context.Context, mariadb *mariadbv1alpha1.MariaDB) (ctrl.Result, error) {
if !mariadb.IsInitialDataEnabled() {
return ctrl.Result{}, nil

View File

@ -49,6 +49,10 @@ func (r *MariaDBReconciler) reconcileStatus(ctx context.Context, mdb *mariadbv1a
}
return ctrl.Result{}, r.patchStatus(ctx, mdb, func(status *mariadbv1alpha1.MariaDBStatus) error {
if mdb.IsSuspended() {
condition.SetReadySuspended(status)
return nil
}
status.Replicas = sts.Status.ReadyReplicas
defaultPrimary(mdb)
setMaxScalePrimary(mdb, mxsPrimaryPodIndex)

View File

@ -73,17 +73,6 @@ func SetReadyWithStatefulSet(c Conditioner, sts *appsv1.StatefulSet) {
}
func SetReadyWithMariaDB(c Conditioner, sts *appsv1.StatefulSet, mdb *mariadbv1alpha1.MariaDB) {
if mdb.IsSuspended() {
c.SetCondition(metav1.Condition{
Type: mariadbv1alpha1.ConditionTypeReady,
Status: metav1.ConditionFalse,
Reason: mariadbv1alpha1.ConditionReasonSuspended,
Message: "Suspended",
})
return
}
if mdb.IsUpdating() {
c.SetCondition(metav1.Condition{
Type: mariadbv1alpha1.ConditionTypeReady,
@ -209,3 +198,12 @@ func SetReadyStorageResized(c Conditioner) {
Message: "Storage resized",
})
}
func SetReadySuspended(c Conditioner) {
c.SetCondition(metav1.Condition{
Type: mariadbv1alpha1.ConditionTypeReady,
Status: metav1.ConditionFalse,
Reason: mariadbv1alpha1.ConditionReasonSuspended,
Message: "Suspended",
})
}