【问题标题】:Declarative approach to deploy Helm chart by Argocd to multiple environmentsArgocd 将 Helm 图表部署到多个环境的声明式方法
【发布时间】: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。

    标签: kubernetes-helm argocd


    【解决方案1】:

    您应该将其拆分为 2 个图表(base chartvalue chart
    base chart 是价值图表的chart dependency,这样如果你更新基础图表,如果你不更新图表依赖,value chart 不会受到影响。

    value-chart 的文件 Chart.yaml 将如下所示。

    apiVersion: v2
    name: my-nice-app-prod
    description: Chart for production
    
    type: application
    
    version: 0.0.1
    
    appVersion: "1.0.0"
    
    dependencies:
    - name: my-nice-app-chart
      version: 0.1.9
    

    链接参考:
    https://helm.sh/docs/helm/helm_dependency/

    【讨论】:

      【解决方案2】:

      您应该使用变体文件夹, 基本目录包含所有环境通用的配置。预计不会经常更改。如果要同时对多个环境进行更改,最好使用“variants”文件夹。 请通过这个文档 https://codefresh.io/blog/how-to-model-your-gitops-environments-and-promote-releases-between-them/

      【讨论】:

        猜你喜欢
        • 2022-09-28
        • 2021-12-16
        • 2020-02-25
        • 2023-04-05
        • 2013-01-24
        • 2015-07-29
        • 2013-01-27
        • 1970-01-01
        • 2021-04-29
        相关资源
        最近更新 更多