173 lines
5.1 KiB
YAML
Executable File
173 lines
5.1 KiB
YAML
Executable File
## postgres image repository
|
|
image: "postgresql-walg"
|
|
## postgres image version
|
|
## ref: https://hub.docker.com/r/library/postgres/tags/
|
|
##
|
|
imageTag: "9.6_0.1.11"
|
|
|
|
## Specify a imagePullPolicy
|
|
## 'Always' if imageTag is 'latest', else set to 'IfNotPresent'
|
|
## ref: http://kubernetes.io/docs/user-guide/images/#pre-pulling-images
|
|
##
|
|
# imagePullPolicy:
|
|
|
|
## Specify imagePullSecrets
|
|
## ref: https://kubernetes.io/docs/concepts/containers/images/#specifying-imagepullsecrets-on-a-pod
|
|
##
|
|
# imagePullSecrets: myregistrykey
|
|
|
|
## Create a database user
|
|
## Default: postgres
|
|
# postgresUser:
|
|
## Default: random 10 character string
|
|
# postgresPassword:
|
|
|
|
## Inject postgresPassword via a volume mount instead of environment variable
|
|
usePasswordFile: false
|
|
|
|
## Use Existing secret instead of creating one
|
|
## It must have a postgres-password key containing the desired password
|
|
# existingSecret: 'secret'
|
|
|
|
## Create a database
|
|
## Default: the postgres user
|
|
# postgresDatabase:
|
|
|
|
## Specify initdb arguments, e.g. --data-checksums
|
|
## ref: https://github.com/docker-library/docs/blob/master/postgres/content.md#postgres_initdb_args
|
|
## ref: https://www.postgresql.org/docs/current/static/app-initdb.html
|
|
# postgresInitdbArgs:
|
|
|
|
## Use an alternate scheduler, e.g. "stork".
|
|
## ref: https://kubernetes.io/docs/tasks/administer-cluster/configure-multiple-schedulers/
|
|
##
|
|
# schedulerName:
|
|
|
|
## Specify runtime config parameters as a dict, using camelCase, e.g.
|
|
## {"sharedBuffers": "500MB"}
|
|
## ref: https://www.postgresql.org/docs/current/static/runtime-config.html
|
|
# postgresConfig:
|
|
|
|
## Persist data to a persistent volume
|
|
persistence:
|
|
enabled: true
|
|
|
|
## A manually managed Persistent Volume and Claim
|
|
## Requires persistence.enabled: true
|
|
## If defined, PVC must be created manually before volume will be bound
|
|
# existingClaim:
|
|
|
|
## database data Persistent Volume Storage Class
|
|
## If defined, storageClassName: <storageClass>
|
|
## If set to "-", storageClassName: "", which disables dynamic provisioning
|
|
## If undefined (the default) or set to null, no storageClassName spec is
|
|
## set, choosing the default provisioner. (gp2 on AWS, standard on
|
|
## GKE, AWS & OpenStack)
|
|
##
|
|
# storageClass: "-"
|
|
accessMode: ReadWriteOnce
|
|
size: 8Gi
|
|
subPath: "postgresql-db"
|
|
mountPath: /var/lib/postgresql/data/pgdata
|
|
|
|
# annotations: {}
|
|
|
|
metrics:
|
|
enabled: false
|
|
image: wrouesnel/postgres_exporter
|
|
imageTag: v0.1.1
|
|
imagePullPolicy: IfNotPresent
|
|
resources:
|
|
requests:
|
|
memory: 256Mi
|
|
cpu: 100m
|
|
## Define additional custom metrics
|
|
## ref: https://github.com/wrouesnel/postgres_exporter#adding-new-metrics-via-a-config-file
|
|
# customMetrics:
|
|
# pg_database:
|
|
# query: "SELECT d.datname AS name, CASE WHEN pg_catalog.has_database_privilege(d.datname, 'CONNECT') THEN pg_catalog.pg_database_size(d.datname) ELSE 0 END AS size FROM pg_catalog.pg_database d where datname not in ('template0', 'template1', 'postgres')"
|
|
# metrics:
|
|
# - name:
|
|
# usage: "LABEL"
|
|
# description: "Name of the database"
|
|
# - size_bytes:
|
|
# usage: "GAUGE"
|
|
# description: "Size of the database in bytes"
|
|
|
|
## Configure resource requests and limits
|
|
## ref: http://kubernetes.io/docs/user-guide/compute-resources/
|
|
##
|
|
resources:
|
|
requests:
|
|
memory: 256Mi
|
|
cpu: 100m
|
|
|
|
service:
|
|
type: ClusterIP
|
|
port: 5432
|
|
externalIPs: []
|
|
## Manually set NodePort value
|
|
## Requires service.type: NodePort
|
|
# nodePort:
|
|
|
|
networkPolicy:
|
|
## Enable creation of NetworkPolicy resources.
|
|
##
|
|
enabled: false
|
|
|
|
## The Policy model to apply. When set to false, only pods with the correct
|
|
## client label will have network access to the port PostgreSQL is listening
|
|
## on. When true, PostgreSQL will accept connections from any source
|
|
## (with the correct destination port).
|
|
##
|
|
allowExternal: true
|
|
|
|
## Node labels and tolerations for pod assignment
|
|
## ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#nodeselector
|
|
## ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#taints-and-tolerations-beta-feature
|
|
nodeSelector: {}
|
|
tolerations: []
|
|
affinity: {}
|
|
|
|
# Override default liveness & readiness probes
|
|
probes:
|
|
liveness:
|
|
initialDelay: 60
|
|
timeoutSeconds: 5
|
|
failureThreshold: 6
|
|
readiness:
|
|
initialDelay: 5
|
|
timeoutSeconds: 3
|
|
periodSeconds: 5
|
|
## Annotations for the deployment and nodes.
|
|
deploymentAnnotations: {}
|
|
podAnnotations: {}
|
|
|
|
recovery:
|
|
enabled: false
|
|
# timestamp: "2018-07-25 23:05:10"
|
|
|
|
backup:
|
|
enabled: false
|
|
deleteRetain: 15
|
|
baseBackupIn: "0 4 * * *"
|
|
s3:
|
|
# accessKey:
|
|
# secretKey:
|
|
# endpoint: http+path://s3-us-west-2.amazonaws.com:80
|
|
# prefix: s3://my-backup/my-db
|
|
# region: us-west-2
|
|
config:
|
|
walLevel: replica
|
|
archiveMode: on
|
|
archiveCommand: "/usr/bin/envdir /etc/wal-g.d/env /usr/bin/wal-g wal-push %p"
|
|
archiveTimeout: 60
|
|
maxWalSenders: 4
|
|
walWriterDelay: 200ms # 1-10000 milliseconds
|
|
walWriterFlushAfter: 1MB # 0 disables
|
|
maxWalSize: 3GB
|
|
minWalSize: 512MB
|
|
walBuffers: 4MB
|
|
checkpointCompletionTarget: 0.7
|
|
defaultStatisticsTarget: 100
|