[improve][fn] Add Go support for pulsar function secrets #22768
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Fixes #8425
Motivation
Currently the Java and Python pulsar functions can access secrets that are set when functions are installed, but not pulsar functions written in Go.
Modifications
secretsProviderClassName
andsecretsProviderConfig
are passed to Go pulsar functions.secretsProviderClassName
for Go functions has been set toClearTextSecretsProvider
GetSecretValue
has been added to theFunctionContext
type so that a pulsar function can retrieve secrets.Verifying this change
This change added tests and can be verified as follows:
secretsProviderClassName
andsecretsProviderConfig
are passed to the Go function.GetValue
method for the two GoSecretsProvider
implementationsDoes this pull request potentially affect one of the following parts:
If the box was checked, please highlight the changes
A new Go method
GetSecretValue
has been added to the FunctionContext type.The default
secretsProviderClassName
for Go functions has been set toClearTextSecretsProvider
Documentation
doc
doc-required
doc-not-needed
doc-complete
Pulsar-site changes here: apache/pulsar-site#903
Matching PR in forked repository
PR in forked repository: DavidRayner#3