diff --git a/internal/bg/prepare_cluster.go b/internal/bg/prepare_cluster.go index 08cc815..dea1175 100644 --- a/internal/bg/prepare_cluster.go +++ b/internal/bg/prepare_cluster.go @@ -45,11 +45,12 @@ type ClusterPrepareResult struct { // Alias the status constants from models to avoid string drift. const ( - clusterStatusPrePending = models.ClusterStatusPrePending - clusterStatusPending = models.ClusterStatusPending - clusterStatusProvisioning = models.ClusterStatusProvisioning - clusterStatusReady = models.ClusterStatusReady - clusterStatusFailed = models.ClusterStatusFailed + clusterStatusPrePending = models.ClusterStatusPrePending + clusterStatusPending = models.ClusterStatusPending + clusterStatusProvisioning = models.ClusterStatusProvisioning + clusterStatusReady = models.ClusterStatusReady + clusterStatusFailed = models.ClusterStatusFailed + clusterStatusBootstrapping = models.ClusterStatusBootstrapping ) func ClusterPrepareWorker(db *gorm.DB, jobs *Jobs) archer.WorkerFn { @@ -97,6 +98,13 @@ func ClusterPrepareWorker(db *gorm.DB, jobs *Jobs) archer.WorkerFn { continue } + if err := setClusterStatus(db, c.ID, clusterStatusBootstrapping, ""); err != nil { + log.Error().Err(err).Msg("[cluster_prepare] failed to mark cluster bootstrapping") + continue + } + + c.Status = clusterStatusBootstrapping + clusterLog := log.With(). Str("job", jobID). Str("cluster_id", c.ID.String()). diff --git a/internal/models/cluster.go b/internal/models/cluster.go index db9f1a3..81fd2f4 100644 --- a/internal/models/cluster.go +++ b/internal/models/cluster.go @@ -7,12 +7,13 @@ import ( ) const ( - ClusterStatusPrePending = "pre_pending" // needs validation - ClusterStatusIncomplete = "incomplete" // invalid/missing shape - ClusterStatusPending = "pending" // valid shape, waiting for provisioning - ClusterStatusProvisioning = "provisioning" - ClusterStatusReady = "ready" - ClusterStatusFailed = "failed" // provisioning/runtime failure + ClusterStatusPrePending = "pre_pending" // needs validation + ClusterStatusIncomplete = "incomplete" // invalid/missing shape + ClusterStatusPending = "pending" // valid shape, waiting for provisioning + ClusterStatusProvisioning = "provisioning" + ClusterStatusReady = "ready" + ClusterStatusFailed = "failed" // provisioning/runtime failure + ClusterStatusBootstrapping = "bootstrapping" ) type Cluster struct {