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
1
Navigate to your workspace
Open the workspace where you want to create the project.
2
Click 'New Project'
Click the New Project button.
3
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
4
Create
Click Create to set up your project. Orchard will automatically create the corresponding Kubernetes namespace.
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
1
Open project settings
Navigate to your project and click Settings.
2
Add repository URL
Enter your GitHub repository URL (e.g.,
https://github.com/your-org/your-repo).3
Save
Click Save to link the repository.
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:1
Open project settings
Navigate to the project and click Settings.
2
Go to danger zone
Scroll down to the danger zone section.
3
Delete
Click Delete Project and confirm by typing the project name.
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.