Helm:如何在 GitHub 上通过 Renovate 固定版本并使其易于管理

Helm: How to pin version & make it manageable by Renovate on GitHub

目前我们install Traefik using Helm as described in the docs from it's chart at https://github.com/traefik/traefik-helm-chart。这个

... chart bootstraps Traefik version 2 as a Kubernetes ingress controller, using Custom Resources IngressRoute: https://docs.traefik.io/providers/kubernetes-crd/

我们在 GitHub 操作工作流程中完成所有这些操作 provision.yml:

      - name: Install Traefik via Helm
        run: |
          echo "--- Install Traefik via Helm (which is already installed in GitHub Actions environment https://github.com/actions/virtual-environments)
          helm repo add traefik https://helm.traefik.io/traefik
          helm repo update
          helm upgrade -i traefik traefik/traefik

我们使用 helm upgrade -i traefik traefik/traefik 而不是 helm install traefik traefik/traefik 来防止错误 Error: INSTALLATION FAILED: cannot re-use a name that is still in use(参见 )。

但现在我们想将我们的设置与 Renovate 集成。 Renovate supports helm,但我们自己没有 values.yaml 文件或 Helm 图表 - 我们只使用一个来安装 Traefik。那么我们如何固定 Traefik 版本并使这个 repo 可由 Renovate 管理?

仅使用 --version (as described in this so answer) isn't enough for us, since Renovate needs a dependency file to look at.

但是there's another way to use a simple Chart.yaml to pin our version and have a manageble file for Renovate (here's the Chart.yaml from the example project on GitHub):

apiVersion: v2
type: application
name: traefik
version: 0.0.0 # unused
appVersion: 0.0.0 # unused
dependencies:
  - name: traefik
    repository: https://helm.traefik.io/traefik
    version: 10.19.4

现在使用命令(. 意味着 Chart.yaml 与我们 运行 我们的命令位于同一目录中:

helm dependency update .
helm upgrade -i traefik .

我们现在可以 Renovate-ready 方式安装 Traefik。

下次发布新的 Traefik helm chart 版本时,Renovate 应该接手它的工作: