Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

自動デプロイ化 #131

Open
KisaragiEffective opened this issue Mar 28, 2023 · 3 comments
Open

自動デプロイ化 #131

KisaragiEffective opened this issue Mar 28, 2023 · 3 comments
Labels
enhancement New feature or request help wanted Extra attention is needed

Comments

@KisaragiEffective
Copy link
Member

KisaragiEffective commented Mar 28, 2023

現状、本番サーバーへのコンフィグのデプロイはあたたかみのある手動コピーペーストで行う方法と手動でサーバーからGitHubに向かってoutgoing requestを発射する方法がある。前者は、多段SSHとユーザー切り替えを挟む必要があり、ダルい。後者はoutgoing requestが規制される動きがあるのと、PRがマージされてから反映までのラグができてしまう。

理想的にはPRがmasterブランチへマージされたとき、自動でデプロイされること、及び必要ならば各種プラグインのreloadコマンドを発行することが好ましいと考える。

@KisaragiEffective KisaragiEffective added enhancement New feature or request help wanted Extra attention is needed labels Mar 28, 2023
@kory33
Copy link
Member

kory33 commented Mar 28, 2023

これ情報量があまりにも少ないんですけど、なんの話ですか?

@KisaragiEffective
Copy link
Member Author

updated

@kory33
Copy link
Member

kory33 commented Mar 28, 2023

完全に理解しました

これまさに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 上でもうちょっと確度が高いデプロイ制御ができるんじゃないかなと見ています。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request help wanted Extra attention is needed
Projects
None yet
Development

No branches or pull requests

2 participants