Skip to main content
Version: Next

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​

FieldTypeRequiredDefaultDescription
deploymentPipelineRefstringYes-Reference to the DeploymentPipeline that defines the promotion paths between environments for this project. Must reference an existing DeploymentPipeline in the same namespace
buildPlaneRefBuildPlaneRefNo-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.

FieldTypeRequiredDefaultDescription
kindstringNoBuildPlaneKind of the build plane (BuildPlane or ClusterBuildPlane)
namestringYes-Name of the build plane resource
BuildPlane Resolution

If buildPlaneRef is not specified, the system resolves a BuildPlane using the following fallback order:

  1. Default BuildPlane in the project's namespace
  2. ClusterBuildPlane named "default"
  3. First available BuildPlane or ClusterBuildPlane

Status Fields​

FieldTypeDefaultDescription
observedGenerationinteger0The 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 ready
  • Reconciled - Indicates if the controller has successfully reconciled the project
  • NamespaceProvisioned - 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:

AnnotationDescription
openchoreo.dev/display-nameHuman-readable name for UI display
openchoreo.dev/descriptionDetailed description of the project