Helm,是否有一种方法可以将kubernetes标签添加到values.yaml(不使用template and _helpers.tpl)

kzipqqlq  于 2023-01-08  发布在  Kubernetes
关注(0)|答案(2)|浏览(99)

正如在标题中,我想在我已经运行的应用程序的helms中添加标签(sonarqube和jenkins来自官方helm图表),我没有模板,只有values.yaml,我害怕添加模板,因为正如我所说,应用程序已经在运行,我只想在元数据中添加一些标签。

toiithl6

toiithl61#

在相关评论中提到的两个图表都有定义自定义标签的方法
https://github.com/jenkinsci/helm-charts/blob/main/charts/jenkins/templates/jenkins-master-deployment.yaml#L42

{{- 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
au9on6nz

au9on6nz2#

如@rkosegi所述,此解决方案在使用k8s配置时使用了最佳实践。
请记住,用户应始终存储配置文件(配置最佳实践)。它允许我们使用以下方法以简单的方式快速更改/回滚任何配置:

kubectl apply -f ...
    kubectl replace ...

其他解决方案:

x一个一个一个一个x一个一个二个一个x一个一个三个一个

    • b**)使用JSON补丁方法,您可以:
      • 添加一个新标签**"新测试",带有"测试值":
kubectl patch deployment <deployment-name>  --type='json' -p='[{"op": "add", "path": "/spec/template/metadata/labels/NewTest", "value":"TestValue"}]'
      • 将****标签**"新测试"替换为"旧测试":
kubectl patch deployment <deployment-name>  --type='json' -p='[{"op": "replace", "path": "/spec/template/metadata/labels/NewTest", "value": "OldTest"}]'
      • 删除标签**"新测试":
kubectl patch deployment <deployment-name>  --type='json' -p='[{"op": "remove", "path": "/spec/template/metadata/labels/NewTest"}]'

其他信息:

相关问题