GitOps (Flex) 通过 HelmRelease 运算符在 Kubernetes 中安装标准 Jenkins Helm 图表

GitOps (Flex) install of standard Jenkins Helm chart in Kubernetes via HelmRelease operator

我刚刚开始在 Kubernetes 中使用 Wea​​vework 的 Flux GitOps 系统。我的常规部署(部署、服务、卷等)工作正常。我第一次尝试部署 Helm 图表。

我已按照本教程中的说明进行操作:https://github.com/fluxcd/helm-operator-get-started 并在进行一些小的更改后使其示例服务正常运行。所以我相信我已经准备好所有正确的工具,包括自定义 HelmRelease K8s 运算符。

我想通过 Helm 部署 Jenkins,如果我手动部署,就像这个 Helm 命令一样简单:

helm install --set persistence.existingClaim=jenkins --set master.serviceType=LoadBalancer jenkins stable/jenkins

我想将其转换为我的 Flex 管理的 GitHub 存储库中的 HelmRelease 对象。根据我能找到的文档,这是我得到的:

apiVersion: helm.fluxcd.io/v1
kind: HelmRelease
metadata:
  name: jenkins
  namespace: jenkins
updating-applications/
    fluxcd.io/ignore: "false"
spec:
  releaseName: jenkins
  chart:
    git: https://github.com/helm/charts/tree/master
    path: stable/jenkins
    ref: master
  values:
    persistence:
        existingClaim: jenkins
    master:
        serviceType: LoadBalancer

我在我的 git 存储库中 Flex 正在监视的位置的根目录中的文件 'jenkins/jenkins.yaml' 中有这个。添加此文件没有任何作用......当我 运行 "helm list -n jenkins".

时,我没有得到新的 K8s 对象,没有 HelmRelease 对象,也没有新的 Helm 版本

我看到有人提到在我的 'values' 部分中必须有 'image' 标签,但由于我不需要在手动调用 Helm 时指定任何图像,所以我不是确定我会根据 'image' 标签添加什么。我还看到了没有 'image' 标签的 HelmRelease 定义示例,因此它们似乎不是绝对必要的。

我尝试在 'metadata' 部分添加一些注释:

annotations:
#    fluxcd.io/automated: "true"
    # per: https://blog.baeke.info/2019/10/10/gitops-with-weaveworks-flux-installing-and-updating-applications/
    fluxcd.io/ignore: "false"

但是 none 这有助于推动事情的发展。任何人都可以告诉我我必须做些什么才能获得与我在 post 顶部给出的简单 Helm 命令等效的命令以与 Flex/GitOps 一起使用吗?

您是否尝试检查 fluxd 和 flux-helm-operator pods 上的日志?我将从那里开始查看您收到的错误消息。我看到的一件事是您正在为 git 使用 https。您可能想仔细检查一下,但我不记得曾经看到过任何配置通过 git 提取图表以使用 SSH 以外的任何东西的文档。此外,无论如何,我建议只从稳定的 helm 存储库中提取该图表:

apiVersion: helm.fluxcd.io/v1
kind: HelmRelease
metadata:
  name: jenkins
  namespace: jenkins
  annotations: #not sure what updating-applications/ was?
    fluxcd.io/ignore: "false" #pretty sure this is false by default and can be omitted
spec:
  releaseName: jenkins
  chart:
    repository: https://kubernetes-charts.storage.googleapis.com/
    name: jenkins
    version: 1.9.16
  values:
    persistence:
        existingClaim: jenkins
    master:
        serviceType: LoadBalancer