Skip to main content
Argo CD

Argo CD

Discover Argo CD applications, projects, and instances for GitOps tracking.

The Argo CD molecule automatically syncs Argo CD data into your SixDegree ontology, providing visibility into your GitOps deployments and application health.

  • SixDegree Platform installed
  • Argo CD instance with API access
  • Argo CD API token (or admin password)

discovery:
enabled: true
settings:
# Argo CD API connection
api_url: "https://argocd.example.com"
token: "your_argocd_api_token"

# Optional: Skip TLS verification (not recommended for production)
insecure_skip_verify: false

# Optional: Request timeout in seconds
timeout: 30

# Optional: Webhook configuration
webhook:
secret: "your_webhook_secret"
events:
- app-created
- app-deleted
- app-health-changed
- app-sync-status-changed

mcp:
enabled: true
settings:
api_url: "https://argocd.example.com"
token: "your_argocd_api_token"

namespace: "production"

The Argo CD molecule discovers:

  • entities.sixdegree.ai/v1/ArgoInstance - Argo CD instance information
  • entities.sixdegree.ai/v1/ArgoProject - Argo CD projects (logical grouping of applications)
  • entities.sixdegree.ai/v1/ArgoApplication - Argo CD applications with sync/health status

Each ArgoApplication entity includes:

  • Sync Status: Synced, OutOfSync, Unknown

  • Health Status: Healthy, Progressing, Degraded, Suspended, Missing

  • Git Repository: Source repository URL and revision

  • Target Cluster: Kubernetes cluster and namespace

  • Auto Sync: Whether auto-sync is enabled

  • BELONGS_TO - Application belongs to Project

  • USES_REPOSITORY - Application uses Git Repository

When used with GitHub or GitLab molecules, the Argo molecule can link applications to their source repositories:

Repository (from GitHub molecule)
↓ USES_REPOSITORY
ArgoApplication (from Argo molecule)
↓ BELONGS_TO
ArgoProject (from Argo molecule)

AI agents can use these Argo CD tools:

List all applications in Argo CD.

Example:

User: "What applications are deployed in Argo?"

AI: [Calls argo_list_applications]
"Found 12 applications:
• api-service (Healthy, Synced)
• frontend (Healthy, OutOfSync)
• worker (Degraded, Synced)"

Get detailed information about an application.

Parameters:

  • name (string, required) - Application name

Example:

User: "What's the status of the api-service application?"

AI: [Calls argo_get_application]
"api-service status:
• Health: Healthy
• Sync: Synced
• Repository: github.com/myorg/api-service
• Revision: main (abc123)
• Cluster: production-cluster
• Namespace: default"

Trigger a sync for an application.

Parameters:

  • name (string, required) - Application name
  • prune (boolean, optional) - Prune resources
  • dry_run (boolean, optional) - Preview sync without applying

Example:

User: "Sync the frontend application"

AI: [Calls argo_sync_application]
"✅ Sync initiated for frontend
Status: Progressing → Synced
Resources updated: 3 deployments, 2 services"

Get sync history for an application.

Parameters:

  • name (string, required) - Application name

Example:

User: "Show me the deployment history for api-service"

AI: [Calls argo_get_application_history]
"Recent deployments:
1. 2025-01-15 14:30 - Revision abc123 (Succeeded)
2. 2025-01-15 12:00 - Revision def456 (Succeeded)
3. 2025-01-14 16:45 - Revision ghi789 (Failed)"

Runs on schedule to discover applications:


degree discovery run argo@1.0.0 --config argo-config.yaml


degree discovery schedule argo@1.0.0 --config argo-config.yaml --interval 2m

Real-time updates via Argo CD webhooks:

  1. Configure webhook secret in your config
  2. Deploy webhook endpoint with SixDegree
  3. Configure Argo CD to send webhooks:
    argocd settings set-webhook \
    --url https://your-sixdegree.com/webhooks/argo \
    --secret your_webhook_secret

degree discovery run argo@1.0.0 --config argo-config.yaml


degree discovery run argo@1.0.0 --config argo-config.yaml --dry-run


ARGO_LOG_LEVEL=debug degree discovery run argo@1.0.0 --config argo-config.yaml

Once configured, AI agents can query and manage Argo CD:

You: "What applications are unhealthy?"

AI: [Uses argo_list_applications]
"Found 2 unhealthy applications:
• worker (Degraded) - 2 pods failing
• cache (Progressing) - Rolling update in progress"

You: "What's wrong with the worker application?"

AI: [Uses argo_get_application]
"worker application issues:
• Health: Degraded
• 2 pods in CrashLoopBackOff
• Last sync: 5 minutes ago (successful)
• Git revision: main@abc123"

cd argo
go build -o ../bin/argo


cd ..
make dev

argocd login argocd.example.com


argocd account generate-token --account sixdegree

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


curl -X POST https://argocd.example.com/api/v1/session \
-d '{"username":"admin","password":"your-password"}'

Required Argo CD permissions:

  • Discovery: applications:list, applications:get, projects:list

  • MCP Tools:

    • Read: applications:get, applications:list
    • Sync: applications:sync
  • Store tokens as secrets in your configuration

  • Use service accounts with minimal permissions

  • Enable TLS verification in production (insecure_skip_verify: false)

  • Use webhook secrets to verify webhook authenticity

  • Regularly rotate API tokens

Connection refused:

  • Verify Argo CD API URL is correct
  • Check Argo CD is accessible from SixDegree
  • Ensure firewall allows traffic

Authentication failed:

  • Verify API token is valid and not expired
  • Check token has required permissions
  • Try generating a new token

Missing applications:

  • Verify token has access to all projects
  • Check RBAC permissions in Argo CD
  • Enable debug logging to see API responses

Webhook not triggering:

MIT - See LICENSE file in molecules directory