/helm_stolon

Helm Chart for Stolon

Primary LanguageMustacheApache License 2.0Apache-2.0

Stolon Helm Chart

DEPRECATION NOTICE

This chart will not longer be updated or maintained. It will be deleted in 6 months.


Official upstream helm/charts support was deprecated on Nov 13, 2020. This a community effor to maintain the helm chart. Please create an issue if you're interested on helping to maintain this chart.

TL;DR;

$ helm repo add iomedstolon https://iomedhealth.github.io/helm_stolon/
$ helm install iomedstolon/stolon

Installing the Chart

To install the chart with the release name my-release:

$ helm install my-release iomedstolon/stolon  --set superuserPassword=asdfasf --set replicationPassword=asdfasdf

Backend

Kubernetes is the default store backend. consul, etcdv2 or etcdv3 can also be used as the store backend.

Configuration

Parameter Description Default
clusterName stolon cluster name nil
image.repository stolon image repository sorintlab/stolon
image.tag stolon image tag v0.13.0-pg10
image.pullPolicy stolon image pull policy IfNotPresent
image.pullSecrets stolon image pull secrets as an array [] (does not add image pull secrets to deployed pods)
etcdImage.repository etcd image repository k8s.gcr.io/etcd-amd64
etcdImage.tag etcd image tag 2.3.7
etcdImage.pullPolicy etcd image pull policy IfNotPresent
debug Debug mode false
shmVolume.enabled Enable emptyDir volume for /dev/shm on keepers pods false
persistence.enabled Use a PVC to persist data true
persistence.storageClassName Storage class name of backing PVC ""
persistence.accessModes Persistent volumes access modes ["ReadWriteOnce"]
persistence.size Size of data volume 10Gi
rbac.create Specifies if RBAC resources should be created true
serviceAccount.create Specifies if ServiceAccount should be created true
serviceAccount.name Name of the generated ServiceAccount Defaults to fullname template
superuserSecret.name Postgres superuser credential secret name ""
superuserSecret.usernameKey Username key of Postgres superuser in secret pg_su_username
superuserSecret.passwordKey Password key of Postgres superuser in secret pg_su_password
superuserUsername Postgres superuser username stolon
superuserPasswordFile File where to read the Postgres superuser password
superuserPassword Postgres superuser password (Required if superuserSecret.name and superuserPasswordFile are not set)
replicationSecret.name Postgres replication credential secret name ""
replicationSecret.usernameKey Username key of Postgres replication in secret pg_repl_username
replicationSecret.passwordKey Password key of Postgres replication in secret pg_repl_password
replicationUsername Replication username repluser
replicationPasswordFile File where to read the replication password
replicationPassword Replication password (Required if replicationSecret.name and replicationPasswordFile are not set)
store.backend Store backend (kubernetes/consul/etcd) kubernetes
store.endpoints Store backend endpoints nil
store.kubeResourceKind Kubernetes resource kind (only for kubernetes) configmap
pgParameters postgresql.conf options used during cluster creation {}
ports Ports to expose on pods {"stolon":{"containerPort": 5432},"metrics":{"containerPort": 8080}}
serviceMonitor.enabled Creates a Prometheus serviceMonitor and service object false
serviceMonitor.labels Overrides the default labels added by chart to the ServiceMonitor with labels specified. {}
serviceMonitor.namespace Set to use a different value than the release namespace for deploying the ServiceMonitor object nil
serviceMonitor.interval Set to use a different value than the default Prometheus scrape interval nil
serviceMonitor.scrapeTimeout Set to use a different value than the default Prometheus scrape timeout nil
job.autoCreateCluster Set to false to force-disable auto-cluster-creation which may clear pre-existing postgres db data true
job.autoUpdateClusterSpec Set to false to force-disable auto-cluster-spec-update true
job.annotations Annotations for Jobs, the value is evaluated as a template. {}
clusterSpec Stolon cluster spec reference {}
tls.enabled Enable tls support to postgresql false
tls.rootCa Ca certificate ""
tls.serverCrt Server cerfificate ""
tls.serverKey Server key ""
tls.existingSecret Existing secret with certificate content to stolon credentials ""
tls.rootCaFile Ca certificate path (for use with tls.existingSecret) "/certs/rootCa.crt"
tls.serverCrtFile Server cerfificate path (for use with tls.existingSecret) "/certs/serverCrt.crt"
tls.serverKeyFile Server key path (for use with tls.existingSecret) "/certs/serverKey.key"
keeper.uid_prefix Keeper prefix name keeper
keeper.replicaCount Number of keeper nodes 2
keeper.resources Keeper resource requests/limit {}
keeper.priorityClassName Keeper priorityClassName nil
keeper.fsGroup Keeper securityContext fsGroup, do not set if pg9 or 10 ``
keeper.nodeSelector Node labels for keeper pod assignment {}
keeper.affinity Affinity settings for keeper pod assignment {}
keeper.tolerations Toleration labels for keeper pod assignment []
keeper.volumes Additional volumes []
keeper.volumeMounts Mount paths for keeper.volumes []
keeper.hooks.failKeeper.enabled Enable failkeeper pre-stop hook false
keeper.podDisruptionBudget.enabled If true, create a pod disruption budget for keeper pods. false
keeper.podDisruptionBudget.minAvailable Minimum number / percentage of pods that should remain scheduled ""
keeper.podDisruptionBudget.maxUnavailable Maximum number / percentage of pods that may be made unavailable ""
keeper.extraEnv Extra environment variables for keeper []
proxy.replicaCount Number of proxy nodes 2
proxy.resources Proxy resource requests/limit {}
proxy.priorityClassName Proxy priorityClassName nil
proxy.nodeSelector Node labels for proxy pod assignment {}
proxy.affinity Affinity settings for proxy pod assignment {}
proxy.tolerations Toleration labels for proxy pod assignment []
proxy.podDisruptionBudget.enabled If true, create a pod disruption budget for proxy pods. false
proxy.podDisruptionBudget.minAvailable Minimum number / percentage of pods that should remain scheduled ""
proxy.podDisruptionBudget.maxUnavailable Maximum number / percentage of pods that may be made unavailable ""
proxy.extraEnv Extra environment variables for proxy []
sentinel.replicaCount Number of sentinel nodes 2
sentinel.resources Sentinel resource requests/limit {}
sentinel.priorityClassName Sentinel priorityClassName nil
sentinel.nodeSelector Node labels for sentinel pod assignment {}
sentinel.affinity Affinity settings for sentinel pod assignment {}
sentinel.tolerations Toleration labels for sentinel pod assignment []
sentinel.podDisruptionBudget.enabled If true, create a pod disruption budget for sentinel pods. false
sentinel.podDisruptionBudget.minAvailable Minimum number / percentage of pods that should remain scheduled ""
sentinel.podDisruptionBudget.maxUnavailable Maximum number / percentage of pods that may be made unavailable ""
sentinel.extraEnv Extra environment variables for sentinel []
initdbScripts Dictionary of scripts. Executed after cluster startup nil
nodePostStartScript Dictionary of scripts. Executed after the node startup nil