-
Notifications
You must be signed in to change notification settings - Fork 7.4k
Added Vault server integration for values and application specific properties #13492
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
…operties Signed-off-by: Vineet Aggarwal <[email protected]>
… modularity Signed-off-by: Vineet Aggarwal <[email protected]>
gjenkins8
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can we fixup/remove copyright notice changes please
gjenkins8
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
For vault integration specifically, it is hard reason that Helm should support specific solution providers like this. Helm authors can't practically support any/all solutions.
Another specific requirement for this change would be test coverage (up to and including integration test coverage IMHO: which calls a different question, as to how this environment would be provisioned, especially given Vault's licensing)
However and ideally, Helm would be able to delegate these situations to a plugin model. Which could then lean on the wider community to support. And not require such functionality to be built into core Helm.
Finally, why does Helm even need to have direct support here? A user could do something like:
helm install mychart --values <(vault-cli --token ${my-vault-token} --vault-address https://vault.example.com secret/data/myapp/values)
(where vault-cli is a tool which would fetch the secret in the same way that the code changes here implement)
Signed-off-by: Vineet Aggarwal <[email protected]>
Thank you for your detailed feedback. I understand the concern regarding Helm supporting specific solution providers and the challenges it brings in terms of maintenance and extensibility. Here's my perspective on why Vault integration directly within Helm can be a valuable addition:
By addressing these points, I hope to convey the broader value of this feature and its alignment with Helm's goals. I'd be happy to work on further improving the implementation or documentation to align with the project's standards and priorities. Thank you for considering this proposal, and I look forward to your thoughts! |
Signed-off-by: Vineet0197 <[email protected]>
Signed-off-by: Vineet Aggarwal <[email protected]>
|
This will not require any manual intervention, as most of the organisation want to proceed with end to end automation. With this feature helm can be used as package manager along with security integration. This could be a key feature from security grounds to safeguard the required files and helm will support in fetching and deploying the same securely. @TerryHowe please check and if needed we can discuss further at the convening time |
I am not a Helm maintainer, but @gjenkins8 is. As George points out, you could use the vault CLI like What you are proposing here is a big feature that isn't on the roadmap as far as I know. It will be a long process to convince people and iron out the design. |
|
I understand that Helm maintainers aim to keep Helm lightweight and avoid direct integrations with specific third-party solutions. However, the motivation behind this feature is to provide a seamless way for Helm users to retrieve secrets from Vault without relying on external tools or scripting workarounds. The primary benefits of this integration include: I understand this is a significant change, and I’d be happy to work with maintainers to refine the design, add necessary tests, and ensure it aligns with Helm’s principles. If the team still prefers this as a plugin rather than a core Helm feature, I’m open to discussing how Helm could better support such extensions. @gjenkins8 , Could you please take another look at this? This feature enhances security by allowing Helm to fetch values directly from Vault, reducing the need for external CLI tools or manual scripts that may expose sensitive data. Integrating this functionality within Helm provides a more seamless and secure deployment process. |
|
Copy paste that into a HIP, but maybe have the implementation as a plugin would be my (unimportant) recommendation. |
|
As Per the discussion, I have created a Helm Improvement Proposal (HIP) to formalize this feature request. You can review the HIP here: [Link to HIP PR]. This HIP outlines the motivation, technical details, security considerations, and expected benefits of integrating Vault directly into Helm. Looking forward to feedback and further discussion on how we can proceed with this feature! |
|
This pull request has been marked as stale because it has been open for 90 days with no activity. This pull request will be automatically closed in 30 days if no further activity occurs. |
This Pull Request introduces a new feature for integrating Helm with HashiCorp Vault. The feature allows users to securely retrieve secrets from Vault and use them in their Helm charts, specifically for
values.yamland application-specific properties files.Changes:
VaultGetterstruct to handle retrieving data from Vault.--token: The Vault token used for authentication.--vault-address: The address of the Vault server.--property-file: The path to the application-specific properties file, which can be a Vault path or a local file path.VaultGetterstruct to cover various scenarios, including successful retrieval, no data found, and read errors.Usage:
Users can specify Vault paths in their Helm charts using the
vault://prefix. TheVaultGetterwill fetch the secrets from Vault and make them available to the Helm templates. The new flags can be used as follows:--token: Specify the Vault token for authentication.--vault-address: Specify the Vault server address.--property-file: Specify the path to the application-specific properties file, which can be a Vault path or a local file path.Examples:
Using Vault for values.yaml and properties file:
helm install mychart --values vault://secret/data/myapp/values --token my-vault-token --vault-address https://vault.example.com --property-file vault://secret/data/myapp/conf/application.properties #### Using a local path for properties file: helm install mychart --values vault://secret/data/myapp/values --token my-vault-token --vault-address https://vault.example.com --property-file application.properties