我有一个包含以下内容的文件,
- groups:
- system:bootstrappers
- system:nodes
rolearn: arn:aws:iam::1234566:role/radeks-project-us-east-1-NodeInstanceRole
username: system:node:{{EC2PrivateDNSName}}
我要将此文件内容附加到下面所示的eks,前两行,
eks:
iammappings:
- groups:
- system:bootstrappers
- system:nodes
rolearn: arn:aws:iam::1234566:role/radeks-project-us-east-1-NodeInstanceRole
username: system:node:{{EC2PrivateDNSName}}
我尝试了yq合并。但这对我没有用。请让我知道该怎么做。
答案 0 :(得分:1)
有一种用于以bash解析yaml的特定工具,即yq
与jq
相同。
链接-https://github.com/mikefarah/yq
您必须按如下所示修改源yaml文件
- groups:
- system:bootstrappers
- system:nodes
- rolearn: arn:aws:iam::1234566:role/radeks-project-us-east-1-NodeInstanceRole
- username: system:node:{{EC2PrivateDNSName}}
其他yq
不会将其视为正确的Yaml文件。
下一步,使用以下命令完成工作
yq p -i file.yaml 'eks.iammappings'
以上命令使用prefix
函数,并将在适当位置替换。该文件的内容如下
eks:
iammappings:
- groups:
- system:bootstrappers
- system:nodes
- rolearn: arn:aws:iam::1234566:role/radeks-project-us-east-1-NodeInstanceRole
- username: system:node:{{EC2PrivateDNSName}}