#yaml #helm #hcl #cli #shell #cli-tool #convert-yaml-values-to-hcl

bin+lib y2hcl

将 Helm Chart Values yaml 转换为 Terraform helm_release set_value,Helm Cli --set values 等

1 个不稳定版本

0.1.0 2023年5月19日

#7 in #helm

MIT 许可证

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
  1. YAML 值转换为 HCL Map
$ y2hcl -f values.yaml -o hcl_map

hcl_map = {
  "livenessProbe.httpGet.path" = "/user/login"
  "livenessProbe.httpGet.port" = "http"
  "livenessProbe.initialDelaySeconds" = "120"
}
  1. 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"
    }
  1. 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"
    }
  1. 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