【问题标题】:yq replace value in manifest yamlyq 替换清单 yaml 中的值
【发布时间】:2022-12-14 08:44:33
【问题描述】:

我在下面有一个用于负载均衡器的 k8s 清单文件,我一生都无法将 $ipaddress 替换为值,我必须覆盖整个文件或部分文件,甚至只是留空。我怎样才能像下面那样只替换 $ipaddress

试过下面的示例 2:

yq e '.spec|=select(.loadBalancerIP) .ports.port = "172.16.87.98"' manifest.yaml
yq e -i '(.spec|=select(.loadBalancerIP.$ipaddress) = "172.16.87.98"' manifest.yaml
  apiVersion: v1
    kind: Service
    metadata:
      name: my-lb-cluster
    spec:
      loadBalancerIP: $ipaddress
      ports:
        - name: ssl
          port: 8080
      selector:
        role: webserver
      sessionAffinity: None
      type: LoadBalancer

【问题讨论】:

  • 不确定你想要哪个标签,但似乎与jquery无关
  • 为什么要使用 jq 标签?
  • 抱歉,试图删除,错误添加
  • yaml 中是否有多个条目?

标签: yq


【解决方案1】:

如果 YAML 与您的问题一样简单,您可以使用:

yq e -i '.spec.loadBalancerIP = "172.16.87.98"' manifest.yaml

...更新manifest.yaml并将.spec内的.loadBalancerIP设置为"172.16.87.98"

【讨论】:

  • 啊伙计,谢谢我把这个想法复杂化了我需要一个选择来找到这个
【解决方案2】:

我知道已经晚了,但如果您想从变量传递值,这会有所帮助。

export LB_IP=1.1.1.1

yq e -i '.spec.loadBalancerIP= env(LB_IP)' manifest.yaml

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-12-07
    • 2023-01-07
    • 2020-09-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多