Key Concepts
Application
A deployment unit connecting Git source to Kubernetes destination with sync policies.
Sync Status
Whether the live state matches the desired state in Git (Synced, OutOfSync, Unknown).
Health Status
The operational health of deployed resources (Healthy, Progressing, Degraded, etc.).
Resource Tree
Visual representation of all Kubernetes resources managed by the application.
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
Sync compares the desired state in Git with the live state in Kubernetes and applies necessary changes.
How to View Application Logs
How to Execute Commands in a Pod
How to Scale a Workload
How to Restart a Workload
Restart performs a rolling restart, keeping the application available during the process.
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?
Refresh fetches the latest state from the cluster without making changes. Sync applies the desired state from Git to the cluster, making actual changes to resources.
Can I sync specific resources instead of the whole application?
Can I sync specific resources instead of the whole application?
Currently, sync operates on the entire application. For partial syncs, use the ArgoCD CLI with resource selectors.
What does Self Heal do?
What does Self Heal do?
Self Heal automatically reverts manual changes made to resources. If someone modifies a resource directly in Kubernetes, ArgoCD will detect the drift and sync it back to the Git state.
What's the difference between Prune and Self Heal?
What's the difference between Prune and Self Heal?
Prune deletes resources that no longer exist in Git. Self Heal reverts changes to resources that still exist but were modified manually.
How do I deploy to multiple namespaces?
How do I deploy to multiple namespaces?
Create separate applications for each namespace. Each application can only target one namespace.
Can I use Helm charts with ArgoCD?
Can I use Helm charts with ArgoCD?
Yes. Point the application source path to a directory containing a Helm chart. ArgoCD will render the chart and apply the manifests.
What happens if I delete a running pod?
What happens if I delete a running pod?
If the pod belongs to a Deployment or ReplicaSet, Kubernetes will automatically create a replacement pod. The application health may temporarily show Progressing.
How do I see what changed between syncs?
How do I see what changed between syncs?
Click on the application to view the manifest drift panel. This shows differences between the desired state (Git) and live state (cluster).
Can multiple users edit the same application?
Can multiple users edit the same application?
Yes, but be careful of conflicts. Changes are applied in order received. Use Git as the source of truth to avoid conflicts.
What's the retry policy for?
What's the retry policy for?
Retry policy automatically retries failed sync operations with exponential backoff. Useful for transient failures like network issues or temporary resource conflicts.
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