如何解决ArgoCD与Bitnami Sealed Secrets、Kustomize的同步循环问题?
解决SealedSecrets与ArgoCD、Kustomize的同步循环问题
方案1:让ArgoCD忽略Secret的内容差异
既然这些Secret由SealedSecrets控制器全权管理,ArgoCD只需要确保Secret存在即可,无需校验其内容。你可以在ArgoCD的Application配置中添加ignoreDifferences规则,让ArgoCD跳过对这些Secret的data字段检查:
apiVersion: argoproj.io/v1alpha1 kind: Application metadata: name: 你的应用名称 spec: ignoreDifferences: - group: "" kind: Secret name: secret1 jsonPointers: - /data - group: "" kind: Secret name: secret2 jsonPointers: - /data - group: "" kind: Secret name: secret3 jsonPointers: - /data
如果是用Kustomize管理Application资源,也可以通过patch方式注入这段配置,避免手动修改。
方案2:让ArgoCD只管理SealedSecret资源(推荐)
放弃用Kustomize Secret Generator生成空Secret的方式,直接将加密后的SealedSecret资源纳入ArgoCD的管理范围。这样ArgoCD只负责同步SealedSecret,而Secret完全由SealedSecrets控制器创建和维护,两者互不干涉:
- 移除kustomization.yaml中原来的
secretGenerator配置块 - 将你的SealedSecret yaml文件(比如
sealed-secret1.yaml、sealed-secret2.yaml)添加到resources列表中:
resources: - sealed-secret1.yaml - sealed-secret2.yaml - sealed-secret3.yaml
这种方式从根源上避免了资源冲突,是最稳妥的解决方案。
补充说明
你已经添加的sealedsecrets.bitnami.com/managed: "true"注解是给SealedSecrets控制器用的,ArgoCD并不识别这个标识,所以必须通过上述两种方法明确告诉ArgoCD如何处理这些资源。
内容的提问来源于stack exchange,提问作者Attila
相关产品推荐
相关产品推荐

