Project Resource
Frompkg/apis/management.cattle.io/v3/authz_types.go:30
Project Spec
string
required
Human-readable name for the project
string
Optional description of the project’s purpose
string
required
Name of the cluster this project belongs to (immutable)
ProjectResourceQuota
NamespaceResourceQuota
Default quota applied to each namespace in the project
ResourceQuotaLimit
Per-namespace resource limits
ContainerResourceLimit
Project Status
array<ProjectCondition>
Current state of the project
string
Namespace used to store project-scoped resources (PRTBs, secrets)
Project Conditions
Frompkg/apis/management.cattle.io/v3/authz_types.go:14
condition
Backing namespace has been created
condition
Project creator has been granted owner permissions
condition
Default network policy has been applied
condition
Initial RBAC roles have been created
Create Project
Create a new project within a cluster.Response
List Projects
Retrieve all projects:Filter by Cluster
Get Project
Retrieve a specific project:Update Project
Update project configuration:Delete Project
Delete a project:Multi-Tenancy with Projects
Project Role Template Bindings (PRTB)
Grant users or groups access to a project:Available Project Roles
role
Full administrative access to the project
role
Standard member access - can manage workloads and most resources
role
Read-only access to project resources
Namespace Management
List Project Namespaces
Get all namespaces in a project:Move Namespace to Project
Assign a namespace to a project:Create Namespace in Project
Resource Quotas
Understanding Resource Quotas
Projects support two levels of resource quotas:- Project-level quota: Total resources across all namespaces
- Namespace-level quota: Default quota for each namespace
Example: Setting Quotas
Container Default Limits
Set default resource limits for all containers:Container defaults apply when workloads don’t specify resource requests/limits.
Project Isolation
Network Policies
Enable network isolation between projects:- Pods in different projects cannot communicate by default
- Intra-project communication is allowed
- Explicit NetworkPolicies can override defaults
Best Practices
Organize by Environment
Organize by Environment
Create separate projects for different environments:
productionstagingdevelopment
Set Resource Quotas
Set Resource Quotas
Always define resource quotas to prevent resource exhaustion:
- Project-level quotas for overall limits
- Namespace defaults for consistent allocation
- Container defaults to ensure all workloads have limits
Use Meaningful Names
Use Meaningful Names
Choose descriptive names that indicate:
- Environment (prod, staging, dev)
- Team or application (team-frontend, app-backend)
- Purpose (ci-cd, monitoring)
Implement RBAC Early
Implement RBAC Early
Grant least-privilege access:
- Use
project-memberfor developers - Reserve
project-ownerfor leads - Use
read-onlyfor monitoring tools
Enable Network Policies
Enable Network Policies
Enable network isolation for production projects to:
- Prevent unauthorized access
- Comply with security requirements
- Isolate sensitive workloads
Monitoring Projects
Check Resource Usage
Get current resource usage for a project:Watch Project Events
Monitor project-level events:Next Steps
Workloads
Deploy applications in projects
RBAC
Configure role-based access control
Namespaces
Manage namespaces within projects