使用现有资源释放Helm



以前我们只使用helm template来生成清单并应用到集群,最近我们开始计划使用helm install来管理我们的部署,但是遇到以下问题:

我们的部署是一个简单的后端api,它包含"入口"、"服务"one_answers"部署",当有新的提交时,管道将被触发进行部署。我们计划使用短提交sha作为图像标签和发布名称。下面是命令helm upgrade --install releaseName repo/chartName -f value.yaml --set image.tag=SHA

第一次运行得很好,但是当我创建另一个版本时,它失败了,并出现以下错误消息

rendered manifests contain a resource that already exists. Unable to continue with install: Service "app-svc" in namespace "ns" exists and cannot be imported into the current release: invalid ownership metadata; annotation validation error: key "meta.helm.sh/release-name" must equal "rel-124": current value is "rel-123"

错误信息非常清楚问题是什么,但我只是想知道什么是"正确的"。在这种情况下如何使用头盔?

为了一个新版本而卸载所有的东西是不现实的,我也不想一直使用同一个版本。

你已经在做了"对"当然,不要改变release-name。这是Helm确定资源的关键。似乎你以前使用不同的名称发布(rel-123),然后你现在使用(rel-124)。

要解决您的直接问题,您应该能够通过更新有问题资源上的注释meta.helm.sh/release-name的值来继续。应该这样做:

kubectl annotate --overwrite service app-svc meta.helm.sh/release-name=rel-124

最新更新