在头盔图表中,是否可以在部署时根据要部署到的命名空间中的注释来设置一个值?
答案 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 }}
文档中有一个重要的警告,lookup
在helm template
或helm install --dry-run
中不起作用,因为这些模式根本无法联系集群。 lookup
将返回nil
。
还请注意,这仅在重新运行helm
命令时生效。自定义Kubernetes运算符可能需要花费更多的精力来构建,但是只要您正在观看的对象发生更改,它将被重新触发,这将与其他Kubernetes对象保持一致。 (也就是说,您可以编写一个运算符以在注释值更改时自动创建或删除或修改资源。)
答案 1 :(得分:0)
是的,您还可以基于namespace
和kube-context
设置不同的值。检查一下以供参考-https://stackoverflow.com/a/63982817/6673707