Helm upgrade failed due to resource not found

Zz Chen
踩坑筆記本
Published in
3 min readDec 18, 2018

暫時解法

先刪除 Helm 找不到的 resource,再 helm upgrade 一次,就搞定了。

## 刪除 k8s resource
$ kubectl delete RESOURCE NAME
## 重新 Helm upgrade
$ helm upgrade CHART_NAME

`helm upgrade` 這種日常指令竟然出現錯誤,像是:

Error: UPGRADE FAILED: no Secret with the name “https-ssl-certs” found

可以發現這種錯誤訊息不管在哪種 kubernetes resource 都會出現,格式大致都是:

no RESOURCE with the name NAME found

發生的原因大致是因為 helm client 跟 Tiller 之間溝通發生問題,或是 Helm Tiller 本身發生了錯誤,造成 「helm 儲存 resource 資訊的 release storage 跟 kubernetes 實際的 resource 不符」。簡單說,就是 Helm 自己錯亂了。

目前社群已經提供了些 purposal 來解決這個問題,方案也正在討論中,主要是考慮讓 Helm 下次再碰到這種狀況時,主要有兩種策略:

  1. cleanupOnFail:讓 Helm 在碰到錯誤時,直接清掉對應的 resource 再重新建立。
  2. 3-way merge:目前在 Helm 3 在考慮使用的 resource upgrade strategy

可惜的是方案一來不及進入最近一次的 release,所以碰到問題的各位,只能先手動刪除 resource 來 walkaround 啦!

對應 github issue 和 purposal 討論:

Issue

# Purposal

--

--

Zz Chen
踩坑筆記本

熱血創業咖、熱愛開源專案,喜愛鑽研新技術,捲起袖子將新技術應用於日常專案的黑手