diff --git a/internal/agent/controller/app/controller.go b/internal/agent/controller/app/controller.go index 568a7ce..860414b 100644 --- a/internal/agent/controller/app/controller.go +++ b/internal/agent/controller/app/controller.go @@ -16,8 +16,8 @@ import ( ) type serverEntry struct { - SpecHash uint64 - Server *Server + AppDefHash uint64 + Server *Server } type Controller struct { @@ -124,7 +124,20 @@ func (c *Controller) updateAppRepository(ctx context.Context, specs *spec.Spec) func (c *Controller) updateApp(ctx context.Context, specs *spec.Spec, appKey string) (err error) { appEntry := specs.Apps[appKey] - newAppSpecHash, err := hashstructure.Hash(appEntry, hashstructure.FormatV2, nil) + var auth *spec.Auth + if specs.Config != nil { + auth = specs.Config.Auth + } + + appDef := struct { + App spec.AppEntry + Auth *spec.Auth + }{ + App: appEntry, + Auth: auth, + } + + newAppDefHash, err := hashstructure.Hash(appDef, hashstructure.FormatV2, nil) if err != nil { return errors.WithStack(err) } @@ -163,20 +176,20 @@ func (c *Controller) updateApp(ctx context.Context, specs *spec.Spec, appKey str } server = &serverEntry{ - Server: NewServer(bundle, auth, options...), - SpecHash: 0, + Server: NewServer(bundle, auth, options...), + AppDefHash: 0, } c.servers[appKey] = server } - specChanged := newAppSpecHash != server.SpecHash + defChanged := newAppDefHash != server.AppDefHash - if server.Server.Running() && !specChanged { + if server.Server.Running() && !defChanged { return nil } - if specChanged && server.SpecHash != 0 { + if defChanged && server.AppDefHash != 0 { logger.Info( ctx, "restarting app", logger.F("address", appEntry.Address), @@ -194,7 +207,7 @@ func (c *Controller) updateApp(ctx context.Context, specs *spec.Spec, appKey str return errors.Wrap(err, "could not start app") } - server.SpecHash = newAppSpecHash + server.AppDefHash = newAppDefHash return nil }