Merge "[AAI] Add model-loader tracing config"
[oom.git] / kubernetes / common / common / templates / _postgres.tpl
1 {{/*
2 # Copyright © 2019 Samsung Electronics
3 #
4 # Licensed under the Apache License, Version 2.0 (the "License");
5 # you may not use this file except in compliance with the License.
6 # You may obtain a copy of the License at
7 #
8 #       http://www.apache.org/licenses/LICENSE-2.0
9 #
10 # Unless required by applicable law or agreed to in writing, software
11 # distributed under the License is distributed on an "AS IS" BASIS,
12 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 # See the License for the specific language governing permissions and
14 # limitations under the License.
15 */}}
16 {{/*
17   UID of postgres root password
18 */}}
19 {{- define "common.postgres.secret.rootPassUID" -}}
20   {{- printf "db-root-password" }}
21 {{- end -}}
22
23 {{/*
24   Name of postgres secret
25 */}}
26 {{- define "common.postgres.secret._secretName" -}}
27   {{- $global := .dot }}
28   {{- $chartName := tpl .chartName $global -}}
29   {{- include "common.secret.genName" (dict "global" $global "uid" (include .uidTemplate $global) "chartName" $chartName) }}
30 {{- end -}}
31
32 {{/*
33   Name of postgres root password secret
34 */}}
35 {{- define "common.postgres.secret.rootPassSecretName" -}}
36   {{- include "common.postgres.secret._secretName" (set . "uidTemplate" "common.postgres.secret.rootPassUID") }}
37 {{- end -}}
38
39 {{/*
40   UID of postgres user credentials
41 */}}
42 {{- define "common.postgres.secret.userCredentialsUID" -}}
43   {{- printf "db-user-credentials" }}
44 {{- end -}}
45
46 {{/*
47   Name of postgres user credentials secret
48 */}}
49 {{- define "common.postgres.secret.userCredentialsSecretName" -}}
50   {{- include "common.postgres.secret._secretName" (set . "uidTemplate" "common.postgres.secret.userCredentialsUID") }}
51 {{- end -}}
52
53 {{/*
54   UID of postgres primary password
55 */}}
56 {{- define "common.postgres.secret.primaryPasswordUID" -}}
57   {{- printf "primary-password" }}
58 {{- end -}}
59
60 {{/*
61   Name of postgres user credentials secret
62 */}}
63 {{- define "common.postgres.secret.primaryPasswordSecretName" -}}
64   {{- include "common.postgres.secret._secretName" (set . "uidTemplate" "common.postgres.secret.primaryPasswordUID") }}
65 {{- end -}}
66
67 {{/*
68   Create postgres cluster via postgres crunchydata-operator
69 */}}
70 {{- define "common.postgresOpInstance" -}}
71 {{- $dot := default . .dot -}}
72 {{- $global := $dot.Values.global -}}
73 {{- $dbinst := include "common.name" $dot -}}
74 ---
75 apiVersion: postgres-operator.crunchydata.com/v1beta1
76 kind: PostgresCluster
77 metadata:
78   name: {{ $dbinst }}
79   labels:
80     app: {{ $dbinst }}
81     version: "5.5"
82 spec:
83   metadata:
84     labels:
85       app: {{ $dbinst }}
86       version: "5.5"
87   {{- if .Values.postgresOperator.imagePostgres }}
88   image: {{ .Values.postgresOperator.imagePostgres | quote }}
89   {{- end }}
90   {{- include "common.imagePullSecrets" . | nindent 2 }}
91   postgresVersion: {{ $dot.Values.postgresOperator.postgresVersion }}
92   instances:
93     - name: {{ default "instance1" .Values.postgresOperator.instanceName | quote }}
94       replicas: {{ default 2 .Values.postgresOperator.instanceReplicas }}
95       dataVolumeClaimSpec:
96         {{- if .Values.instanceStorageClassName }}
97         storageClassName: {{ .Values.postgresOperator.instanceStorageClassName | quote }}
98         {{- end }}
99         accessModes:
100         - "ReadWriteOnce"
101         resources:
102           requests:
103             storage: {{ default "1Gi" .Values.postgresOperator.instanceSize | quote }}
104       {{- if or .Values.instanceMemory .Values.postgresOperator.instanceCPU }}
105       resources:
106         limits:
107           cpu: {{ default "" .Values.postgresOperator.instanceCPU | quote }}
108           memory: {{ default "" .Values.postgresOperator.instanceMemory | quote }}
109       {{- end }}
110       affinity:
111         podAntiAffinity:
112           preferredDuringSchedulingIgnoredDuringExecution:
113           - weight: 1
114             podAffinityTerm:
115               topologyKey: kubernetes.io/hostname
116               labelSelector:
117                 matchLabels:
118                   postgres-operator.crunchydata.com/cluster: {{ $dbinst }}
119                   postgres-operator.crunchydata.com/instance-set: {{ default "instance1" .Values.postgresOperator.instanceName | quote }}
120   proxy:
121     pgBouncer:
122       metadata:
123         labels:
124           app: {{ $dbinst }}
125           version: "5.5"
126       {{- if .Values.postgresOperator.imagePgBouncer }}
127       image: {{ .Values.postgresOperator.imagePgBouncer | quote }}
128       {{- end }}
129       replicas: {{ default 2 .Values.postgresOperator.bouncerReplicas }}
130       affinity:
131         podAntiAffinity:
132           preferredDuringSchedulingIgnoredDuringExecution:
133           - weight: 1
134             podAffinityTerm:
135               topologyKey: kubernetes.io/hostname
136               labelSelector:
137                 matchLabels:
138                   postgres-operator.crunchydata.com/cluster: {{ $dbinst }}
139                   postgres-operator.crunchydata.com/role: pgbouncer
140   {{- if .Values.postgresOperator.monitoring }}
141   monitoring:
142     pgmonitor:
143       exporter:
144         image: {{ default "" .Values.postgresOperator.imageExporter | quote }}
145         {{- if .Values.postgresOperator.monitoringConfig }}
146 {{ toYaml .Values.monitoringConfig | indent 8 }}
147         {{- end }}
148   {{- end }}
149   users:
150     - name: postgres
151 {{- end -}}