jsonpath - 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 补丁不允许使用该表达式。幸运的是,新版本的 argocd 允许新的“jqPathExpressions”使用 json 路径(!=patch):
data:
resource.customizations: |
admissionregistration.k8s.io/MutatingWebhookConfiguration:
ignoreDifferences: |
jqPathExpressions:
- '.webhooks[]?.clientConfig.caBundle'
推荐阅读
- javascript - 我怎么知道我在哪个组件中
- audiokit - 如何在使用振荡器时消除滑行效应?
- java - javax.net.ssl.SSLPeerUnverifiedException:将 Spring Boot 从 2.1.0 升级到 2.2.0.M3 后未通过身份验证
- html - 引导表单:自定义文件按钮工作但不显示上传文件的名称
- java - 在容器化 web 应用程序时,它卡在复制 war 文件
- java - Akka FSM:如何编写测试用例来验证状态变化?
- vbscript - vbscript 减号运算符标记为无效字符
- julia - 在 Julia 中复制 Excel 的日期表示
- wordpress - 如何确定当前用户是否是 wordpress gutenberg UI 中的管理员
- c# - 使用 OpenCV(C#,emgu cv)检测屏幕上的输入文本字段