From 52ff23db16513fe46a2791b1cc1bd31a959c4474 Mon Sep 17 00:00:00 2001 From: Jon Ayers Date: Thu, 14 Nov 2024 16:51:37 +0000 Subject: [PATCH] fix: fix tailnet resume using incorrect DB reference - We were instantiating a cryptokey cache with a vanilla reference to the database instead of one wrapped by dbcrypt. - Fixes an issue where failing to instantiate unrelated keycaches does not fatally error out. --- cli/server.go | 20 -------------------- coderd/coderd.go | 26 +++++++++++++++++++++++--- 2 files changed, 23 insertions(+), 23 deletions(-) diff --git a/cli/server.go b/cli/server.go index aa0a010eb0aa4..d678eb49c83c0 100644 --- a/cli/server.go +++ b/cli/server.go @@ -61,7 +61,6 @@ import ( "github.com/coder/serpent" "github.com/coder/wgtunnel/tunnelsdk" - "github.com/coder/coder/v2/coderd/cryptokeys" "github.com/coder/coder/v2/coderd/entitlements" "github.com/coder/coder/v2/coderd/notifications/reports" "github.com/coder/coder/v2/coderd/runtimeconfig" @@ -754,25 +753,6 @@ func (r *RootCmd) Server(newAPI func(context.Context, *coderd.Options) (*coderd. return xerrors.Errorf("set deployment id: %w", err) } - fetcher := &cryptokeys.DBFetcher{ - DB: options.Database, - } - - resumeKeycache, err := cryptokeys.NewSigningCache(ctx, - logger, - fetcher, - codersdk.CryptoKeyFeatureTailnetResume, - ) - if err != nil { - logger.Critical(ctx, "failed to properly instantiate tailnet resume signing cache", slog.Error(err)) - } - - options.CoordinatorResumeTokenProvider = tailnet.NewResumeTokenKeyProvider( - resumeKeycache, - quartz.NewReal(), - tailnet.DefaultResumeTokenExpiry, - ) - options.RuntimeConfig = runtimeconfig.NewManager() // This should be output before the logs start streaming. diff --git a/coderd/coderd.go b/coderd/coderd.go index 75e588e89624b..bc4afa44c88df 100644 --- a/coderd/coderd.go +++ b/coderd/coderd.go @@ -467,7 +467,7 @@ func New(options *Options) *API { codersdk.CryptoKeyFeatureOIDCConvert, ) if err != nil { - options.Logger.Critical(ctx, "failed to properly instantiate oidc convert signing cache", slog.Error(err)) + options.Logger.Fatal(ctx, "failed to properly instantiate oidc convert signing cache", slog.Error(err)) } } @@ -478,7 +478,7 @@ func New(options *Options) *API { codersdk.CryptoKeyFeatureWorkspaceAppsToken, ) if err != nil { - options.Logger.Critical(ctx, "failed to properly instantiate app signing key cache", slog.Error(err)) + options.Logger.Fatal(ctx, "failed to properly instantiate app signing key cache", slog.Error(err)) } } @@ -489,10 +489,30 @@ func New(options *Options) *API { codersdk.CryptoKeyFeatureWorkspaceAppsAPIKey, ) if err != nil { - options.Logger.Critical(ctx, "failed to properly instantiate app encryption key cache", slog.Error(err)) + options.Logger.Fatal(ctx, "failed to properly instantiate app encryption key cache", slog.Error(err)) } } + if options.CoordinatorResumeTokenProvider == nil { + fetcher := &cryptokeys.DBFetcher{ + DB: options.Database, + } + + resumeKeycache, err := cryptokeys.NewSigningCache(ctx, + options.Logger, + fetcher, + codersdk.CryptoKeyFeatureTailnetResume, + ) + if err != nil { + options.Logger.Fatal(ctx, "failed to properly instantiate tailnet resume signing cache", slog.Error(err)) + } + options.CoordinatorResumeTokenProvider = tailnet.NewResumeTokenKeyProvider( + resumeKeycache, + options.Clock, + tailnet.DefaultResumeTokenExpiry, + ) + } + updatesProvider := NewUpdatesProvider(options.Logger.Named("workspace_updates"), options.Pubsub, options.Database, options.Authorizer) // Start a background process that rotates keys. We intentionally start this after the caches pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy