DataPlane
A DataPlane represents a Kubernetes cluster where application workloads are deployed. It defines the connection to a target Kubernetes cluster, container registry configuration, and gateway settings for routing traffic to applications.
API Version
openchoreo.dev/v1alpha1
Resource Definition
Metadata
DataPlanes are namespace-scoped resources that must be created within an Organization’s namespace.
apiVersion: openchoreo.dev/v1alpha1
kind: DataPlane
metadata:
name: <dataplane-name>
namespace: <org-namespace> # Organization namespace
Spec Fields
Field | Type | Required | Default | Description |
---|---|---|---|---|
kubernetesCluster |
KubernetesClusterSpec | Yes | - | Target Kubernetes cluster configuration |
registry |
Registry | Yes | - | Container registry configuration for pulling images |
gateway |
GatewaySpec | Yes | - | API gateway configuration for this DataPlane |
observer |
ObserverAPI | No | - | Observer API integration for monitoring and logging |
KubernetesClusterSpec
Field | Type | Required | Default | Description |
---|---|---|---|---|
name |
string | Yes | - | Name of the Kubernetes cluster |
credentials.apiServerURL |
string | Yes | - | URL of the Kubernetes API server |
credentials.caCert |
string | Yes | - | Base64-encoded CA certificate |
credentials.clientCert |
string | Yes | - | Base64-encoded client certificate |
credentials.clientKey |
string | Yes | - | Base64-encoded client private key |
Registry
Field | Type | Required | Default | Description |
---|---|---|---|---|
prefix |
string | Yes | - | Registry domain and namespace (e.g., docker.io/namespace) |
secretRef |
string | No | ”” | Name of Kubernetes Secret with registry credentials |
GatewaySpec
Field | Type | Required | Default | Description |
---|---|---|---|---|
publicVirtualHost |
string | Yes | - | Public virtual host for external traffic |
organizationVirtualHost |
string | Yes | - | Organization-specific virtual host for internal traffic |
ObserverAPI
Field | Type | Required | Default | Description |
---|---|---|---|---|
url |
string | Yes | - | Base URL of the Observer API |
authentication.basicAuth.username |
string | Yes | - | Username for basic authentication |
authentication.basicAuth.password |
string | Yes | - | Password for basic authentication |
Status Fields
Field | Type | Default | Description |
---|---|---|---|
observedGeneration |
integer | 0 | The generation observed by the controller |
conditions |
[]Condition | [] | Standard Kubernetes conditions tracking the DataPlane state |
Condition Types
Common condition types for DataPlane resources:
Ready
- Indicates if the DataPlane is ready to accept workloadsConnected
- Indicates if connection to the target cluster is establishedGatewayProvisioned
- Indicates if the gateway has been configured
Examples
Basic DataPlane
apiVersion: openchoreo.dev/v1alpha1
kind: DataPlane
metadata:
name: production-dataplane
namespace: default
spec:
kubernetesCluster:
name: production-cluster
credentials:
apiServerURL: https://k8s-api.example.com:6443
caCert: LS0tLS1CRUdJTi... # Base64-encoded CA cert
clientCert: LS0tLS1CRUdJTi... # Base64-encoded client cert
clientKey: LS0tLS1CRUdJTi... # Base64-encoded client key
registry:
prefix: docker.io/myorg
secretRef: registry-credentials
gateway:
publicVirtualHost: api.example.com
organizationVirtualHost: internal.example.com
observer:
url: https://observer.example.com
authentication:
basicAuth:
username: admin
password: secretpassword
Annotations
DataPlanes support the following annotations:
Annotation | Description |
---|---|
openchoreo.dev/display-name |
Human-readable name for UI display |
openchoreo.dev/description |
Detailed description of the DataPlane |
Related Resources
- Environment - Runtime environments deployed on DataPlanes
- Organization - Contains DataPlane definitions
- Project - Applications deployed to DataPlanes