更新 helm Release 以更改值文件

问题描述 投票:0回答:1

我正在尝试使用 Flux 从 Helm Chart 部署应用程序,我只需要添加我的

values.yaml
文件。所以我有:

  • a

    HelmRepository
    指向公开可用的图表

  • A

    HelmRelease
    使用 Flux ci 创建,其中值文件可直接在命令行上使用。

这有效。 但我希望有一个包含 value.yaml 文件的 git 存储库,该文件由 Flux 监视更改,然后更新版本。

这可能吗?

我特别希望保持

values.yaml
文件独立于 Flux,因为它可以在不包含 Flux 的其他部署中使用。我知道我可以直接在
HelmRelease
中“输入”,但这就是我不想要的。

kubernetes-helm flux
1个回答
0
投票

是的,使用 Flux 可以实现您所描述的目标。您可以拥有一个包含values.yaml 文件的单独的Git 存储库,并且Flux 可以监视此存储库的更改。当发生更改时,Flux 可以自动使用新值更新 HelmRelease。 以下是有关如何设置的分步指南:

  • 创建一个单独的 Git 存储库来存储 value.yaml 文件。该存储库将专门用于存储配置值。 将您的values.yaml 文件提交到此存储库。

  • 配置 Flux 以监视值存储库: 配置 Flux 以监视包含 value.yaml 文件的 Git 存储库。您可以通过创建指向您的值存储库的 GitRepository 类型的 Flux 自定义资源 (CR) 来完成此操作。 示例:

     apiVersion: source.toolkit.fluxcd.io/v1beta1
     kind: GitRepository
     metadata:
       name: values-repo
       namespace: flux-system
     spec:
       interval: 1m
       url: <URL_OF_VALUES_REPO>
    
  • 配置 Flux 以将值应用于 HelmRelease:

     apiVersion: helm.toolkit.fluxcd.io/v2beta1
     kind: HelmRelease
     metadata:
       name: my-release
       namespace: default
     spec:
      chart:
       repository: <CHART_REPOSITORY>
       name: <CHART_NAME>
       version: <CHART_VERSION>
     valuesFrom:
     - kind: GitRepository
       name: values-repo
       path: values.yaml
    

通过此设置,Flux 将定期检查您的值存储库是否有更改。当检测到更改时,Flux 将使用存储库中的 values.yaml 文件中的新值自动更新 HelmRelease。这使您可以保持值文件独立于 Flux,同时仍然受益于自动更新。

另一种方法(GitRepository + helmRelease)。您可以下载 Helm 图表,将其存储在单独的 Git 存储库中,然后配置 Flux 以监视此存储库的更改。具体方法如下:

      apiVersion: source.toolkit.fluxcd.io/v1beta1
      kind: GitRepository
      metadata:
         name: chart-repo
         namespace: flux-system
      spec:
         interval: 1m
         url: <URL_OF_CHART_REPO>

注意,使用此方法,仅当 Chart.yaml 文件中的图表版本更改时才会触发 Flux

© www.soinside.com 2019 - 2024. All rights reserved.