1
+ apiVersion : apps/v1
2
+ kind : StatefulSet
3
+ metadata :
4
+ name : {{ include "sqlite-rest.fullname" . }}
5
+ labels :
6
+ {{- include "sqlite-rest.labels" . | nindent 4 }}
7
+ spec :
8
+ selector :
9
+ matchLabels :
10
+ {{- include "sqlite-rest.selectorLabels" . | nindent 6 }}
11
+ serviceName : {{ include "sqlite-rest.name" . }}
12
+
13
+ replicas : 1
14
+
15
+ volumeClaimTemplates :
16
+ {{- if .Values.data.enabled }}
17
+ - metadata :
18
+ name : data
19
+ spec :
20
+ accessModes : ["ReadWriteOnce"]
21
+ {{- if .Values.data.storageClassName }}
22
+ storageClassName : {{ .Values.data.storageClassName }}
23
+ {{- end }}
24
+ resources :
25
+ {{- toYaml .Values.data.resource | nindent 10 }}
26
+ {{- end }}
27
+
28
+ template :
29
+ metadata :
30
+ labels :
31
+ {{- include "sqlite-rest.selectorLabels" . | nindent 8 }}
32
+ spec :
33
+ volumes :
34
+ {{- if .Values.server.secretNameAuthToken }}
35
+ - name : auth-token-file
36
+ secret :
37
+ secretName : {{ .Values.server.secretNameAuthToken }}
38
+ {{- end }}
39
+ {{- if .Values.server.secretNameAuthRSAPublicKey }}
40
+ - name : auth-rsa-public-key
41
+ secret :
42
+ secretName : {{ .Values.server.secretNameAuthRSAPublicKey }}
43
+ {{- end }}
44
+ {{- if (not .Values.data.enabled) }}
45
+ - name : data
46
+ emptyDir : {}
47
+ {{- end }}
48
+ {{- if .Values.migrations.enabled }}
49
+ - name : migrations
50
+ configMap :
51
+ name : {{ .Values.migrations.configMapName }}
52
+ {{- end }}
53
+ {{- if .Values.litestream.enabled }}
54
+ - name : litestream-config
55
+ secret :
56
+ secretName : {{ .Values.litestream.secretName }}
57
+ {{- end }}
58
+ initContainers :
59
+ {{- if .Values.litestream.enabled }}
60
+ - name : litestream-init
61
+ image : {{ .Values.litestream.image.repository }}:{{ .Values.litestream.image.tag }}
62
+ imagePullPolicy : {{ .Values.litestream.image.pullPolicy }}
63
+ args :
64
+ - restore
65
+ - ' -if-db-not-exists'
66
+ - ' -if-replica-exists'
67
+ - ' -v'
68
+ - ' /data/db.sqlite3'
69
+ volumeMounts :
70
+ - name : data
71
+ mountPath : /data
72
+ - name : litestream-config
73
+ mountPath : /etc/litestream.yml
74
+ subPath : litestream.yml
75
+ {{- end }}
76
+ {{- if .Values.migrations.enabled }}
77
+ - name : migrations
78
+ image : " {{ .Values.image.repository }}:{{ .Values.image.tag | default .Chart.AppVersion }}"
79
+ imagePullPolicy : {{ .Values.image.pullPolicy }}
80
+ command :
81
+ - sqlite-rest-server
82
+ - migrate
83
+ args :
84
+ - /migrations
85
+ - --db-dsn=/data/db.sqlite3
86
+ - --log-level={{ .Values.server.logLevel }}
87
+ - --log-devel={{ .Values.server.useDevelLog }}
88
+ volumeMounts :
89
+ - name : data
90
+ mountPath : /data
91
+ - name : migrations
92
+ mountPath : /migrations
93
+ {{- end }}
94
+ containers :
95
+ - name : server
96
+ image : " {{ .Values.image.repository }}:{{ .Values.image.tag | default .Chart.AppVersion }}"
97
+ imagePullPolicy : {{ .Values.image.pullPolicy }}
98
+ command :
99
+ - sqlite-rest-server
100
+ - serve
101
+ args :
102
+ - --db-dsn=/data/db.sqlite3
103
+ - --security-allow-table={{ .Values.server.securityAllowTable }}
104
+ - --log-level={{ .Values.server.logLevel }}
105
+ - --log-devel={{ .Values.server.useDevelLog }}
106
+ {{- if .Values.server.secretNameAuthToken }}
107
+ - --auth-token-file=/auth-token
108
+ {{- end }}
109
+ {{- if .Values.server.secretNameAuthRSAPublicKey }}
110
+ - --auth-rsa-public-key=/auth-rsa-public-key
111
+ {{- end }}
112
+ ports :
113
+ - name : http
114
+ containerPort : 8080
115
+ protocol : TCP
116
+ resources :
117
+ {{- toYaml .Values.resources | nindent 12 }}
118
+ volumeMounts :
119
+ - name : data
120
+ mountPath : /data
121
+ {{- if .Values.server.secretNameAuthToken }}
122
+ - name : auth-token-file
123
+ mountPath : /auth-token
124
+ subPath : auth.yaml
125
+ readOnly : true
126
+ {{- end }}
127
+ {{- if .Values.server.secretNameAuthRSAPublicKey }}
128
+ - name : auth-rsa-public-key
129
+ mountPath : /auth-rsa-public-key
130
+ subPath : auth.yaml
131
+ readOnly : true
132
+ {{- end }}
133
+ {{- if .Values.litestream.enabled }}
134
+ - name : litestream
135
+ image : {{ .Values.litestream.image.repository }}:{{ .Values.litestream.image.tag }}
136
+ imagePullPolicy : {{ .Values.litestream.image.pullPolicy }}
137
+ args :
138
+ - replicate
139
+ volumeMounts :
140
+ - name : data
141
+ mountPath : /data
142
+ - name : litestream-config
143
+ mountPath : /etc/litestream.yml
144
+ subPath : litestream.yml
145
+ ports :
146
+ - name : ls-metrics
147
+ containerPort : 9090
148
+ {{- end }}
149
+ {{- with .Values.nodeSelector }}
150
+ nodeSelector :
151
+ {{- toYaml . | nindent 8 }}
152
+ {{- end }}
0 commit comments