argocd-cli について
argocd-cliは、ArgoCD CLIでGitOpsデプロイを管理するスキルで、アプリケーションのリリースやクラスター状態を担当する運用者向けです。同期、状態確認、ロールバック、差分比較、リソース操作のコマンドを案内します。
主な機能
- 01同期状態とヘルス状態の確認
- 02アプリや指定リソースの同期
- 03アプリケーション状態の更新
- 04差分とデプロイ履歴の確認
- 05指定リビジョンへのロールバック
- 06リソースとPodログの確認
活用シーン
- 01アプリとGit上の状態の一致確認
- 02Gitの最新変更のデプロイ
- 03同期エラーや異常状態の調査
- 04アプリケーションを以前の版に復元
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ oldwinter/ skills --skill argocd-cliインストール後、Claude Code で/argocd-cliを入力して読み込まれたか確認します。
詳細
ArgoCD CLI スキル
このスキルでは、ArgoCD CLI を使用して GitOps によるデプロイを管理できます。
環境
接続
- サーバー:
192.168.10.117:31006 - Web UI:
http://192.168.10.117:31006 - 認証情報:admin / CpfsoneT7ogVKWOh
ログインコマンド
トークンの有効期限が切れた場合は、再認証します。
yes | argocd login 192.168.10.117:31006 --username admin --password CpfsoneT7ogVKWOh --insecure
アプリケーションの概要
| アプリケーション | クラスター | 名前空間 | 環境 |
|---|---|---|---|
simplex-k1-prod | AWS EKS | production | 本番環境 |
simplex-k2-staging | AWS EKS | staging | ステージング環境 |
simplex-local | K3s | simplex | ローカル開発 |
simplex-local-infra | K3s | common | ローカルインフラストラクチャ |
一般的な操作
アプリケーションのステータス
# List all applications
argocd app list
# Get specific application status
argocd app get argocd/simplex-k1-prod
argocd app get argocd/simplex-k2-staging
argocd app get argocd/simplex-local
# Get application in JSON format
argocd app get argocd/simplex-k1-prod -o json
# Get application in YAML format
argocd app get argocd/simplex-k1-prod -o yaml
同期操作
# Sync application (deploy latest from git)
argocd app sync argocd/simplex-k1-prod
# Sync with prune (remove resources not in git)
argocd app sync argocd/simplex-k1-prod --prune
# Sync specific resources only
argocd app sync argocd/simplex-k1-prod --resource apps:Deployment:simplex-api
# Sync with force (replace resources)
argocd app sync argocd/simplex-k1-prod --force
# Sync and wait for completion
argocd app sync argocd/simplex-k1-prod --timeout 300
# Dry run sync (preview changes)
argocd app sync argocd/simplex-k1-prod --dry-run
リフレッシュ
# Refresh application (re-read from git)
argocd app get argocd/simplex-k1-prod --refresh
# Hard refresh (clear cache and re-read)
argocd app get argocd/simplex-k1-prod --hard-refresh
ロールバック
# View deployment history
argocd app history argocd/simplex-k1-prod
# Rollback to specific revision
argocd app rollback argocd/simplex-k1-prod <revision-id>
# Example: rollback to revision 5
argocd app rollback argocd/simplex-k1-prod 5
差分と比較
# Show diff between live and desired state
argocd app diff argocd/simplex-k1-prod
# Show diff with local manifests
argocd app diff argocd/simplex-k1-prod --local /path/to/manifests
リソース管理
# List application resources
argocd app resources argocd/simplex-k1-prod
# Get logs from application pods
argocd app logs argocd/simplex-k1-prod
# Follow logs
argocd app logs argocd/simplex-k1-prod --follow
# Logs from specific container
argocd app logs argocd/simplex-k1-prod --container simplex-api
# Delete specific resource
argocd app delete-resource argocd/simplex-k1-prod --kind Deployment --resource-name simplex-api
アプリケーション管理
# Create new application
argocd app create <name> \
--repo ssh://[email protected]:2222/simplexai/infra/simplex-gitops.git \
--path kubernetes/overlays/<env> \
--dest-server https://kubernetes.default.svc \
--dest-namespace <namespace>
# Delete application
argocd app delete argocd/<app-name>
# Set application parameters
argocd app set argocd/simplex-k1-prod --parameter key=value
プロジェクト管理
# List projects
argocd proj list
# Get project details
argocd proj get simplex
# List project roles
argocd proj role list simplex
ステータスの解釈
同期ステータス
| ステータス | 意味 |
|---|---|
Synced | クラスターの現在の状態が Git の望ましい状態と一致しています |
OutOfSync | クラスターの現在の状態が Git と異なっています |
Unknown | 同期ステータスを判定できません |
ヘルスステータス
| ステータス | 意味 |
|---|---|
Healthy | すべてのリソースが正常です |
Progressing | リソースを更新中です |
Degraded | 1 つ以上のリソースが正常ではありません |
Suspended | リソースが一時停止されています |
Missing | リソースが存在しません |
Unknown | ヘルスステータスが不明です |
出力形式
ステータスの概要
📊 ArgoCD Application Status
┌─────────────────────┬──────────┬───────────┬─────────────────┐
│ Application │ Sync │ Health │ Last Sync │
├─────────────────────┼──────────┼───────────┼─────────────────┤
│ simplex-k1-prod │ Synced │ Healthy │ 2h ago │
│ simplex-k2-staging │ Synced │ Healthy │ 1h ago │
│ simplex-local │ OutOfSync│ Degraded │ 30m ago │
└─────────────────────┴──────────┴───────────┴─────────────────┘
トラブルシューティング
アプリケーションが同期されない
- 同期ステータスを確認します:
argocd app get argocd/<app> - 条件に同期エラーがないか確認します
- ハードリフレッシュします:
argocd app get argocd/<app> --hard-refresh - Git リポジトリへのアクセスを確認します
ComparisonError
通常、次の問題を示しています:
- Git リポジトリへのアクセスの問題
- Git 内のマニフェストが無効
- Kustomize/Helm のレンダリングエラー
解決方法:
# Hard refresh to clear cache
argocd app get argocd/<app> --hard-refresh
# Check app details for error message
argocd app get argocd/<app>
認証の有効期限切れ
# Re-login
yes | argocd login 192.168.10.117:31006 --username admin --password CpfsoneT7ogVKWOh --insecure
Kargo との連携
ArgoCD アプリケーションは、プログレッシブデリバリーのために Kargo で管理されます:
- Kargo Warehouse は ECR 内の新しいイメージを検出します
- Kargo Stages は環境間でフレイトを昇格させます
- ArgoCD は変更をクラスターに同期します
Kargo が管理するアプリケーションには、次のアノテーションがあります:
kargo.akuity.io/authorized-stage: kargo-simplex:prod
プログレッシブデリバリーの操作には、Kargo CLI スキルを使用してください。
コメント
Markdown 対応