kubernetes-helm - 从值生成发布名称
问题描述
我有一个生成部署的 helm 模板我需要为图表作为参数获取的 3 个值的每个组合单独部署
helm upgrade -i release_name folder --set a=x --set b=y --set c=z
所以我需要发布名称作为基于 a、b、c 的模板{.Values.a},{.Values.b}{.Values.c}
有没有办法做这样的事情?到目前为止,我发现的最好的方法是生成发布名称并传递参数的外部 python 脚本。
我知道我可以反其道而行之,分开
$parts := split "." .Release.Name
$parts._0
并将其用作参数,但我真的很想避免它。
解决方案
您可以使用 Helm命名模板来定义一个函数,该函数为所需值生成发布名称。然后,您可以在资源 YAML 中使用该模板函数。
例如,让我们在_helpers.tpl
文件中定义一个函数。
{{- define "release.name" -}}
{{- list .Values.a .Values.b .Values.c | join "-" }}
{{- end }}
现在,将此模板函数用作资源 YAML 文件中的发布名称。例如,
apiVersion: batch/v1beta1
kind: CronJob
metadata:
name: {{ include "release.name" . }}
labels:
app: {{ .Release.Name }}
chart: ni-filecleaner
release: {{ .Release.Name }}
heritage: {{ .Release.Service }}
推荐阅读
- batch-file - 将变量设置为 %%f
- oracle - 如何让我的 Oracle PL/SQL 块更新与我的游标引用的 row_ids 相关的所有条目
- three.js - 两种颜色之间的材质着色器平滑渐变
- java - 我希望将线性布局的一个(左侧或右侧取决于用户的选择)替换为自定义线性布局
- wireshark - BPF过滤源地址==传输地址
- node.js - 为什么我的浏览器会定期触发下图中的请求?
- one-hot-encoding - 一次热编码后 svm 分类器中的预测错误
- css - Bootstrap 4面包屑中断标签栏
- c - 在 32 位 ARM 架构中安装 gcc
- asp.net-mvc - GRID 中的列客户端模板