argocd-cli

Original🇺🇸 English
Translated

This skill should be used when users need to manage GitOps deployments via ArgoCD CLI. It covers application sync, rollback, status checking, refresh, and deployment history. Integrates with Kargo for progressive delivery. Triggers on requests mentioning ArgoCD, GitOps, application sync, deployment status, or rollback operations.

4installs
Added on

NPX Install

npx skill4agent add oldwinter/skills argocd-cli

ArgoCD CLI Skill

This skill enables GitOps deployment management using ArgoCD CLI.

Environment

Connection

  • Server:
    192.168.10.117:31006
  • Web UI:
    http://192.168.10.117:31006
  • Credentials: admin / CpfsoneT7ogVKWOh

Login Command

If token expires, re-authenticate:
bash
yes | argocd login 192.168.10.117:31006 --username admin --password CpfsoneT7ogVKWOh --insecure

Applications Overview

ApplicationClusterNamespaceEnvironment
simplex-k1-prod
AWS EKSproduction生产环境
simplex-k2-staging
AWS EKSstaging预发布环境
simplex-local
K3ssimplex本地开发
simplex-local-infra
K3scommon本地基础设施

Common Operations

Application Status

bash
# 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 Operations

bash
# 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

bash
# 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

Rollback

bash
# 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

Diff and Comparison

bash
# 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

Resource Management

bash
# 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

Application Management

bash
# Create new application
argocd app create <name> \
  --repo ssh://git@192.168.10.117: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

Project Management

bash
# List projects
argocd proj list

# Get project details
argocd proj get simplex

# List project roles
argocd proj role list simplex

Status Interpretation

Sync Status

StatusMeaning
Synced
Live state matches desired state in git
OutOfSync
Live state differs from git
Unknown
Unable to determine sync status

Health Status

StatusMeaning
Healthy
All resources are healthy
Progressing
Resources are being updated
Degraded
One or more resources are unhealthy
Suspended
Resources are suspended
Missing
Resources don't exist
Unknown
Health status unknown

Output Formatting

Status Summary

📊 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         │
└─────────────────────┴──────────┴───────────┴─────────────────┘

Troubleshooting

Application Not Syncing

  1. Check sync status:
    argocd app get argocd/<app>
  2. Check for sync errors in conditions
  3. Hard refresh:
    argocd app get argocd/<app> --hard-refresh
  4. Check git repository access

ComparisonError

Usually indicates:
  • Git repository access issues
  • Invalid manifests in git
  • Kustomize/Helm rendering errors
Resolution:
bash
# Hard refresh to clear cache
argocd app get argocd/<app> --hard-refresh

# Check app details for error message
argocd app get argocd/<app>

Authentication Expired

bash
# Re-login
yes | argocd login 192.168.10.117:31006 --username admin --password CpfsoneT7ogVKWOh --insecure

Integration with Kargo

ArgoCD applications are managed by Kargo for progressive delivery:
  • Kargo Warehouse detects new images in ECR
  • Kargo Stages promote freights through environments
  • ArgoCD syncs the changes to clusters
Kargo-managed applications have annotation:
yaml
kargo.akuity.io/authorized-stage: kargo-simplex:prod
For progressive delivery operations, use the Kargo CLI skill.