diff --git a/entrypoint/src/cmd/entrypoint/garage_util.go b/entrypoint/src/cmd/entrypoint/garage_util.go index ff81edb..d6b9f29 100644 --- a/entrypoint/src/cmd/entrypoint/garage_util.go +++ b/entrypoint/src/cmd/entrypoint/garage_util.go @@ -11,6 +11,7 @@ import ( "strconv" "code.betamike.com/cryptic-io/pmux/pmuxlib" + "github.com/mediocregopher/mediocre-go-lib/v2/mctx" "github.com/mediocregopher/mediocre-go-lib/v2/mlog" ) @@ -57,7 +58,7 @@ func waitForGarageAndNebula( return nil } - logger = garageAdminClientLogger(logger) + adminClientLogger := garageAdminClientLogger(logger) for _, alloc := range allocs { @@ -69,9 +70,12 @@ func waitForGarageAndNebula( adminClient := garage.NewAdminClient( adminAddr, hostBootstrap.Garage.AdminToken, - logger, + adminClientLogger, ) + ctx := mctx.Annotate(ctx, "garage-admin-addr", adminAddr) + logger.Debug(ctx, "wating for garage instance to start") + if err := adminClient.Wait(ctx); err != nil { return fmt.Errorf("waiting for garage instance %q to start up: %w", adminAddr, err) } diff --git a/entrypoint/src/garage/admin_client.go b/entrypoint/src/garage/admin_client.go index 2c03703..5755dd7 100644 --- a/entrypoint/src/garage/admin_client.go +++ b/entrypoint/src/garage/admin_client.go @@ -10,6 +10,7 @@ import ( "net/http/httputil" "time" + "github.com/mediocregopher/mediocre-go-lib/v2/mctx" "github.com/mediocregopher/mediocre-go-lib/v2/mlog" ) @@ -149,6 +150,7 @@ func (c *AdminClient) Wait(ctx context.Context) error { return ctxErr } else if err != nil { + c.logger.Warn(ctx, "waiting for instance to become ready", err) continue } @@ -160,9 +162,16 @@ func (c *AdminClient) Wait(ctx context.Context) error { } } + ctx := mctx.Annotate(ctx, + "num-known-nodes", len(clusterStatus.KnownNodes), + "num-up", numUp, + ) + if numUp >= ReplicationFactor-1 { + c.logger.Debug(ctx, "instance appears to be online") return nil } + c.logger.Debug(ctx, "instance not online yet, will continue waiting") } }