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 { if err := r.Get(ctx, req.NamespacedName, &mariadb); err != nil {
return ctrl.Result{}, client.IgnoreNotFound(err) 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{ phases := []reconcilePhaseMariaDB{
{ {
Name: "Spec", Name: "Spec",
@ -132,6 +123,10 @@ func (r *MariaDBReconciler) Reconcile(ctx context.Context, req ctrl.Request) (ct
Name: "Status", Name: "Status",
Reconcile: r.reconcileStatus, Reconcile: r.reconcileStatus,
}, },
{
Name: "Suspend",
Reconcile: r.reconcileSuspend,
},
{ {
Name: "Secret", Name: "Secret",
Reconcile: r.reconcileSecret, 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) { func (r *MariaDBReconciler) reconcileConnection(ctx context.Context, mariadb *mariadbv1alpha1.MariaDB) (ctrl.Result, error) {
if !mariadb.IsInitialDataEnabled() { if !mariadb.IsInitialDataEnabled() {
return ctrl.Result{}, nil 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 { 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 status.Replicas = sts.Status.ReadyReplicas
defaultPrimary(mdb) defaultPrimary(mdb)
setMaxScalePrimary(mdb, mxsPrimaryPodIndex) 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) { 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() { if mdb.IsUpdating() {
c.SetCondition(metav1.Condition{ c.SetCondition(metav1.Condition{
Type: mariadbv1alpha1.ConditionTypeReady, Type: mariadbv1alpha1.ConditionTypeReady,
@ -209,3 +198,12 @@ func SetReadyStorageResized(c Conditioner) {
Message: "Storage resized", Message: "Storage resized",
}) })
} }
func SetReadySuspended(c Conditioner) {
c.SetCondition(metav1.Condition{
Type: mariadbv1alpha1.ConditionTypeReady,
Status: metav1.ConditionFalse,
Reason: mariadbv1alpha1.ConditionReasonSuspended,
Message: "Suspended",
})
}