Kubernetes with Helm
import { Aside, Steps } from ‘@astrojs/starlight/components’;
The PulsusDB repository includes a Helm chart at deploy/charts/pulsusdb. The chart supports two independent topology choices:
- PulsusDB as one
allDeployment or splitwriterandreaderDeployments; - bundled ClickHouse as one node or a sharded cluster.
Install from the OCI chart
Section titled “Install from the OCI chart”helm install pulsusdb oci://ghcr.io/digitalis-io/charts/pulsusdb \ --version CHART_VERSION \ --set initJob.retentionDays=7 \ --set image.tag=APPLICATION_IMAGE_TAGinitJob.retentionDays is required while the schema Job is enabled. The application image tag must refer to an image you can pull.
Evaluate from a checkout
Section titled “Evaluate from a checkout”git clone https://github.com/digitalis-io/pulsusdb.gitcd pulsusdbhelm upgrade --install pulsusdb deploy/charts/pulsusdb \ --set initJob.retentionDays=7 \ --set image.tag=APPLICATION_IMAGE_TAGSplit writer and reader tiers
Section titled “Split writer and reader tiers”pulsusdb: split: enabled: true writer: replicaCount: 2 reader: replicaCount: 2
initJob: retentionDays: 30helm upgrade --install pulsusdb deploy/charts/pulsusdb -f values-split.yamlUse external ClickHouse
Section titled “Use external ClickHouse”clickhouse: enabled: false auth: existingSecret: pulsusdb-clickhouse existingSecretPasswordKey: password
pulsusdb: config: clickhouse: server: clickhouse.example.internal http_port: 8123 database: pulsus
initJob: retentionDays: 30Create the referenced Secret without committing credentials:
kubectl create secret generic pulsusdb-clickhouse \ --from-literal=password='replace-me'Probe contract
Section titled “Probe contract”| Probe | Handler | Meaning |
|---|---|---|
| Liveness | TCP on the configured PulsusDB port | Restart only if the process stops listening |
| Readiness | GET /ready |
Remove the pod from service when ClickHouse or reader warm-up is unavailable |
| Startup | TCP on the configured PulsusDB port | Delay liveness until the listener binds |
Do not replace liveness with /ready. A ClickHouse outage should make PulsusDB unready, not restart every pod.
Schema Job warning
Section titled “Schema Job warning”The chart’s schema Job runs the destructive schema/schema.sh script. Its name changes when the Job spec changes, which can cause a Helm upgrade to create a new Job and rebuild the database. Review rendered manifests before upgrading:
helm template pulsusdb deploy/charts/pulsusdb \ --set initJob.retentionDays=30 > rendered.yamlFor a controlled data lifecycle, disable the Job and operate schema changes yourself:
initJob: enabled: false