Skip to main content
Version: Next

Release

A Release represents the actual deployment of application resources to a data plane environment in OpenChoreo. It is created by binding resources (ServiceBinding, WebApplicationBinding, ScheduledTaskBinding) and contains the complete set of Kubernetes resources that need to be applied to the target environment. Releases manage the lifecycle and health monitoring of deployed resources.

API Version

openchoreo.dev/v1alpha1

Resource Definition

Metadata

Releases are namespace-scoped resources that must be created within an Organization's namespace.

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

Spec Fields

FieldTypeRequiredDefaultDescription
ownerReleaseOwnerYes-Ownership information linking the release to a project and component
environmentNamestringYes-Name of the target environment for this release
resources[Resource]No[]List of Kubernetes resources to apply to the data plane
intervalDurationNo5mWatch interval for resources when stable
progressingIntervalDurationNo10sWatch interval for resources when transitioning

ReleaseOwner

FieldTypeRequiredDefaultDescription
projectNamestringYes-Name of the project that owns this release
componentNamestringYes-Name of the component that owns this release

Resource

FieldTypeRequiredDefaultDescription
idstringYes-Unique identifier for the resource
objectruntime.RawExtensionYes-Complete Kubernetes resource definition in raw JSON/YAML

Status Fields

FieldTypeDefaultDescription
resources[ResourceStatus][]List of resources that have been successfully applied to the data plane
conditions[Condition][]Conditions tracking the release state

ResourceStatus

FieldTypeDefaultDescription
idstring-Corresponds to the resource ID in spec.resources
groupstring""API group of the resource (e.g., "apps", "batch")
versionstring-API version of the resource (e.g., "v1", "v1beta1")
kindstring-Type of the resource (e.g., "Deployment", "Service")
namestring-Name of the resource in the data plane
namespacestring""Namespace of the resource in the data plane
statusruntime.RawExtension-Entire .status field of the resource from the data plane
healthStatusHealthStatus-Health of the resource in the data plane
lastObservedTimeTime-Last time the status was observed

HealthStatus

ValueDescription
UnknownHealth of the resource is not known
ProgressingResource is in a transitioning state to become healthy
HealthyResource is healthy and operating as expected
SuspendedResource is intentionally paused (e.g., CronJob, Deployment with paused rollout)
DegradedResource is not healthy and not operating as expected

Conditions

Releases report their state through standard Kubernetes conditions. The following condition types are used:

TypeDescription
FinalizingIndicates the Release is being deleted and resources are being cleaned up from the data plane

Examples

Basic Release with Deployment and Service

apiVersion: openchoreo.dev/v1alpha1
kind: Release
metadata:
name: customer-service-prod-release
namespace: default
spec:
owner:
projectName: my-project
componentName: customer-service
environmentName: production
interval: 5m
progressingInterval: 10s
resources:
- id: deployment
object:
apiVersion: apps/v1
kind: Deployment
metadata:
name: customer-service
namespace: prod-data-plane
spec:
replicas: 3
selector:
matchLabels:
app: customer-service
template:
metadata:
labels:
app: customer-service
spec:
containers:
- name: main
image: myregistry/customer-service:v1.0.0
ports:
- containerPort: 8080
- id: service
object:
apiVersion: v1
kind: Service
metadata:
name: customer-service
namespace: prod-data-plane
spec:
selector:
app: customer-service
ports:
- port: 80
targetPort: 8080

Annotations

Releases support the following annotations:

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