【笔记ing】Helm-5 Chart模板指南-5 模板函数列表

模板函数列表

Helm包含了很多可以在模板中利用的模板函数。以下列出了具体分类:

Cryptographic and Security

Date

Dictionaries

Encoding

File Path

Kubernetes and Chart

Logic and Flow Control

Lists

Math

Float Math

Network

Reflection

Regular Expression

Semantic Version

String

Type Conversion

URL

UUID

  • Cryptographic and Security
  • Date
  • Dictionaries
  • Encoding
  • File Path
  • Kubernetes and Chart
  • Logic and Flow Control
  • Lists
  • Math
  • Float Math
  • Network
  • Reflection
  • Regular Expressions
  • Semantic Versions
  • String
  • Type Conversion
  • URL
  • UUID

Logic and Flow Control Functions

Helm包括了需要逻辑和流控制函数,包括and,coalesce,default,empty,eq,fail,ge,gt,le,lt,ne,not,and or。

and

返回两个参数的and布尔值。

and .Arg1 .Arg2

or

返回两个参数的or布尔值。会返回第一个非空参数或最后一个参数。

or .Arg1 .Arg2

not

返回参数的布尔求反。

not .Arg

eq

返回参数的布尔等式(比如,Arg1 == Arg2)。

eq .Arg1. .Arg2

ne

返回参数的布尔非等式(比如 Arg1 != Arg2)。

ne .Arg1 .Arg2

lt

如果第一参数小于第二参数,返回布尔真。否则返回➕(比如,Arg1 < Arg2)。

lt .Arg1 .Arg2

le

如果第一参数小于等于第二参数,返回布尔真,否则返回假(比如,Arg1 <= Arg2)。

le .Arg1 .Arg2

gt

如果第一参大于第二参数,返回布尔真,否则返回假(比如,Arg1 > Arg2)。

gt .Arg1 .Arg2

ge

如果第一参数大于第二参数,返回布尔真,否则返回假(比如,Arg1 >= Arg2)。

ge .Arg1 .Arg2

default

使用default设置一个简单的默认值。

default "foo" .Bar

上述示例中,如果 .Bar是非空值,则使用它,否则会返回foo。

“空”定义取决于以下类型:

整型:0

字符串:""

列表:[]

字典:{}

布尔:false

以及所有的nil(或null)

对于结构体,没有空的定义,所以结构体从来不会返回默认值。

empty

如果给定的值被认为是空的,则empty函数返回true,否则返回false。空值列举在default部分。

empty .Foo

注意在Go模板条件中,空值是为你计算出来的。这样你很少需要if not empty .Foo,仅使用if .Foo即可。

fail

无条件地返回带有指定文本的空string或者error。这在其他条件已经确定而模板渲染应该失败的情况下很有用。

fail "Please accept the end user license agreement"

coalesce

coalesce函数获取一个列表并返回第一个非空值。

coalesce 0 1 2

上述会返回1.

此函数用于扫描多个变量或值:

coalesce .name .parent.name "Matt"

上述示例会优先检查 .name是否为空。如果不是,就返回值。如果是空,继续检查.parent.name。最终,如果.name和.parent.name都是空,就会返回"Matt"。

ternay

ternay函数获取两个值和一个test值。如果test值是true,则返回第一个值。如果test值是空,则返回第二个值。这和C或其他编程语言中的ternary运算符类似。

true test value

ternary "foo" "bar" true

或者

true | ternary "foo" "bar"

上述返回"foo"

false test value

ternary "foo" "bar" false

或者

false | ternary "foo" "bar"

上述返回"bar"

String Functions

Helm包含了以下字符串函数: abbrev,abbrevboth,camelcase,cat,contains,hasPrefix,hasSuffix,indent,initial,kebabcase,lower,nindent,nospace,plural,print,printf,println,quote,randAlpha,randAlphaNum,randAscii,randNumeric,repeat,replace,shuffle,snakecase,squote,substr,swapcase,title,trim,trimAll,trimPrefix,trimSuffix,trunc,untitle,upper,wrap,和wrapWith

 abbrev, abbrevboth,camelcase, cat, contains, hasPrefix, hasSuffix,indent, initials, kebabcase, lower, nindent,nospace, plural, print, printf, println, quote,randAlpha, randAlphaNum, randAscii,randNumeric, repeat, replace, shuffle, snakecase,squote, substr, swapcase, title, trim, trimAll,trimPrefix, trimSuffix, trunc, untitle, upper,wrap, 和 wrapWith

