argocd proj (or argocd project) command manages projects, which provide logical grouping of applications with RBAC policies, resource restrictions, and access controls.
Quick Examples
Understanding Projects
Projects provide:- Logical grouping of applications
- RBAC policies for access control
- Source repositories whitelist
- Destination clusters and namespaces whitelist
- Resource allow/deny lists (which Kubernetes resources can be deployed)
- Orphaned resources monitoring
- Sync windows for controlling when deployments can occur
The
default project exists in all Argo CD installations and has no restrictions by default.Subcommands
create
Create a new project.string
Project description
string[]
Permitted source repository URLs (supports wildcards)
string[]
Permitted destination in format: SERVER,NAMESPACE
string[]
Allow cluster-scoped resource (e.g., Namespace, ClusterRole)
string[]
Allow namespaced resource (e.g., Deployment, Service)
boolean
Warn on orphaned resources
list
List all projects.get
Get detailed information about a project.set
Update project settings.edit
Edit project in your default editor.$EDITOR.
delete
Delete a project.Managing Sources
add-source
Add permitted source repository.remove-source
Remove permitted source repository.add-source-namespace
Add source namespace for ApplicationSet.remove-source-namespace
Remove source namespace.Managing Destinations
add-destination
Add permitted destination cluster and namespace.string
required
Kubernetes cluster server URL
string
required
Target namespace (supports wildcards)
string
Cluster name instead of server URL
remove-destination
Remove permitted destination.add-destination-service-account
Add service account for destination.remove-destination-service-account
Remove service account from destination.Resource Whitelists/Blacklists
allow-cluster-resource
Add cluster-scoped resource to allow list.deny-cluster-resource
Add cluster-scoped resource to deny list.allow-namespace-resource
Add namespaced resource to allow list.deny-namespace-resource
Add namespaced resource to deny list.Project Roles
Manage RBAC roles within a project.role create
Create a new project role.role list
List project roles.role get
Get role details.role delete
Delete a project role.role add-policy
Add policy to project role.get- View applicationcreate- Create applicationupdate- Update applicationdelete- Delete applicationsync- Sync applicationoverride- Override application parameters*- All actions
role remove-policy
Remove policy from project role.role add-group
Associate SSO group with project role.role remove-group
Remove SSO group from project role.role create-token
Create authentication token for project role.role list-tokens
List tokens for a project role.role delete-token
Delete authentication token.Sync Windows
Control when applications can be synced.windows add
Add a sync window.string
required
Cron schedule (e.g., “0 9 * * 1-5” for weekdays 9am)
string
required
Window duration (e.g., 1h, 30m, 8h)
string
default:"allow"
Window type:
allow or denystring[]
Applications to which window applies (supports wildcards)
string[]
Namespaces to which window applies
string[]
Clusters to which window applies
boolean
Allow manual sync during this window
windows list
List sync windows.windows delete
Delete a sync window.windows enable-manual-sync / disable-manual-sync
Control manual sync in windows.Common Workflows
Create Production Project
Create Development Project
Setup RBAC for Team
Best Practices
- Use separate projects for different environments (prod, staging, dev)
- Define explicit source repositories instead of using wildcards
- Use resource whitelists to enforce governance
- Leverage sync windows for production change management
- Create role-based access with SSO group integration
- Use project tokens for CI/CD pipelines
- Monitor orphaned resources in production projects
- Document project policies and intended usage
Next Steps
App Commands
Create applications within projects
Account Commands
Manage user accounts and permissions