About this project
The RavenDB Kubernetes Operator is the official tool for deploying and managing RavenDB clusters on Kubernetes. It provides a fully automated, declarative approach driven by a single `RavenDBCluster` custom resource, ensuring every component stays aligned with the declared specification for reproducible deployments.
**Installation Methods**: The operator supports three installation approaches: Helm (recommended, with separate charts for the operator and each cluster), `make deploy` for local development and testing, and OLM bundles for clusters running Operator Lifecycle Manager. The Helm distribution is split into two charts: `ravendb-operator` (cluster-wide, installed once) and `ravendb-cluster` (per-namespace, installed once per RavenDB cluster).
**Custom Resource**: The `RavenDBCluster` CRD is the single source of truth, defining node topology, TLS mode (Let's Encrypt or self-signed), external access strategy, storage layout, images, and bootstrap behavior. Once reconciled, the operator creates and manages all underlying Kubernetes objects including StatefulSets, Services, Ingresses, Jobs, and PVCs.
**Key Features**:
- **Certificate and TLS Management**: Supports Let's Encrypt mode using RavenDB's built-in support, self-signed/bring-your-own certificates, per-node certificates from a RavenDB Setup Package, and automatic secret rotation upon certificate renewal.
- **Cluster Bootstrapping**: Runs a short-lived Kubernetes Job to wait for pods, validate HTTPS reachability, register the ClusterAdmin client certificate, and form the cluster based on the declared node topology.
- **External Access**: Supports AWS Network Load Balancer (per-node with explicit EIP/subnet/AZ mapping), Azure Load Balancer, NGINX Ingress, HAProxy Ingress, and Traefik Ingress.
- **Storage Configuration**: Declarative configuration of data, log, and audit volumes with support for local-path, AWS EBS/EBS-CSI, Azure Disk/Azure Disk CSI, and additional volumes (ConfigMap, Secret, PVC, emptyDir).
- **Rolling Upgrades**: Orchestrates node-by-node upgrades in the order defined in the spec, with safety gates that stop on failure and automatically resume once issues are fixed. Prevents accidental version downgrades.
- **Health and Status Reporting**: Exposes a lifecycle phase (`Deploying`, `Running`, `Error`), detailed conditions for readiness, progression, and health gates, and emits Kubernetes Events on every condition transition.
- **Development Support**: Local deployment via `make deploy`, validating and mutating admission webhooks, server-side apply, and incremental reconciliations.
**Prerequisites**: Kubernetes 1.23+, kubectl, Helm, cert-manager, a RavenDB License, and Let's Encrypt setup materials or self-signed certificates.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.