Skip to content

Commit 42846ea

Browse files
committed
sync changes from YDBOPS-9612
1 parent 8e802e3 commit 42846ea

File tree

4 files changed

+146
-192
lines changed

4 files changed

+146
-192
lines changed

internal/controllers/databasenodeset/sync.go

Lines changed: 73 additions & 73 deletions
Original file line numberDiff line numberDiff line change
@@ -274,6 +274,79 @@ func (r *Reconciler) waitForStatefulSetToScale(
274274
return Continue, ctrl.Result{Requeue: false}, nil
275275
}
276276

277+
func (r *Reconciler) handlePauseResume(
278+
ctx context.Context,
279+
databaseNodeSet *resources.DatabaseNodeSetResource,
280+
) (bool, ctrl.Result, error) {
281+
r.Log.Info("running step handlePauseResume")
282+
283+
if databaseNodeSet.Status.State == DatabaseNodeSetProvisioning {
284+
if databaseNodeSet.Spec.Pause {
285+
meta.SetStatusCondition(&databaseNodeSet.Status.Conditions, metav1.Condition{
286+
Type: NodeSetPausedCondition,
287+
Status: metav1.ConditionTrue,
288+
Reason: ReasonCompleted,
289+
})
290+
databaseNodeSet.Status.State = DatabaseNodeSetPaused
291+
} else {
292+
meta.SetStatusCondition(&databaseNodeSet.Status.Conditions, metav1.Condition{
293+
Type: NodeSetReadyCondition,
294+
Status: metav1.ConditionTrue,
295+
Reason: ReasonCompleted,
296+
})
297+
databaseNodeSet.Status.State = DatabaseNodeSetReady
298+
}
299+
return r.updateStatus(ctx, databaseNodeSet, StatusUpdateRequeueDelay)
300+
}
301+
302+
if databaseNodeSet.Status.State == DatabaseNodeSetReady && databaseNodeSet.Spec.Pause {
303+
r.Log.Info("`pause: true` was noticed, moving DatabaseNodeSet to state `Paused`")
304+
meta.SetStatusCondition(&databaseNodeSet.Status.Conditions, metav1.Condition{
305+
Type: NodeSetReadyCondition,
306+
Status: metav1.ConditionFalse,
307+
Reason: ReasonNotRequired,
308+
Message: "Transitioning to state Paused",
309+
})
310+
databaseNodeSet.Status.State = DatabaseNodeSetPaused
311+
return r.updateStatus(ctx, databaseNodeSet, StatusUpdateRequeueDelay)
312+
}
313+
314+
if databaseNodeSet.Status.State == DatabaseNodeSetPaused && !databaseNodeSet.Spec.Pause {
315+
r.Log.Info("`pause: false` was noticed, moving DatabaseNodeSet to state `Ready`")
316+
meta.SetStatusCondition(&databaseNodeSet.Status.Conditions, metav1.Condition{
317+
Type: NodeSetPausedCondition,
318+
Status: metav1.ConditionFalse,
319+
Reason: ReasonNotRequired,
320+
Message: "Transitioning to state Ready",
321+
})
322+
databaseNodeSet.Status.State = DatabaseNodeSetReady
323+
return r.updateStatus(ctx, databaseNodeSet, StatusUpdateRequeueDelay)
324+
}
325+
326+
if databaseNodeSet.Spec.Pause {
327+
if !meta.IsStatusConditionTrue(databaseNodeSet.Status.Conditions, NodeSetPausedCondition) {
328+
meta.SetStatusCondition(&databaseNodeSet.Status.Conditions, metav1.Condition{
329+
Type: NodeSetPausedCondition,
330+
Status: metav1.ConditionTrue,
331+
Reason: ReasonCompleted,
332+
})
333+
return r.updateStatus(ctx, databaseNodeSet, StatusUpdateRequeueDelay)
334+
}
335+
} else {
336+
if !meta.IsStatusConditionTrue(databaseNodeSet.Status.Conditions, NodeSetReadyCondition) {
337+
meta.SetStatusCondition(&databaseNodeSet.Status.Conditions, metav1.Condition{
338+
Type: NodeSetReadyCondition,
339+
Status: metav1.ConditionTrue,
340+
Reason: ReasonCompleted,
341+
})
342+
return r.updateStatus(ctx, databaseNodeSet, StatusUpdateRequeueDelay)
343+
}
344+
}
345+
346+
r.Log.Info("complete step handlePauseResume")
347+
return Continue, ctrl.Result{}, nil
348+
}
349+
277350
func (r *Reconciler) updateStatus(
278351
ctx context.Context,
279352
databaseNodeSet *resources.DatabaseNodeSetResource,
@@ -348,76 +421,3 @@ func shouldIgnoreDatabaseNodeSetChange(databaseNodeSet *resources.DatabaseNodeSe
348421
return false
349422
}
350423
}
351-
352-
func (r *Reconciler) handlePauseResume(
353-
ctx context.Context,
354-
databaseNodeSet *resources.DatabaseNodeSetResource,
355-
) (bool, ctrl.Result, error) {
356-
r.Log.Info("running step handlePauseResume")
357-
358-
if databaseNodeSet.Status.State == DatabaseNodeSetProvisioning {
359-
if databaseNodeSet.Spec.Pause {
360-
meta.SetStatusCondition(&databaseNodeSet.Status.Conditions, metav1.Condition{
361-
Type: NodeSetPausedCondition,
362-
Status: metav1.ConditionTrue,
363-
Reason: ReasonCompleted,
364-
})
365-
databaseNodeSet.Status.State = DatabaseNodeSetPaused
366-
} else {
367-
meta.SetStatusCondition(&databaseNodeSet.Status.Conditions, metav1.Condition{
368-
Type: NodeSetReadyCondition,
369-
Status: metav1.ConditionTrue,
370-
Reason: ReasonCompleted,
371-
})
372-
databaseNodeSet.Status.State = DatabaseNodeSetReady
373-
}
374-
return r.updateStatus(ctx, databaseNodeSet, StatusUpdateRequeueDelay)
375-
}
376-
377-
if databaseNodeSet.Status.State == DatabaseNodeSetReady && databaseNodeSet.Spec.Pause {
378-
r.Log.Info("`pause: true` was noticed, moving DatabaseNodeSet to state `Paused`")
379-
meta.SetStatusCondition(&databaseNodeSet.Status.Conditions, metav1.Condition{
380-
Type: NodeSetReadyCondition,
381-
Status: metav1.ConditionFalse,
382-
Reason: ReasonNotRequired,
383-
Message: "Transitioning to state Paused",
384-
})
385-
databaseNodeSet.Status.State = DatabaseNodeSetPaused
386-
return r.updateStatus(ctx, databaseNodeSet, StatusUpdateRequeueDelay)
387-
}
388-
389-
if databaseNodeSet.Status.State == DatabaseNodeSetPaused && !databaseNodeSet.Spec.Pause {
390-
r.Log.Info("`pause: false` was noticed, moving DatabaseNodeSet to state `Ready`")
391-
meta.SetStatusCondition(&databaseNodeSet.Status.Conditions, metav1.Condition{
392-
Type: NodeSetPausedCondition,
393-
Status: metav1.ConditionFalse,
394-
Reason: ReasonNotRequired,
395-
Message: "Transitioning to state Ready",
396-
})
397-
databaseNodeSet.Status.State = DatabaseNodeSetReady
398-
return r.updateStatus(ctx, databaseNodeSet, StatusUpdateRequeueDelay)
399-
}
400-
401-
if databaseNodeSet.Spec.Pause {
402-
if !meta.IsStatusConditionTrue(databaseNodeSet.Status.Conditions, NodeSetPausedCondition) {
403-
meta.SetStatusCondition(&databaseNodeSet.Status.Conditions, metav1.Condition{
404-
Type: NodeSetPausedCondition,
405-
Status: metav1.ConditionTrue,
406-
Reason: ReasonCompleted,
407-
})
408-
return r.updateStatus(ctx, databaseNodeSet, StatusUpdateRequeueDelay)
409-
}
410-
} else {
411-
if !meta.IsStatusConditionTrue(databaseNodeSet.Status.Conditions, NodeSetReadyCondition) {
412-
meta.SetStatusCondition(&databaseNodeSet.Status.Conditions, metav1.Condition{
413-
Type: NodeSetReadyCondition,
414-
Status: metav1.ConditionTrue,
415-
Reason: ReasonCompleted,
416-
})
417-
return r.updateStatus(ctx, databaseNodeSet, StatusUpdateRequeueDelay)
418-
}
419-
}
420-
421-
r.Log.Info("complete step handlePauseResume")
422-
return Continue, ctrl.Result{}, nil
423-
}

