Skip to content

Commit 21f0382

Browse files
committed
stateful services should be statefulsets
1 parent 24b22fc commit 21f0382

File tree

5 files changed

+194
-113
lines changed

5 files changed

+194
-113
lines changed

hosting/k8s/helm/templates/clickhouse.yaml

Lines changed: 36 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,14 @@
11
{{- if .Values.clickhouse.enabled }}
22
apiVersion: apps/v1
3-
kind: Deployment
3+
kind: StatefulSet
44
metadata:
55
name: {{ include "trigger-v4.fullname" . }}-clickhouse
66
labels:
77
{{- $component := "clickhouse" }}
88
{{- include "trigger-v4.componentLabels" (dict "Chart" .Chart "Release" .Release "Values" .Values "component" $component) | nindent 4 }}
99
spec:
1010
replicas: 1
11-
strategy:
12-
type: Recreate
11+
serviceName: {{ include "trigger-v4.fullname" . }}-clickhouse-headless
1312
selector:
1413
matchLabels:
1514
{{- include "trigger-v4.componentSelectorLabels" (dict "Chart" .Chart "Release" .Release "Values" .Values "component" $component) | nindent 6 }}
@@ -88,26 +87,42 @@ spec:
8887
subPath: override.xml
8988
readOnly: true
9089
volumes:
91-
- name: clickhouse-data
92-
{{- if .Values.clickhouse.persistence.enabled }}
93-
persistentVolumeClaim:
94-
claimName: {{ include "trigger-v4.fullname" . }}-clickhouse
95-
{{- else }}
96-
emptyDir: {}
97-
{{- end }}
9890
- name: clickhouse-config
9991
configMap:
10092
name: {{ include "trigger-v4.fullname" . }}-clickhouse-config
93+
{{- if not .Values.clickhouse.persistence.enabled }}
94+
- name: clickhouse-data
95+
emptyDir: {}
96+
{{- end }}
97+
{{- if .Values.clickhouse.persistence.enabled }}
98+
volumeClaimTemplates:
99+
- metadata:
100+
name: clickhouse-data
101+
labels:
102+
{{- $component := "clickhouse" }}
103+
{{- include "trigger-v4.componentLabels" (dict "Chart" .Chart "Release" .Release "Values" .Values "component" $component) | nindent 10 }}
104+
spec:
105+
accessModes:
106+
- ReadWriteOnce
107+
resources:
108+
requests:
109+
storage: {{ .Values.clickhouse.persistence.size }}
110+
{{- $storageClass := .Values.clickhouse.persistence.storageClass | default .Values.global.storageClass }}
111+
{{- if $storageClass }}
112+
storageClassName: {{ $storageClass | quote }}
113+
{{- end }}
114+
{{- end }}
101115
---
102116
apiVersion: v1
103117
kind: Service
104118
metadata:
105-
name: {{ include "trigger-v4.fullname" . }}-clickhouse
119+
name: {{ include "trigger-v4.fullname" . }}-clickhouse-headless
106120
labels:
107121
{{- $component := "clickhouse" }}
108122
{{- include "trigger-v4.componentLabels" (dict "Chart" .Chart "Release" .Release "Values" .Values "component" $component) | nindent 4 }}
109123
spec:
110-
type: {{ .Values.clickhouse.service.type }}
124+
type: ClusterIP
125+
clusterIP: None
111126
ports:
112127
- name: http
113128
port: {{ .Values.clickhouse.service.port }}
@@ -116,23 +131,20 @@ spec:
116131
selector:
117132
{{- include "trigger-v4.componentSelectorLabels" (dict "Chart" .Chart "Release" .Release "Values" .Values "component" $component) | nindent 4 }}
118133
---
119-
{{- if .Values.clickhouse.persistence.enabled }}
120134
apiVersion: v1
121-
kind: PersistentVolumeClaim
135+
kind: Service
122136
metadata:
123137
name: {{ include "trigger-v4.fullname" . }}-clickhouse
124138
labels:
125139
{{- $component := "clickhouse" }}
126140
{{- include "trigger-v4.componentLabels" (dict "Chart" .Chart "Release" .Release "Values" .Values "component" $component) | nindent 4 }}
127141
spec:
128-
accessModes:
129-
- ReadWriteOnce
130-
resources:
131-
requests:
132-
storage: {{ .Values.clickhouse.persistence.size }}
133-
{{- $storageClass := .Values.clickhouse.persistence.storageClass | default .Values.global.storageClass }}
134-
{{- if $storageClass }}
135-
storageClassName: {{ $storageClass | quote }}
136-
{{- end }}
137-
{{- end }}
142+
type: {{ .Values.clickhouse.service.type }}
143+
ports:
144+
- name: http
145+
port: {{ .Values.clickhouse.service.port }}
146+
targetPort: http
147+
protocol: TCP
148+
selector:
149+
{{- include "trigger-v4.componentSelectorLabels" (dict "Chart" .Chart "Release" .Release "Values" .Values "component" $component) | nindent 4 }}
138150
{{- end }}

