You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

关于Vault Sidecar多Secret路径在postgres-exporter模板中的疑问

Postgres-Exporter模板多Secret路径取值问题

关键说明

单个{{ with secret }}块不支持传入多个Secret路径,Sidecar只会解析最后一个路径,这就是你遇到只有最后一个Secret值能正常读取的原因。

正确实现方式:独立调用secret函数

要让pass1、pass2分别从不同租户的Secret取值,需分开调用secret函数并将结果存入变量,避免上下文覆盖。示例代码如下:

# 分别获取两个租户的Secret实例
{{- $secretTenant1 := secret "TEST/A/TEST/DEV_COMMON1" -}}
{{- $secretTenant2 := secret "TEST/A/TEST/DEV_COMMON2" -}}

# 分别提取对应Secret中的密码值
pass1: {{ $secretTenant1.Data.password }}
pass2: {{ $secretTenant2.Data.password }}

嵌套with secret失效的原因

嵌套with块会覆盖当前上下文,内层with的上下文会替换外层的Secret上下文。比如错误写法中,内层with生效后,外层的Secret上下文已无法直接访问,导致pass1读取不到值:

# 错误示例:嵌套导致上下文覆盖
{{ with secret "TEST/A/TEST/DEV_COMMON1" }}
pass1: {{ .Data.password }}
  {{ with secret "TEST/A/TEST/DEV_COMMON2" }}
  pass2: {{ .Data.password }}
  {{ end }}
{{ end }}

这种写法中,当执行到内层with时,当前上下文变为第二个Secret,若此时再尝试读取外层的Secret值,就会因上下文不匹配显示<no value>。

内容的提问来源于stack exchange,提问作者Cvitoybamp

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 21:59:56