The following table lists the configurable parameters of the TimescaleDB Helm chart and their default values.
| Parameter | Description | Default |
|———————————–|———————————————|—————————————————–|
| nameOverride | Override the name of the chart | timescaledb |
| fullnameOverride | Override the fullname of the chart | nil |
| replicaCount | Amount of pods to spawn | 3 |
| image.repository | The image to pull | timescaledev/timescaledb |
| image.tag | The version of the image to pull | v0.2.2-pg11-multinode |
| image.pullPolicy | The pull policy | IfNotPresent |
| credentials.accessNode.superuser| Password of the superuser for the Access Node | tea |
| credentials.dataNode.superuser | Password of the superuser for the Data Nodes | coffee |
| env | Extra custom environment variables, expressed as EnvVar | PGDATA and some language settings |
| resources | Any resources you wish to assign to the pod | {} |
| nodeSelector | Node label to use for scheduling | {} |
| tolerations | List of node taints to tolerate | [] |
| affinityTemplate | A template string to use to generate the affinity settings | Anti-affinity preferred on hostname |
| affinity | Affinity settings. Overrides affinityTemplate if set. | {} |
| postgresql.databases | List of databases to automatically create a multinode setup for | ["postgres", "example"] |
| postgresql.parameters | PostgreSQL parameters) | Some required and preferred settings |
| schedulerName | Alternate scheduler name | nil |
| persistentVolume.accessModes | Persistent Volume access modes | [ReadWriteOnce] |
| persistentVolume.annotations | Annotations for Persistent Volume Claim | {} |
| persistentVolume.mountPath | Persistent Volume mount root path | /var/lib/postgresql |
| persistentVolume.size | Persistent Volume size | 5Gi |
| persistentVolume.storageClass | Persistent Volume Storage Class | volume.alpha.kubernetes.io/storage-class: default |
| persistentVolume.subPath | Subdirectory of Persistent Volume to mount | ”” |
| rbac.create | Create required role and rolebindings | true |
| serviceAccount.create | If true, create a new service account | true |
| serviceAccount.name | Service account to be used. If not set and serviceAccount.create is true, a name is generated using the fullname template | nil` |
helm upgrade --install my-release . --set image.tag=v0.2.3-pg11-multinode --set image.pullPolicy=Always
myvalues.yaml
# Filename: myvalues.yaml
image:
tag: v0.2.3-pg11
pullPolicy: Always
postgresql:
databases:
- postgres
- proddb
parameters:
checkpoint_completion_target: 32MB
work_mem: 16MB
shared_buffers: 512MB
helm upgrade --install my-release . -f myvalues.yaml
Removing a deployment can be done by deleting a Helm deployment, however, removing the deployment does not remove:
To fully purge a deployment in Kubernetes, you should do the following:
# Delete the Helm deployment
helm delete my-release
# Delete pvc and the headless Patroni service
kubectl delete $(kubectl get pvc -l release=my-release -o name)
All the resources that are deployed can be listed by providing the filter -l release=my-release.
kubectl get all -l release=my-release
The output should be similar to the below output:
NAME READY STATUS RESTARTS AGE
pod/my-release-timescaledb-access-0 1/1 Running 0 11m
pod/my-release-timescaledb-data-0 1/1 Running 0 11m
pod/my-release-timescaledb-data-1 1/1 Running 0 11m
pod/my-release-timescaledb-data-2 1/1 Running 0 11m
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/my-release-timescaledb LoadBalancer 10.152.183.60 <pending> 5432:31819/TCP 11m
service/my-release-timescaledb-data ClusterIP None <none> 5432/TCP 11m
NAME READY AGE
statefulset.apps/my-release-timescaledb-access 1/1 11m
statefulset.apps/my-release-timescaledb-data 3/3 11m
INFO When listing resources within minutes of deploying a new Helm chart, you may see a list of jobs and its pods; these jobs are there to create the database, and to attach the data nodes to the access node. There will be quite a few, but these should disappear within minutes after successful deployment.
The logs for the Access Node of TimescaleDB can be accessed as follows:
kubectl logs $(kubectl get pod -l release=my-release,timescaleNodeType=access) timescaledb