helm-chart3,函数和管道

[TOC]

一个简单的函数

quote : 引入字符串,具体看示例:

apiVersion: v1
kind: ConfigMap
metadata:
  name: {{ .Release.Name }}-configmap
data:
  myvalue: "Hello World"
  drink: {{ quote .Values.favorite.drink }}
 

这里 drink 的值会被渲染为 "tea"(比之前多引号)

Helm拥有超过60种可用函数。其中一些是由Go模板语言Go template language 本身定义的。其他大多数都是Sprig模板库Sprig template library的一部分。 后边会再介绍几个。

管道 和几个函数

类似UNIX 的管道,前者的输出,可以作为后者的输入。

比如,利用管道,上边的模板可以写成这样:

apiVersion: v1
kind: ConfigMap
metadata:
  name: {{ .Release.Name }}-configmap
data:
  myvalue: "Hello World"
  drink: {{ .Values.favorite.drink | quote }}
 
 # upper 函数
  drinkTea: {{ .Values.favorite.drink |upper| quote }}
 
 # repeat 函数
  drinkT: {{ .Values.favorite.drink | repeat 5 | quote }}
  
  
  # default 函数
  drinkT2: {{ .Values.favorite.drink | default "coffee" | quote }}
  
  # 

反转顺序是模板中的常见做法 .val | quote比quote .val更常见

其结果为: drink:"tea" , drinkTea:"TEA" ,drinkT:"teateateateatea" ,drinkT2:"tea"

其中 upper 是一个转大写的函数。
repeat是一个重复渲染输入参数的函数,5是次数。

  defualt 则是指定一个默认值,如果原来的值为null则设为默认值(coffee)。

实际使用中,静态的值应当在values.yaml中定义好,动态计算的值才放在default 里。

drink: {{ .Values.favorite.drink | default (printf "%s-tea" (include "fullname" .)) }}

你可能感兴趣的:(helm-chart3,函数和管道)