🐙
Argo CD の admin パスワードの操作いろいろ
tl;dr
- Argo CD を運用するにあたって、パスワード変更について見ていた
- 公式で最初に出会う
- FAQ のパスワードを忘れた時
- zenn のスクラップを使って整理したので記事にした
初期パスワード
プラグイン類を使わない
kubectlだけあれば大丈夫
kubectl get secret/argocd-initial-admin-secret -n argocd -o jsonpath="{.data.password}" | base64 -d; echo
view-secret プラグインを使う
krew 等で view-secret plugin を入れてあれば使える(やってることは上と同じ)
kubectl view-secret argocd-initial-admin-secret -n argocd ; echo
argocd cli を使う
公式の初期パスワード取得方法。argocd cli を入れる必要がある
argocd admin initial-password -n argocd
パスワード変更
パスワードはログイン後に User Info の UPDATE PASSWORD で変更できる。
(画面から変更するとログアウトさせられて再ログインが必要になる)
パスワードを変更する
argocd account update-password
初期パスワードの入った secret を削除する
kubectl --namespace argocd delete secret/argocd-initial-admin-secret
パスワードを忘れてしまったら
変更したパスワードを忘れるとか言語道断なので深く反省すること。
手順は公式のとおり
方法1:直接書き換え
- bcrypt でハッシュ化されたパスワードを生成する
export NEW_PASS=`argocd account bcrypt --password 123456789`
- パスワード 123456789 の結果。bcrypt なので同じ値にはならない
echo $NEW_PASS
$2a$10$/sxME6TKhWMzTbMo5wxh/OJmF2iQZumrB7I9Y5C47lGp1R22xQdXm
- 更新する(公式のやつ長いから1行に収めたかった。というかコピペしやすくしたかった)
kubectl -n argocd patch secret argocd-secret -p '{"stringData": {"admin.password": "'$(echo $NEW_PASS)'", "admin.passwordMtime": "'$(date +%FT%T%Z)'" }}'
方法2:初期化しなおし
もう1つの、ドキュメントには手順(コード)が書かれていない方の手順
- secret の値を消す
kubectl patch secret argocd-secret -n argocd -p '{"data": {"admin.password": null, "admin.passwordMtime": null}}'
- pod を削除する(deploymentで勝手に上がってくるから大丈夫)
kubectl delete pods -n argocd -l app.kubernetes.io/name=argocd-server
- 初期パスワードが再設定されているので最初に戻ってやり直し
まとめ
- 管理者パスワードの CRUD は運用する上で避けては通れない(なのでこういうページは公式ドキュメントで整理して欲しいな)
- 再設定してもとくに問題は起きない(安心して更新していい)
- 逆に運用を任されたら即パスワード変更を行って、影響範囲の確認を実施することをオススメする(怒られても責任は取れないけど)
Discussion