-
Notifications
You must be signed in to change notification settings - Fork 5.7k
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
feat: Supporting SOPS for helm. #3024
Comments
Hi @ichtestemalwieder - have you seen https://argoproj.github.io/argo-cd/operator-manual/secret-management/ and the related discussions in #1364? I think @jessesuen is right that ArgoCD needs to stay unopinionated about secrets management, until maybe a defacto standard emerges. Meanwhile, SOPS support for Helm could be integrated with a little more effort, but without using custom management plugin. I see there is https://github.com/futuresimple/helm-secrets, but it does not wrap around |
@jannfis, thanks very much for your answer! Yes I have read (before opening the issue) all the links. But even after spending several hours, I have not found a practical solution to get helm+sops working. And the problem with futuresimple/helm-secrets is, that that there were no commits in 9 month, besides lots of PRs, so in my eyes it's abandoned and furthermore does not work out of the box. The reason for opening an issue: ArgoCD (this is not meant as a critique) has major limitations allowing one to simply embed custom security operations. And that would be needed to be addressed with high priority: Not only from the perspective, that security is so important, but also from a competitor/USP perspective. The current complexity (and limitations) around this, make argoCD quite useless respectively make other solutions (like jenkins-x with great preview environment, tekton and vault support) much more attractive. So as stated initially, it would be so important to either have 1.) hooks or 2.) configurable CLI-Commands of the build in Render-Plugins, to easily inject custom security operations. Thanks very much. |
I currently try to get the same running. What I've done so far:
What's missing:
Does this sound right @jannfis ? |
I'm also running into issues getting this going. The latest version of I'm trying to figure out how to configure a plugin to use helm-secret like |
This should help to point to no tiller:
|
I would <3 to see this implemented. If we follow the helm:
parameters:
- name: "my_param"
value: "123"
valueFiles:
- values-whatever.yaml
sopsSecrets:
- secrets.yaml or: sops:
secrets:
- secrets.yaml EDIT. Actually scratch that ^^ if we enable the secrets plugin... the |
Here are the instructions on how we managed to integrate Sops with Helm and Argo CD without loosing the GUI functionalities: https://github.com/camptocamp/docker-argocd. We still have to build custom Docker images though, but it worked well as of now. |
Hello! I was able to get it to work with the following: Created a custom build with sops and helm secrets plugin installed following the docs https://argoproj.github.io/argo-cd/operator-manual/custom_tools/#byoi-build-your-own-image Created a config management plugin following
I actually had to pipe the output to Then in the application spec specify the
I am sure there is a better way to get this working since Helm Version: 2.14.1 |
|
An alternative could be to use something like kubernetes-external-secrets, which fetches your secrets into Kube from external secret backends, such as:
|
Hi guys, |
@lokiwins does your solution show proper values when trying to access "History and Rollback"? I get 404 and think it might be connected with the custom tool stuff. Could you please verify on your end? I guess it's because argocd doesn't really show the values anymore as you've mentioned |
@mbolek I ended up moving away from requiring sops for our apps. Instead I decided to have a single chart to manage all the secrets. Secret changes are actually handled by a custom tool instead but for us changes to secrets don't happen too often so it all works out well. From there I modified all the helm charts to reference the kubernetes secret and just pull out the secrets I need for that particular app. Now I don't have to use secrets with argo and just use the default helm plugin. |
Hi @lokiwins |
May i know is it same missing visualize on GUI? I try swap the repo-server image to camptocamp/argocd:v1.8.5_c2c.1 all deployment no longer showsup in GUI |
@gogovan-vincentngai Here is the Dockerfile I used back when I was testing this out. caution is very old.
|
If I'm not mistaking, sops is super-useful not just with Helm but also with Kustomize and plain manifests. Customizing the image and creating own wrappers is ok, but I'm working with several clusters and in some cases I have applications of all 3 types |
Hi @dshatohin I think if other stuff using sops will be the option .. |
After spending 3 days to integrate Helm secrets, sops and argocd, I ended up with your solution LOL :) |
That would be the best way to do it.
I wrote a guide to integrate helm-secrets with ArgoCD. https://github.com/jkroepke/helm-secrets/blob/main/docs/ARGOCD.md Currently, it's not possible to fetch gpg keys other than local disk. This means, gpg keys still needs to be mounted at the argocd repo server. |
Hey. As of today, did sops become a de-factor standard for helm? |
Feature-Proposal:
Please add support for SOPS and helm (by generic hooks/adabtibility of executed commands. This will solve lots of other problems/use cases too).
Motivation:
Helm is becoming the defacto standard for packaging (besides kustomize). Especially sops is by far easiest and powerfull way to secure your secrets. Security is so important. It is currently not possible to use sops with helm in argoCD.
Problem:
With a "Custom Mangement Plugin" I loose alle of the impotant GUI functionality and all of the great features of the already existing helm implementation.
Solutions:
1.) There seems to by no hooks to run after downloading a helm chart and before argocd does the templating (to allow decrypting with sops) => Would be an important feature
2.) There seems to be no way to alter the command that argoCD executes for the build. If this could be changed, on could integrate custom additional commands/pipe commands. => Would also be an important feature.
3.) Maybe the easiest and best solution is, hardcoding this as a new feature (with a simple GUI option) directly into argoCD. So argoCD fulfills the promise "Secure by default/Making security easy"
Thanks very much.
The text was updated successfully, but these errors were encountered: