ArgoCDで複数のapp of appsを作成できるか検証する
背景
- アプリケーションが増えた
- アプリケーションを管理するチームごとで地味にリリースフローが変化する
- 複数のクラスターが存在する
- kustomizationの変数の使い方が競合する
Kubernetes環境をローカルにセットアップする
ArgoCDの環境を作成する
$ brew install minikube
# minikubeを起動する
$ minikube start --vm=true
ArgoCDをインストールする
$ kubectl create namespace argocd
# ドキュメントだと core-instal.yaml を指定されているが、これだとargocd serverがセットアップされない
$ kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml
ArgoCD Serverにアクセスする
argocd-serverをPort Forwardしてブラウザからアクセスできる状態にします。
$ kubectl get svc -n argocd 火 1/18 12:45:23 2022
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
argocd-dex-server ClusterIP 10.109.95.218 <none> 5556/TCP,5557/TCP,5558/TCP 4m5s
argocd-metrics ClusterIP 10.96.98.228 <none> 8082/TCP 11m
argocd-redis ClusterIP 10.104.172.83 <none> 6379/TCP 11m
argocd-repo-server ClusterIP 10.98.75.150 <none> 8081/TCP,8084/TCP 11m
argocd-server ClusterIP 10.107.72.31 <none> 80/TCP,443/TCP 4m5s
argocd-server-metrics ClusterIP 10.106.75.140 <none> 8083/TCP 4m5s
$ kubectl port-forward svc/argocd-server -n argocd 8080:443
http://localhost:8080でアクセス可能ですが、パスワード変更が必要です。
パスワード変更
練習用のため
# まずはadminユーザーのパスワードを取得
$ kubectl -n argocd get secret argocd-initial-admin-secret -o jsonpath="{.data.password}" | base64 -d
# ユーザー名 admin、パスワードは前述の結果を入力してログイン
$ argocd login 127.0.0.1:8080
# ログインが完了したらパスワードを更新
$ argocd account update-password
app of appsを作成する
argocd app create apps \
--repo https://github.com/Himenon/argocd-apps.git \
--path overlays/local \
--dest-server https://kubernetes.default.svc \
--revision master \
--dest-namespace argocd
これでまずはapp of apps
を試します。
別名でできるか
argocd app create myworkspace-apps \
--repo https://github.com/Himenon/argocd-apps.git \
--path overlays/local \
--dest-server https://kubernetes.default.svc \
--revision master \
--dest-namespace argocd
→ できる