Skip to content

Commit 51663cb

Browse files
cniackzshtripat
andcommitted
Wait for MinIO to be ready before proceeding with any further tasks
Apply suggestions from code review Co-authored-by: Pedro Juarez <[email protected]> Update pkg/controller/main-controller.go Co-authored-by: Shubhendu <[email protected]>
1 parent f07d0af commit 51663cb

File tree

2 files changed

+17
-1
lines changed

2 files changed

+17
-1
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,3 +19,4 @@ examples/**/obj/
1919
public.crt
2020
go_build_operator_
2121
operator.iml
22+
.run/

pkg/controller/main-controller.go

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,12 @@ const (
8989
MessageResourceExists = "Resource %q already exists and is not managed by MinIO Operator"
9090
)
9191

92+
// Standard Events for Tenant
93+
const (
94+
UsersCreationFailedReason = "UsersCreationFailed"
95+
WaitingMinIOIsHealthyReason = "WaitingMinIOIsHealthy"
96+
)
97+
9298
// Standard Status messages for Tenant
9399
const (
94100
StatusInitialized = "Initialized"
@@ -98,6 +104,7 @@ const (
98104
StatusProvisioningConsoleService = "Provisioning Console Service"
99105
StatusProvisioningKESStatefulSet = "Provisioning KES StatefulSet"
100106
StatusProvisioningInitialUsers = "Provisioning initial users"
107+
StatusWaitingMinIOIsHealthy = "Waiting for Tenant to be healthy"
101108
StatusProvisioningDefaultBuckets = "Provisioning default buckets"
102109
StatusWaitingMinIOCert = "Waiting for MinIO TLS Certificate"
103110
StatusWaitingMinIOClientCert = "Waiting for MinIO TLS Client Certificate"
@@ -1315,11 +1322,19 @@ func (c *Controller) syncHandler(key string) (Result, error) {
13151322
}
13161323
}
13171324

1325+
// Stay in this state until minio is ready
1326+
if tenant.Status.HealthStatus != miniov2.HealthStatusGreen {
1327+
c.updateTenantStatus(ctx, tenant, StatusWaitingMinIOIsHealthy, 0)
1328+
c.recorder.Event(tenant, corev1.EventTypeWarning, WaitingMinIOIsHealthyReason, fmt.Sprintf("Waiting for MinIO to be ready: %s", err))
1329+
// retry after 5sec
1330+
return WrapResult(Result{RequeueAfter: time.Second * 5}, nil)
1331+
}
1332+
13181333
// Ensure we are only provisioning users one time
13191334
if !tenant.Status.ProvisionedUsers && len(tenant.Spec.Users) > 0 {
13201335
if err := c.createUsers(ctx, tenant, tenantConfiguration); err != nil {
13211336
klog.V(2).Infof("Unable to create MinIO users: %v", err)
1322-
c.recorder.Event(tenant, corev1.EventTypeWarning, "UsersCreatedFailed", fmt.Sprintf("Users creation failed: %s", err))
1337+
c.recorder.Event(tenant, corev1.EventTypeWarning, UsersCreationFailedReason, fmt.Sprintf("Users creation failed: %s", err))
13231338
// retry after 5sec
13241339
return WrapResult(Result{RequeueAfter: time.Second * 5}, nil)
13251340
}

0 commit comments

Comments
 (0)