Argo CD CLI でアプリケーションを管理する
ターミナルからログイン、作成、確認、差分表示、同期、ロールバックを行います。
Web UI でできることはすべて argocd CLI からも実行できます。スクリプトで使う場合や、変更を適用する前にプレビューしたい場合に便利です。このガイドは、Argo CD がインストール済みで、インストールガイドで設定した port-forward が実行中であることを前提としています。
CLI をインストールしてログインする
CLI をインストールし(macOS では brew install argocd、またはリリースページからバイナリをダウンロード)、動作を確認します。
argocd version --client
port-forward 経由で API サーバーにログインします。--insecure は自己署名証明書の検証をスキップします。ローカル環境では問題ありませんが、本番環境では使わないでください。
argocd login localhost:8080 --username admin --password '<initial-password>' --insecure
argocd --help でコマンド一覧を確認できます。日常的な作業の多くは argocd app 配下で行います。
アプリケーションを作成して確認する
マニフェストの代わりにフラグを使ってアプリケーションを作成します。
argocd app create webapp-prod \
--repo https://github.com/your-org/webapp-config.git \
--path prod \
--dest-server https://kubernetes.default.svc \
--dest-namespace webapp-prod \
--sync-option CreateNamespace=true
同期ポリシーを設定しない場合、アプリケーションは手動同期になります。続いて、存在するものを確認します。
argocd app list
argocd app get webapp-prod
list は、各アプリケーションのクラスター、namespace、プロジェクト、同期ステータス、ヘルス、同期ポリシーを表示します。get は 1 つのアプリケーションの詳細とそのリソースを表示します。
プレビューして同期する
作成直後の手動同期アプリケーションは、まだ何も適用されていないため OutOfSync と Missing と表示されます。同期する前に、何が変更されるかを正確に確認できます。
argocd app diff webapp-prod
argocd app sync webapp-prod
argocd app wait webapp-prod --health
同期が失敗した場合は、エラーが出力されます。よくあるのは、宛先の namespace がまだ存在しないケースです。上の CreateNamespace=true オプションはそのためのものです。Git で変更を行った後は、同期する前に argocd app diff で内容を確認すると便利です。これは UI の App Diff ビューと同じ情報を表示します。
履歴の確認、ロールバック、ログの確認
argocd app history webapp-prod
argocd app rollback webapp-prod <ID>
argocd app logs webapp-prod
history はデプロイ済みのリビジョンを ID 付きで一覧表示します。rollback はそのうちの 1 つに戻します。同期ポリシーのガイドで説明したとおり、自動同期が無効の間だけ動作します。logs はアプリケーションの Pod のログをストリーミング表示し、ロールアウトの最初の確認に役立ちます。
設定の変更とクリーンアップ
YAML を編集せずに、アプリケーションの設定を更新します。
argocd app set webapp-prod --sync-policy automated --auto-prune --self-heal
変更できる項目はすべて argocd app set --help で確認できます。アプリケーションが不要になったら削除します。
argocd app delete webapp-prod
デフォルトでは、アプリケーションが作成したリソースも一緒に削除されるため、完了までに 1 分ほどかかることがあります。その後 argocd app list を実行して、削除されたことを確認してください。
人気のガイド
-
Push と Pull:Argo CD が Kubernetes にデリバリーする仕組み Git 主導の pull 型デリバリーが、デプロイ、セキュリティ、復旧の方法をどう変えるか。 -
Argo CD でマルチクラスターを構成する 複数のクラスターにまたがるデプロイを管理します。 -
宣言的マニフェストで最初のアプリケーションをデプロイする Application リソースを使って Argo CD を Git リポジトリに向け、同期の様子を確認します。 -
同期動作を制御する:自動同期、prune、セルフヒール、ロールバック Argo CD がいつ変更を適用するか、何を削除するか、失敗したデプロイをどう元に戻すかを決めます。