我有一个yaml文件,像below.This yaml文件需要在每个configmap下打一个新的标签。
apiVersion: v1
kind: ConfigMapList
items:
- apiVersion: v1
data:
test: 1
kind: ConfigMap
metadata:
name: grafana-dashboard-apiserver1
namespace: monitoring
- apiVersion: v1
data:
test: 2
kind: ConfigMap
metadata:
name: grafana-dashboard-apiserver2
namespace: monitoring
- apiVersion: v1
data:
test: 3
kind: ConfigMap
metadata:
name: grafana-dashboard-apiserver3
namespace: monitoring 我想在这个configmaplist中的每个configmap下插入标签,如下所示:
apiVersion: v1
kind: ConfigMapList
items:
- apiVersion: v1
data:
test: 1
kind: ConfigMap
metadata:
name: grafana-dashboard-apiserver1
namespace: monitoring
labels:
grafana_dashboard: "1"
- apiVersion: v1
data:
test: 2
kind: ConfigMap
metadata:
name: grafana-dashboard-apiserver2
namespace: monitoring
labels:
grafana_dashboard: "1"
- apiVersion: v1
data:
test: 3
kind: ConfigMap
metadata:
name: grafana-dashboard-apiserver3
namespace: monitoring
labels:
grafana_dashboard: "1" 我不确定如何在bash..Please中做这件事帮助我如何做这个bash..does yq帮助?还是Kustomize?
发布于 2020-10-16 21:26:50
如果您使用的是mikefarah/yq,则可以使用以下路径表达式来写入array of items下的所有metadata字段
yq w yaml 'items[*].metadata.labels.grafana_dashboard' --tag '!!str' 1如果生成的YAML输出与预期一致,则可以使用-i标志write in-place,即yq w -i '..'
https://stackoverflow.com/questions/64382581
复制相似问题