From 6b5fa3881ce0cc36de7d44df927d6727cc884457 Mon Sep 17 00:00:00 2001 From: John ODonnell Date: Mon, 20 Mar 2023 10:44:47 -0400 Subject: [PATCH] CodeClimate fix: refactor repeatableSecretsProvider function --- pkg/entrypoint/entrypoint.go | 45 ++++++++++++++++++++++++------------ 1 file changed, 30 insertions(+), 15 deletions(-) diff --git a/pkg/entrypoint/entrypoint.go b/pkg/entrypoint/entrypoint.go index 066aee0b..9b2017b6 100644 --- a/pkg/entrypoint/entrypoint.go +++ b/pkg/entrypoint/entrypoint.go @@ -109,21 +109,25 @@ func StartSecretsProviderWithArguments( return } - // Gather secrets config and create a repeatable Secrets Provider - provideSecrets, _, err := repeatableSecretsProvider( + provideSecrets, secretsConfig, err := retryableSecretsProvider( ctx, tracer, - secretsBasePath, - templatesBasePath, - secretRetriever, - providerFactory, - statusUpdater, + secretsConfig, + provideSecrets, ) if err != nil { logError(err.Error()) return } + provideSecrets = repeatableSecretProvider( + ctx, + tracer, + secretsConfig.SecretRefreshInterval, + provideSecrets, + statusUpdater, + ) + // Provide secrets if err = provideSecrets(); err != nil { logError(err.Error()) @@ -184,17 +188,15 @@ func secretRetriever( return secretRetriever, nil } -func repeatableSecretsProvider( +func retryableSecretsProvider( ctx context.Context, tracer trace.Tracer, secretsBasePath string, templatesBasePath string, secretRetriever conjur.SecretRetriever, providerFactory secrets.ProviderFactory, - statusUpdater secrets.StatusUpdater, -) (secrets.RepeatableProviderFunc, *secretsConfigProvider.Config, error) { - - _, span := tracer.Start(ctx, "Create repeatable secrets provider") +) (secrets.ProviderFunc, *secretsConfigProvider.Config, error) { + _, span := tracer.Start(ctx, "Create retryable secrets provider") defer span.End() // Initialize Secrets Provider configuration @@ -235,12 +237,25 @@ func repeatableSecretsProvider( return nil, nil, err } - provideSecrets = secrets.RetryableSecretProvider( + provideSecrets = RetryableSecretProvider( time.Duration(secretsConfig.RetryIntervalSec)*time.Second, secretsConfig.RetryCountLimit, provideSecrets, ) + return provideSecrets, providerConfig, nil +} + +func repeatableSecretsProvider( + ctx context.Context, + tracer trace.Tracer, + provideSecrets secrets.ProviderFunc, + refreshInterval time.Duration + statusUpdater secrets.StatusUpdater, +) secrets.RepeatableProviderFunc { + _, span := tracer.Start(ctx, "Create repeatable secrets provider") + defer span.End() + // Create a channel to send a quit signal to the periodic secret provider. // TODO: Currently, this is just used for testing, but in the future we // may want to create a SIGTERM or SIGHUP handler to catch a signal from @@ -250,7 +265,7 @@ func repeatableSecretsProvider( refreshConfig := secrets.ProviderRefreshConfig{ Mode: getContainerMode(), - SecretRefreshInterval: secretsConfig.SecretsRefreshInterval, + SecretRefreshInterval: refreshInterval, ProviderQuit: providerQuit, } @@ -259,7 +274,7 @@ func repeatableSecretsProvider( provideSecrets, statusUpdater, ) - return repeatableProvideSecrets, secretsConfig, nil + return repeatableProvideSecrets } func customEnv(key string) string {