How to fix permission denied: applications, create, default/myapp in Kubernetes
ArgoCD project permission denied errors occur when users or service accounts lack RBAC permissions to create or manage applications. This is typically resolved by configuring project roles, policies, and token-based access for CI/CD pipelines.
Quick fix
Fixes permission denied: applications, create, default/myapp
argocd account get-info
argocd proj list
argocd proj role list <project-name>- Verify current authentication and RBAC status
- Use the default project for quick fix
- Create a custom AppProject with proper configuration
- Create a project role for CI/CD operations
argocd account get-infoargocd proj listargocd proj role list <project-name>permission denied: applications, create, default/myapp
What this error means
When creating an ArgoCD application within a project, the request fails with a permission denied error. This indicates that the authenticated user or service account does not have the necessary RBAC (Role-Based Access Control) permissions to create applications in that specific project. ArgoCD enforces fine-grained RBAC at the project level, requiring explicit policy configuration for each user, group, or service account.
Typical symptoms
- Error message shows "PermissionDenied desc = permission denied: applications, create"
- Unable to create applications via CLI or web UI with user account
- CI/CD pipeline fails at application creation step with permission errors
- Project-scoped tokens unable to perform create operations
- Non-default projects always return permission denied
- Admin users can create applications but regular users cannot
- Application sync, update, or delete operations fail with permission denied
- GitHub Actions or Tekton pipelines cannot create ArgoCD applications
Common causes
- User account has no RBAC policy configured for the target project
- Using a custom project without explicitly configured permissions
- Service account token lacks necessary project role policies
- RBAC policy specifies object "default/myapp" instead of wildcard "*/*"
- User group membership not properly mapped in RBAC configuration
- Missing project role creation and permission binding steps
- Default project RBAC is not inherited by new projects
- Token permissions do not include create action for applications
How to fix "permission denied: applications, create, default/myapp"
Check which user/service account is authenticated and what project roles exist:
argocd account get-info
argocd proj list
argocd proj role list <project-name>The simplest solution is to use the "default" project which has proper RBAC configured during ArgoCD installation. Update your application to use the default project:
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: my-app
namespace: argocd
spec:
project: defaultIf you need a custom project, create it with cluster and source permissions:
argocd proj create my-project \
-d https://kubernetes.default.svc,default \
--src "*"Define a project role that can perform create, sync, update, and delete:
argocd proj role create my-project deploy-roleAdd policy permissions for each required action:
argocd proj role add-policy my-project deploy-role \
--action "create,sync,update,delete" \
--permission "allow" \
--object "*/*"Generate a token that can be used in CI/CD pipelines:
argocd proj role create-token my-project deploy-roleStore this token securely and use it to authenticate in your CI/CD system.
For group-based access, edit the argocd-rbac-cm ConfigMap:
kubectl edit configmap argocd-rbac-cm -n argocdAdd policies like:
ui_policy.default: g, my-group, role:adminTest if a specific user/role has permission to perform an action:
argocd admin settings rbac can create applications my-projectAdvanced notes
For production, use group-based RBAC mapped through your SSO provider (OIDC, SAML) rather than individual tokens. Project tokens are ideal for CI/CD pipelines but rotate them regularly. The wildcard pattern "*/*" applies to all namespaces and application names - restrict this further in security-sensitive environments. Always use the principle of least privilege when assigning roles.
Frequently asked questions
- What does "permission denied: applications, create, default/myapp" mean?
- When creating an ArgoCD application within a project, the request fails with a permission denied error. This indicates that the authenticated user or service account does not have the necessary RBAC (Role-Based Access Control) permissions to create applications in that specific project. ArgoCD enforces fine-grained RBAC at the project level, requiring explicit policy configuration for each user, group, or service account.
- How do I fix "permission denied: applications, create, default/myapp"?
- ArgoCD project permission denied errors occur when users or service accounts lack RBAC permissions to create or manage applications. This is typically resolved by configuring project roles, policies, and token-based access for CI/CD pipelines.
- What causes "permission denied: applications, create, default/myapp"?
- User account has no RBAC policy configured for the target project Using a custom project without explicitly configured permissions Service account token lacks necessary project role policies
- Is the "permission denied: applications, create, default/myapp" error serious?
- It is a medium-severity error โ more of a blocker than a risk. The steps above resolve it.
Official resources & further reading
- ๐Kubernetes Official Documentation
- ๐ArgoCD RBAC Configuration(Official Docs)
- ๐ArgoCD Permission Denied Fix(Official Docs)
- ๐RBAC Issue Discussion(GitHub)