kustomizeのTimeoutについて
注意: kustomize1系の話。2系を使う場合以下は参考にならない。
背景
k8sのyamlを書くのにkustomizeを使っている。kustomizeの secretGenerator.commands
で時間のかかる処理(GCSに置いてある秘匿情報を gsutil cat
で取得するなど)をしたところ以下のエラーメッセージを吐いて終了してしまった。
Error: NewResMapFromSecretArgs: NewResMapFromSecretArgs: commands map[password:gsutil cat gs://myproject/mysql/password username:gsutil cat gs://myproject/mysql/username]: signal: killed
secretGenerator.commands
に書かれた処理はデフォルトでは5秒で終了する
わからないことはググる。「kustomize "timeout"」でググった。timeoutをダブルクオーテーションでくくらないと有用な情報に当たらなかった。timeoutに完全一致させて検索すると以下のPRが一番上に来た。
secretGenerator.commands
に書かれた処理は5秒でタイムアウトするらしい。このPRでは kustomize build
に --command-timeout
というオプションを付けることを提案している。しかし、「 kustomize build
にはオプション作りたくないんだ」と言われて却下されている。
TimeoutSeconds
オプションができる
同じ課題を抱えていることはわかったので誰かが何とかしてくれているはずである。PRの検索欄にtimeoutと入れて探すと以下のPRが見つかる。
TimeoutSeconds
オプションができている。
結論
TimeoutSeconds
オプションを付けるだけ。
secretGenerator: - name: db-secrets commands: username: "gsutil cat gs://myproject/mysql/username" password: "gsutil cat gs://myproject/mysql/password" TimeoutSeconds: 30