argocd清单中的json-patch通配符用法

问题描述

是否可以替换

---
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
  name: elastic-operator
  labels:
    argocd.application.type: "system"
spec:
  ignoreDifferences:
    - group: admissionregistration.k8s.io
      kind: ValidatingWebhookConfiguration
      jsonPointers:
        - /webhooks/0/clientConfig/caBundle
    - group: admissionregistration.k8s.io
      kind: ValidatingWebhookConfiguration
      jsonPointers:
        - /webhooks/1/clientConfig/caBundle
    - group: admissionregistration.k8s.io
      kind: ValidatingWebhookConfiguration
      jsonPointers:
        - /webhooks/2/clientConfig/caBundle

要使用“通配符”代替吗?以下是我正在寻找的“无效”示例:

---
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
  name: elastic-operator
  labels:
    argocd.application.type: "system"
spec:
  ignoreDifferences:
    - group: admissionregistration.k8s.io
      kind: ValidatingWebhookConfiguration
      jsonPointers:
        - /webhooks/[*]/clientConfig/caBundle

我无法在他们的文档中找到任何表明这是可行的,也不是相反的说法。即https://argoproj.github.io/argo-cd/user-guide/diffing/ 似乎正在使用“ json-patch”,但在阅读一些RFC时,我也找不到任何有关通配符的信息。

谢谢!

解决方法

以防万一其他人面临这种​​情况。答案是否定的,json patch 不允许使用该表达式。幸运的是,newer 版本的 argocd 允许新的“jqPathExpressions”使用 json 路径 (!=patch):

data:
  resource.customizations: |
    admissionregistration.k8s.io/MutatingWebhookConfiguration:
      ignoreDifferences: |
        jqPathExpressions:
        - '.webhooks[]?.clientConfig.caBundle'

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...