基于 kubeVersion 部署条件图表 - Helm
Deploy conditional charts based on kubeVersion - Helm
我有两个带版本的 helm 图表:1.3 & 4.0.
我正在寻找在 CI CD 进程中部署图表的方法,基于集群 kubeVerion,如果 kubeVersion > 1.19 then v4.0 else v1.3.
我怎么能在Charts.yaml中实现这种类型的条件选项,有什么办法吗?
提前致谢。
更新:使用中的 Helm v3
掌舵图不是“逻辑”定义元素。它们只是工件或一块“blob”,可以存在于一个版本或另一个版本中(例如,一个用于 1.3,一个用于 4.0)。
检查 Kubernetes 版本然后下载和部署正确的 chart/blob/file.
应该取决于您的 CI/CD 系统和管道逻辑
一个 blob 或一个文件本身将无法决定逻辑,这就是 helm chart 最终的样子
是的,这是可能的,因为 Helm 有一些内置对象。
我想你可能正在寻找 .Capabilities.KubeVersion.Minor。
您只需在 template
的顶部放置一个 if
,然后如果版本不匹配,Helm 将不会部署它。
例如:
{{- if ge .Capabilities.KubeVersion.Minor 19 }}
---
apiVersion: batch/v1beta1
kind: CronJob
metadata:
name: "{{ app_v4 }}"
...
...
{{- end }}
如果你在同一个文件中有两个 templates
,你可以使用 else
来改进逻辑。 Template Functions and Pipelines.
我有两个带版本的 helm 图表:1.3 & 4.0.
我正在寻找在 CI CD 进程中部署图表的方法,基于集群 kubeVerion,如果 kubeVersion > 1.19 then v4.0 else v1.3.
我怎么能在Charts.yaml中实现这种类型的条件选项,有什么办法吗?
提前致谢。
更新:使用中的 Helm v3
掌舵图不是“逻辑”定义元素。它们只是工件或一块“blob”,可以存在于一个版本或另一个版本中(例如,一个用于 1.3,一个用于 4.0)。
检查 Kubernetes 版本然后下载和部署正确的 chart/blob/file.
应该取决于您的 CI/CD 系统和管道逻辑一个 blob 或一个文件本身将无法决定逻辑,这就是 helm chart 最终的样子
是的,这是可能的,因为 Helm 有一些内置对象。
我想你可能正在寻找 .Capabilities.KubeVersion.Minor。
您只需在 template
的顶部放置一个 if
,然后如果版本不匹配,Helm 将不会部署它。
例如:
{{- if ge .Capabilities.KubeVersion.Minor 19 }}
---
apiVersion: batch/v1beta1
kind: CronJob
metadata:
name: "{{ app_v4 }}"
...
...
{{- end }}
如果你在同一个文件中有两个 templates
,你可以使用 else
来改进逻辑。 Template Functions and Pipelines.