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 informationentities.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 nameprune(boolean, optional) - Prune resourcesdry_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:
- Configure webhook secret in your config
- Deploy webhook endpoint with SixDegree
- 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
- Read:
-
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:
-
Verify webhook secret matches configuration
-
Check Argo CD webhook configuration
-
Ensure endpoint is publicly accessible
MIT - See LICENSE file in molecules directory