Skip to content

keldonio/keldon-operator

Repository files navigation

Keldon

The Kubernetes operator for Apache Cloudberry.

Production-ready MPP analytics on Kubernetes.

Build License Go Version Kubernetes Helm Chart

WebsiteDocumentationBlogIssuesDiscussions


What is the Keldon Operator?

The Keldon Operator is a Kubernetes operator that automates the deployment, management, and operation of Apache Cloudberry and other Greenplum-family massively parallel processing (MPP) analytical databases. Built for teams running large-scale analytics workloads.

Apply two YAML files. Get a fully running MPP database cluster on Kubernetes in minutes. Coordinator, standby, segments, mirrors, services, certificates, SSH trust — all handled automatically.

Keldon Operator demo — install via Helm and deploy a full HA Cloudberry cluster


Quick Start

Prerequisites

  • Kubernetes 1.29+
  • cert-manager installed (required for the admission webhook)
  • A StorageClass that supports dynamic provisioning

Install

helm repo add keldon https://charts.keldon.io
helm repo update

helm install keldon-operator keldon/keldon-operator \
  --namespace keldon-system --create-namespace

Verify the operator is running:

kubectl get pods -n keldon-system

Deploy your first cluster

# database-image.yaml
apiVersion: keldon.io/v1alpha1
kind: DatabaseImage
metadata:
  name: cloudberry-2.1.0
spec:
  version: "2.1.0"
  image: ghcr.io/keldonio/cloudberry:2.1.0
---
# database-cluster.yaml
apiVersion: keldon.io/v1alpha1
kind: DatabaseCluster
metadata:
  name: cluster-demo            
spec:
  databaseImage: cloudberry-2.1.0
  mirroring: true
  standby:
    enabled: true
    storage: 10Gi
    storageClassName: local-path
  coordinator:
    storage: 10Gi
    storageClassName: local-path
  segments:
    count: 2
    storage: 10Gi
    storageClassName: local-path
kubectl apply -f database-image.yaml
kubectl apply -f database-cluster.yaml
kubectl get databasecluster -w

For full configuration options, custom topologies, and advanced features, see the documentation.


Key Features

Feature Description
Automated Cluster Bootstrapping Single CR provisions coordinator, segments, mirrors, and standby. Operator handles initialization, SSH key distribution, certificate provisioning, and service wiring.
High Availability at Every Layer Standby coordinator with automatic failover. Mirror segments for query continuity. Configurable replication and recovery strategies.
Automatic Recovery and Rebalancing Failed segments are detected and recovered without manual intervention. Data is automatically rebalanced across the cluster after recovery to maintain optimal performance.
Horizontal Scaling Increase segment count on a running cluster without downtime. The operator provisions new segments and redistributes data automatically.
S3 Backups On-demand full or filtered backups stored directly to S3-compatible object storage. Track backup status, size, duration, and storage location through native CRDs.
Restore from Backup Restore a cluster from any prior backup with a single CR. Supports full database, schema-level, or table-level restores. Cross-cluster restores are supported.
Dynamic Short-Lived SSH Certificates Inter-pod SSH authentication supports either traditional static authorized_keys or short-lived certificates signed by an operator-managed CA — selectable per cluster. Certificates rotate automatically; the CA can be rotated on demand.
Reusable Cluster Topologies Define reusable cluster shapes once via DatabaseClusterClass. Reference them from multiple DatabaseCluster resources to enforce consistent topology, resources, and kernel settings across environments.
Centralized Database Configuration Manage postgresql.conf and pg_hba.conf declaratively via DatabaseConfig resources. Configuration is version-controlled, validated, and applied consistently across all cluster pods.
Multi-Image Support Register multiple database images via DatabaseImage resources. Reference a specific version per cluster, mix Cloudberry versions across environments, and roll out upgrades cleanly.
Kernel Tuning Apply MPP-optimized kernel parameters automatically with spec.kernelTuning: true. Override individual parameters for fine-grained control via spec.kernelParameters.
Pod Health Probes Built-in startup, readiness, and liveness probes for coordinator, standby, segments, and mirrors. Kubernetes-native health surfacing without custom tooling.

For deeper documentation of every feature, see keldon.io/docs.


Custom Resources

The Keldon Operator manages six custom resources under the keldon.io/v1alpha1 API group:

Kind Short Name Purpose
DatabaseCluster dbc The MPP cluster itself — coordinator, standby, segments, mirrors.
DatabaseImage dbi Reference to a container image and database version. Cluster-scoped.
DatabaseClusterClass dcc Reusable cluster topology, resources, and kernel settings.
DatabaseConfig dbx Declarative postgresql.conf and pg_hba.conf management.
DatabaseBackup dbb On-demand backup to S3-compatible storage.
DatabaseRestore dbr Restore operation from a DatabaseBackup into a cluster.

Development

git clone https://github.com/keldonio/keldon-operator
cd keldon-operator

make build        # build the operator binary
make test         # run unit tests
make install      # install CRDs into your current cluster
make run          # run the operator locally against your cluster

For testing against a real Kubernetes cluster, see the contributor docs in CONTRIBUTING.md.


Contributing

The Keldon Operator is open source and welcomes contributions of all kinds — bug fixes, features, documentation, and tests.

Before contributing, please read the Contributing Guide and the Code of Conduct.

By submitting a pull request, you agree to the terms of our Contributor License Agreement.


Connect


License

The Keldon Operator is licensed under the Apache License 2.0.


Disclaimer

Apache Cloudberry is an effort undergoing incubation at The Apache Software Foundation (ASF). Apache®, Apache Cloudberry, and the Apache logo are trademarks of the Apache Software Foundation.

Greenplum is a trademark of Broadcom Inc. and its affiliates.

The Keldon Operator is an independent open-source project. All trademarks and product names referenced are property of their respective owners.