我有一个 YAML 文件,我想将它推送到 Vault。
# values.yaml
db:
username: msql
pass: p$$ass
但是,保险库只接受键/值对,即 secret 引擎 v2。
vault kv secret/projects/craft/app-a mykey=value
如果我可以将 YAML 文件转换为属性文件,我将自动获取键/值对。然后,我可以推送它的键/值对。
我可以看到问题Convert YAML file to Application.properties会回答我的问题。
但是,答案建议了一些工具,但是它不支持yaml列表格式。
此外,问题已关闭,不再接受答案! 😭
我试过其他方法,但似乎没有任何效果。
如何将 YAML 文件转换为完整的键路径/值对..这是一个属性文件的末尾。
最佳答案
因为原题Convert YAML file to Application.properties已经关闭,我会在这里回答。
确实,yq CLI这里一定够了:
yq r values.yaml --printMode pv "**" | sed 's/: /=/' > values.properties
解释:
yq r
: 读取yaml文件--printMode pv
: pv表示Path-Value**
: 表示所有关键路径。sed 's/:/=/'
:如果你在没有sed的情况下运行它,路径和值之间的分隔符是:
,而我们需要它是=
。所以我们需要在每一行中将:
替换为=
(仅在第一次出现时)
关于yaml - 将 YAML 文件转换为 vault kv put 的属性文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63098013/