[Helm] v3.9.4でエラーになるがv3.10.0ではエラーにならない書き方
このようなif
.sessionExpiry
がなく、したがって.sessionExpiry.duration
もないとき、
v3.9.4ではエラー
at <.sessionExpiry.duration>: nil pointer evaluating interface {}.duration
v3.10.0ではエラーにならない
v3.10.0でGoが1.18になった
html/template
パッケージの更新内容
The and function no longer always evaluates all arguments; it stops evaluating arguments after the first argument that evaluates to false. Similarly, the or function now stops evaluating arguments after the first argument that evaluates to true. This makes a difference if any of the arguments is a function call.
以前はand条件の引数を全部評価していたが、前の条件でfalseになるとそれ以上評価しなくなった
Argo CD v2.4.12(現時点の最新)ではHelm v3.8.1を使っているので、このようなifを含むチャートに対してhelm templateが失敗する
Helmを3.10.0に更新するPRはmasterブランチにマージ済みで、v2.5のマイルストーンがついている
Helm v3.10.0は2022/09/22にリリースされた
Helm v3.10.0以降が当たり前になるまではif
を二重にするかwith
を使うのがよい