Skip to main content
Version: v0.7.x

Component

A Component represents a deployable unit of an application in OpenChoreo. It serves as the core abstraction that references a platform-defined ComponentType (in {workloadType}/{componentTypeName} format) and optionally includes build configuration when using OpenChoreo's CI system to build from source. Components are the primary building blocks used to define applications within a Project.

API Version​

openchoreo.dev/v1alpha1

Resource Definition​

Metadata​

Components are namespace-scoped resources that must be created within an Organization's namespace and belong to a Project through the owner field.

apiVersion: openchoreo.dev/v1alpha1
kind: Component
metadata:
name: <component-name>
namespace: <org-namespace> # Organization namespace

Spec Fields​

FieldTypeRequiredDefaultDescription
ownerComponentOwnerYes-Ownership information linking the component to a project
componentTypestringYes-componentType in the format {workloadType}/{componentTypeName} (e.g., deployment/web-app). See ComponentType.
buildBuildSpecInComponentNo-Optional build configuration when using OpenChoreo CI to build from source (omit for pre-built images)

ComponentOwner​

FieldTypeRequiredDefaultDescription
projectNamestringYes-Name of the project that owns this component (min: 1)

ComponentType Reference​

The componentType string points to a platform-defined ComponentType using the format {workloadType}/{componentTypeName}. Examples: deployment/service, cronjob/scheduled-task, deployment/web-application. See ComponentType for details.

BuildSpecInComponent​

FieldTypeRequiredDefaultDescription
repositoryBuildRepositoryYes-Source repository configuration where the component code resides
templateRefTemplateRefYes-Build template reference (ClusterWorkflowTemplate in the build plane)

BuildRepository​

FieldTypeRequiredDefaultDescription
urlstringYes-Repository URL (e.g., https://github.com/org/repo)
revisionBuildRevisionYes-Default revision configuration for builds
appPathstringYes-Path to the application within the repository (relative to root, e.g., ".")

BuildRevision​

FieldTypeRequiredDefaultDescription
branchstringYes-Default branch to build from when no specific commit provided

TemplateRef​

FieldTypeRequiredDefaultDescription
enginestringNo-Build engine to use
namestringYes-Name of the build template
parameters[Parameter]No[]Template parameters

Parameter​

FieldTypeRequiredDefaultDescription
namestringYes-Parameter name
valuestringYes-Parameter value

Status Fields​

FieldTypeDefaultDescription
observedGenerationinteger0The generation observed by the controller
conditions[]Condition[]Standard Kubernetes conditions tracking component state

Condition Types​

Common condition types for Component resources:

  • Ready - Indicates if the component is ready
  • Reconciled - Indicates if the controller has successfully reconciled the component

Examples​

Service Component with Docker Build​

apiVersion: openchoreo.dev/v1alpha1
kind: Component
metadata:
name: customer-service
namespace: default
spec:
owner:
projectName: my-project
componentType: deployment/service
build:
repository:
url: https://github.com/myorg/customer-service
revision:
branch: main
appPath: .
templateRef:
name: docker
parameters:
- name: docker-context
value: .
- name: dockerfile-path
value: ./Dockerfile

WebApplication Component with Buildpacks​

apiVersion: openchoreo.dev/v1alpha1
kind: Component
metadata:
name: frontend-app
namespace: default
spec:
owner:
projectName: my-project
componentType: deployment/web-app
build:
repository:
url: https://github.com/myorg/frontend
revision:
branch: develop
appPath: ./webapp
templateRef:
name: google-cloud-buildpacks

Annotations​

Components support the following annotations:

AnnotationDescription
openchoreo.dev/display-nameHuman-readable name for UI display
openchoreo.dev/descriptionDetailed description of the component
  • Project - Contains components
  • Build - Build jobs triggered by components
  • Workload - Workload definitions associated with components
  • Service - Service-type component resources
  • WebApplication - WebApplication-type component resources
  • ScheduledTask - ScheduledTask-type component resources