Helmで"app-name" has no deployed releasesに陥ったときの回避策
履歴(history)のすべてがfailedステータスだとこのように言われてupgradeが成功しなくなる。
v3のデフォルトhistory数は10(v2は20だったか?)なので、何かしら調子が悪いときにうっかり全部failedになったりする。
ダウンタイムもやむなし
たぶん正道。
helm uninstall release-name(v2のdelete --purge)してから、
心機一転upgrade --installやり直す。
絶対にダウンしたくないでござる
闇の魔術。
最新のreleaseを弄る。
kubectl edit secret sh.helm.release.v1.app-name.v123
status=failedとなっているラベルをdeployedに変える。
(dataじゃなくラベルなので普通に平文)
最新の一つ前も弄る。
kubectl edit secret sh.helm.release.v1.app-name.v122
status=failedとなっているラベルをsupersededに変える。
そこからupgradeをやり直す。
実際にやってみた)
最新のreleaseが「Helmには失敗扱いされたが、最終的に求める状態になれる」(helmコマンドのタイムアウト期間内には終わらなかったが、その後も調整ループが続いて落ち着いたとか)ものであれば成功した。
Secret弄りは、最新のをdeployedに変えるだけでもいけそうな気もするが、試してはいない
最新のをdeployedに変えるだけでもいけた。