215 lines
7.1 KiB
YAML
215 lines
7.1 KiB
YAML
|
apiVersion: postgres-operator.crunchydata.com/v1beta1
|
||
|
kind: PostgresCluster
|
||
|
metadata:
|
||
|
name: {{ default .Release.Name .Values.name }}
|
||
|
spec:
|
||
|
postgresVersion: {{ required "You must set the version of Postgres to deploy." .Values.postgresVersion }}
|
||
|
{{- if .Values.postGISVersion }}
|
||
|
postGISVersion: {{ quote .Values.postGISVersion }}
|
||
|
{{- end }}
|
||
|
{{- if .Values.imagePostgres }}
|
||
|
image: {{ .Values.imagePostgres | quote }}
|
||
|
{{- end }}
|
||
|
{{- if .Values.port }}
|
||
|
port: {{ .Values.port }}
|
||
|
{{- end }}
|
||
|
{{- if .Values.instances }}
|
||
|
instances:
|
||
|
{{ toYaml .Values.instances | indent 4 }}
|
||
|
{{- else }}
|
||
|
instances:
|
||
|
- name: {{ default "instance1" .Values.instanceName | quote }}
|
||
|
replicas: {{ default 1 .Values.instanceReplicas }}
|
||
|
dataVolumeClaimSpec:
|
||
|
{{- if .Values.instanceStorageClassName }}
|
||
|
storageClassName: {{ .Values.instanceStorageClassName | quote }}
|
||
|
{{- end }}
|
||
|
accessModes:
|
||
|
- "ReadWriteOnce"
|
||
|
resources:
|
||
|
requests:
|
||
|
storage: {{ default "1Gi" .Values.instanceSize | quote }}
|
||
|
{{- if or .Values.instanceMemory .Values.instanceCPU }}
|
||
|
resources:
|
||
|
limits:
|
||
|
cpu: {{ default "" .Values.instanceCPU | quote }}
|
||
|
memory: {{ default "" .Values.instanceMemory | quote }}
|
||
|
{{- end }}
|
||
|
{{- end }}
|
||
|
backups:
|
||
|
pgbackrest:
|
||
|
{{- if .Values.imagePgBackRest }}
|
||
|
image: {{ .Values.imagePgBackRest | quote }}
|
||
|
{{- end }}
|
||
|
{{- if .Values.pgBackRestConfig }}
|
||
|
{{ toYaml .Values.pgBackRestConfig | indent 6 }}
|
||
|
{{- else if .Values.multiBackupRepos }}
|
||
|
configuration:
|
||
|
- secret:
|
||
|
name: {{ default .Release.Name .Values.name }}-pgbackrest-secret
|
||
|
global:
|
||
|
{{- range $index, $repo := .Values.multiBackupRepos }}
|
||
|
{{- if or $repo.s3 $repo.gcs $repo.azure }}
|
||
|
repo{{ add $index 1 }}-path: /pgbackrest/{{ $.Release.Namespace }}/{{ default $.Release.Name $.Values.name }}/repo{{ add $index 1 }}
|
||
|
{{- end }}
|
||
|
{{- end }}
|
||
|
repos:
|
||
|
{{- range $index, $repo := .Values.multiBackupRepos }}
|
||
|
- name: repo{{ add $index 1 }}
|
||
|
{{- if $repo.volume }}
|
||
|
volume:
|
||
|
volumeClaimSpec:
|
||
|
{{- if $repo.volume.backupsStorageClassName }}
|
||
|
storageClassName: {{ .Values.backupsStorageClassName | quote }}
|
||
|
{{- end }}
|
||
|
accessModes:
|
||
|
- "ReadWriteOnce"
|
||
|
resources:
|
||
|
requests:
|
||
|
storage: {{ default "1Gi" $repo.volume.backupsSize | quote }}
|
||
|
{{- else if $repo.s3 }}
|
||
|
s3:
|
||
|
bucket: {{ $repo.s3.bucket | quote }}
|
||
|
endpoint: {{ $repo.s3.endpoint | quote }}
|
||
|
region: {{ $repo.s3.region | quote }}
|
||
|
{{- else if $repo.gcs }}
|
||
|
gcs:
|
||
|
bucket: {{ $repo.gcs.bucket | quote }}
|
||
|
{{- else if $repo.azure }}
|
||
|
azure:
|
||
|
container: {{ $repo.azure.container | quote }}
|
||
|
{{- end }}
|
||
|
{{- end }}
|
||
|
{{- else if .Values.s3 }}
|
||
|
configuration:
|
||
|
- secret:
|
||
|
name: {{ default .Release.Name .Values.name }}-pgbackrest-secret
|
||
|
global:
|
||
|
repo1-path: /pgbackrest/{{ .Release.Namespace }}/{{ default .Release.Name .Values.name }}/repo1
|
||
|
{{- if .Values.s3.encryptionPassphrase }}
|
||
|
repo1-cipher-type: aes-256-cbc
|
||
|
{{- end }}
|
||
|
repos:
|
||
|
- name: repo1
|
||
|
s3:
|
||
|
bucket: {{ .Values.s3.bucket | quote }}
|
||
|
endpoint: {{ .Values.s3.endpoint | quote }}
|
||
|
region: {{ .Values.s3.region | quote }}
|
||
|
{{- else if .Values.gcs }}
|
||
|
configuration:
|
||
|
- secret:
|
||
|
name: {{ default .Release.Name .Values.name }}-pgbackrest-secret
|
||
|
global:
|
||
|
repo1-path: /pgbackrest/{{ .Release.Namespace }}/{{ default .Release.Name .Values.name }}/repo1
|
||
|
repos:
|
||
|
- name: repo1
|
||
|
gcs:
|
||
|
bucket: {{ .Values.gcs.bucket | quote }}
|
||
|
{{- else if .Values.azure }}
|
||
|
configuration:
|
||
|
- secret:
|
||
|
name: {{ default .Release.Name .Values.name }}-pgbackrest-secret
|
||
|
global:
|
||
|
repo1-path: /pgbackrest/{{ .Release.Namespace }}/{{ default .Release.Name .Values.name }}/repo1
|
||
|
repos:
|
||
|
- name: repo1
|
||
|
azure:
|
||
|
container: {{ .Values.azure.container | quote }}
|
||
|
{{- else }}
|
||
|
repos:
|
||
|
- name: repo1
|
||
|
volume:
|
||
|
volumeClaimSpec:
|
||
|
{{- if .Values.backupsStorageClassName }}
|
||
|
storageClassName: {{ .Values.backupsStorageClassName | quote }}
|
||
|
{{- end }}
|
||
|
accessModes:
|
||
|
- "ReadWriteOnce"
|
||
|
resources:
|
||
|
requests:
|
||
|
storage: {{ default "1Gi" .Values.backupsSize | quote }}
|
||
|
{{- end }}
|
||
|
{{- if or .Values.pgBouncerReplicas .Values.pgBouncerConfig }}
|
||
|
proxy:
|
||
|
pgBouncer:
|
||
|
{{- if .Values.imagePgBouncer }}
|
||
|
image: {{ .Values.imagePgBouncer | quote }}
|
||
|
{{- end }}
|
||
|
{{- if .Values.pgBouncerConfig }}
|
||
|
{{ toYaml .Values.pgBouncerConfig | indent 6 }}
|
||
|
{{- else }}
|
||
|
replicas: {{ .Values.pgBouncerReplicas }}
|
||
|
{{- end }}
|
||
|
{{- end }}
|
||
|
{{- if .Values.patroni }}
|
||
|
patroni:
|
||
|
{{ toYaml .Values.patroni | indent 4 }}
|
||
|
{{- end }}
|
||
|
{{- if .Values.users }}
|
||
|
users:
|
||
|
{{ toYaml .Values.users | indent 4 }}
|
||
|
{{- end }}
|
||
|
{{- if .Values.service }}
|
||
|
service:
|
||
|
{{ toYaml .Values.service | indent 4 }}
|
||
|
{{- end }}
|
||
|
{{- if .Values.dataSource }}
|
||
|
dataSource:
|
||
|
{{ toYaml .Values.dataSource | indent 4 }}
|
||
|
{{- end }}
|
||
|
{{- if .Values.databaseInitSQL }}
|
||
|
databaseInitSQL:
|
||
|
name: {{ required "A ConfigMap name is required for running bootstrap SQL." .Values.databaseInitSQL.name | quote }}
|
||
|
key: {{ required "A key in a ConfigMap containing any bootstrap SQL is required." .Values.databaseInitSQL.key | quote }}
|
||
|
{{- end }}
|
||
|
{{- if .Values.imagePullPolicy }}
|
||
|
imagePullPolicy: {{ .Values.imagePullPolicy | quote }}
|
||
|
{{- end }}
|
||
|
{{- if .Values.imagePullSecrets }}
|
||
|
imagePullSecrets:
|
||
|
{{ toYaml .Values.imagePullSecrets | indent 4 }}
|
||
|
{{- end }}
|
||
|
{{- if .Values.disableDefaultPodScheduling }}
|
||
|
disableDefaultPodScheduling: true
|
||
|
{{- end }}
|
||
|
{{- if .Values.metadata }}
|
||
|
metadata:
|
||
|
{{ toYaml .Values.metadata | indent 4 }}
|
||
|
{{- end }}
|
||
|
{{- if .Values.monitoring }}
|
||
|
monitoring:
|
||
|
pgmonitor:
|
||
|
exporter:
|
||
|
image: {{ default "" .Values.imageExporter | quote }}
|
||
|
{{- if .Values.monitoringConfig }}
|
||
|
{{ toYaml .Values.monitoringConfig | indent 8 }}
|
||
|
{{- end }}
|
||
|
{{- end }}
|
||
|
{{- if .Values.shutdown }}
|
||
|
shutdown: true
|
||
|
{{- end }}
|
||
|
{{- if .Values.standby }}
|
||
|
standby:
|
||
|
enabled: {{ .Values.standby.enabled }}
|
||
|
repoName: {{ .Values.standby.repoName }}
|
||
|
host: {{ .Values.standby.host }}
|
||
|
port: {{ .Values.standby.port }}
|
||
|
{{- end }}
|
||
|
{{- if .Values.supplementalGroups }}
|
||
|
supplementalGroups:
|
||
|
{{ toYaml .Values.supplementalGroups | indent 4 }}
|
||
|
{{- end }}
|
||
|
{{- if .Values.openshift }}
|
||
|
openshift: true
|
||
|
{{- else if eq .Values.openshift false }}
|
||
|
openshift: false
|
||
|
{{- end }}
|
||
|
{{- if .Values.customTLSSecret }}
|
||
|
customTLSSecret:
|
||
|
{{ toYaml .Values.customTLSSecret | indent 4 }}
|
||
|
{{- end }}
|
||
|
{{- if .Values.customReplicationTLSSecret }}
|
||
|
customReplicationTLSSecret:
|
||
|
{{ toYaml .Values.customReplicationTLSSecret | indent 4 }}
|
||
|
{{- end }}
|