在helm图表中,是否可以在部署时根据要部署到的命名空间中的注解来设置值?
发布于 2020-09-22 10:54:14
当前版本的Helm3有一个可以从集群中检索对象数据的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对象的行为更一致。(也就是说,您可以编写一个操作符,以便在注释值发生更改时自动创建、删除或修改资源。)
发布于 2020-09-22 09:41:09
可以,您也可以根据namespace
和kube-context
设置不同的值。请查看本文以供参考- https://stackoverflow.com/a/63982817/6673707
https://stackoverflow.com/questions/64005100
复制相似问题