Helm升级Atlassian Jira时Ingress所有权验证报错如何解决
问题根因
报错是因为atlassian命名空间下已存在同名Ingress资源jira-atlassian-jira-software,该资源未携带Helm3要求的所有权标签与注解,Helm默认不会接管非自身管理的资源,避免误修改。
解决方案
可根据你的业务场景选择以下任意一种方式处理:
方案1:直接删除现有Ingress,让Helm重新创建
适合可接受短暂业务中断的场景,执行以下命令删除现有Ingress:kubectl delete ingress jira-atlassian-jira-software -n atlassian删除完成后重新执行
helm upgrade命令即可。方案2:为现有Ingress添加Helm所有权标识,让Helm接管
适合不想中断业务、希望保留现有Ingress配置的场景,依次执行以下命令添加缺失的标签和注解:# 添加必填标签 kubectl label ingress jira-atlassian-jira-software -n atlassian app.kubernetes.io/managed-by=Helm # 添加必填注解 kubectl annotate ingress jira-atlassian-jira-software -n atlassian meta.helm.sh/release-name=jira kubectl annotate ingress jira-atlassian-jira-software -n atlassian meta.helm.sh/release-namespace=atlassian配置完成后重新执行
helm upgrade命令即可。
注意:确认该Ingress确实对应当前的jira Helm release再操作,避免Helm后续升级覆盖你自定义的Ingress配置方案3:关闭Helm的Ingress生成,保留原有独立管理的Ingress
适合该Ingress由其他工具/流程维护,不需要Helm管理的场景,只需在Helm values中将ingress.enabled设置为false,重新执行helm upgrade即可,Helm不会再尝试创建或修改该Ingress资源。
补充说明
如果你的集群是从Helm2升级到Helm3的场景,建议先完成Helm2 release迁移,避免其他资源也出现同类所有权校验错误。
内容的提问来源于stack exchange,提问作者ChoosenOne
相关产品推荐
相关产品推荐

