みなさんこんにちは。
今回は、ArgoCDに2クラスタ登録して本番環境と開発環境を一つの画面で操作する話です。
ArgoCDとは
ArgoCDとは、K8sにGitHubから自動的にデプロイしてくれる、いわゆるGitOpsです。
クラスタを追加するとは?
クラスタを追加するというのは具体的にどういうことか。
みなさん、デプロイする時このような画面から設定しますよね?
ここです。
この、クラスタという部分から外部のクラスタを選択できるようにするのです。
これにより、
- 本番環境と同じリポを使いたい
- 設定するのだるい
などの問題を解消することができます。
コンテキストを準備する
まず、kubeconfigファイルに追加する環境のcontextがなければなりません。
私の環境はmicrok8sなので、とりあえず、とってきます。
microk8s config
こうすると、context一覧が出てきます。
今回は権限設定なんぞはめんどくさいので、adminに関連するところをコピペして、追加元から操作できるようにします。
argocd CLIを使って追加する
さて、ここからが本題です。
ArgoCD CLIをまだインストールしていない方は、以下のリンクを参照してください。
一応コンテキスト名を確認します。
kubectl config get-contexts
## 例)
## CURRENT NAME CLUSTER AUTHINFO NAMESPACE
## * default/api-cluster-staging:6443/admin api-cluster-staging:6443 admin/api-cluster-staging:6443 default
## default/api-cluster-production:6443/admin api-cluster-production:6443 admin/api-cluster-production:6443 default
お次に、argocd CLIで、以下のコマンドを打ち込みます。
argocd cluster add default/api-cluster-production:6443/admin
これで何やら聞かれるかと思いますが、ArgoCDの動作のために、Admin権限を持ったサービスアカウントの作成をしても良いか?ということなので、yを入力します。
このコマンドで作成されるのは、ServiceAccountとClusterRole、ClusterRoleBindingです。
確認してみる
ArgoCDのWebダッシュボードを見てみましょう。
名前などは違うと思いますが、このようになっているはずです。
これで、Applicationの作成時も、新しい方のクラスタを使用できます。
お疲れ様でした!!