Helm,有没有办法将 kubernetes 标签添加到 values.yaml(不使用模板和 _helpers.tpl)
Helm, Is there a way to add kubernetes labels to values.yaml (without using template and _helpers.tpl)
因此,如标题所示,我想为我已经 运行 的应用程序(官方 helm 图表中的 sonarqube 和 jenkins)添加标签。
我没有模板,只有 values.yaml。我害怕添加模板,因为正如我所说,应用程序已经 运行 而我只想在元数据中添加一些标签。
问题评论中提到的两个图表都有定义自定义标签的方法
{{- range $key, $val := .Values.master.podLabels }}
{{ $key }}: {{ $val | quote }}
{{- end}}
https://github.com/Oteemo/charts/blob/master/charts/sonarqube/templates/deployment.yaml#L31
{{- with .Values.podLabels }}
{{ toYaml . | indent 8 }}
{{- end }}
所以你需要这样的东西 values.yaml
# Jenkins
master:
podLabels:
label1Name: label1Value
# Sonar
podLabels:
label1Name: label1Value
如 所述,此解决方案在使用 k8s 配置时使用了最佳实践。
请记住,用户应始终存储配置文件 (Configuration Best Practices)。它允许我们以简单的方式快速 change/roll 返回任何配置,使用:
kubectl apply -f ...
kubectl replace ...
另一种解决方案:
a) 添加或更改现有标签:
#patch-file.yaml
spec:
template:
metadata:
labels:
test: label
kubectl patch deployment <deployment-name> --patch "$(cat patch-file.yaml)"
b) 使用 json 补丁方法,您可以:
- 添加一个新标签 "NewTest" with value "测试值":
kubectl patch deployment <deployment-name> --type='json' -p='[{"op": "add", "path": "/spec/template/metadata/labels/NewTest", "value":"TestValue"}]'
- 替换 标签“NewTest”为值 "OldTest":
kubectl patch deployment <deployment-name> --type='json' -p='[{"op": "replace", "path": "/spec/template/metadata/labels/NewTest", "value": "OldTest"}]'
- 删除标签 "NewTest":
kubectl patch deployment <deployment-name> --type='json' -p='[{"op": "remove", "path": "/spec/template/metadata/labels/NewTest"}]'
附加信息:
因此,如标题所示,我想为我已经 运行 的应用程序(官方 helm 图表中的 sonarqube 和 jenkins)添加标签。 我没有模板,只有 values.yaml。我害怕添加模板,因为正如我所说,应用程序已经 运行 而我只想在元数据中添加一些标签。
问题评论中提到的两个图表都有定义自定义标签的方法
{{- range $key, $val := .Values.master.podLabels }}
{{ $key }}: {{ $val | quote }}
{{- end}}
https://github.com/Oteemo/charts/blob/master/charts/sonarqube/templates/deployment.yaml#L31
{{- with .Values.podLabels }}
{{ toYaml . | indent 8 }}
{{- end }}
所以你需要这样的东西 values.yaml
# Jenkins
master:
podLabels:
label1Name: label1Value
# Sonar
podLabels:
label1Name: label1Value
如
请记住,用户应始终存储配置文件 (Configuration Best Practices)。它允许我们以简单的方式快速 change/roll 返回任何配置,使用:
kubectl apply -f ...
kubectl replace ...
另一种解决方案:
a) 添加或更改现有标签:
#patch-file.yaml
spec:
template:
metadata:
labels:
test: label
kubectl patch deployment <deployment-name> --patch "$(cat patch-file.yaml)"
b) 使用 json 补丁方法,您可以:
- 添加一个新标签 "NewTest" with value "测试值":
kubectl patch deployment <deployment-name> --type='json' -p='[{"op": "add", "path": "/spec/template/metadata/labels/NewTest", "value":"TestValue"}]'
- 替换 标签“NewTest”为值 "OldTest":
kubectl patch deployment <deployment-name> --type='json' -p='[{"op": "replace", "path": "/spec/template/metadata/labels/NewTest", "value": "OldTest"}]'
- 删除标签 "NewTest":
kubectl patch deployment <deployment-name> --type='json' -p='[{"op": "remove", "path": "/spec/template/metadata/labels/NewTest"}]'
附加信息: