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​