CustomResourceDefinition 和 ClickHouseInstallation 的 Helm 模板顺序

问题描述

我创建了一个名为 clickhouse 的 helm 目录:

enter image description here

在模板子目录中,我有一个 crd.yaml(种类:CustomresourceDeFinition),它必须在 installation.yaml(种类:ClickHouseInstallation)之前运行。现在,当我运行命令时首先运行 installation.yaml

$ helm upgrade -i clickhouse ./charts/clickhouse

如何更改订单?

注意事项:

我通过阅读此 thread 注意到有一个静态顺序。由于 ClickHouseInstallation 不是该列表的一部分,我很好奇 helm 如何对其进行排序以及如何更改该顺序。

还有这里的 yaml 文件

crd.yaml

installation.yaml

解决方法

我认为您可以尝试使用 Helm hooks 之类的

annotations:
  "helm.sh/hook": post-install

让您的 crd.yaml 进行预安装,然后您的 installation.yaml 可以进行后安装。请查看有关 Helm 钩子的文档,关于您想要实现的目标可能存在一些缺点。

解决这个问题的另一种方法(可能很简单而且不太优雅)是为 installation.yaml 创建一个单独的 helm chart,然后先运行 crd chart。