将 YAML 文件转换为 vault kv put 的属性文件
Convert YAML file to Properties file for vault kv put
我有一个 YAML 文件,我想将它推送到 Vault。
# values.yaml
db:
username: msql
pass: p$$ass
但是,保管库只接受 key/value 对,即秘密引擎 v2。
vault kv secret/projects/craft/app-a mykey=value
如果我可以将 YAML 文件转换为属性文件,我将自动获得 key/value 对。然后,我可以推送它的 key/value 对 .
我看到问题 Convert YAML file to Application.properties 会回答我的问题。
但是,答案建议了一些工具,但是它不支持yaml列表格式。
另外,问题已关闭,不再接受答案!!
我试过其他方法,但似乎没有任何效果。
如何将 YAML 文件转换为完整密钥 path/value 对..这是一个属性文件的末尾。
因为原问题Convert YAML file to Application.properties已经关闭,所以我会在这里回答
的确,这里yq CLI一定够了:
yq r values.yaml --printMode pv "**" | sed 's/: /=/' > values.properties
解释:
yq r
: 读取 yaml 文件
--printMode pv
: pv 表示路径值
**
: 表示所有关键路径。
sed 's/: /=/'
:如果你 运行 它没有 sed,路径和值之间的分隔符是 :
,而我们需要它是 =
。所以我们需要在每一行中将 :
替换为 =
(仅第一次出现)
虽然不完全是你要求的,但你可以将文本保存为base64,然后在检索时对其进行解码,例如
vault kv put secret/foo data=$(base64 < values.yaml )
然后当你检索它时,base64 解码它,例如
vault kv get -field data secret/foo | base64 -d
我有一个 YAML 文件,我想将它推送到 Vault。
# values.yaml
db:
username: msql
pass: p$$ass
但是,保管库只接受 key/value 对,即秘密引擎 v2。
vault kv secret/projects/craft/app-a mykey=value
如果我可以将 YAML 文件转换为属性文件,我将自动获得 key/value 对。然后,我可以推送它的 key/value 对 .
我看到问题 Convert YAML file to Application.properties 会回答我的问题。
但是,答案建议了一些工具,但是它不支持yaml列表格式。
另外,问题已关闭,不再接受答案!!
我试过其他方法,但似乎没有任何效果。
如何将 YAML 文件转换为完整密钥 path/value 对..这是一个属性文件的末尾。
因为原问题Convert YAML file to Application.properties已经关闭,所以我会在这里回答
的确,这里yq CLI一定够了:
yq r values.yaml --printMode pv "**" | sed 's/: /=/' > values.properties
解释:
yq r
: 读取 yaml 文件--printMode pv
: pv 表示路径值**
: 表示所有关键路径。sed 's/: /=/'
:如果你 运行 它没有 sed,路径和值之间的分隔符是:
,而我们需要它是=
。所以我们需要在每一行中将:
替换为=
(仅第一次出现)
虽然不完全是你要求的,但你可以将文本保存为base64,然后在检索时对其进行解码,例如
vault kv put secret/foo data=$(base64 < values.yaml )
然后当你检索它时,base64 解码它,例如
vault kv get -field data secret/foo | base64 -d