开启CreateNamespace=true后ArgoCD仍未创建命名空间问题
问题:App of Apps模式同步istio-base应用时提示“namespaces 'istio-system' not found”
问题现象
采用App of Apps模式部署应用,父应用及子istio-base应用均已配置CreateNamespace=true同步选项,但同步时持续报错:
SyncFailed namespaces "istio-system" not found
配置问题分析
查看子istio-base应用的配置,存在以下关键错误:
- YAML语法错误:spec字段下多余一行
defaultRevision=default,属于无效键值对,导致ArgoCD无法正确解析整个Application资源,进而无法执行创建命名空间的逻辑。 - 字段位置错误:
targetRevision字段被错误嵌套在helm配置下,它应该是source的直接子字段。 - Helm配置错误:
helm节点下直接写namespace: istio-system是无效写法,且destination已指定目标命名空间,此处配置冗余且错误。
修正后的子istio-base应用配置
apiVersion: argoproj.io/v1alpha1 kind: Application metadata: name: istio-base-application namespace: argocd finalizers: - resources-finalizer.argocd.argoproj.io spec: project: default source: repoURL: https://istio-release.storage.googleapis.com/charts chart: base targetRevision: 1.20.0 helm: parameters: - name: defaultRevision value: "default" destination: server: https://kubernetes.default.svc namespace: istio-system syncPolicy: automated: prune: true selfHeal: true allowEmpty: true syncOptions: - PruneLast=true - CreateNamespace=true - PrunePropagationPolicy=foreground retry: limit: 2
额外检查项
- 确认ArgoCD的
default项目没有限制目标命名空间的创建权限,若有需要在项目配置中添加istio-system到允许的命名空间列表。 - 同步父应用后,等待ArgoCD正确识别子应用配置,再手动触发子应用同步或依赖自动同步机制执行。
内容的提问来源于stack exchange,提问作者CommonSenseCode
相关产品推荐
相关产品推荐

