kubernetes helm使用什么样的模板语言?

xmd2e60i  于 2022-11-02  发布在  Kubernetes
关注(0)|答案(1)|浏览(226)

我是新的kubernetes和helm。我开始使用helm,我有以下片段:

{{- $image := printf "%s/%s:%s" $.Values.global.repository $.Values.global.images.xxx.image $.Values.global.images.xxx.tag -}}
apiVersion: v1
kind: Pod
metadata:
  name: xxxx-test-ready
  labels:
    app: xxxxx-test
    app.kubernetes.io/name: xxxxx-test
    helm.sh/chart: authsvc
    release: {{ $.Release.Name }}
    app.kubernetes.io/instance: {{ $.Release.Name }}
    app.kubernetes.io/managed-by: {{ $.Release.Service }}

我的问题在这里:

{{- $image := printf "%s/%s:%s" $.Values.global.repository $.Values.global.images.xxx.image $.Values.global.images.xxx.tag -}}

我想我明白它的作用了:基本上,它创建了图像规范,并将其添加到一个名为image的var中,以备以后使用。然而,我对这种模板语言感到不舒服,我甚至不确定它是Erlang还是golang。对这种模板语言感到自信的最佳起点是什么?我应该学习golang吗?

zdwk9cvp

zdwk9cvp1#

最好的起点是阅读官方文档:图表模板开发人员指南,介绍Helm的图表模板,重点介绍模板语言。
虽然我们把“Helm模板语言”说成是Helm特有的,但它实际上是Go语言模板语言、一些额外函数和各种 Package 器的组合,这些 Package 器可以将特定对象暴露给模板。
Helm有超过60个可用的函数,其中一些是由Go template本身定义的,其他的大多数是Sprig template library的一部分。
深入研究上面的Sprig and Go模板文档,以增强您对图表模板的了解。

相关问题