Open KisaragiEffective opened 1 year ago
これ情報量があまりにも少ないんですけど、なんの話ですか?
updated
完全に理解しました
これまさにseichi_infra
の方でやってる話なんで、やるならこのプロジェクトを進めたいですね (ちょっと最近忙しくて手が出せてないんですが…)。seichi_infra
で提案しているアプローチは、Docker イメージに config を全部固めて、ArgoCD に StatefulSet
の定義を乗せることで大体何とかなるんじゃねってやつです。
ちなみにプラグインリロードは全然やりたくなくて (onEnable()
/ onDisable()
が二度呼ばれるとバグるプラグインがあっても全然不思議ではないし、プラグインによっては明示的に /reload
禁止してるはず)、やるなら一斉再起動ですね(もしくは 4:00 再起動のタイミングで config / plugin 設定を入れ替えるなど)。
seichi_infra
で実施しようとしているアプローチで未解決な問題として「どう再起動タイミングを同期し、デフォルトですべての再起動を 4:00 に集めるか」みたいなのは依然としてあるんですが、それを実現するツールはまぁさすがにあるでしょうという見立てでいます。例えば、 GitHub 上のバージョン定義を single source of truth として、マージタイミングによってデプロイを制御するってのは一つの手ではあると思いますが、ArgoCD 上でもうちょっと確度が高いデプロイ制御ができるんじゃないかなと見ています。
現状、本番サーバーへのコンフィグのデプロイはあたたかみのある手動コピーペーストで行う方法と手動でサーバーからGitHubに向かってoutgoing requestを発射する方法がある。前者は、多段SSHとユーザー切り替えを挟む必要があり、ダルい。後者はoutgoing requestが規制される動きがあるのと、PRがマージされてから反映までのラグができてしまう。
理想的にはPRがmasterブランチへマージされたとき、自動でデプロイされること、及び必要ならば各種プラグインのreloadコマンドを発行することが好ましいと考える。