##背景
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