kubernetes Include和toyaml可以在helm中呈现相同的模板,我应该用哪个?

sxissh06  于 2023-06-21  发布在  Kubernetes
关注(0)|答案(1)|浏览(140)

includetoyaml具有相同的功能。推荐哪个?
我的 Helm 版本

$ helm version --short
v3.12.0+gc9f554d

include

deployment.yaml

{{- include "template.resources" . | nindent 8 }}

_helpers.tpl

{{/*
resources
*/}}
{{- define "template.resources" -}}
resources:
  limits:
    memory: {{ .Values.resources.limits.memory}}
    cpu: {{ .Values.resources.limits.cpu}}
  requests:
    memory: {{ .Values.resources.requests.memory}}
    cpu: {{ .Values.resources.requests.memory}}  
{{- end }}

values.yaml

resources:
  limits:
    memory: 512Mi
    cpu: "1"
  requests:
    memory: 256Mi
    cpu: "0.2"

toyaml

deployment.yaml

resources:
          {{- toYaml .Values.resources | nindent 10 }}

values.yaml

resources:
  limits:
    memory: 512Mi
    cpu: "1"
  requests:
    memory: 256Mi
    cpu: "0.2"
6ojccjat

6ojccjat1#

**include:**允许包含一个模板,然后对该模板的输出执行操作,Helm有一个特殊的include函数(参见helm官方文档)。
**toYaml:**toYaml可用于从任何源(see offical helm docs)复制yaml的块。
例如,您可以转义点序列,这在图表使用toYaml函数解析注解、标签和节点选择器时可能会派上用场。

--set nodeSelector."kubernetes\.io/role"=master的语法变为:

nodeSelector:
  kubernetes.io/role: master

relate topic: "helm templating with toYaml"

相关问题