k8s1.14-helm模板几个函数

函数

quote:是Sprig 模板库提供的一种字符串函数,用途就是用双引号将字符串括起来,如果需要双引号",则需要添加\来进行转义,而squote函数的用途则是用双引号将字符串括起来,而不会对内容进行转义。

upper:是Sprig 模板库提供的,表示将字符串每一个字母都变成大写

default:该函数允许我们在模板内部指定默认值,以防止该值被忽略掉了。

title :将字符串首字母变成大写

管道

模板语言除了提供了丰富的内置函数之外,其另一个强大的功能就是管道的概念。和UNIX中一样,管道我们通常称为Pipeline,是一个链在一起的一系列模板命令的工具,以紧凑地表达一系列转换。简单来说,管道是可以按顺序完成一系列事情的一种方法

例子

1
2
3
4
5
6
7
8
9
[root@master101 sy]# vim mychart/templates/configmap.yaml 
apiVersion: v1
kind: ConfigMap
metadata:
name: {{ .Release.Name }}-configmap
data:
myvalue: {{ .Values.hello | default "Hello World" | quote }}
k8s: {{ .Values.course.k8s | upper | quote }}
python: {{ .Values.course.python | repeat 5 | quote }}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
[root@master101 sy]# helm install --dry-run --debug mychart/
[debug] Created tunnel using local port: '42317'

[debug] SERVER: "127.0.0.1:42317"

[debug] Original chart version: ""
[debug] CHART PATH: /root/sy/mychart

NAME: crusty-hydra
REVISION: 1
RELEASED: Fri June 20 10:02:52 2019
CHART: mychart-0.1.0
USER-SUPPLIED VALUES:
{}

COMPUTED VALUES:
course:
k8s: devops
python: django

HOOKS:
MANIFEST:

---
# Source: mychart/templates/configmap.yaml
apiVersion: v1
kind: ConfigMap
metadata:
name: crusty-hydra-configmap
data:
myvalue: "Hello World"
k8s: "DEVOPS"
python: "djangodjangodjangodjangodjango"

可以看到,管道是按照顺序的,先执行upper,在执行quote;下面那个是先执行repeat 5次,在执行quote。

Donate