文档首页/ 云容器引擎 CCE/ 常见问题/ 模板插件/ 创建或升级模板失败,提示rendered manifests contain a resource that already exists
更新时间:2025-04-25 GMT+08:00

创建或升级模板失败,提示rendered manifests contain a resource that already exists

问题现象

创建或升级模板失败,提示“Create release by helm failed: rendered manifests contain a resource that already exists. Unable to continue with install: ...”的错误。

由于CCE插件通过模板进行安装,因此安装或升级插件时,同样可能出现上述相同错误。

问题原因

该报错内容说明集群中已存在与模板/插件相关的残留资源,通常是由于以下原因导致:

  • 模板资源(如 release)从后台被误删或异常删除。
  • 模板安装的命名空间被直接删除,导致资源残留。
  • 集群中存在与模板组件同名的资源且无helm v3的归属标记“app.kubernetes.io/managed-by: Helm”。

解决方案

通过kubectl对接集群,手动删除相关报错资源,并重新安装模板或插件。

  1. 查看报错内容,确认产生冲突的资源。请您关注“Unable to continue with install:”后的信息。

    例如:

    create release failed: create release failed {"error":{"message":"Create release by helm failed:rendered manifests contain a resource that already exists. Unable to continue with install: ClusterRole \"cceaddon-nginx-ingress\" in namespace \"\" exists and cannot be imported into the current release: invalid ownership metadata; annotation validation error: key \"meta.helm.sh/release-namespace\" must equal \"kube-system\": current value is \"example\"","code":"SVCSTG.CCECAM.5000208"}}
    • 冲突资源:ClusterRole,名称为 cceaddon-nginx-ingress,命名空间为空(ClusterRole 是非命名空间级别资源)。
    • 冲突字段:metadata.annotations.meta.helm.sh/release-namespace。
      • 预期值:kube-system
      • 实际值:example

  2. 执行以下kubectl命令删除集群中的冲突资源。此处仅为示例,请根据实际报错信息中的资源进行删除。

    kubectl delete clusterRole cceaddon-nginx-ingress

  3. 解决资源冲突后,尝试重新安装模板或插件。若还有冲突提示,请重复以上步骤。