argoproj / argoproj/argo-cd

Make argocd-secret in kustomize work with sealed secrets

Open
#4,516 1 comment 4 reactions 0 assignees View on GitHub
enhancement workaround
Dominant language
Go
Stars
24.2k
Forks
7.9k
Avg merge
1d 6h
Merged PRs (30d)
239

Description

# Summary

Somehow allow users to use this repo's kustomize manifests as a remote build but also allow for other tools like sealed secrets to work with the secret `argocd-secret`.

# Motivation

We use `github.com/argoproj/argo-cd/manifests/cluster-install` as a remote base in kustomize. This creates https://github.com/argoproj/argo-cd/blob/master/manifests/base/config/argocd-secret.yaml which is blank. We then have this secret also get created by sealed secrets.

Right now we get around this by renaming the secret to something else and then sealed secrets will create it (we use phases and waves for this.) This causes there to always be a window of time where the secret does not exist.

# Proposal

We implemented this a while ago so it's possible there's a better way to solve this and no changes are needed on this end, but perhaps if we instead patch in an annotation or label for sealed secrets that allows it to take over the blank one and whenever the blank one is applied it acts as a merge this would no longer break?

Other alternative would be that `argocd-server` creates the `Secret` if it doesn't exist instead of just updating it if the values don't exist. This would mean the secret is entirely removed from the manifests.

Contributor guide

Open the contributing guide

Research direction

Start by examining manifests/base/config/argocd-secret.yaml and the argocd-server behavior described in the issue. Reproduce the remote kustomize build with a sealed-secret-managed argocd-secret, then compare the proposed manifest and server-side approaches. Done means the blank secret no longer creates a deployment gap while remote kustomize consumers and sealed secrets continue to work.

Written by the indexing model from the issue text.

Assessment

Tech stack
kubernetes
Domain
devops, infrastructure, security
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.