internal/controllers/storagenodeset/sync.go

Lines changed: 73 additions & 73 deletions
Original file line numberDiff line numberDiff line change
@@ -290,6 +290,79 @@ func (r *Reconciler) waitForStatefulSetToScale(
290290
return Continue, ctrl.Result{}, nil
291291
}
292292

293+
func (r *Reconciler) handlePauseResume(
294+
ctx context.Context,
295+
storageNodeSet *resources.StorageNodeSetResource,
296+
) (bool, ctrl.Result, error) {
297+
r.Log.Info("running step handlePauseResume")
298+
299+
if storageNodeSet.Status.State == StorageNodeSetProvisioning {
300+
if storageNodeSet.Spec.Pause {
301+
meta.SetStatusCondition(&storageNodeSet.Status.Conditions, metav1.Condition{
302+
Type: NodeSetPausedCondition,
303+
Status: metav1.ConditionTrue,
304+
Reason: ReasonCompleted,
305+
})
306+
storageNodeSet.Status.State = StorageNodeSetPaused
307+
} else {
308+
meta.SetStatusCondition(&storageNodeSet.Status.Conditions, metav1.Condition{
309+
Type: NodeSetReadyCondition,
310+
Status: metav1.ConditionTrue,
311+
Reason: ReasonCompleted,
312+
})
313+
storageNodeSet.Status.State = StorageNodeSetReady
314+
}
315+
return r.updateStatus(ctx, storageNodeSet, StatusUpdateRequeueDelay)
316+
}
317+
318+
if storageNodeSet.Status.State == StorageNodeSetReady && storageNodeSet.Spec.Pause {
319+
r.Log.Info("`pause: true` was noticed, moving StorageNodeSet to state `Paused`")
320+
meta.SetStatusCondition(&storageNodeSet.Status.Conditions, metav1.Condition{
321+
Type: NodeSetReadyCondition,
322+
Status: metav1.ConditionFalse,
323+
Reason: ReasonNotRequired,
324+
Message: "Transitioning to state Paused",
325+
})
326+
storageNodeSet.Status.State = StorageNodeSetPaused
327+
return r.updateStatus(ctx, storageNodeSet, StatusUpdateRequeueDelay)
328+
}
329+
330+
if storageNodeSet.Status.State == StorageNodeSetPaused && !storageNodeSet.Spec.Pause {
331+
r.Log.Info("`pause: false` was noticed, moving StorageNodeSet to state `Ready`")
332+
meta.SetStatusCondition(&storageNodeSet.Status.Conditions, metav1.Condition{
333+
Type: NodeSetPausedCondition,
334+
Status: metav1.ConditionFalse,
335+
Reason: ReasonNotRequired,
336+
Message: "Transitioning to state Ready",
337+
})
338+
storageNodeSet.Status.State = StorageNodeSetReady
339+
return r.updateStatus(ctx, storageNodeSet, StatusUpdateRequeueDelay)
340+
}
341+
342+
if storageNodeSet.Spec.Pause {
343+
if !meta.IsStatusConditionTrue(storageNodeSet.Status.Conditions, NodeSetPausedCondition) {
344+
meta.SetStatusCondition(&storageNodeSet.Status.Conditions, metav1.Condition{
345+
Type: NodeSetPausedCondition,
346+
Status: metav1.ConditionTrue,
347+
Reason: ReasonCompleted,
348+
})
349+
return r.updateStatus(ctx, storageNodeSet, StatusUpdateRequeueDelay)
350+
}
351+
} else {
352+
if !meta.IsStatusConditionTrue(storageNodeSet.Status.Conditions, NodeSetReadyCondition) {
353+
meta.SetStatusCondition(&storageNodeSet.Status.Conditions, metav1.Condition{
354+
Type: NodeSetReadyCondition,
355+
Status: metav1.ConditionTrue,
356+
Reason: ReasonCompleted,
357+
})
358+
return r.updateStatus(ctx, storageNodeSet, StatusUpdateRequeueDelay)
359+
}
360+
}
361+
362+
r.Log.Info("complete step handlePauseResume")
363+
return Continue, ctrl.Result{}, nil
364+
}
365+
293366
func (r *Reconciler) updateStatus(
294367
ctx context.Context,
295368
storageNodeSet *resources.StorageNodeSetResource,
@@ -364,76 +437,3 @@ func shouldIgnoreStorageNodeSetChange(storageNodeSet *resources.StorageNodeSetRe
364437
return false
365438
}
366439
}
367-
368-
func (r *Reconciler) handlePauseResume(
369-
ctx context.Context,
370-
storageNodeSet *resources.StorageNodeSetResource,
371-
) (bool, ctrl.Result, error) {
372-
r.Log.Info("running step handlePauseResume")
373-
374-
if storageNodeSet.Status.State == StorageNodeSetProvisioning {
375-
if storageNodeSet.Spec.Pause {
376-
meta.SetStatusCondition(&storageNodeSet.Status.Conditions, metav1.Condition{
377-
Type: NodeSetPausedCondition,
378-
Status: metav1.ConditionTrue,
379-
Reason: ReasonCompleted,
380-
})
381-
storageNodeSet.Status.State = StorageNodeSetPaused
382-
} else {
383-
meta.SetStatusCondition(&storageNodeSet.Status.Conditions, metav1.Condition{
384-
Type: NodeSetReadyCondition,
385-
Status: metav1.ConditionTrue,
386-
Reason: ReasonCompleted,
387-
})
388-
storageNodeSet.Status.State = StorageNodeSetReady
389-
}
390-
return r.updateStatus(ctx, storageNodeSet, StatusUpdateRequeueDelay)
391-
}
392-
393-
if storageNodeSet.Status.State == StorageNodeSetReady && storageNodeSet.Spec.Pause {
394-
r.Log.Info("`pause: true` was noticed, moving StorageNodeSet to state `Paused`")
395-
meta.SetStatusCondition(&storageNodeSet.Status.Conditions, metav1.Condition{
396-
Type: NodeSetReadyCondition,
397-
Status: metav1.ConditionFalse,
398-
Reason: ReasonNotRequired,
399-
Message: "Transitioning to state Paused",
400-
})
401-
storageNodeSet.Status.State = StorageNodeSetPaused
402-
return r.updateStatus(ctx, storageNodeSet, StatusUpdateRequeueDelay)
403-
}
404-
405-
if storageNodeSet.Status.State == StorageNodeSetPaused && !storageNodeSet.Spec.Pause {
406-
r.Log.Info("`pause: false` was noticed, moving StorageNodeSet to state `Ready`")
407-
meta.SetStatusCondition(&storageNodeSet.Status.Conditions, metav1.Condition{
408-
Type: NodeSetPausedCondition,
409-
Status: metav1.ConditionFalse,
410-
Reason: ReasonNotRequired,
411-
Message: "Transitioning to state Ready",
412-
})
413-
storageNodeSet.Status.State = StorageNodeSetReady
414-
return r.updateStatus(ctx, storageNodeSet, StatusUpdateRequeueDelay)
415-
}
416-
417-
if storageNodeSet.Spec.Pause {
418-
if !meta.IsStatusConditionTrue(storageNodeSet.Status.Conditions, NodeSetPausedCondition) {
419-
meta.SetStatusCondition(&storageNodeSet.Status.Conditions, metav1.Condition{
420-
Type: NodeSetPausedCondition,
421-
Status: metav1.ConditionTrue,
422-
Reason: ReasonCompleted,
423-
})
424-
return r.updateStatus(ctx, storageNodeSet, StatusUpdateRequeueDelay)
425-
}
426-
} else {
427-
if !meta.IsStatusConditionTrue(storageNodeSet.Status.Conditions, NodeSetReadyCondition) {
428-
meta.SetStatusCondition(&storageNodeSet.Status.Conditions, metav1.Condition{
429-
Type: NodeSetReadyCondition,
430-
Status: metav1.ConditionTrue,
431-
Reason: ReasonCompleted,
432-
})
433-
return r.updateStatus(ctx, storageNodeSet, StatusUpdateRequeueDelay)
434-
}
435-
}
436-
437-
r.Log.Info("complete step handlePauseResume")
438-
return Continue, ctrl.Result{}, nil
439-
}