hosting/k8s/helm/templates/minio.yaml

Lines changed: 38 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,14 @@
11
{{- if .Values.minio.enabled }}
22
apiVersion: apps/v1
3-
kind: Deployment
3+
kind: StatefulSet
44
metadata:
55
name: {{ include "trigger-v4.fullname" . }}-minio
66
labels:
77
{{- $component := "minio" }}
88
{{- include "trigger-v4.componentLabels" (dict "Chart" .Chart "Release" .Release "Values" .Values "component" $component) | nindent 4 }}
99
spec:
1010
replicas: 1
11-
strategy:
12-
type: Recreate
11+
serviceName: {{ include "trigger-v4.fullname" . }}-minio-headless
1312
selector:
1413
matchLabels:
1514
{{- include "trigger-v4.componentSelectorLabels" (dict "Chart" .Chart "Release" .Release "Values" .Values "component" $component) | nindent 6 }}
@@ -71,24 +70,40 @@ spec:
7170
volumeMounts:
7271
- name: minio-data
7372
mountPath: /data
73+
{{- if not .Values.minio.persistence.enabled }}
7474
volumes:
7575
- name: minio-data
76-
{{- if .Values.minio.persistence.enabled }}
77-
persistentVolumeClaim:
78-
claimName: {{ include "trigger-v4.fullname" . }}-minio
79-
{{- else }}
8076
emptyDir: {}
81-
{{- end }}
77+
{{- end }}
78+
{{- if .Values.minio.persistence.enabled }}
79+
volumeClaimTemplates:
80+
- metadata:
81+
name: minio-data
82+
labels:
83+
{{- $component := "minio" }}
84+
{{- include "trigger-v4.componentLabels" (dict "Chart" .Chart "Release" .Release "Values" .Values "component" $component) | nindent 10 }}
85+
spec:
86+
accessModes:
87+
- ReadWriteOnce
88+
resources:
89+
requests:
90+
storage: {{ .Values.minio.persistence.size }}
91+
{{- $storageClass := .Values.minio.persistence.storageClass | default .Values.global.storageClass }}
92+
{{- if $storageClass }}
93+
storageClassName: {{ $storageClass | quote }}
94+
{{- end }}
95+
{{- end }}
8296
---
8397
apiVersion: v1
8498
kind: Service
8599
metadata:
86-
name: {{ include "trigger-v4.fullname" . }}-minio
100+
name: {{ include "trigger-v4.fullname" . }}-minio-headless
87101
labels:
88102
{{- $component := "minio" }}
89103
{{- include "trigger-v4.componentLabels" (dict "Chart" .Chart "Release" .Release "Values" .Values "component" $component) | nindent 4 }}
90104
spec:
91-
type: {{ .Values.minio.service.type }}
105+
type: ClusterIP
106+
clusterIP: None
92107
ports:
93108
- name: api
94109
port: {{ .Values.minio.service.ports.api }}
@@ -101,23 +116,24 @@ spec:
101116
selector:
102117
{{- include "trigger-v4.componentSelectorLabels" (dict "Chart" .Chart "Release" .Release "Values" .Values "component" $component) | nindent 4 }}
103118
---
104-
{{- if .Values.minio.persistence.enabled }}
105119
apiVersion: v1
106-
kind: PersistentVolumeClaim
120+
kind: Service
107121
metadata:
108122
name: {{ include "trigger-v4.fullname" . }}-minio
109123
labels:
110124
{{- $component := "minio" }}
111125
{{- include "trigger-v4.componentLabels" (dict "Chart" .Chart "Release" .Release "Values" .Values "component" $component) | nindent 4 }}
112126
spec:
113-
accessModes:
114-
- ReadWriteOnce
115-
resources:
116-
requests:
117-
storage: {{ .Values.minio.persistence.size }}
118-
{{- $storageClass := .Values.minio.persistence.storageClass | default .Values.global.storageClass }}
119-
{{- if $storageClass }}
120-
storageClassName: {{ $storageClass | quote }}
121-
{{- end }}
122-
{{- end }}
127+
type: {{ .Values.minio.service.type }}
128+
ports:
129+
- name: api
130+
port: {{ .Values.minio.service.ports.api }}
131+
targetPort: api
132+
protocol: TCP
133+
- name: console
134+
port: {{ .Values.minio.service.ports.console }}
135+
targetPort: console
136+
protocol: TCP
137+
selector:
138+
{{- include "trigger-v4.componentSelectorLabels" (dict "Chart" .Chart "Release" .Release "Values" .Values "component" $component) | nindent 4 }}
123139
{{- end }}

hosting/k8s/helm/templates/postgresql.yaml

