AKS/FLUX 如何安装本地 Helm Chart?

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

我最近一直在研究 GITOPS 和 FLUX,并且正在努力弄清楚如何安装本地 HELM 图表。

我的设置是 AKS,使用 GITOPS/FLUX 插件,我通过门户进行配置以保持简单。

它可以使用 kustomization.yaml 和 k8s 清单,但 HELM 打败了我 🤦u200d♂️

这是我的基本文件夹结构,如果更容易可视化,它也在这里https://github.com/rhod3rz/temp

+---1-kustomize
|   +---base
|   |       kustomization.yaml
|   |       pod.yaml
|   |
|   \---overlays
|       +---dev
|       |       kustomization.yaml
|       |
|       \---prd
|               kustomization.yaml
|
\---2-helm
    |   Chart.yaml
    |   values.yaml
    |
    \---charts
        \---app1
            |   Chart.yaml
            |
            \---templates
                    pod.yaml

如果我创建一个指向 1-kustomize/overlays/dev 的 FLUX kustomization,一切都很好。

如果我创建一个指向 2-helm 的 FLUX kustomization,我认为它会安装图表,但它只是错误:

无法从 /tmp/kustomization-3631900086/2-helm/Chart.yaml 解码 Kubernetes YAML:对象 {{v2 } {{ } map[] map[]}} 中缺少种类

我已经进行了大量搜索并找到了信息,并使其适用于托管舵图,但不是本地的。

有人有什么想法吗? 🙏

kubernetes-helm azure-aks fluxcd
1个回答
0
投票

Taledor的建议是准确的。发生错误

failed to decode Kubernetes YAML from /tmp/kustomization-3631900086/2-helm/Chart.yaml: missing kind in object
是因为 Kustomization 错误地指向包含 Helm 图表的目录,而它无法处理该目录,因为它需要标准 Kubernetes YAML 文件。

如何解决?

正确的方法涉及创建一个

HelmRelease
资源,指定如何从存储库安装 Helm 图表。此资源告诉 Flux 在 Git 存储库中哪里可以找到 Helm 图表、要从
values.yaml
应用的任何配置以及同步详细信息。

确保您的

HelmRelease
YAML 指向 Git 存储库中
Chart.yaml
所在的正确目录。如有必要,请更新
chart.spec.chart
字段中的路径。例如,如果您的 Helm 图表位于
charts/myapp/

示例

apiVersion: helm.toolkit.fluxcd.io/v2beta1
kind: HelmRelease
metadata:
  name: myapp-release
  namespace: default
spec:
  interval: 1m
  chart:
    spec:
      chart: ./charts/myapp
      sourceRef:
        kind: GitRepository
        name: flux-helm-aks
        namespace: flux-system
  values:
    replicaCount: 1

提交

HelmRelease
YAML 并将其推送到您的 Git 存储库 enter image description here

完成。

Flux 将自动从您的 Git 存储库中获取更改并根据

HelmRelease
配置应用它们。

确保所有配置正确并推送后验证安装

kubectl get helmrelease -n default
© www.soinside.com 2019 - 2024. All rights reserved.