yaml - 将 YAML 文件转换为 vault kv put 的属性文件

标签 yaml properties-file hashicorp-vault

我有一个 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/

相关文章:

java - 使用 SnakeYAML 编写 YAML 文件

python-3.x - ruamel yaml 为转储禁用别名

yaml - 如何根据 IAM 角色 CloudFormation 模板中的参数提供不同的条件

properties-file - Augeas:如何缩短树路径?

go - 无法使用 gopkg.in/yaml.v2 解码具有缩进或空值的 yaml 文件

java - 无法链接已部署的 java 程序中的属性文件

Java属性文件保存在system32文件夹中

mysql - 如何使用 Hashicorp Vault 访问 node.js 中的 secret

hashicorp-vault - Hashicorp 金库 : "Code: 400. Errors" Error Message

go - 使用mapstructure处理接口(interface)数据