我有一个带有以下块的 k8s yaml 文件
spec:
replicas: 1
strategy:
type: Recreate
我想在“规范:”之后添加下面的块
selector:
matchLabels:
app: test-app
该文件很大并且有很多“spec:”字段,所以它应该在第一次匹配时添加。
最终文件内容应如下所示:
spec:
selector:
matchLabels:
app: test-app
replicas: 1
strategy:
type: Recreate
我使用带有正确缩进的 yq 提出了这个可行的解决方案,但它附加在文件的末尾,维护和读取类似的 100 个文件很痛苦。
yq -i -y '.spec += {selector:{matchLabels:{app:"test-app"}}}' filename.yaml
欢迎使用 sed 或 awk 等工具提供任何答案。