kubebuilderでcrdを作ってみた
経緯
digdagのworkerをkubernetes上で動かしていたが、普通のhpaではタスク実行中のworker podが殺されてスケールインしてしまうことがあったため. タスクを完了せずにスケールインしてしまうと他のworkerでタスクを再実行する挙動になるので時間を浪費してしまう.
つくりかた
digdagのタスク実行に関するところは、postgresqlにクエリ叩いて確認したり、以下の記事を読み込んでみたりした。
digdagのUTからtaskが実際に実行されるまでの流れ · GitHub
digdagのポスグレのstate_flagsって何
— Trs (@TrsNium) February 15, 2020
kubebuilder周りは、とりあえずこの辺りのコードを読んで雰囲気を感じ取った
controller-runtimeのAPIを叩けばいい感じにリソースが取れるってことが分かった。 取れるのは分かったけど実装方がわからないときは, kubernetes slackのkubebuilder channelの過去のログを検索して、それっぽいgolangコードを参考にした。
できたやつ
実質3日くらいで作った。割と簡単だった。
次やりたいこと
最良のチャーハンを作るための中華鍋の振り方研究https://t.co/T73Je972XD
— ゆきまさかずよし (@Kyukimasa) February 13, 2020
ジョージア工科大学、素人とプロの料理人の中華鍋の振り方から米の挙動解析して熱がどのように伝わるのかを分析 pic.twitter.com/WzYM5yNhjJ
この論文を読んで、チャーハンのプロを作りたい 多本腕バンディットチャーハン