本文介绍了Helm:&Quot;模板&Quot;关键字的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

谁能向我解释一下关键字&模板&在此代码中的作用:

apiVersion: v1
kind: Secret
metadata:
  name: {{ template "identity-openidconnect" . }}
  namespace: {{ .Release.Namespace }}
  labels:
    app: {{ template "microService.name" . }}
    release: "{{ .Release.Name }}"
    xxxx
xxxxxxxxxxxx

推荐答案

关键字&模板&表示Helm将找到之前创建的模板,并根据模板中的模板完成Yaml文件。它必须事先创建。此类型的构造允许您多次引用同一方案。

例如,我们可以定义一个模板来封装Kubernetes标签块:

{{- define "mychart.labels" }}
  labels:
    generator: helm
    date: {{ now | htmlDate }}
{{- end }}

现在我们可以将此模板嵌入到现有的ConfigMap中,然后通过template操作将其包括在内:

{{- define "mychart.labels" }}
  labels:
    generator: helm
    date: {{ now | htmlDate }}
{{- end }}
apiVersion: v1
kind: ConfigMap
metadata:
  name: {{ .Release.Name }}-configmap
  {{- template "mychart.labels" }}
data:
  myvalue: "Hello World"
  {{- range $key, $val := .Values.favorite }}
  {{ $key }}: {{ $val | quote }}
  {{- end }}

当模板引擎读取该文件时,它将存储对mychart.labels的引用,直到template "mychart.labels"被调用。然后它将以内联方式呈现该模板。因此结果将如下所示:

# Source: mychart/templates/configmap.yaml
apiVersion: v1
kind: ConfigMap
metadata:
  name: running-panda-configmap
  labels:
    generator: helm
    date: 2016-11-02
data:
  myvalue: "Hello World"
  drink: "coffee"
  food: "pizza"

注意:Adefine不会生成输出,除非使用模板调用它,如本例所示。

有关templates的更多信息,请阅读this page

这篇关于Helm:&Quot;模板&Quot;关键字的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-28 05:46