Skip to main content
Version: v1.0.0-rc.2 (pre-release)

Data Plane

Dependencies​

This chart depends on the following sub-charts. For full configuration options of each dependency, please refer to their official documentation.

NameVersionRepositoryCondition
kube-prometheus-stack81.6.3https://prometheus-community.github.io/helm-chartskube-prometheus-stack.enabled

Cluster Agent​

Cluster Agent configuration for WebSocket connection to control plane cluster gateway

ParameterDescriptionTypeDefault
clusterAgent.affinityAffinity rules for pod schedulingobject{}
clusterAgent.heartbeatIntervalInterval between heartbeat messages to control planestring30s
clusterAgent.image.pullPolicyImage pull policystringIfNotPresent
clusterAgent.image.repositoryCluster agent image repositorystringghcr.io/openchoreo/cluster-agent
clusterAgent.image.tagImage tag. Empty uses Chart.AppVersion.string
clusterAgent.logLevelLog level for cluster agentstringinfo
clusterAgent.nameName of the cluster agent deploymentstringcluster-agent-dataplane
clusterAgent.nodeSelectorNode selector for pod schedulingobject{}
clusterAgent.planeIDLogical plane identifier shared across multiple CRs connecting to the same physical plane. Defaults to Helm release name if not specified.stringdefault
clusterAgent.planeTypeType of plane this agent managesstringdataplane
clusterAgent.podAnnotationsAnnotations to add to cluster agent podsobject{}
clusterAgent.podDisruptionBudget.enabledEnable PodDisruptionBudget for cluster agentbooleanfalse
clusterAgent.podDisruptionBudget.maxUnavailableMaximum number of pods that can be unavailableinteger,nullnull
clusterAgent.podDisruptionBudget.minAvailableMinimum number of pods that must be availableinteger1
clusterAgent.podSecurityContext.fsGroupGroup ID for volume mountsinteger1000
clusterAgent.podSecurityContext.runAsNonRootRun container as non-root userbooleantrue
clusterAgent.podSecurityContext.runAsUserUser ID to run container asinteger1000
clusterAgent.priorityClass.createCreate a PriorityClass for cluster agentbooleanfalse
clusterAgent.priorityClass.namePriorityClass namestringcluster-agent-dataplane
clusterAgent.priorityClass.valuePriority value (higher = more important)integer900000
clusterAgent.rbac.createCreate RBAC resources (ClusterRole, ClusterRoleBinding)booleantrue
clusterAgent.reconnectDelayDelay before attempting reconnection after disconnectstring5s
clusterAgent.replicasNumber of cluster agent replicas (typically 1 per data plane)integer1
clusterAgent.resources.limits.cpuCPU limit for the agentstring100m
clusterAgent.resources.limits.memoryMemory limit for the agentstring256Mi
clusterAgent.resources.requests.cpuCPU request for the agentstring50m
clusterAgent.resources.requests.memoryMemory request for the agentstring128Mi
clusterAgent.securityContext.allowPrivilegeEscalationPrevent privilege escalationbooleanfalse
clusterAgent.securityContext.capabilities.dropCapabilities to drop from containerarray["ALL"]
clusterAgent.securityContext.readOnlyRootFilesystemMount root filesystem as read-onlybooleantrue
clusterAgent.serverUrlWebSocket URL of the cluster gateway in control planestringwss://cluster-gateway.openchoreo-control-plane.svc.cluster.local:8443/ws
clusterAgent.serviceAccount.annotationsAnnotations to add to the service accountobject{}
clusterAgent.serviceAccount.createCreate a service account for the cluster agentbooleantrue
clusterAgent.serviceAccount.nameService account namestringcluster-agent-dataplane
clusterAgent.tls.caSecretNameCA secret name for signing agent client certificates. If empty, self-signed certs will be generated (required for multi-cluster setup).stringcluster-gateway-ca
clusterAgent.tls.clientSecretNameSecret name for client certificate (typically same as secretName)stringcluster-agent-tls
clusterAgent.tls.durationCertificate validity durationstring2160h
clusterAgent.tls.enabledEnable TLS for agent-gateway communicationbooleantrue
clusterAgent.tls.generateCertsGenerate client certificates locally using cert-manager with a self-signed CAbooleantrue
clusterAgent.tls.renewBeforeTime before expiry to renew certificatestring360h
clusterAgent.tls.secretNameSecret name for client certificate and keystringcluster-agent-tls
clusterAgent.tls.serverCAConfigMapConfigMap name containing server CA certificate for verifying gatewaystringcluster-gateway-ca
clusterAgent.tolerationsTolerations for pod schedulingarray[]

Gateway​

KGateway API gateway configuration. Provides HTTP/HTTPS traffic routing using Kubernetes Gateway API and Envoy proxy.

