微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用yq修改YAML以在元数据的每个条目下包括标签

如何解决使用yq修改YAML以在元数据的每个条目下包括标签

我有一个如下所示的yaml文件。该yaml文件需要在每个configmap下打上新标签

{this.state.CurrentAppointments.map(item => (
    <div key = {item.leadid}>
        <ListItem button 
            className={classes.listItem} 
            selectedLead = {item}
            onClick= {(event)=>this.handleRowSelected(item)} // event is the value to click and item is the value the map
    >
    <div>

我想在此configmap列表中的每个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    

我不确定如何在bash中执行此操作。请帮助我如何执行bash。是否对您有帮助?或Kustomize?

解决方法

如果您使用的是mikefarah/yq,则可以使用以下路径表达式在array of items下的所有metadata字段上写

yq w yaml 'items[*].metadata.labels.grafana_dashboard' --tag '!!str' 1

如果产生的YAML输出符合预期,则可以使用-i标志yq w -i '..'

write in-place

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。