Skip to main content

Project

A Project is where a team works. It does two jobs at once: it's a bounded context — a logical home for the components that implement one business capability — and a runtime cell: when its components deploy, the platform gives the project its own namespace on the data plane, per environment, with network policies. That cell is the isolation boundary at runtime.

A Project lives inside an Organization (a control-plane namespace) and binds to a DeploymentPipeline, which fixes the promotion path its components travel.

KindProject
API groupopenchoreo.dev/v1alpha1
ScopeNamespaced
AudienceDeveloper / platform engineer
ParentOrganization (the control-plane namespace)
ContainsComponents, Resources
ReferencesDeploymentPipeline (spec.deploymentPipelineRef)

Where it sits

Organization (namespace)
└── Project ← you are here
├── Component
└── Resource

Key spec fields

FieldDescription
spec.deploymentPipelineRef.kindDeploymentPipeline (or ClusterDeploymentPipeline)
spec.deploymentPipelineRef.nameThe pipeline whose promotion paths this project's releases follow
metadata.annotations[openchoreo.dev/display-name]Human-readable name shown in the portal
metadata.annotations[openchoreo.dev/description]Short description
metadata.annotations[backstage.io/owner]Owning team; cascades to every component in the project

Create in the portal

  1. Open Create… in the left nav.
  2. Under Application Resources, pick the Project template ("Group related components and services within an isolated boundary").
  3. Give it a name (e.g. url-shortener), a description and owner, and choose the Deployment Pipeline it binds to (e.g. default).
  4. Click Create. The project then shows up in the Catalog (filter Kind: Project), ready for components.

Prefer YAML/GitOps? See the Example below, or Orgs, projects, and tenancy.

Example

apiVersion: openchoreo.dev/v1alpha1
kind: Project
metadata:
name: checkout
namespace: fedshi
annotations:
openchoreo.dev/display-name: "Checkout"
openchoreo.dev/description: "Cart, payment, and order-history services"
backstage.io/owner: group:default/checkout-team
spec:
deploymentPipelineRef:
kind: DeploymentPipeline
name: default
occ apply -f checkout-project.yaml
occ project get checkout -n fedshi

See also