PlumeをKubernetesで動かす際の検討事項
検索インデックスがファイルシステムに置かれるっぽい(解決済み)
NFSか何かで永続化する必要がある。
Dockerコンテナ内のパスは/app/search_index
ほんとは永続化(バックアップ)はいらない。
失われたら作り直せばいいので
が、複数コンテナ(ポッド)間で共有はしたい。
Plumeを動かすより前に検索インデックスができていないといけないので、Jobとかで作っておく。
NFSにしたけど、RookとかEdgeFSとか楽しそう
画像どこに置こう。(解決済み)
これも永続化の問題。
Dockerコンテナ内のパスは/app/static/media
バックアップを考えないといけない
レプリカを増やせない
レプリカ数1で動かしている時は問題ないんだけど、2にすると、二台目が
code:shell
thread 'main' panicked at 'main: database pool initialization error, src/main.rs:80:18
とかいうエラーを吐いて死ぬ。
なんだろう・・・
メールサーバー(解決済み)
パスワードリセット用のメールを送ることがある
この機能自体を無効化することができる風に書かれているが
その場合は、plmコマンドでパスワードリセットをする。この時メールは送られない
SMTPサーバーにアクセスする時に、デフォルトでは25番ポートに繋ぎに行くが、Plumeではこのポートを変更可能にしていない
GCEは25へのアウトバウンドを許可していないので死ぬ
注: ポート 25 は常にブロックされており、G Suite を使用した SMTP リレーを介したとしても利用できません。
と思ったけど行けるかもしれない。lettreAPIドキュメントによると
pub fn new_simple(domain: &str) -> Result<SmtpClient, Error>
Simple and secure transport, should be used when possible. Creates an encrypted transport over submissions port, using the provided domain to validate TLS certificates.
送れた。
パスワードリセットができない(解決済み)
上の設定を試そうとパスワードリセットを試みるとエラーになる
https://gyazo.com/c48d637f058b810581e0d3f5cb0c6b4b
RUST_BACKTRACE=1とかROCKET_LOG=debugとかの環境変数を設定してログを見ても何も出てこないので、手元でビルドしながら原因を探る必要がありそう。
他のインスタンスではこの問題には遭遇しない。
クッキーを消したりするとうまくいくことがあるが、CSRFトークンのエラーになったりもする。よく分からない。