ArgoCD同步时忽略Namespace特定注解的配置问题求助
问题:Argo CD同步Namespace时忽略指定注解失败的解决方案
我需要在Argo CD同步Namespace类型资源时忽略注解openshift.io/sa.scc.supplemental-groups,尝试了以下三种配置方式均无效,求可行方案:
- 使用[]语法:
- kind: Namespace jsonPointers: - '/metadata/annotations["openshift.io/sa.scc.supplemental-groups"]'
- 用\转义.和/:
- kind: Namespace jsonPointers: - /metadata/annotations/openshift\.io\/sa\.scc\.supplemental-groups
- 使用通配符:
- kind: Namespace jsonPointers: - /metadata/annotations/openshift*
解决方案
Argo CD的diffing配置遵循RFC 6901定义的JSON Pointer规范,路径中的/必须用~1转义,而.无需转义。正确的配置如下:
- kind: Namespace jsonPointers: - /metadata/annotations/openshift.io~1sa.scc.supplemental-groups
错误原因说明:
- []语法不属于JSON Pointer的标准格式,Argo CD不支持这种写法;
- YAML中的
\转义不适用于JSON Pointer规则,Argo CD会直接解析转义后的字符,导致路径匹配失败; - JSON Pointer不支持通配符
*,Argo CD的diffing配置也没有通配符匹配能力。
内容的提问来源于stack exchange,提问作者Abdennour TOUMI
相关产品推荐
相关产品推荐

