The ParadeDB Helm Chart is based on the official CloudNativePG Helm Chart. CloudNativePG is a Kubernetes operator that manages the full lifecycle of a highly available PostgreSQL database cluster with a primary/standby architecture using Postgres streaming replication.

The chart is also available on Artifact Hub.

Getting Started

First, install Helm. The following steps assume you have a Kubernetes cluster running v1.25+. If you are testing locally, we recommend using Minikube.

Installing the Prometheus Stack

The ParadeDB Helm chart supports monitoring via Prometheus and Grafana. To enable this, you need to have the Prometheus CRDs installed before installing the CloudNativePG operator. If you do not yet have the Prometheus CRDs installed on your Kubernetes cluster, you can install it with:

helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
helm upgrade --atomic --install prometheus-community \
--create-namespace \
--namespace prometheus-community \
--values https://raw.githubusercontent.com/cloudnative-pg/cloudnative-pg/main/docs/src/samples/monitoring/kube-stack-config.yaml \
prometheus-community/kube-prometheus-stack

Installing the CloudNativePG Operator

Skip this step if the CloudNativePG operator is already installed in your cluster. If you do not wish to monitor your cluster, omit the --set commands.

helm repo add cnpg https://cloudnative-pg.github.io/charts
helm upgrade --atomic --install cnpg \
--create-namespace \
--namespace cnpg-system \
--set monitoring.podMonitorEnabled=true \
--set monitoring.grafanaDashboard.create=true \
cnpg/cloudnative-pg

Setting up a ParadeDB CNPG Cluster

Create a values.yaml and configure it to your requirements. Here is a basic example:

type: paradedb
mode: standalone

cluster:
  instances: 3
  storage:
    size: 256Mi

Then, launch the ParadeDB cluster. If you do not wish to monitor your cluster, omit the --set command.

helm repo add paradedb https://paradedb.github.io/charts
helm upgrade --atomic --install paradedb \
--namespace paradedb \
--create-namespace \
--values values.yaml \
--set cluster.monitoring.enabled=true \
paradedb/paradedb

If --values values.yaml is omitted, the default values will be used. For advanced cluster configuration options, including configuring backups and PgBouncer, please refer to the ParadeDB Helm Chart documentation.

Connecting to a ParadeDB CNPG Cluster

The command to connect to the primary instance of the cluster will be printed in your terminal. If you do not modify any settings, it will be:

kubectl --namespace paradedb exec --stdin --tty services/paradedb-rw -- bash

This will launch a Bash shell inside the instance. You can connect to the ParadeDB database via psql with:

psql -d paradedb

Connecting to the Grafana Dashboard

To connect to the Grafana dashboard for your cluster, we suggested port forwarding the Kubernetes service running Grafana to localhost:

kubectl --namespace prometheus-community port-forward svc/prometheus-community-grafana 3000:80

You can then access the Grafana dasbhoard at http://localhost:3000/ using the credentials admin as username and prom-operator as password. These default credentials are defined in the kube-stack-config.yaml file used as the values.yaml file in Installing the Prometheus CRDs and can be modified by providing your own values.yaml file. A more detailed guide on monitoring the cluster can be found in the CloudNativePG documentation.

That’s it! To get started, we suggest you follow the quickstart guide.