基于名称空间注释的舵图值

时间:2020-09-22 07:37:03

标签: kubernetes kubernetes-helm

在头盔图表中,是否可以在部署时根据要部署到的命名空间中的注释来设置一个值?

2 个答案:

答案 0 :(得分:1)

当前版本的Helm 3具有lookup template function,可以从集群中检索对象数据。您可以在这种情况下使用它,例如:

{{- $ns := lookup "v1" "Namespace" "" .Release.Namespace }}
{{- $istio := index $ns.metadata.annotations "istio-injection" }}
{{- if eq $istio "enabled" }}
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
...
{{ end }}

文档中有一个重要的警告,lookuphelm templatehelm install --dry-run中不起作用,因为这些模式根本无法联系集群。 lookup将返回nil

还请注意,这仅在重新运行helm命令时生效。自定义Kubernetes运算符可能需要花费更多的精力来构建,但是只要您正在观看的对象发生更改,它将被重新触发,这将与其他Kubernetes对象保持一致。 (也就是说,您可以编写一个运算符以在注释值更改时自动创建或删除或修改资源。)

答案 1 :(得分:0)

是的,您还可以基于namespacekube-context设置不同的值。检查一下以供参考-https://stackoverflow.com/a/63982817/6673707