1 个不稳定版本
0.1.0 | 2023年5月19日 |
---|
#7 in #helm
17KB
293 代码行
y2hcl
一个 CLI 工具,可以将 Yaml 值文件(例如 Helm Chart Values)转换为以下格式
- Helm cli set values,例如
--set some.var="somevalue"
- Terraform
helm_release
提供商set_value
- Terraform
helm_release
提供商sensitive_value
- HCL 类型的 map 变量,例如
some_map = {"some.var" = "somevalue"}
安装
您可以使用 cargo install 命令安装此工具
$ cargo install y2hcl
用法
$ y2hcl --help
Convert Helm Chart Values yaml to Terraform helm_release set_value, Helm Cli --set values etc.
Usage: y2hcl --filename <FILENAME> --output-format <OUTPUT_FORMAT>
Options:
-f, --filename <FILENAME> Filename or full path to YAML formated Helm Chart values
-o, --output-format <OUTPUT_FORMAT> Output format is how we want our Helm Chart values to look like. Supported format are `hcl_map`, `set_value`, `sensitive_value`, `helm_cli`
-h, --help Print help
-V, --version Print version
示例
例如,一个文件 values.yaml
包含以下内容
livenessProbe:
httpGet:
path: /user/login
port: http
initialDelaySeconds: 120
- YAML 值转换为
HCL Map
$ y2hcl -f values.yaml -o hcl_map
hcl_map = {
"livenessProbe.httpGet.path" = "/user/login"
"livenessProbe.httpGet.port" = "http"
"livenessProbe.initialDelaySeconds" = "120"
}
- YAML 值转换为
helm_release
set_value
$ y2hcl -f values.yaml -o set_value
set_value = {
name = "livenessProbe.httpGet.path"
value = "/user/login"
}
set_value = {
name = "livenessProbe.httpGet.port"
value = "http"
}
set_value = {
name = "livenessProbe.initialDelaySeconds"
value = "120"
}
- YAML 值转换为
helm_release
sensitive_value
$ y2hcl -f values.yaml -o sensitive_value
sensitive_value = {
name = "livenessProbe.httpGet.path"
value = "/user/login"
}
sensitive_value = {
name = "livenessProbe.httpGet.port"
value = "http"
}
sensitive_value = {
name = "livenessProbe.initialDelaySeconds"
value = "120"
}
- YAML 值转换为
Helm CLI
set values
$ y2hcl -f values.yaml -o helm_cli
--set livenessProbe.httpGet.path="/user/login" \
--set livenessProbe.httpGet.port="http" \
--set livenessProbe.initialDelaySeconds="120" \
依赖项
~3.5MB
~74K SLoC