internal/resources/database.go

Lines changed: 0 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,9 @@ package resources
22

33
import (
44
corev1 "k8s.io/api/core/v1"
5-
"k8s.io/apimachinery/pkg/api/meta"
6-
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
75
"k8s.io/client-go/rest"
8-
ctrl "sigs.k8s.io/controller-runtime"
96

107
api "github.com/ydb-platform/ydb-kubernetes-operator/api/v1alpha1"
11-
. "github.com/ydb-platform/ydb-kubernetes-operator/internal/controllers/constants" //nolint:revive,stylecheck
128
"github.com/ydb-platform/ydb-kubernetes-operator/internal/labels"
139
"github.com/ydb-platform/ydb-kubernetes-operator/internal/metrics"
1410
)
@@ -24,25 +20,6 @@ func NewDatabase(ydbCr *api.Database) DatabaseBuilder {
2420
return DatabaseBuilder{Database: cr, Storage: nil}
2521
}
2622

27-
func (b *DatabaseBuilder) SetStatusOnFirstReconcile() (bool, ctrl.Result, error) {
28-
if b.Status.Conditions == nil {
29-
b.Status.Conditions = []metav1.Condition{}
30-
31-
if b.Spec.Pause {
32-
meta.SetStatusCondition(&b.Status.Conditions, metav1.Condition{
33-
Type: DatabasePausedCondition,
34-
Status: "True",
35-
Reason: ReasonCompleted,
36-
Message: "State Database set to Paused",
37-
})
38-
39-
return Stop, ctrl.Result{RequeueAfter: StatusUpdateRequeueDelay}, nil
40-
}
41-
}
42-
43-
return Continue, ctrl.Result{}, nil
44-
}
45-
4623
func (b *DatabaseBuilder) Unwrap() *api.Database {
4724
return b.DeepCopy()
4825
}

