Skip to content

Commit 6690984

Browse files
feat(k8s): add postgresql component
1 parent 7f16f13 commit 6690984

File tree

6 files changed

+134
-0
lines changed

6 files changed

+134
-0
lines changed
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
apiVersion: v1
2+
kind: Service
3+
metadata:
4+
name: {{ include "third-places.fullname" . }}-postgresql
5+
labels:
6+
{{- include "third-places.labels" . | nindent 4 }}
7+
app.kubernetes.io/component: postgresql
8+
spec:
9+
selector:
10+
{{- include "third-places.selectorLabels" . | nindent 4 }}
11+
app.kubernetes.io/component: postgresql
12+
type: {{ .Values.postgresql.serviceType }}
13+
ports:
14+
- name: postgresql
15+
port: 5432
16+
nodePort: 30432
Lines changed: 95 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,95 @@
1+
apiVersion: apps/v1
2+
kind: StatefulSet
3+
metadata:
4+
name: {{ include "third-places.fullname" . }}-postgresql
5+
labels:
6+
{{- include "third-places.labels" . | nindent 4 }}
7+
app.kubernetes.io/component: postgresql
8+
spec:
9+
replicas: {{ .Values.postgresql.replicas }}
10+
selector:
11+
matchLabels:
12+
{{- include "third-places.selectorLabels" . | nindent 6 }}
13+
app.kubernetes.io/component: postgresql
14+
serviceName: postgresql
15+
template:
16+
metadata:
17+
labels:
18+
{{- include "third-places.selectorLabels" . | nindent 8 }}
19+
app.kubernetes.io/component: postgresql
20+
{{- with .Values.postgresql.podAnnotations }}
21+
annotations:
22+
{{- toYaml . | nindent 8 }}
23+
{{- end }}
24+
spec:
25+
{{- with .Values.postgresql.imagePullSecrets }}
26+
imagePullSecrets:
27+
{{ toYaml . | nindent 6 }}
28+
{{- end }}
29+
containers:
30+
- name: postgresql
31+
image: {{ .Values.postgresql.image.repository }}:{{ .Values.postgresql.image.tag }}
32+
{{- if or .Values.postgresql.config .Values.postgresql.existingSecret }}
33+
envFrom:
34+
{{- if .Values.postgresql.config }}
35+
- configMapRef:
36+
name: {{ include "third-places.fullname" . }}-postgresql
37+
{{- end }}
38+
{{- if .Values.postgresql.existingSecret }}
39+
- secretRef:
40+
name: {{ .Values.postgresql.existingSecret }}
41+
{{- end }}
42+
{{- end }}
43+
ports:
44+
- containerPort: 5432
45+
name: postgresql
46+
{{- if .Values.postgresql.volumes }}
47+
volumeMounts:
48+
{{- if .Values.postgresql.volumes.data }}
49+
- name: data
50+
mountPath: /var/lib/postgresql/data
51+
subPath: postgresql-data
52+
{{- end }}
53+
{{- end }}
54+
readinessProbe:
55+
tcpSocket:
56+
port: 5432
57+
initialDelaySeconds: 5
58+
periodSeconds: 10
59+
livenessProbe:
60+
tcpSocket:
61+
port: 5432
62+
initialDelaySeconds: 15
63+
periodSeconds: 20
64+
65+
{{- with .Values.postgresql.nodeSelector }}
66+
nodeSelector:
67+
{{- toYaml . | nindent 8 }}
68+
{{- end }}
69+
70+
{{- with .Values.postgresql.affinity }}
71+
affinity:
72+
{{- toYaml . | nindent 8 }}
73+
{{- end }}
74+
75+
{{- with .Values.postgresql.tolerations }}
76+
tolerations:
77+
{{- toYaml . | nindent 8 }}
78+
{{- end }}
79+
80+
{{- if .Values.postgresql.volumes }}
81+
volumeClaimTemplates:
82+
{{- if .Values.postgresql.volumes.data }}
83+
- metadata:
84+
name: data
85+
spec:
86+
accessModes:
87+
- ReadWriteOnce
88+
{{- if .Values.postgresql.volumes.data.storageClassName }}
89+
storageClassName: {{ .Values.postgresql.volumes.data.storageClassName }}
90+
{{- end }}
91+
resources:
92+
requests:
93+
storage: {{ .Values.postgresql.volumes.data.size }}
94+
{{- end }}
95+
{{- end }}

helm-chart/templates/deployment.yaml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,13 @@ metadata:
44
name: {{ include "third-places.fullname" . }}
55
labels:
66
{{- include "third-places.labels" . | nindent 4 }}
7+
app.kubernetes.io/component: application
78
spec:
89
replicas: {{ .Values.replicaCount }}
910
selector:
1011
matchLabels:
1112
{{- include "third-places.selectorLabels" . | nindent 6 }}
13+
app.kubernetes.io/component: application
1214
template:
1315
metadata:
1416
{{- with .Values.podAnnotations }}
@@ -17,6 +19,7 @@ spec:
1719
{{- end }}
1820
labels:
1921
{{- include "third-places.selectorLabels" . | nindent 8 }}
22+
app.kubernetes.io/component: application
2023
spec:
2124
{{- with .Values.imagePullSecrets }}
2225
imagePullSecrets:

helm-chart/templates/ingress.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ metadata:
77
name: {{ $fullName }}
88
labels:
99
{{- include "third-places.labels" . | nindent 4 }}
10+
app.kubernetes.io/component: application
1011
{{- with .Values.ingress.annotations }}
1112
annotations:
1213
{{- toYaml . | nindent 4 }}

helm-chart/templates/service.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ metadata:
44
name: {{ include "third-places.fullname" . }}
55
labels:
66
{{- include "third-places.labels" . | nindent 4 }}
7+
app.kubernetes.io/component: application
78
spec:
89
type: {{ .Values.service.type }}
910
ports:
@@ -13,3 +14,4 @@ spec:
1314
name: http
1415
selector:
1516
{{- include "third-places.selectorLabels" . | nindent 4 }}
17+
app.kubernetes.io/component: application

helm-chart/values.yaml

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,3 +53,20 @@ nodeSelector: {}
5353
tolerations: []
5454

5555
affinity: {}
56+
57+
postgresql:
58+
image:
59+
repository: postgres
60+
tag: 13
61+
imagePullSecrets: {}
62+
replicas: 1
63+
volumes:
64+
data:
65+
size: 5Gi
66+
existingSecret: postgresql
67+
config: {}
68+
podAnnotations: {}
69+
nodeSelector: {}
70+
affinity: {}
71+
tolerations: []
72+
serviceType: ClusterIP

0 commit comments

Comments
 (0)