Skip to content

Commit

Permalink
CodeClimate fix: refactor repeatableSecretsProvider function
Browse files Browse the repository at this point in the history
  • Loading branch information
john-odonnell committed Mar 20, 2023
1 parent 2705f81 commit 6b5fa38
Showing 1 changed file with 30 additions and 15 deletions.
45 changes: 30 additions & 15 deletions pkg/entrypoint/entrypoint.go
Original file line number Diff line number Diff line change
Expand Up @@ -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())
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand All @@ -250,7 +265,7 @@ func repeatableSecretsProvider(

refreshConfig := secrets.ProviderRefreshConfig{
Mode: getContainerMode(),
SecretRefreshInterval: secretsConfig.SecretsRefreshInterval,
SecretRefreshInterval: refreshInterval,
ProviderQuit: providerQuit,
}

Expand All @@ -259,7 +274,7 @@ func repeatableSecretsProvider(
provideSecrets,
statusUpdater,
)
return repeatableProvideSecrets, secretsConfig, nil
return repeatableProvideSecrets
}

func customEnv(key string) string {
Expand Down

0 comments on commit 6b5fa38

Please sign in to comment.