動かざることバグの如し

近づきたいよ 君の理想に

ArgoCD構築メモ

環境

ArgoCDで何ができるとかは他の記事に腐るほど書いてあるので、ここではArgoCDの構築メモ

インストール

公式サイトを見ましょう

argo-cd.readthedocs.io

kubectl create namespace argocd
kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/v2.4.7/manifests/install.yaml

完全に機能するまでには少し時間かかる

ServiceのタイプをLoadBalancerに変更してアクセスできるようにする

kubectl patch svc argocd-server -n argocd -p '{"spec": {"type": "LoadBalancer"}}'
service/argocd-server patched

ブラウザアクセスで確認

IP確認 ここでは「192.168.16.31」

kubectl get svc argocd-server -n argocd
NAME            TYPE           CLUSTER-IP       EXTERNAL-IP     PORT(S)                      AGE
argocd-server   LoadBalancer   10.111.221.140   192.168.16.31   80:31698/TCP,443:30200/TCP   4m38s

初期パスワードを確認

kubectl -n argocd get secret argocd-initial-admin-secret -o jsonpath="{.data.password}" | base64 -d && echo
RrhFMie3-ibKn-ER

https://192.168.16.31 にブラウザにアクセスして admin / RrhFMie3-ibKn-ER でログインできる

ArgoCD CLIのインストール

MacからargocdコマンドでArgoCDの操作ができるようにする

インストール

brew install argocd

さっきのIPを指定してログイン

argocd login 192.168.16.31
WARNING: server certificate had error: x509: “Argo CD” certificate is not trusted. Proceed insecurely (y/n)? y
Username: admin
Password: 
'admin:login' logged in successfully
Context '192.168.16.31' updated

デプロイして確認

guestbookという有名なサンプルがあるので試してみる

追加

kubectl create ns test
argocd app create guestbook --repo https://github.com/argoproj/argocd-example-apps.git --path guestbook --dest-server https://kubernetes.default.svc --dest-namespace test

確認 この段階ではまだSyncしてないので「Health Status:Missing」になるはず

argocd app get guestbook
Name:               guestbook
Project:            default
Server:             https://kubernetes.default.svc
Namespace:          test
URL:                https://10.0.0.212/applications/guestbook
Repo:               https://github.com/argoproj/argocd-example-apps.git
Target:             
Path:               guestbook
SyncWindow:         Sync Allowed
Sync Policy:        <none>
Sync Status:        OutOfSync from  (53e28ff)
Health Status:      Missing

GROUP  KIND        NAMESPACE  NAME          STATUS     HEALTH   HOOK  MESSAGE
       Service     test       guestbook-ui  OutOfSync  Missing        
apps   Deployment  test       guestbook-ui  OutOfSync  Missing

いざsync

argocd app sync guestbook
TIMESTAMP                  GROUP        KIND   NAMESPACE                  NAME    STATUS    HEALTH        HOOK  MESSAGE
2022-07-21T11:28:11+09:00            Service        test          guestbook-ui  OutOfSync  Missing              
2022-07-21T11:28:11+09:00   apps  Deployment        test          guestbook-ui  OutOfSync  Missing              
2022-07-21T11:28:12+09:00            Service        test          guestbook-ui    Synced  Healthy              
2022-07-21T11:28:12+09:00            Service        test          guestbook-ui    Synced   Healthy              service/guestbook-ui created
2022-07-21T11:28:12+09:00   apps  Deployment        test          guestbook-ui  OutOfSync  Missing              deployment.apps/guestbook-ui created
2022-07-21T11:28:12+09:00   apps  Deployment        test          guestbook-ui    Synced  Progressing              deployment.apps/guestbook-ui created

Name:               guestbook
Project:            default
Server:             https://kubernetes.default.svc
Namespace:          test
URL:                https://10.0.0.212/applications/guestbook
Repo:               https://github.com/argoproj/argocd-example-apps.git
Target:             
Path:               guestbook
SyncWindow:         Sync Allowed
Sync Policy:        <none>
Sync Status:        Synced to  (53e28ff)
Health Status:      Progressing

Operation:          Sync
Sync Revision:      53e28ff20cc530b9ada2173fbbd64d48338583ba
Phase:              Succeeded
Start:              2022-07-21 11:28:11 +0900 JST
Finished:           2022-07-21 11:28:12 +0900 JST
Duration:           1s
Message:            successfully synced (all tasks run)

GROUP  KIND        NAMESPACE  NAME          STATUS  HEALTH       HOOK  MESSAGE
       Service     test       guestbook-ui  Synced  Healthy            service/guestbook-ui created
apps   Deployment  test       guestbook-ui  Synced  Progressing        deployment.apps/guestbook-ui created

せっかくなのでguestbookもサービスタイプをLoadBalancerに変更してアクセスできるようにする

kubectl patch svc guestbook-ui -p '{"spec": {"type": "LoadBalancer"}}' -n test

これで http://192.168.16.32/ にアクセスするとファンシー?な画面が出るはず

スクリーンショット 2022-07-24 3.34.39.png

adminの初期パスワードを変更

argocd account update-password

参考リンク