Argo CDをインストール

Argo CDはk8sのデプロイツールです。
Gitリポジトリで管理されたマニフェストを監視して、現在のクラスタとの違いを検知します。
Gitにコミットされたマニフェストとクラスタの状態をグラフィカルに表示してくれます。

Argo CDをインストール

まずクラスタにインストールします。
公式ドキュメント

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

パスワードを確認

1
kubectl -n argocd get secret argocd-initial-admin-secret -o jsonpath="{.data.password}" | base64 -d

ポートフォワーディング

新しくターミナルを開き以下のコマンドを実行します。

1
kubectl port-forward svc/argocd-server -n argocd 8080:443

ブラウザでログイン

ブラウザでhttp://localhost:8080を開きます。証明書のエラーが表示されますが無視します。
Usernameはadmin、Passwordはさきほど確認した値です。

まだアプリケーションはありません。アプリケーションとはコンポーネントと考えていいと思います。コンポーネントを動作させるためのマニフェストをディレクトリ内に集めておき、そのディレクトリを指定してアプリケーションを作成することができます。
例えば、サンプルアプリケーションであるguestbookこちらのディレクトリを指定します。

続いて、このサンプルアプリケーションをArgo CDに作成します。

CLIツールをインストール

ローカルにCLIのツールをインストールします。
Linuxの手順はこちら

1
2
curl -sSL -o /usr/local/bin/argocd https://github.com/argoproj/argo-cd/releases/latest/download/argocd-linux-amd64
sudo chmod +x /usr/local/bin/argocd
1
argocd version

CLIでログイン

1
argocd login localhost:8080

Argo CDにアプリケーションを作成します。

1
2
3
4
5
argocd app create guestbook \
--repo https://github.com/argoproj/argocd-example-apps.git \
--path guestbook \
--dest-server https://kubernetes.default.svc \
--dest-namespace default

ブラウザで確認するとguetstbookアプリケーションが作成されています。リポジトリにあるマニフェストとクラスタの内容に差分があるためOutOfSyncと表示されます。
SYNCをクリックするとクラスタにデプロイされSYNC STATUSSyncedに変わります。

プライベートリポジトリからアプリケーションを作成する方法

プライベートリポジトリからアプリケーションを作成するには、プライベートリポジトリの情報を登録します。

公式ドキュメント

1
argocd repo add <git@から始まるリポジトリパス> --ssh-private-key-path <リポジトリにアクセスできる秘密鍵のファイルパス> --insecure-skip-server-verification

ホストのエラーが表示されたので--insecure-skip-server-verificationオプションを指定しています。