print

返回个部分组合的字符串

print "Matt has " .Dogs " dogs"

如果可能,非字符串类型会被转换成字符串。

注意,当相邻两个参数不是字符串时会在它们之间添加一个空格。

println

和print效果一样,但会在末尾新添加一行。

printf

返回参数按顺序传递的格式化字符串。

printf "%s has %dogs." .Name .NumberDogs

占位符取决于传入的参数类型。这包括:

一般用途:

1、%v 默认格式的值

当打印字典时,加号参数(%+v)可以添加字段名称

2、%%字符百分号,不使用值

布尔值:

%t true或false

整型:

%b 二进制

%c the character represented by the corresponding Unicode code point

%d 十进制

%o 八进制

%0 带0o前缀的八进制

%q 安全转移的单引号字符

%x 十六进制,使用小写字符a-f

%X 十六进制,使用大写字符A-F

%U Unicode格式:U+1234;和"U+%04X"相同

浮点数和复杂成分

%b 指数二次幂的无小数科学计数法,比如-123456p-78

%e 科学计数法,比如:-123456e+78

%E 科学计数法,比如:-1.23456E+78

%f 无指数的小数,比如:123.456

%F 与%f同义

%g %e的大指数,否则时%f

%G %E的大指数,否则时%F

%x 十六进制计数法(和两个指数的十进制幂),比如:-0x1.23abcp+20

%X 大写的十六进制计数法,比如:-0X1.23ABCP+20

字符串和字节切片:

%s 未解析的二进制字符或且片

%q 安全转移的双引号字符串

%x 十六进制,小写,每个字节两个字符

%X 十六进制,大写,每个字符两个字符串

切片:

%p 十六进制的第0个元素的地址,以0x开头

trim

trim行数移除字符串两边的空格:

trim "   hello   "

上述结果为:hello

trimAll

从字符串中移除给定的字符:

trimAll "$" "$5.00"

上述结果为: 5.00(作为一个字符串)。

trimPrefix

从字符串中移除前缀:

trimPrefix "-" "-hello"

上述结果为:hello

trimSuffix

从字符串中移除后缀:

trimSuffix "-" "hello-"

上述结果为:hello

lower

将整个字符串转换成小写:

lower "HELLO"

上述结果为:hello

upper

将整个字符串转换成大写:

upper "hello"

上述结果为:HELLO

title

首字母转化成大写:

title "hello world"

上述结果为:Hello World

untitle

移除首字母大写:untitle "Hello World"会得到hello world。

repeat

重复字符串多次:

repeat 3 "hello"

上述结果为:hellohellohello

substr

获取字符串的子串,有三个参数:

start(int)

end(int)

string(string)

substr 0 5 "hello world"

上述结果为:hello

nospace

去掉字符串中的所有空格:

nospace "hello w o r l d"

上述结果为:helloworld

trunc

截断字符串。

trunc 5 "hello world"

上述结果为:hello

trunc -5 "hello world"

上述结果为:world

abbrev

用省略号阶段字符串(...)

参数:

最大长度

字符串

abbrev 5 "hello world"

上述结果为:he...,因为将省略号算进了长度中。

abbrevboth

两边都省略

abbrevboth 5 10 "1234 5678 9123"

上述结果为:...5678...

it takes:

左侧偏移值

最大长度

字符串

initials

截取给定字符串每个单词的首字母,并组合在一起。

initials "First Try"

上述结果为:FT

randAlphaNum,randAlpha,randNumeric,and randAscii

这四个字符串生成加密安全的(使用crypto/and)的随机字符串,但是字符集合不同:

randAlphaNum使用0-9a-zA-Z

randAlpha使用a-zA-Z

randNumeric使用0-9

randAscii使用所有的可打印ASCII字符

每个函数都需要一个参数:字符串的整型长度

randNumeric 3

上述会生成三个数字的字符串。

————————————

仅用于本人学习

来源:Helm | Docs

你可能感兴趣的:(Helm,云原生,kubernetes,k8s)