-2

我正在尝试在 values.yaml 中的特定位置添加以下键值,sed 没有多大帮助,因为它破坏了 yaml 的缩进。有没有其他方法可以做到这一点。

例如:示例 yaml

在此处输入图像描述

所需的 yaml

在此处输入图像描述

4

1 回答 1

1

使用sed您可以在此之前插入一段文本livenessProbe

sed -e '/livenessProbe/i\
volumes:\n- name: my-agent\n  persistentVolume:\n  claimName: my-agent
' sample.yaml

如果sample.yaml

resources:
  limits:
    cpu: 500m
    memory: 2Gi
  requests:
    cpu: 100m
    memory: 512Mi
livenessProbe:
  httpGetPath: /heartbeat

结果将是:

resources:
  limits:
    cpu: 500m
    memory: 2Gi
  requests:
    cpu: 100m
    memory: 512Mi
volumes:
- name: my-agent
  persistentVolume:
  claimName: my-agent
livenessProbe:
  httpGetPath: /heartbeat

如果要添加的代码块在 yaml 文件中addons.yaml

sed -e "/livenessProbe/i\
$(cat addons.yaml | sed ':a;N;$!ba;s/\n/\\n/g')
" sample.yaml
于 2021-09-02T10:16:46.227 回答