Argo CD Core runs Argo CD in headless mode with a minimal set of components. It’s perfect for single-cluster, single-admin scenarios where the full Argo CD feature set isn’t needed.
When to Use Core Mode
Choose Argo CD Core if:- ✅ You’re a cluster admin who wants to rely on Kubernetes RBAC only
- ✅ You want to automate deployments using the Kubernetes API only
- ✅ You don’t need to provide Argo CD UI or CLI to developers
- ✅ You prefer a simpler, more minimalist installation
- ✅ You’re managing a single cluster with a small team
Architecture
Included Components
Argo CD Core includes only the essential GitOps components:- Installed
- Not Included
- Application Controller (argocd-application-controller)
- Monitors applications and reconciles state
- Syncs desired state from Git to clusters
- Repository Server (argocd-repo-server)
- Clones Git repositories
- Generates manifests (Helm, Kustomize, etc.)
- Redis (argocd-redis)
- Caching layer
- Improves performance and reduces API load
- ApplicationSet Controller (argocd-applicationset-controller)
- Manages ApplicationSet resources
- Enables multi-app templating
Architecture Diagram
Installation
1
Create the namespace
Create a dedicated namespace for Argo CD:
2
Install Argo CD Core
Apply the core installation manifest:For a specific version:
3
Verify the installation
Check that all pods are running:Expected output:
Notice that
argocd-server and argocd-dex-server are not present in Core mode.Using Argo CD Core
GitOps with CRDs
The primary way to interact with Argo CD Core is through Kubernetes CRDs:- Application
- ApplicationSet
- AppProject
Create an Application resource:Apply it:
Using the CLI in Core Mode
The Argo CD CLI can still be used with Core mode, but it spawns a temporary local API server:1
Install the CLI
Install the Argo CD CLI (installation guide):
2
Login with --core flag
Set your kubeconfig context and login:
The
--core flag tells the CLI to spawn a local API server process. This process is automatically terminated when the command completes.3
Use CLI commands
All standard CLI commands work:
The CLI in Core mode requires proper Kubernetes RBAC permissions on Application and ApplicationSet resources in the argocd namespace.
Using the Web UI in Core Mode
You can run the Web UI locally for a better visual experience:The local dashboard spawns a temporary API server on your machine. It uses your kubeconfig credentials and requires proper RBAC permissions.
RBAC Configuration
Since Core mode uses Kubernetes RBAC, you need to grant appropriate permissions:For Developers
For Admins
Multi-Tenancy in Core Mode
Core mode supports GitOps-based multi-tenancy:Multi-tenancy in Core mode is enforced by Git repository permissions, not Argo CD RBAC.
Strategy
- Git-based permissions: Teams push to their own Git paths/branches
- Kubernetes RBAC: Controls who can create/modify Application resources
- AppProjects: Define allowed sources and destinations per team
Example Setup
Comparison: Core vs Multi-Tenant
Upgrading from Core to Multi-Tenant
To upgrade from Core to full multi-tenant installation:1
Backup existing resources
2
Apply multi-tenant manifest
3
Verify all components
argocd-server and argocd-dex-server pods.4
Access the UI
Uninstalling
To remove Argo CD Core:Troubleshooting
CLI commands fail with permission errors
CLI commands fail with permission errors
Ensure your kubeconfig user has proper RBAC permissions on Application resources:If these return “no”, you need to create appropriate Roles and RoleBindings.
Applications not syncing
Applications not syncing
Check the application-controller logs:Check the application status:
Local dashboard won't start
Local dashboard won't start
Ensure you’ve set the correct namespace context:Verify connectivity:
Next Steps
Create Applications
Deploy your first application with Core mode
ApplicationSets
Use ApplicationSets for templating
Kubernetes RBAC
Configure RBAC for your team
Upgrade to Multi-Tenant
Add API server and Web UI