【问题标题】:Should Helm dependencies (charts folder) be version controlled?Helm 依赖项(图表文件夹)是否应该进行版本控制?
【发布时间】:2022-12-22 12:17:55
【问题描述】:

我设计了以下方法来在 CI/CD 管道的上下文中管理 helm chart 依赖关系,但不确定它是否正确。

  • 作为惯例,每个图表源代码都必须位于专用存储库中。
  • 每个图表都应在 dependencies 字段下的 Chart.yaml 中指定其依赖项
  • 文件夹charts应该在.gitignore
  • CI 管道将:
    • 为每个依赖项 helm repo 运行helm repo add
    • 运行helm dependency build根据锁定文件下载依赖到charts文件夹。
    • 运行helm package,以便在release阶段将charts文件夹包含在构建的图表中。构建的图表将与其依赖项一样提升到更高的环境和管道(不会在那里执行依赖项更新)。

管理 helm 图表依赖项的行业标准方法是什么(在 .gitignore 中应该忽略它们?)

【问题讨论】:

  • FWIW 对我来说这似乎是一个合理的工作流程。

标签: dependencies kubernetes-helm cicd helm3


【解决方案1】:

一般来说,如果二进制依赖项可以很容易地以可重现的方式下载,则不应将它们提交给 git。此外,如果您查看一些流行的图表,例如 bitnami 图表 [1],它们确实会忽略图表依赖性。同样,kube-prometheus-stack 也会忽略图表子目录 [2]。所以我认为可以肯定地说这是最佳实践。

话虽如此,大多数图表依赖 tarball 往往非常小,所以恕我直言,只要它们不经常更新,将它们添加到 git 可能会很好,如果它可以使构建/部署过程更简单的话。

[1]https://github.com/bitnami/charts/blob/1e92a496bfecd923624ecf481e7e6cc0857e52f4/.gitignore#L1 [2]https://github.com/prometheus-community/helm-charts/blob/d3858c18c4a0fbbf97a4b8635ea04eaf614f2218/.gitignore#L2

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-02-27
    • 2020-02-27
    • 2017-11-25
    • 1970-01-01
    • 2011-06-25
    • 2019-01-12
    • 2014-09-06
    相关资源
    最近更新 更多