NIFI-8732: Adding a HashiCorp Vault K/V Stateless Param Provider#5289
NIFI-8732: Adding a HashiCorp Vault K/V Stateless Param Provider#5289gresockj wants to merge 3 commits intoapache:mainfrom
Conversation
| <!-- test dependencies --> | ||
| <dependency> | ||
| <groupId>commons-logging</groupId> | ||
| <artifactId>commons-logging</artifactId> |
There was a problem hiding this comment.
The jcl-over-slf4j dependency should be used in place of commons-logging to maintain SLF4J as the standard logger throughout the system.
| </dependency> | ||
| <dependency> | ||
| <groupId>org.apache.nifi</groupId> | ||
| <artifactId>nifi-hashicorp-vault-nar</artifactId> |
There was a problem hiding this comment.
What do you think of naming this to something more specific? It seems like there could be other libraries for interacting with HashiCorp Vault, so including parameter-value-provider in the name would be helpful.
There was a problem hiding this comment.
My thought was that this nar would also contain jars for a hashicorp-vault-parameter-provider and a hashicorp-vault-controller-service. In light of that, I was considering this more analogous to the nifi-aws-nar. What do you think?
There was a problem hiding this comment.
Thanks for the reply, that seems reasonable, and it could always separated later if needed.
exceptionfactory
left a comment
There was a problem hiding this comment.
Thanks for the contribution @gresockj, verified parameter resolution in a stateless flow using HashiCorp Vault server, nice work! +1 Merging.
This closes apache#5289 Signed-off-by: David Handermann <exceptionfactory@apache.org>
Thank you for submitting a contribution to Apache NiFi.
Please provide a short description of the PR here:
Description of PR
HashiCorpVaultParameterValueProvider
This provider reads parameter values from HashiCorp Vault, and expects secrets to exist in
the Key/Value (unversioned) Secrets Engine. The connection to a Vault server can be configured
via the
./conf/bootstrap-hashicorp-vault.conffile, which comes with NiFi.An example of creating a single secret in the correct format is:
In this example,
nifi-kvwould be supplied by thevault.kv.pathproperty in thebootstrap-hashicorp-vault.conffile,Contextis the name of a Parameter Context, andparamis the name of the parameter whose value should be retrieved from the Vault server.This Parameter Provider requires the following properties:
An example of configuring this provider in the dataflow configuration file is:
In order to streamline the review of the contribution we ask you
to ensure the following steps have been taken:
For all changes:
Is there a JIRA ticket associated with this PR? Is it referenced
in the commit message?
Does your PR title start with NIFI-XXXX where XXXX is the JIRA number you are trying to resolve? Pay particular attention to the hyphen "-" character.
Has your PR been rebased against the latest commit within the target branch (typically
main)?Is your initial contribution a single, squashed commit? Additional commits in response to PR reviewer feedback should be made on this branch and pushed to allow change tracking. Do not
squashor use--forcewhen pushing to allow for clean monitoring of changes.For code changes:
mvn -Pcontrib-check clean installat the rootnififolder?LICENSEfile, including the mainLICENSEfile undernifi-assembly?NOTICEfile, including the mainNOTICEfile found undernifi-assembly?.displayNamein addition to .name (programmatic access) for each of the new properties?For documentation related changes:
Note:
Please ensure that once the PR is submitted, you check GitHub Actions CI for build issues and submit an update to your PR as soon as possible.