What is a Project?
A project is a container that:- Holds all your deployments for a specific application or service
- Has its own isolated Kubernetes namespace
- Contains services, ingresses, and volumes for its deployments
- Can be linked to a GitHub repository for automated builds
Project Isolation
Each project runs in its own Kubernetes namespace. The namespace name is automatically generated from your organization, workspace, and project slugs:- Organization:
acme-corp - Workspace:
production - Project:
api
acme-corp-production-api
This isolation means:
- Deployments in one project cannot directly access deployments in another
- Resources (CPU, memory) are isolated
- Network policies can be applied per-project
- Secrets and configuration are scoped to the project
Creating a Project
Enter project details
- Name: A descriptive name for your project (e.g., “API”, “Web App”, “Worker”)
- Slug: Auto-generated URL identifier
- Description (optional): Describe what this project contains
- Repository URL (optional): Link to your GitHub repository
What Projects Contain
A project can contain:Deployments
Running containers from Docker images or built from source code
Services
Network endpoints for accessing your deployments internally or externally
Ingresses
HTTP(S) routing rules for custom domains
Volumes
Persistent storage for data that survives container restarts
Project Structure Example
Linking a GitHub Repository
You can optionally link a GitHub repository to your project. This enables:- One-click deployments from your repository
- Automatic branch and Dockerfile detection
- Build history tracking with commit references
For private repositories, you’ll need to configure GitHub access in your user settings.
Project Permissions
Project access is controlled at the workspace level. If you have access to a workspace, you can access all projects within it based on your workspace role:| Workspace Role | Project Permissions |
|---|---|
| Admin | Full access to all projects, including deletion |
| Editor | Can create, modify, and delete deployments in all projects |
| Viewer | Read-only access to all projects |
Deleting a Project
To delete a project:Best Practices
One service per project
One service per project
For microservices architectures, consider creating one project per service. This provides better isolation and independent deployment cycles.
Group related deployments
Group related deployments
Use descriptive names
Use descriptive names
Name your projects clearly so team members know what they contain (e.g., “user-api” instead of “service1”).
Link your repository
Link your repository
Always link your GitHub repository for easier deployments and better tracking of what code is running.