【发布时间】:2022-08-08 21:21:46
【问题描述】:
我将 Argocd 与 helm 图表一起使用。我有两个环境:uat,产品.
据我了解,helm 的正确方法是使用 commons + per env 文件夹的基本文件夹。
所以我有一个带有 3 个文件夹的分支:
base # for commons: Chart.yaml, templates, etc.
uat # for uat values.yaml
prod # for prod values.yaml
在我的掌舵图中,我有以下内容图表.yaml(存储在基本文件夹中):
apiVersion: v1
appVersion: 1.0.11
name: my-nice-app
version: 1.0.11
每次发布我都会增加应用版本和版本(版本用作图表中的图像标签版本)。
我使用声明性方法来部署 helm chart(这是 uat 应用程序资源,类似用于 prod):
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: my-nice-app
namespace: argocd
spec:
project: default
source:
repoURL: some-url
targetRevision: HEAD
path: base
helm:
version: v3
valueFiles:
- uat/values.yaml
destination:
server: https://kubernetes.default.svc
namespace: uat
syncPolicy:
syncOptions:
- CreateNamespace=false
automated:
selfHeal: true
prune: true
问题:
我确实更新了 uat 值文件。
我确实用新版本更新了 Chart.yaml。
我只想部署 uat(但是当我更新基础产品时也会触发)。
我应该在哪里或如何存储 Chart.yaml?我应该更改 Argocd 应用程序资源吗?或者唯一的选择是为每个环境复制图表?
我也不希望在 Argocd 应用程序资源中存储任何与版本相关的信息(所以不要每次都更改它)。
最好不要申请 kustomized.io。