Skip to main content
Version: Next

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

FieldTypeRequiredDefaultDescription
kubernetesClusterKubernetesClusterSpecYes-Target Kubernetes cluster configuration
registryRegistryYes-Container registry configuration for pulling images
gatewayGatewaySpecYes-API gateway configuration for this DataPlane
observerObserverAPINo-Observer API integration for monitoring and logging

KubernetesClusterSpec

FieldTypeRequiredDefaultDescription
namestringYes-Name of the Kubernetes cluster
credentials.apiServerURLstringYes-URL of the Kubernetes API server
credentials.caCertstringYes-Base64-encoded CA certificate
credentials.clientCertstringYes-Base64-encoded client certificate
credentials.clientKeystringYes-Base64-encoded client private key

Registry

FieldTypeRequiredDefaultDescription
prefixstringYes-Registry domain and namespace (e.g., docker.io/namespace)
secretRefstringNo""Name of Kubernetes Secret with registry credentials

GatewaySpec

FieldTypeRequiredDefaultDescription
publicVirtualHoststringYes-Public virtual host for external traffic
organizationVirtualHoststringYes-Organization-specific virtual host for internal traffic

ObserverAPI

FieldTypeRequiredDefaultDescription
urlstringYes-Base URL of the Observer API
authentication.basicAuth.usernamestringYes-Username for basic authentication
authentication.basicAuth.passwordstringYes-Password for basic authentication

Status Fields

FieldTypeDefaultDescription
observedGenerationinteger0The 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 workloads
  • Connected - Indicates if connection to the target cluster is established
  • GatewayProvisioned - 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:

AnnotationDescription
openchoreo.dev/display-nameHuman-readable name for UI display
openchoreo.dev/descriptionDetailed description of the DataPlane
  • Environment - Runtime environments deployed on DataPlanes
  • Organization - Contains DataPlane definitions
  • Project - Applications deployed to DataPlanes