背景
Kubernetesクラスターを作成し、その後argocdを導入したところ、ログインで手間取ってしまった。
備忘録としてログイン出来なかった場合の対処法を記す。
問題
要約すると、ブラウザでログイン画面が開かれるところまでは上手くいき、初期パスワードでのログインが拒否られる問題。
経緯
Argo CDはじめましたに記載されている方法を参考にしつつ、導入を進めたところ、以下コマンドにてパスワードを確認しようとのこと。
# kubectl get pods -n argocd -l app.kubernetes.io/name=argocd-server -o name | cut -d'/' -f 2
ここで表示されるPod名を指定してログイン画面で入力するも失敗!!!!
間違った対処法
その1: Pod名が間違っていないか確認
以下コマンドにてPod一覧を参照し、名前が間違っていないのか確認
# kubectl get pod -n argocd
結論から言うと、間違っていなかった。
その2: パスワードをリセットする
パスワードをリセットするコマンドがあるとのことなので、それを実践
# kubectl patch secret argocd-secret -p '{"data": {"admin.password": null, "admin.passwordMtime": null}}'
コマンド実行後確認すると別のエラーが発生していた。secretファイルを作成していない為、存在していないと言われてしまったのだ。
# kubectl patch secret argocd-secret -p '{"data": {"admin.password": null, "admin.passwordMtime": null}}'
Error from server (NotFound): secrets "argocd-secret" not found
実行コマンドが間違っているので、再度調査。
正しい対処法
Secretに記載のパスワードを暗号化して出力する
Getting Startedの中の4.Login Using The CLI
の手順を参考に、CLIからのログインを試みる。secretファイルを一時的に作成して、表示されたパスワードからログインするというもの。
# kubectl -n argocd get secret argocd-initial-admin-secret -o jsonpath="{.data.password}" | base64 -d
コマンド実行後表示されたパスワードをブラウザに入力し、ログインすることが出来た。
結論
ログイン出来なかったらSecretファイルのパスワードを初期化して暗号化すること。
参考資料
公式Overview
argocd-server Username or Password not working on fresh install #998
FAQ
Getting Started