internal/resources/storage.go

Lines changed: 0 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,9 @@ package resources
22

33
import (
44
corev1 "k8s.io/api/core/v1"
5-
"k8s.io/apimachinery/pkg/api/meta"
6-
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
75
"k8s.io/client-go/rest"
8-
ctrl "sigs.k8s.io/controller-runtime"
96

107
api "github.com/ydb-platform/ydb-kubernetes-operator/api/v1alpha1"
11-
. "github.com/ydb-platform/ydb-kubernetes-operator/internal/controllers/constants" //nolint:revive,stylecheck
128
"github.com/ydb-platform/ydb-kubernetes-operator/internal/labels"
139
"github.com/ydb-platform/ydb-kubernetes-operator/internal/metrics"
1410
)
@@ -23,25 +19,6 @@ func NewCluster(ydbCr *api.Storage) StorageClusterBuilder {
2319
return StorageClusterBuilder{cr}
2420
}
2521

26-
func (b *StorageClusterBuilder) SetStatusOnFirstReconcile() (bool, ctrl.Result, error) {
27-
if b.Status.Conditions == nil {
28-
b.Status.Conditions = []metav1.Condition{}
29-
30-
if b.Spec.Pause {
31-
meta.SetStatusCondition(&b.Status.Conditions, metav1.Condition{
32-
Type: StoragePausedCondition,
33-
Status: "True",
34-
Reason: ReasonCompleted,
35-
Message: "State Storage set to Paused",
36-
})
37-
38-
return Stop, ctrl.Result{RequeueAfter: StatusUpdateRequeueDelay}, nil
39-
}
40-
}
41-
42-
return Continue, ctrl.Result{}, nil
43-
}
44-
4522
func (b *StorageClusterBuilder) Unwrap() *api.Storage {
4623
return b.DeepCopy()
4724
}

0 commit comments

Comments
 (0)