Project
A Project represents a cloud-native application composed of multiple components in OpenChoreo. It serves as the fundamental unit of isolation and provides a logical boundary for organizing related components, services, and resources.
API Versionβ
openchoreo.dev/v1alpha1
Resource Definitionβ
Metadataβ
Projects are namespace-scoped resources.
apiVersion: openchoreo.dev/v1alpha1
kind: Project
metadata:
name: <project-name>
namespace: <namespace> # Namespace for grouping projects
Spec Fieldsβ
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
deploymentPipelineRef | string | Yes | - | Reference to the DeploymentPipeline that defines the promotion paths between environments for this project. Must reference an existing DeploymentPipeline in the same namespace |
buildPlaneRef | BuildPlaneRef | No | - | Reference to the BuildPlane or ClusterBuildPlane for building this project's components |
BuildPlaneRefβ
Reference to a BuildPlane or ClusterBuildPlane for building this project's components.
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
kind | string | No | BuildPlane | Kind of the build plane (BuildPlane or ClusterBuildPlane) |
name | string | Yes | - | Name of the build plane resource |
BuildPlane Resolution
If buildPlaneRef is not specified, the system resolves a BuildPlane using the following fallback order:
- Default BuildPlane in the project's namespace
- ClusterBuildPlane named "default"
- First available BuildPlane or ClusterBuildPlane
Status Fieldsβ
| Field | Type | Default | Description |
|---|---|---|---|
observedGeneration | integer | 0 | The generation observed by the controller |
conditions | []Condition | [] | Standard Kubernetes conditions tracking the project state |
Condition Typesβ
Common condition types for Project resources:
Ready- Indicates if the project is fully provisioned and readyReconciled- Indicates if the controller has successfully reconciled the projectNamespaceProvisioned- Indicates if project namespaces have been created in all environments
Examplesβ
Basic Projectβ
A simple project referencing the default deployment pipeline:
apiVersion: openchoreo.dev/v1alpha1
kind: Project
metadata:
name: internal-apps
namespace: default
annotations:
openchoreo.dev/display-name: Internal Applications
openchoreo.dev/description: This project contains components that are used by company's internal applications
spec:
deploymentPipelineRef: default-deployment-pipeline
Project with Explicit BuildPlaneRefβ
A project with an explicit reference to a BuildPlane:
apiVersion: openchoreo.dev/v1alpha1
kind: Project
metadata:
name: internal-apps
namespace: default
annotations:
openchoreo.dev/display-name: Internal Applications
openchoreo.dev/description: This project contains components built on a dedicated build plane
spec:
deploymentPipelineRef: default-deployment-pipeline
buildPlaneRef:
kind: BuildPlane
name: dedicated-buildplane
Project with ClusterBuildPlaneβ
A project referencing a cluster-scoped build plane:
apiVersion: openchoreo.dev/v1alpha1
kind: Project
metadata:
name: shared-apps
namespace: default
spec:
deploymentPipelineRef: default-deployment-pipeline
buildPlaneRef:
kind: ClusterBuildPlane
name: shared-buildplane
Annotationsβ
Projects support the following annotations:
| Annotation | Description |
|---|---|
openchoreo.dev/display-name | Human-readable name for UI display |
openchoreo.dev/description | Detailed description of the project |
Related Resourcesβ
- Component - Deployable units within projects
- DeploymentPipeline - Defines environment promotion paths
- BuildPlane - Namespace-scoped build plane for CI/CD
- ClusterBuildPlane - Cluster-scoped build plane for CI/CD