ArgoCD Applications are the core deployment units in GitOps. Each application connects a Git repository source to a Kubernetes destination, enabling automated and declarative deployments.Documentation Index
Fetch the complete documentation index at: https://docs.shiftlabs.dev/llms.txt
Use this file to discover all available pages before exploring further.
Key Concepts
Application
Sync Status
Health Status
Resource Tree
Required Permissions
| Action | Permission |
|---|---|
| View applications | iam:project:cicd:argocd:read |
| Create applications | iam:project:cicd:argocd:write |
| Edit applications | iam:project:cicd:argocd:write |
| Sync/Rollback applications | iam:project:cicd:argocd:execute |
| View logs | iam:project:cicd:argocd:logs |
| Delete applications | iam:project:cicd:argocd:delete |
Application Statuses
Sync Status
| Status | Description |
|---|---|
| Synced | Live state matches desired state in Git |
| OutOfSync | Live state differs from desired state |
| Unknown | Sync status cannot be determined |
Health Status
| Status | Description |
|---|---|
| Healthy | All resources are healthy and running |
| Progressing | Resources are being created or updated |
| Degraded | One or more resources have issues |
| Suspended | Application is suspended (scaled to zero) |
| Missing | Required resources are not found |
| Unknown | Health cannot be determined |
Operation Phase
| Phase | Description |
|---|---|
| Running | Sync operation is in progress |
| Succeeded | Sync completed successfully |
| Failed | Sync operation failed |
| Error | Error occurred during sync |
| Terminating | Sync is being cancelled |
How to Create an Application
Configure Source
- Select a repository from connected repositories
- Choose revision type (Branch or Tag)
- Enter target revision (e.g.,
HEAD,main,v1.0.0) - Select the path containing Kubernetes manifests or Helm chart
Configure Sync Options
- Create Namespace: Auto-create namespace if it doesn’t exist
- Server-Side Apply: Use server-side apply for resources
Configure Sync Policy
- Automated Sync: Auto-sync when Git changes
- Prune Resources: Delete resources removed from Git
- Self Heal: Auto-sync when live state drifts
- Retry Policy: Configure retry on sync failures
Application Name Rules
| Rule | Requirement |
|---|---|
| Characters | Lowercase letters (a-z), numbers (0-9), hyphens (-) |
| Start/End | Must start and end with alphanumeric character |
| Uppercase | Not allowed |
| Spaces | Not allowed |
my-app, frontend-v2, api-service
Invalid examples: My-App, my_app, -app, app-
Required Fields
| Field | Required | Description |
|---|---|---|
| Application Name | Yes | Unique identifier for the application |
| Project | Yes | ArgoCD project for access control |
| Repository URL | Yes | Source Git repository |
| Path | Yes | Path to manifests within repository |
| Destination Cluster | Yes | Target Kubernetes cluster |
| Destination Namespace | Yes | Target namespace for deployment |
Sync Options
| Option | Default | Description |
|---|---|---|
| Create Namespace | Off | Automatically create namespace if missing |
| Server-Side Apply | Off | Use server-side apply (recommended for large resources) |
| Automated Sync | Off | Auto-sync on Git changes |
| Prune Resources | Off | Delete resources not in Git (requires Automated Sync) |
| Self Heal | Off | Auto-revert manual changes (requires Automated Sync) |
| Retry Policy | Off | Retry failed syncs with backoff |
How to Sync an Application
How to View Application Logs
How to Execute Commands in a Pod
How to Scale a Workload
How to Restart a Workload
How to Rollback an Application
How to Refresh an Application
Click the Refresh button to:- Fetch the latest state from the cluster
- Update health and sync status
- Refresh the resource tree
How to Delete an Application
Choose Deletion Mode
- Foreground: Delete resources before removing application
- Background: Remove application, delete resources in background
- Non-cascading: Remove application only, leave resources running
Resource Tree Actions
The resource tree provides actions based on resource type:| Resource Type | Available Actions |
|---|---|
| Pod | View Logs, Exec (Terminal), View Events, View Manifest |
| Deployment | Scale, Restart, View Events, View Manifest |
| StatefulSet | Scale, Restart, View Events, View Manifest |
| ReplicaSet | Scale, View Events, View Manifest |
| DaemonSet | Restart, View Events, View Manifest |
| Service | View Events, View Manifest |
| ConfigMap | View Events, View Manifest |
| Secret | View Events, View Manifest |
Favorites
Mark frequently accessed applications as favorites for quick access:- Click the star icon on any application card
- Use the Favorites filter to show only favorited applications
- Favorites are stored per user
Troubleshooting
Application shows OutOfSync
Application shows OutOfSync
- Verify Git repository is accessible
- Check if manifests have changed in Git
- Review sync status details for specific differences
- Click Sync to apply changes from Git
Application health is Degraded
Application health is Degraded
- Check resource tree for unhealthy resources
- View pod logs for error messages
- Review events for failing resources
- Verify resource requests/limits are appropriate
- Check if dependent services are available
Sync operation failed
Sync operation failed
- Review sync result details in the application
- Check for invalid manifest syntax
- Verify RBAC permissions on target cluster
- Ensure destination namespace exists or enable “Create Namespace”
- Check for conflicting resources
Cannot view logs
Cannot view logs
- Verify you have logs permission
- Ensure pod is running (not pending or terminated)
- Check cluster connectivity
- Select the correct container if pod has multiple containers
Cannot exec into pod
Cannot exec into pod
- Verify you have execute permission
- Ensure pod is running
- Check that container allows exec
- Verify network connectivity to cluster
Scale operation not available
Scale operation not available
- Scale is only available for Deployments, StatefulSets, and ReplicaSets
- Verify you have write permission
- Check that the resource exists and is healthy
Rollback shows no history
Rollback shows no history
- Application must have been synced at least once
- History is limited to recent deployments
- First deployment has no previous state to rollback to
Application not updating in real-time
Application not updating in real-time
- WebSocket connection may be interrupted
- Try refreshing the page
- Check browser console for connection errors
FAQ
What's the difference between Sync and Refresh?
What's the difference between Sync and Refresh?
Can I sync specific resources instead of the whole application?
Can I sync specific resources instead of the whole application?
What does Self Heal do?
What does Self Heal do?
What's the difference between Prune and Self Heal?
What's the difference between Prune and Self Heal?
How do I deploy to multiple namespaces?
How do I deploy to multiple namespaces?
Can I use Helm charts with ArgoCD?
Can I use Helm charts with ArgoCD?
What happens if I delete a running pod?
What happens if I delete a running pod?
How do I see what changed between syncs?
How do I see what changed between syncs?
Can multiple users edit the same application?
Can multiple users edit the same application?
What's the retry policy for?
What's the retry policy for?
Best Practices
Application Design
- One application per microservice or logical unit
- Use descriptive names that include service and environment
- Group related applications in the same ArgoCD project
- Keep manifest paths organized within repositories
Sync Configuration
- Enable Automated Sync for development environments
- Use manual sync for production to maintain control
- Enable Prune carefully - test in non-production first
- Configure Self Heal for critical applications that should not drift
Source Management
- Use specific branches or tags for production
- Use
HEADor branch names for development - Keep paths short and meaningful
- Document which applications use which repository paths
Resource Management
- Set appropriate resource requests and limits
- Use readiness and liveness probes
- Configure pod disruption budgets for high availability
- Monitor resource utilization regularly
Security
- Use separate ArgoCD projects for different environments
- Restrict which clusters and namespaces projects can access
- Avoid storing secrets in Git - use external secret management
- Audit application changes regularly
Monitoring
- Set up alerts for application health changes
- Monitor sync failures and investigate promptly
- Track deployment frequency and success rates
- Review application logs regularly
Rollback Strategy
- Test rollback procedures before incidents
- Keep deployment history available
- Document which versions are known-good
- Consider blue-green or canary deployments for critical services