cue为使用golang编写的一款配置语言。
安装
mac用户执行:brew install cue-lang/tap/cue
,其他操作系统用户可以直接使用源码安装:go install cuelang.org/go/cmd/cue@latest
命令行使用
创建如下文件first.cue
1 | a: 1.5 |
- cue fmt first.cue:对代码进行格式化
- cue vet first.cue:校验语法的正确性
- cue eval first.cue:获得渲染结果
- cue export first.cue:将渲染结果以json格式的形式导出,如果指定参数–out yaml,则可以以yaml方式导出。如果要导出某个变量,可以使用-e参数来指定变量。
语法
基础数据类型
支持的数据类型包括:float、int、string、array、bool、struct、null、自定义数据类型
1 | // float |
更复杂的自定义数据类型如下:1
2
3
4
5
6
7
8#abc: {
x: int
y: string
z: {
a: float
b: bool
}
}
定义cue模板
文件deployment.cue定义如下内容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// 自定义结构体类型
#parameter: {
name: string
image: string
}
template: {
apiVersion: "apps/v1"
kind: "Deployment"
spec: {
selector: matchLabels: {
"app.oam.dev/component": parameter.name
}
template: {
metadata: labels: {
"app.oam.dev/component": parameter.name
}
spec: {
containers: [{
name: parameter.name // 引用自定义结构体变量parameter
image: parameter.image
}]
}}}
}
parameter:{
name: "mytest"
image: "nginx:v1"
}
执行 cue export deployment.cue -e template –out yaml 可获取到渲染结果。