gpt4 book ai didi

kubernetes - 如何在 yq 中的特定键之后在 yaml 中插入或添加字段

转载 作者:行者123 更新时间:2023-12-02 11:55:36 64 4
gpt4 key购买 nike

我有一个带有以下块的 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 等工具提供任何答案。

最佳答案

干得好

$ yq --yaml-output '.spec |= ({selector: {matchLabels: {app: "test-app"}}} + .)' </tmp/your-yaml-file.yaml 

spec:
selector:
matchLabels:
app: test-app
replicas: 1
strategy:
type: Recreate

既然你提到你有数百个文件,每个文件都有很多 spec元素,目前尚不清楚这是否会解决您的实际问题,但希望它会有所帮助。祝你好运!

关于kubernetes - 如何在 yq 中的特定键之后在 yaml 中插入或添加字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61109518/

64 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com