ParameterDescriptionTypeDefault
gateway.agentgateway.enabledEnable Agent Gateway for AI agent connectivitybooleanfalse
gateway.annotationsAnnotations added to the Gateway resource. Use this to configure cert-manager, external-dns, or other integrations.object{}
gateway.controller.image.pullPolicyImage pull policy for the controller containerstringIfNotPresent
gateway.controller.image.registryContainer registry for the controller image. Empty uses default registry.string
gateway.controller.image.repositoryImage repository name for the gateway controllerstringkgateway
gateway.controller.image.tagImage tag. Empty uses Chart.AppVersion.string
gateway.controller.logLevelLog level for the gateway controllerstringinfo
gateway.controller.replicaCountNumber of gateway controller replicasinteger1
gateway.controller.resources.limits.cpuCPU limit for the controllerstring200m
gateway.controller.resources.limits.memoryMemory limit for the controllerstring256Mi
gateway.controller.resources.requests.cpuCPU request for the controllerstring100m
gateway.controller.resources.requests.memoryMemory request for the controllerstring128Mi
gateway.controller.service.ports.agwGrpcAgent gateway gRPC portinteger9978
gateway.controller.service.ports.grpcgRPC port for xDS communicationinteger9977
gateway.controller.service.ports.healthHealth check endpoint portinteger9093
gateway.controller.service.ports.metricsMetrics endpoint portinteger9092
gateway.controller.service.typeService type for the gateway controllerstringClusterIP
gateway.enabledEnable Gateway CR creationbooleantrue
gateway.gatewayClassNameGatewayClass name to reference in the Gateway CRstringkgateway
gateway.httpPortPort for the HTTP listener on the gatewayinteger80
gateway.httpsPortPort for the HTTPS listener on the gatewayinteger443
gateway.infrastructure.labelsobject{"openchoreo.dev/system-component":"gateway"}
gateway.tls.certificateRefsTLS certificate references for the HTTPS listener. Each entry references a Secret containing the TLS cert/key pair.array
gateway.tls.enabledEnable HTTPS listener on the gateway. When false, only the HTTP listener is created.booleantrue
gateway.tls.hostnameHostname pattern for the HTTPS listener (SNI matching)string*.openchoreoapis.invalid

Global​

Global values shared across all components in the data plane

ParameterDescriptionTypeDefault
global.commonLabelsCommon labels applied to all resources deployed by this chartobject{}

Kube Prometheus Stack​

For full configuration options, please refer to the official chart documentation.

Prometheus stack configuration (kube-prometheus-stack sub-chart). Provides metrics collection for workload observability.

ParameterDescriptionTypeDefault
kube-prometheus-stack.alertmanager.enabledEnable Alertmanager for alert management (not used by OpenChoreo)booleanfalse
kube-prometheus-stack.cleanPrometheusOperatorObjectNamesProduce cleaner resource names without redundant prefixesbooleantrue
kube-prometheus-stack.coreDns.enabledEnable CoreDNS metrics collectionbooleanfalse
kube-prometheus-stack.crds.enabledInstall Prometheus Operator CRDs (ServiceMonitor, PodMonitor, etc.)booleantrue
kube-prometheus-stack.defaultRules.createCreate default alerting rules (disabled - OpenChoreo uses custom rules)booleanfalse
kube-prometheus-stack.enabledEnable the Prometheus monitoring stack for metrics collectionbooleanfalse
kube-prometheus-stack.fullnameOverrideOverride the full name of Prometheus stack resourcesstringopenchoreo-observability
kube-prometheus-stack.grafana.enabledEnable Grafana dashboards (not used by OpenChoreo - use observability plane instead)booleanfalse
kube-prometheus-stack.kube-state-metrics.collectorsKubernetes resource types to collect metrics fromarray["pods"]
kube-prometheus-stack.kube-state-metrics.fullnameOverrideOverride the full name of kube-state-metrics resourcesstringkube-state-metrics
kube-prometheus-stack.kube-state-metrics.metricAllowlistSpecific metrics to collect (allowlist filter)array
kube-prometheus-stack.kube-state-metrics.metricLabelsAllowlistPod labels to include in metrics for filtering by OpenChoreo resourcesarray
kube-prometheus-stack.kubeApiServer.enabledEnable API server metrics collectionbooleanfalse
kube-prometheus-stack.kubeControllerManager.enabledEnable controller manager metrics collectionbooleanfalse
kube-prometheus-stack.kubeEtcd.enabledEnable etcd metrics collectionbooleanfalse
kube-prometheus-stack.kubeProxy.enabledEnable kube-proxy metrics collectionbooleanfalse
kube-prometheus-stack.kubeScheduler.enabledEnable scheduler metrics collectionbooleanfalse
kube-prometheus-stack.nodeExporter.enabledEnable node-level metrics collectionbooleanfalse
kube-prometheus-stack.prometheus.agentModeRun Prometheus in agent mode for lightweight remote-write only operationbooleantrue
kube-prometheus-stack.prometheus.enabledDeploy a Prometheus instance (requires Prometheus Operator)booleantrue
kube-prometheus-stack.prometheus.prometheusSpec.remoteWriteRemote write endpoints for forwarding metrics to external storagearray
kube-prometheus-stack.prometheusOperator.enabledEnable Prometheus Operator for managing Prometheus instancesbooleantrue
kube-prometheus-stack.prometheusOperator.fullnameOverrideOverride the full name of Prometheus Operator resourcesstringprometheus-operator
kube-prometheus-stack.prometheusOperator.resources.limits.cpuCPU limit for Prometheus Operatorstring40m
kube-prometheus-stack.prometheusOperator.resources.limits.memoryMemory limit for Prometheus Operatorstring50Mi
kube-prometheus-stack.prometheusOperator.resources.requests.cpuCPU request for Prometheus Operatorstring20m
kube-prometheus-stack.prometheusOperator.resources.requests.memoryMemory request for Prometheus Operatorstring30Mi

Kubernetes Cluster Domain​

Kubernetes cluster DNS domain used for service discovery and certificate generation

ParameterDescriptionTypeDefault
kubernetesClusterDomainKubernetes cluster DNS domain used for service discovery and certificate generationstringcluster.local

Networking​

Network configuration for the data plane

ParameterDescriptionTypeDefault
networking.enabledEnable networking features (network policies, service mesh integration)booleantrue

Security​

Security configuration for the data plane

ParameterDescriptionTypeDefault
security.enabledEnable security features (certificate issuers, TLS configuration)booleantrue