a CLI Tool to convert Yaml values file (e.g. Helm Chart Values) to the following format:
- Helm cli set values, e.g. --set some.var="somevalue"
- Terraform helm_release
provider set_value
- Terraform helm_release
provider sensitive_value
- HCL variable of type map, e.g. some_map = {"some.var" = "somevalue"}
You can install this using the cargo install command:
sh
$ cargo install y2hcl
```sh $ y2hcl --help
Convert Helm Chart Values yaml to Terraform helmrelease setvalue, Helm Cli --set values etc.
Usage: y2hcl --filename
Options:
-f, --filename hcl_map
, set_value
, sensitive_value
, helm_cli
-h, --help Print help
-V, --version Print version
```
For example, a file values.yaml
contains the following:
yaml
livenessProbe:
httpGet:
path: /user/login
port: http
initialDelaySeconds: 120
HCL Map
```sh $ y2hcl -f values.yaml -o hcl_map
hcl_map = { "livenessProbe.httpGet.path" = "/user/login" "livenessProbe.httpGet.port" = "http" "livenessProbe.initialDelaySeconds" = "120" } ```
helm_release
set_value
```sh $ 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"
}
```
helm_release
sensitive_value
```sh $ 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 values to Helm CLI
set values
```sh $ y2hcl -f values.yaml -o helm_cli
--set livenessProbe.httpGet.path="/user/login" \ --set livenessProbe.httpGet.port="http" \ --set livenessProbe.initialDelaySeconds="120" \ ```