argocd + kustomize 报错“rpc error: code = Unknown desc = Manifest generation error (cached)”
argocd + kustomize 报错“rpc error: code = Unknown desc = Manifest generation error (cached)”
报错内容
报错内容为:rpc error: code = Unknown desc = Manifest generation error (cached): `kustomize build .xiaowangTech/4.0/frontend/dingding-pc/manifests/overlays/test` failed exit status 1: # Warning: 'patchesStrategicMerge' is deprecated. Please use 'patches' instead. Run 'kustomize edit fix' to update your Kustomization automatically.Error: no matches for Id Ingress.v1.networking.k8s.io/dingding-pc-ingress.test; failed to find unique target for patch Ingress.v1.networking.k8s.io/dingding-pc-ingress.test
原因分析
配置test环境时ingress配置没有和base里面想匹配,导致报错并且SYNC STATUS状态为Unknown
解决方案
经过对比发现,配置test环境的ingress和base里面的ingress不匹配,即test环境的ingress和base里面的ingress相同,再通过test环境的kustomization.yaml进行替换,最后解决问题
$cat ding/manifests/base/ingress.yaml apiVersion: networking.k8s.io/v1 kind: Ingress metadata: annotations: description: ding kubernetes.io/ingress.class: test-ingress-internet kubernetes.io/ingress.rule-mix: "true" nginx.ingress.kubernetes.io/cors-allow-headers: DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization nginx.ingress.kubernetes.io/cors-allow-methods: PUT, GET, POST, OPTIONS nginx.ingress.kubernetes.io/cors-allow-origin: '*' nginx.ingress.kubernetes.io/enable-cors: "true" name: ding-ingress namespace: dev spec: rules: - host: ding-dev.weirui.com http: paths: - backend: service: name: dev-ding-svc port: number: 80 pathType: ImplementationSpecific ... $cat ding/manifests/overlays/test/ingress.yaml apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: ding-ingress namespace: dev spec: rules: - host: ding-test.weirui.com http: paths: - backend: service: name: test-ding-svc port: number: 80 pathType: ImplementationSpecific ... $cat ding/manifests/overlays/test/kustomization.yaml # 生成test环境namespace namespace: test # 生成test环境的前缀“test-” namePrefix: test- # 指向base主目录 # 指向同级生产配置目录的·yaml资源 patchesStrategicMerge: - replica.yaml - image.yaml - volumes.yaml - ingress.yaml # 指定对应的deployment文件 # 修改同级目录的port.yaml #将key,value传递到生成的configmap configMapGenerator: - name: ding-config files: - default.conf generatorOptions: disableNameSuffixHash: true apiVersion: kustomize.config.k8s.io/v1beta1 kind: Kustomization resources: - ../../base
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)