Project Resource
Frompkg/apis/management.cattle.io/v3/authz_types.go:30
Project Spec
Human-readable name for the project
Optional description of the project’s purpose
Name of the cluster this project belongs to (immutable)
Total resource quota shared across all namespaces in the project
Default quota applied to each namespace in the project
Per-namespace resource limits
Default resource limits for containers in the project
Default CPU limit per container (e.g., “200m”)
Default memory limit per container (e.g., “256Mi”)
Default CPU request per container (e.g., “100m”)
Default memory request per container (e.g., “128Mi”)
Project Status
Current state of the project
Namespace used to store project-scoped resources (PRTBs, secrets)
Project Conditions
Frompkg/apis/management.cattle.io/v3/authz_types.go:14
Backing namespace has been created
Project creator has been granted owner permissions
Default network policy has been applied
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
Full administrative access to the project
Standard member access - can manage workloads and most resources
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