从库KV值构建动态字符串

时间:2016-11-09 17:38:47

标签: go consul-template

我正在尝试创建与此类似的东西:

{{with secret "secret/data"}}
    {{range $k, $v := .Data}}
        {{if eq $k "db-primary"}}
            {{with $secret := secret "mysql-$v/creds/primary"}}
                {{$secret.username}}:{{$secret.password}}
            {{end}}
        {{end}}
    {{end}}
{{end}}

其中$v是动态值。我无法弄清楚如何让嵌套的with语句将$v的语句解析为其参数。

1 个答案:

答案 0 :(得分:0)

如果有人想要做类似的话,我找到了答案

{{with secret "secret/data"}}
    {{range $k, $v := .Data}}
        {{if eq $k "db-primary"}}
            {{with $secret := secret (printf "mysql-%s/creds/primary" $v)}}
                {{$secret.username}}:{{$secret.password}}
            {{end}}
        {{end}}
    {{end}}
{{end}}

使用printf可以让我动态替换和注入值。