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
Field | Type | Required | Default | Description |
---|---|---|---|---|
owner |
ReleaseOwner | Yes | - | Ownership information linking the release to a project and component |
environmentName |
string | Yes | - | Name of the target environment for this release |
resources |
[Resource] | No | [] | List of Kubernetes resources to apply to the data plane |
interval |
Duration | No | 5m | Watch interval for resources when stable |
progressingInterval |
Duration | No | 10s | Watch interval for resources when transitioning |
ReleaseOwner
Field | Type | Required | Default | Description |
---|---|---|---|---|
projectName |
string | Yes | - | Name of the project that owns this release |
componentName |
string | Yes | - | Name of the component that owns this release |
Resource
Field | Type | Required | Default | Description |
---|---|---|---|---|
id |
string | Yes | - | Unique identifier for the resource |
object |
runtime.RawExtension | Yes | - | Complete Kubernetes resource definition in raw JSON/YAML |
Status Fields
Field | Type | Default | Description |
---|---|---|---|
resources |
[ResourceStatus] | [] | List of resources that have been successfully applied to the data plane |
conditions |
[Condition] | [] | Conditions tracking the release state |
ResourceStatus
Field | Type | Default | Description |
---|---|---|---|
id |
string | - | Corresponds to the resource ID in spec.resources |
group |
string | ”” | API group of the resource (e.g., “apps”, “batch”) |
version |
string | - | API version of the resource (e.g., “v1”, “v1beta1”) |
kind |
string | - | Type of the resource (e.g., “Deployment”, “Service”) |
name |
string | - | Name of the resource in the data plane |
namespace |
string | ”” | Namespace of the resource in the data plane |
status |
runtime.RawExtension | - | Entire .status field of the resource from the data plane |
healthStatus |
HealthStatus | - | Health of the resource in the data plane |
lastObservedTime |
Time | - | Last time the status was observed |
HealthStatus
Value | Description |
---|---|
Unknown |
Health of the resource is not known |
Progressing |
Resource is in a transitioning state to become healthy |
Healthy |
Resource is healthy and operating as expected |
Suspended |
Resource is intentionally paused (e.g., CronJob, Deployment with paused rollout) |
Degraded |
Resource is not healthy and not operating as expected |
Conditions
Releases report their state through standard Kubernetes conditions. The following condition types are used:
Type | Description |
---|---|
Finalizing |
Indicates 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:
Annotation | Description |
---|---|
openchoreo.dev/display-name |
Human-readable name for UI display |
openchoreo.dev/description |
Detailed description of the release |
Related Resources
- ServiceBinding - Creates releases for services
- WebApplicationBinding - Creates releases for web applications
- ScheduledTaskBinding - Creates releases for scheduled tasks
- Environment - Target environments for releases
- DataPlane - Data planes where resources are deployed