Helm Vault agent-inject-template注解渲染异常,引号未正确闭合求助
Vault Agent注入注解渲染JSON格式异常问题解决
问题情况
在Kubernetes Deployment里配置Vault Agent注入注解后,生成的cos.json文件格式出问题了——apikey的闭合双引号被换行弄到下一行,导致应用解析JSON时报错。
用的注解配置
vault.hashicorp.com/agent-inject-secret-cos.json: "observability/data/dev/cosapikey" vault.hashicorp.com/agent-inject-template-cos.json: | {{`{{- with secret "observe/cosapikey" -}} { "credential": { "apikey": "{{ .Data.data.cosapikey }}" } } {{- end -}}`}}
实际错误输出
root@vault-demo-686fdcbdb7-4kvtj:/vault/secrets# cat cos.json { "credential": { "apikey": "ddfdffsfjfjgjgdkdkfj "} }
期望正确输出
root@vault-demo-686fdcbdb7-4kvtj:/vault/secrets# cat cos.json { "credential": { "apikey": "ddfdffsfjfjgjgdkdkfj" } }
解决办法
- 对齐Secret路径:把模板里的
secret "observe/cosapikey"改成和注解一致的secret "observability/data/dev/cosapikey",保证能正确拉取密钥数据 - 清理密钥值的换行:输出apikey时加上
trim函数,写成{{ trim .Data.data.cosapikey }},去掉值首尾的换行和空白字符,避免引号被挤到下一行 - 简化引号写法:YAML多行字符串里直接用双引号,不用转成
",减少转义引发的解析问题
内容的提问来源于stack exchange,提问作者Raghavendra
相关产品推荐
相关产品推荐