Lines changed: 50 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,14 @@
11
{{- if and .Values.postgresql.enabled (not .Values.postgresql.external) }}
22
apiVersion: apps/v1
3-
kind: Deployment
3+
kind: StatefulSet
44
metadata:
55
name: {{ include "trigger-v4.fullname" . }}-postgresql
66
labels:
77
{{- $component := "postgresql" }}
88
{{- include "trigger-v4.componentLabels" (dict "Chart" .Chart "Release" .Release "Values" .Values "component" $component) | nindent 4 }}
99
spec:
1010
replicas: 1
11-
strategy:
12-
type: Recreate
11+
serviceName: {{ include "trigger-v4.fullname" . }}-postgresql-headless
1312
selector:
1413
matchLabels:
1514
{{- include "trigger-v4.componentSelectorLabels" (dict "Chart" .Chart "Release" .Release "Values" .Values "component" $component) | nindent 6 }}
@@ -72,24 +71,57 @@ spec:
7271
volumeMounts:
7372
- name: postgresql-data
7473
mountPath: /var/lib/postgresql/data
74+
{{- if .Values.postgresql.primary.persistence.enabled }}
75+
volumeClaimTemplates:
76+
- metadata:
77+
name: postgresql-data
78+
labels:
79+
{{- $component := "postgresql" }}
80+
{{- include "trigger-v4.componentLabels" (dict "Chart" .Chart "Release" .Release "Values" .Values "component" $component) | nindent 10 }}
81+
spec:
82+
accessModes:
83+
- ReadWriteOnce
84+
resources:
85+
requests:
86+
storage: {{ .Values.postgresql.primary.persistence.size }}
87+
{{- $storageClass := .Values.postgresql.primary.persistence.storageClass | default .Values.global.storageClass }}
88+
{{- if $storageClass }}
89+
storageClassName: {{ $storageClass | quote }}
90+
{{- end }}
91+
{{- else }}
7592
volumes:
7693
- name: postgresql-data
77-
{{- if .Values.postgresql.primary.persistence.enabled }}
78-
persistentVolumeClaim:
79-
claimName: {{ include "trigger-v4.fullname" . }}-postgresql
80-
{{- else }}
8194
emptyDir: {}
82-
{{- end }}
95+
{{- end }}
96+
{{- if .Values.postgresql.primary.persistence.enabled }}
97+
volumeClaimTemplates:
98+
- metadata:
99+
name: postgresql-data
100+
labels:
101+
{{- $component := "postgresql" }}
102+
{{- include "trigger-v4.componentLabels" (dict "Chart" .Chart "Release" .Release "Values" .Values "component" $component) | nindent 10 }}
103+
spec:
104+
accessModes:
105+
- ReadWriteOnce
106+
resources:
107+
requests:
108+
storage: {{ .Values.postgresql.primary.persistence.size }}
109+
{{- $storageClass := .Values.postgresql.primary.persistence.storageClass | default .Values.global.storageClass }}
110+
{{- if $storageClass }}
111+
storageClassName: {{ $storageClass | quote }}
112+
{{- end }}
113+
{{- end }}
83114
---
84115
apiVersion: v1
85116
kind: Service
86117
metadata:
87-
name: {{ include "trigger-v4.fullname" . }}-postgresql
118+
name: {{ include "trigger-v4.fullname" . }}-postgresql-headless
88119
labels:
89120
{{- $component := "postgresql" }}
90121
{{- include "trigger-v4.componentLabels" (dict "Chart" .Chart "Release" .Release "Values" .Values "component" $component) | nindent 4 }}
91122
spec:
92123
type: ClusterIP
124+
clusterIP: None
93125
ports:
94126
- name: postgresql
95127
port: {{ .Values.postgresql.primary.service.ports.postgresql }}
@@ -98,23 +130,20 @@ spec:
98130
selector:
99131
{{- include "trigger-v4.componentSelectorLabels" (dict "Chart" .Chart "Release" .Release "Values" .Values "component" $component) | nindent 4 }}
100132
---
101-
{{- if .Values.postgresql.primary.persistence.enabled }}
102133
apiVersion: v1
103-
kind: PersistentVolumeClaim
134+
kind: Service
104135
metadata:
105136
name: {{ include "trigger-v4.fullname" . }}-postgresql
106137
labels:
107138
{{- $component := "postgresql" }}
108139
{{- include "trigger-v4.componentLabels" (dict "Chart" .Chart "Release" .Release "Values" .Values "component" $component) | nindent 4 }}
109140
spec:
110-
accessModes:
111-
- ReadWriteOnce
112-
resources:
113-
requests:
114-
storage: {{ .Values.postgresql.primary.persistence.size }}
115-
{{- $storageClass := .Values.postgresql.primary.persistence.storageClass | default .Values.global.storageClass }}
116-
{{- if $storageClass }}
117-
storageClassName: {{ $storageClass | quote }}
118-
{{- end }}
119-
{{- end }}
141+
type: ClusterIP
142+
ports:
143+
- name: postgresql
144+
port: {{ .Values.postgresql.primary.service.ports.postgresql }}
145+
targetPort: postgresql
146+
protocol: TCP
147+
selector:
148+
{{- include "trigger-v4.componentSelectorLabels" (dict "Chart" .Chart "Release" .Release "Values" .Values "component" $component) | nindent 4 }}
120149
{{- end }}

0 commit comments

Comments
 (0)