为何ArgoCD未执行Kustomize资源定制反而尝试创建Kustomization资源?
问题分析与解决方法
原因
ArgoCD把kustomization.yaml当作集群资源创建的核心原因是应用配置未启用Kustomize构建模式:
- 你可能直接指定
kustomization.yaml作为部署的资源文件,而非指向包含该文件的目录触发ArgoCD的Kustomize构建流程; - ArgoCD误将
kustomization.yaml识别为Kubernetes的KustomizationCRD资源(多数集群默认未安装该CRD),导致卡在资源创建环节,自然不会执行注解注入和资源生成逻辑。
解决步骤
1. 修正ArgoCD应用的源配置
UI创建应用场景
在应用创建页面的「Source」区域:
- 勾选「Directory recurse」选项;
- 「Path」填写包含kustomization.yaml的目录路径(比如
./test-namespace),而非具体的kustomization.yaml文件路径; - 确保未在「Source」的其他配置(如Helm、Jsonnet)中覆盖Kustomize处理逻辑。
YAML定义Application资源场景
修改spec.source.path指向目录而非单个文件,示例配置:
apiVersion: argoproj.io/v1alpha1 kind: Application metadata: name: test-namespace-app namespace: argocd spec: project: default source: repoURL: <你的代码仓库地址> targetRevision: HEAD path: ./test-namespace # 指向包含kustomization.yaml的目录 destination: server: https://kubernetes.default.svc namespace: default syncPolicy: automated: prune: true selfHeal: true
2. 清理错误同步记录
- 在ArgoCD UI的应用「Resources」标签中,删除状态为「Pending」的
Kustomization类型资源; - 若集群中已存在该CRD资源,用kubectl手动清理:
kubectl delete kustomization <错误资源名> -n <对应命名空间>
3. 验证本地Kustomize构建正确性
先在本地运行命令确认配置逻辑正常:
kustomize build <你的目录路径>
输出的Namespace资源应包含argocd.argoproj.io/sync-wave: "-9999"注解,确保配置本身无语法错误。
内容的提问来源于stack exchange,提问作者Michael Chudinov
相关产品推荐
相关产品推荐

