@@ -17,62 +17,35 @@ import (
17
17
"github.com/ydb-platform/ydb-kubernetes-operator/internal/resources"
18
18
)
19
19
20
- func (r * Reconciler ) processSkipInitPipeline (
20
+ func (r * Reconciler ) setInitPipelineStatus (
21
21
ctx context.Context ,
22
22
database * resources.DatabaseBuilder ,
23
23
) (bool , ctrl.Result , error ) {
24
- r .Log .Info ("running step processSkipInitPipeline" )
25
- r .Log .Info ("Database initialization disabled (with annotation), proceed with caution" )
26
-
27
- r .Recorder .Event (
28
- database ,
29
- corev1 .EventTypeWarning ,
30
- "SkippingInit" ,
31
- "Skipping database creation due to skip annotation present, be careful!" ,
32
- )
33
-
34
- return r .setInitDatabaseCompleted (
35
- ctx ,
36
- database ,
37
- "Database creation not performed because initialization is skipped" ,
38
- )
39
- }
40
-
41
- func (r * Reconciler ) setInitialStatus (
42
- ctx context.Context ,
43
- database * resources.DatabaseBuilder ,
44
- ) (bool , ctrl.Result , error ) {
45
- r .Log .Info ("running step setInitialStatus" )
46
-
47
- if meta .IsStatusConditionTrue (database .Status .Conditions , OldDatabaseInitializedCondition ) {
24
+ if database .Status .State == DatabasePreparing {
48
25
meta .SetStatusCondition (& database .Status .Conditions , metav1.Condition {
49
26
Type : DatabaseInitializedCondition ,
50
- Status : "True" ,
51
- Reason : ReasonCompleted ,
52
- Message : "Database initialized successfully " ,
27
+ Status : metav1 . ConditionFalse ,
28
+ Reason : ReasonInProgress ,
29
+ Message : "Database has not been initialized yet " ,
53
30
})
54
- database .Status .State = DatabaseReady
55
- return r .updateStatus (ctx , database )
31
+ database .Status .State = DatabaseInitializing
32
+ return r .updateStatus (ctx , database , StatusUpdateRequeueDelay )
56
33
}
57
34
35
+ // This block is special internal logic that skips all Database initialization.
58
36
if value , ok := database .Annotations [v1alpha1 .AnnotationSkipInitialization ]; ok && value == v1alpha1 .AnnotationValueTrue {
59
- if meta .FindStatusCondition (database .Status .Conditions , DatabaseInitializedCondition ) == nil ||
60
- meta .IsStatusConditionFalse (database .Status .Conditions , DatabaseInitializedCondition ) {
61
- return r .processSkipInitPipeline (ctx , database )
62
- }
63
- return Stop , ctrl.Result {RequeueAfter : DefaultRequeueDelay }, nil
37
+ r .Log .Info ("Database initialization disabled (with annotation), proceed with caution" )
38
+ r .Recorder .Event (
39
+ database ,
40
+ corev1 .EventTypeWarning ,
41
+ "SkippingInit" ,
42
+ "Skipping initialization due to skip annotation present, be careful!" ,
43
+ )
44
+ return r .setInitDatabaseCompleted (ctx , database , "Database initialization not performed because initialization is skipped" )
64
45
}
65
46
66
- if database .Status .State == DatabasePending ||
67
- meta .FindStatusCondition (database .Status .Conditions , DatabaseInitializedCondition ) == nil {
68
- meta .SetStatusCondition (& database .Status .Conditions , metav1.Condition {
69
- Type : DatabaseInitializedCondition ,
70
- Status : "False" ,
71
- Reason : ReasonInProgress ,
72
- Message : "Database has not been initialized yet" ,
73
- })
74
- database .Status .State = DatabasePreparing
75
- return r .updateStatus (ctx , database )
47
+ if meta .IsStatusConditionTrue (database .Status .Conditions , OldDatabaseInitializedCondition ) {
48
+ return r .setInitDatabaseCompleted (ctx , database , "Database initialized successfully" )
76
49
}
77
50
78
51
return Continue , ctrl.Result {Requeue : false }, nil
@@ -85,26 +58,17 @@ func (r *Reconciler) setInitDatabaseCompleted(
85
58
) (bool , ctrl.Result , error ) {
86
59
meta .SetStatusCondition (& database .Status .Conditions , metav1.Condition {
87
60
Type : DatabaseInitializedCondition ,
88
- Status : "True" ,
61
+ Status : metav1 . ConditionTrue ,
89
62
Reason : ReasonCompleted ,
90
63
Message : message ,
91
64
})
92
- database .Status .State = DatabaseProvisioning
93
-
94
- return r .updateStatus (ctx , database )
65
+ return r .updateStatus (ctx , database , StatusUpdateRequeueDelay )
95
66
}
96
67
97
- func (r * Reconciler ) initializeDatabase (
68
+ func (r * Reconciler ) initializeTenant (
98
69
ctx context.Context ,
99
70
database * resources.DatabaseBuilder ,
100
71
) (bool , ctrl.Result , error ) {
101
- r .Log .Info ("running step initializeDatabase" )
102
-
103
- if database .Status .State == DatabasePreparing {
104
- database .Status .State = DatabaseInitializing
105
- return r .updateStatus (ctx , database )
106
- }
107
-
108
72
path := database .GetDatabasePath ()
109
73
var storageUnits []v1alpha1.StorageUnit
110
74
var shared bool
@@ -150,16 +114,15 @@ func (r *Reconciler) initializeDatabase(
150
114
return Stop , ctrl.Result {RequeueAfter : SharedDatabaseAwaitRequeueDelay }, err
151
115
}
152
116
153
- if sharedDatabaseCr .Status .State != "Ready" {
117
+ if ! meta . IsStatusConditionTrue ( sharedDatabaseCr .Status .Conditions , DatabaseProvisionedCondition ) {
154
118
r .Recorder .Event (
155
119
database ,
156
120
corev1 .EventTypeWarning ,
157
121
"Pending" ,
158
122
fmt .Sprintf (
159
- "Referenced shared Database (%s, %s) in a bad state: %s != Ready " ,
123
+ "Referenced shared Database (%s, %s) is not Provisioned " ,
160
124
database .Spec .ServerlessResources .SharedDatabaseRef .Name ,
161
125
database .Spec .ServerlessResources .SharedDatabaseRef .Namespace ,
162
- sharedDatabaseCr .Status .State ,
163
126
),
164
127
)
165
128
return Stop , ctrl.Result {RequeueAfter : SharedDatabaseAwaitRequeueDelay }, err
@@ -213,7 +176,12 @@ func (r *Reconciler) initializeDatabase(
213
176
"InitializingFailed" ,
214
177
fmt .Sprintf ("Error creating tenant %s: %s" , tenant .Path , err ),
215
178
)
216
- return Stop , ctrl.Result {RequeueAfter : DatabaseInitializationRequeueDelay }, err
179
+ meta .SetStatusCondition (& database .Status .Conditions , metav1.Condition {
180
+ Type : DatabaseInitializedCondition ,
181
+ Status : metav1 .ConditionFalse ,
182
+ Reason : ReasonInProgress ,
183
+ })
184
+ return r .updateStatus (ctx , database , DatabaseInitializationRequeueDelay )
217
185
}
218
186
r .Recorder .Event (
219
187
database ,
@@ -222,12 +190,5 @@ func (r *Reconciler) initializeDatabase(
222
190
fmt .Sprintf ("Tenant %s created" , tenant .Path ),
223
191
)
224
192
225
- r .Recorder .Event (
226
- database ,
227
- corev1 .EventTypeNormal ,
228
- "DatabaseReady" ,
229
- "Database is initialized" ,
230
- )
231
-
232
193
return r .setInitDatabaseCompleted (ctx , database , "Database initialized successfully" )
233
194
}
0 commit comments