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

DeploymentPipelineRef

Reference to a DeploymentPipeline that defines the promotion paths between environments for this project.

FieldTypeRequiredDefaultDescription
kindstringNoDeploymentPipelineKind of the deployment pipeline resource
namestringYes-Name of the deployment pipeline resource

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:
name: default-deployment-pipeline

Annotations

Projects support the following annotations:

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