109 lines
3.0 KiB
YAML
109 lines
3.0 KiB
YAML
{{- if .Values.cluster.enabled -}}
|
|
apiVersion: postgresql.cnpg.io/v1
|
|
kind: Cluster
|
|
metadata:
|
|
name: {{ include "Atlantis.fullname" . }}-db
|
|
namespace: {{ .Release.Namespace }}
|
|
annotations:
|
|
linkerd.io/inject: disabled
|
|
labels:
|
|
{{- include "Atlantis.labels" . | nindent 4 }}
|
|
spec:
|
|
instances: {{ .Values.cluster.instances | default "1" }}
|
|
imageName: ghcr.io/cloudnative-pg/postgis:15-3.3
|
|
# Example of rolling update strategy:
|
|
# - unsupervised: automated update of the primary once all
|
|
# replicas have been upgraded (default)
|
|
# - supervised: requires manual supervision to perform
|
|
# the switchover of the primary
|
|
primaryUpdateStrategy: unsupervised
|
|
{{- if .Values.cluster.backup.enabled }}
|
|
plugins:
|
|
- name: barman-cloud.cloudnative-pg.io
|
|
isWALArchiver: true
|
|
parameters:
|
|
barmanObjectName: tos-store
|
|
{{- end}}
|
|
storage:
|
|
size: {{ .Values.cluster.size | default "5Gi" }}
|
|
{{- with .Values.cluster.bootstrap }}
|
|
bootstrap:
|
|
{{- if .enabled }}
|
|
pg_basebackup:
|
|
source: archmaester
|
|
externalClusters:
|
|
- name: archmaester
|
|
connectionParameters:
|
|
host: {{ .source.db }}-rw.{{ .source.namespace }}
|
|
user: streaming_replica
|
|
sslmode: verify-full
|
|
sslKey:
|
|
name: {{ .source.db }}-replication
|
|
key: tls.key
|
|
sslCert:
|
|
name: {{ .source.db }}-replication
|
|
key: tls.crt
|
|
sslRootCert:
|
|
name: {{ .source.db }}-ca
|
|
key: ca.crt
|
|
{{- else }}
|
|
initdb:
|
|
postInitTemplateSQL:
|
|
- CREATE EXTENSION postgis;
|
|
- CREATE EXTENSION postgis_topology;
|
|
- CREATE EXTENSION fuzzystrmatch;
|
|
- CREATE EXTENSION postgis_tiger_geocoder;
|
|
- ALTER USER app WITH SUPERUSER;
|
|
{{- end }}
|
|
{{- end }}
|
|
---
|
|
{{- if .Values.cluster.backup.enabled -}}
|
|
apiVersion: barmancloud.cnpg.io/v1
|
|
kind: ObjectStore
|
|
metadata:
|
|
name: tos-store
|
|
namespace: {{ .Release.Namespace }}
|
|
spec:
|
|
retentionPolicy: {{ .Values.cluster.backup.backupRetention | default "60d" }}
|
|
configuration:
|
|
destinationPath: {{ .Values.cluster.destinationPath | default ""}}
|
|
serverName: {{ include "Atlantis.fullname" . }}-db
|
|
endpointURL: http://10.255.241.30:30080
|
|
s3Credentials:
|
|
accessKeyId:
|
|
name: cnpg-s3
|
|
key: access_key
|
|
secretAccessKey:
|
|
name: cnpg-s3
|
|
key: access_secret
|
|
wal:
|
|
compression: snappy
|
|
{{- end}}
|
|
---
|
|
{{- if and .Values.cluster.backup.enabled .Values.cluster.enabled -}}
|
|
apiVersion: postgresql.cnpg.io/v1
|
|
kind: ScheduledBackup
|
|
metadata:
|
|
name: {{ include "Atlantis.fullname" . }}-db
|
|
spec:
|
|
schedule: "0 0 1 * * *"
|
|
backupOwnerReference: self
|
|
cluster:
|
|
name: '{{ include "Atlantis.fullname" . }}-db'
|
|
method: plugin
|
|
pluginConfiguration:
|
|
name: barman-cloud.cloudnative-pg.io
|
|
{{- end }}
|
|
---
|
|
apiVersion: monitoring.coreos.com/v1
|
|
kind: PodMonitor
|
|
metadata:
|
|
name: {{ include "Atlantis.fullname" . }}-db-monitor
|
|
spec:
|
|
selector:
|
|
matchLabels:
|
|
cnpg.io/cluster: {{ include "Atlantis.fullname" . }}-db
|
|
podMetricsEndpoints:
|
|
- port: metrics
|
|
{{- end }}
|