mirror of
https://github.com/mariadb-operator/mariadb-operator.git
synced 2025-08-19 16:24:15 +00:00
Refactor suspend
This commit is contained in:
@ -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
|
||||||
|
@ -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)
|
||||||
|
@ -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",
|
||||||
|
})
|
||||||
|
}
|
||||||
|
Reference in New Issue
Block a user