yq:如何读取同级元素的值?

维迪亚萨加·马丘帕利

我正在探索yq来修改我的YAML,我想在其中添加specImageStream新元素name == openshift45

apiVersion: v1
items:
- apiVersion: image.openshift.io/v1
  kind: ImageStream
  metadata:
    annotations:
      openshift.io/generated-by: OpenShiftNewApp
    creationTimestamp: null
    labels:
      app: openshift45
      app.kubernetes.io/component: openshift45
      app.kubernetes.io/instance: openshift45
    name: nodejs-10
  spec:
    lookupPolicy:
      local: false
    tags:
    - annotations:
        openshift.io/imported-from: registry.access.redhat.com/ubi8/nodejs-10
      from:
        kind: DockerImage
        name: registry.access.redhat.com/ubi8/nodejs-10
      generation: null
      importPolicy: {}
      name: latest
      referencePolicy:
        type: ""
  status:
    dockerImageRepository: ""
- apiVersion: image.openshift.io/v1
  kind: ImageStream
  metadata:
    annotations:
      openshift.io/generated-by: OpenShiftNewApp
    creationTimestamp: null
    labels:
      app: openshift45
      app.kubernetes.io/component: openshift45
      app.kubernetes.io/instance: openshift45
    name: openshift45
  spec:
    lookupPolicy:
      local: false
  status:
    dockerImageRepository: ""

以下命令返回有效metadata元素。现在,我想移到父级,然后选择spec-https yq: //github.com/mikefarah/yq有可能吗?

yq r openshift45.yaml --printMode pv "items(kind==ImageStream).(name==openshift45)"

退货

items.[1].metadata:
  annotations:
    openshift.io/generated-by: OpenShiftNewApp
  creationTimestamp: null
  labels:
    app: openshift45
    app.kubernetes.io/component: openshift45
    app.kubernetes.io/instance: openshift45
  name: openshift45

预期产量:

apiVersion: v1
items:
- apiVersion: image.openshift.io/v1
  kind: ImageStream
  metadata:
    annotations:
      openshift.io/generated-by: OpenShiftNewApp
    creationTimestamp: null
    labels:
      app: openshift45
      app.kubernetes.io/component: openshift45
      app.kubernetes.io/instance: openshift45
    name: nodejs-10
  spec:
    lookupPolicy:
      local: false
    tags:
    - annotations:
        openshift.io/imported-from: registry.access.redhat.com/ubi8/nodejs-10
      from:
        kind: DockerImage
        name: registry.access.redhat.com/ubi8/nodejs-10
      generation: null
      importPolicy: {}
      name: latest
      referencePolicy:
        type: ""
  status:
    dockerImageRepository: ""
- apiVersion: image.openshift.io/v1
  kind: ImageStream
  metadata:
    annotations:
      openshift.io/generated-by: OpenShiftNewApp
    creationTimestamp: null
    labels:
      app: openshift45
      app.kubernetes.io/component: openshift45
      app.kubernetes.io/instance: openshift45
    name: openshift45
  spec:
    *dockerImageRepository: <$MYREGISTRY>/<$MYNAMESPACE>/<$MYPROJECT>*
    lookupPolicy:
      local: false
  status:
    dockerImageRepository: ""
伊尼安

关于mikefarah / yq中路径表达式的文献不多,没有显示如何使用多个条件到达所需对象的真实示例。因此,对于有问题的YAML,使用一种独特的条件,您可以执行以下操作。已验证yq version 3.3.2

yq w openshift45.yaml 'items.(metadata.name == openshift45).spec.dockerImageRepository' '<$MYREGISTRY>/<$MYNAMESPACE>/<$MYPROJECT>'

您可以将-i标志与write一起使用以就地修改YAML。请参阅就地更新文件

如果不希望这样,并且您需要多个条件选择才能到达所需的对象,建议在GitHub页面上提出问题-https: //github.com/mikefarah/yq/issues,要求针对相同的语法正确。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

XPath:如何根据紧邻的同级元素的值选择元素?

来自分类Dev

如何根据其同级属性值从元素获取文本值?

来自分类Dev

XmlReader:不读取同级子元素

来自分类Dev

根据同级值获取元素值

来自分类Dev

如何通过jquery读取dom元素值

来自分类Dev

查找动态创建的元素的先前同级的值

来自分类Dev

使用XSLT计算同级元素的值总和

来自分类Dev

如何使用DOM JAVA获取XML元素的第二个同级值?

来自分类Dev

当我在根元素上有名称空间时,如何获得同级值?

来自分类Dev

如何查找元素的前N个同级

来自分类Dev

如何重新计算同级元素上的样式?

来自分类Dev

如何切换同级子元素?

来自分类Dev

如何获得与另一个元素属性相同级别的元素的值

来自分类Dev

XSLT:输出元素值取决于前后同级的值

来自分类Dev

XSLT:输出元素值取决于前后同级的值

来自分类Dev

如何通过名称获取同级节点的值?

来自分类Dev

如何使用 Python 从 json 读取特定元素的值?

来自分类Dev

如何从传入的 Scanner 中读取数组元素的值?

来自分类Dev

选择名称相同但值不同的select时禁用同级元素

来自分类Dev

XSLT-根据条件修改元素同级的值

来自分类Dev

LINQ to XML:如果存在另一个同级元素,则为同级值

来自分类Dev

如何使用硒导航到同级<p>元素

来自分类Dev

如何使两个同级元素同时过渡?

来自分类Dev

量角器:如何定位给定元素的同级?

来自分类Dev

如何相对于居中同级放置元素

来自分类Dev

如何围绕同级HTML元素绘制一个框?

来自分类Dev

如何动态选择上一个同级元素

来自分类Dev

如何相对于居中同级放置元素

来自分类Dev

当没有同级物时如何选择元素?

Related 相关文章

热门标签

归档