-
Notifications
You must be signed in to change notification settings - Fork 9
/
values.yaml
425 lines (408 loc) · 11.5 KB
/
values.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
# Shared, provide your own values here
kobotoolbox:
djangoSecret: "change_me_please"
mongoName: "formhub"
# mongoDatabase: "mongodb://root:password@mongodb:27017"
# kobocatDatabase: "postgis://postgres:password@postgres-postgresql:5432/postgres"
# Set to use for all redis needs (cache, broker, etc) redis connection string without db number.
# Unset to specify each redis usage seperately
# Redis default DB numbers
# - Enketo - 0 (cannot be changed)
# - Session - 1
# - KPI Broker - 2
# - Kobocat Broker - 3
# - KPI Cache - 4
# - Kobocat Cache - 5
# - Service account - 6
#redis: "redis://:pass@redis-master:6379" # Do not add / nor /1 suffix
redisParameters: "" # ?ssl_cert_reqs=CERT_REQUIRED
#redisSession: "redis://:pass@redis-master:6379/1"
#serviceAccountBackend: "redis://:pass@redis-master:6379/6"
enketoApiKey: "change_me_please"
# Actually post-install and pre-update
migrationJob:
enabled: true
activeDeadlineSeconds: 600
postInstall: {}
# command: "./manage.py anything"
# activeDeadlineSeconds: 60
kpi:
image:
repository: kobotoolbox/kpi
pullPolicy: IfNotPresent
tag: "2.024.33e"
replicaCount: 1
resources:
limits:
cpu: 1000m
memory: 1100Mi
requests:
cpu: 100m
memory: 900Mi
autoscaling:
enabled: false
minReplicas: 2
maxReplicas: 20
targetCPU: 80
targetMemory: 90
# strategy:
# type: RollingUpdate
# rollingUpdate:
# maxSurge: "25%""
# maxUnavailable: "25%"
# nginx:
# config: |-
# server {
# listen 80;
# server_name example.com;
# }
nodeSelector: {}
tolerations: []
podAnnotations: {}
affinity: {}
service:
type: ClusterIP
port: 80
budget:
minAvailable: 1
env:
normal:
# By default, the following are set but can be overridden
ENKETO_EXPRESS_PUBLIC_SUBDOMAIN: "ee"
KOBOCAT_PUBLIC_SUBDOMAIN: "kc"
KOBOFORM_PUBLIC_SUBDOMAIN: "kobo"
PUBLIC_REQUEST_SCHEME: "https"
# Celery configuration
CELERY_WORKER_AUTOSCALE: "2,3"
CELERY_WORKER_MAX_TASKS_PER_CHILD: "10000"
# -- Django email backend
EMAIL_BACKEND: "django.core.mail.backends.console.EmailBackend"
# -- Django file storage, recommend using a django-storages approach for scalability
# KPI_DEFAULT_FILE_STORAGE: "storages.backends.s3boto3.S3Boto3Storage"
# -- Set s3 bucket name is relevant
# KPI_AWS_STORAGE_BUCKET_NAME: ""
# -- KoBoCAT Django file storage, should match KPI setting
# KOBOCAT_DEFAULT_FILE_STORAGE: "storages.backends.s3boto3.S3Boto3Storage"
# -- KoBoCAT Bucket name
# KOBOCAT_AWS_STORAGE_BUCKET_NAME: ""
secret:
{}
# DATABASE_URL: "postgres://postgres:password@postgres-postgresql:5432/postgres"
# CELERY_BROKER_URL: "redis://localhost:6379/2"
# CACHE_URL: "redis://localhost:6379/4"
# AWS_ACCESS_KEY_ID: ""
# AWS_SECRET_ACCESS_KEY: ""
extraVolumeMounts: []
extraVolumes: []
worker:
replicaCount: 1
livenessProbe:
initialDelaySeconds: 10
periodSeconds: 60
timeoutSeconds: 30
exec:
command:
- "bash"
- "-c"
- "celery -A kobo inspect ping -d kpi_main_worker@$HOSTNAME | grep -q OK"
resources:
limits:
cpu: 2000m
memory: 1400Mi
requests:
cpu: 400m
memory: 700Mi
autoscaling:
enabled: true
minReplicas: 1
maxReplicas: 20
targetCPU: 90
# targetMemory: 80
workerLowPriority:
replicaCount: 1
livenessProbe:
initialDelaySeconds: 10
periodSeconds: 60
timeoutSeconds: 30
exec:
command:
- "bash"
- "-c"
- "celery -A kobo inspect ping -d kpi_main_worker@$HOSTNAME | grep -q OK"
resources:
limits:
cpu: 1000m
memory: 800Mi
requests:
cpu: 300m
memory: 280Mi
autoscaling:
enabled: true
minReplicas: 2
maxReplicas: 20
targetCPU: 80
# targetMemory: 80
beat:
resources:
limits:
cpu: 800m
memory: 400Mi
requests:
cpu: 50m
memory: 200Mi
ingress:
enabled: false
className: ""
annotations: {}
# kubernetes.io/ingress.class: nginx
hosts:
- host: chart-example.local
paths:
- path: /
pathType: ImplementationSpecific
tls: []
# - secretName: chart-example-tls
# hosts:
# - chart-example.local
kobocat:
ingress:
enabled: false
className: ""
annotations: {}
# kubernetes.io/ingress.class: nginx
hosts:
- host: chart-example.local
paths:
- path: /
pathType: ImplementationSpecific
tls: []
# - secretName: chart-example-tls
# hosts:
# - chart-example.local
flower:
enabled: false
resources:
limits:
cpu: 500m
memory: 512Mi
requests:
cpu: 50m
memory: 256Mi
nodeSelector: {}
tolerations: []
podAnnotations: {}
affinity: {}
service:
type: ClusterIP
port: 80
enketo:
image:
repository: kobotoolbox/enketo-express-extra-widgets
pullPolicy: IfNotPresent
tag: "7.3.1"
replicaCount: 1
resources:
limits:
cpu: 1000m
memory: 512Mi
requests:
cpu: 500m
memory: 256Mi
autoscaling:
enabled: false
minReplicas: 2
maxReplicas: 20
targetCPU: 80
# targetMemory: 90
# strategy:
# type: RollingUpdate
# rollingUpdate:
# maxSurge: "25%""
# maxUnavailable: "25%"
nodeSelector: {}
tolerations: []
affinity: {}
service:
type: ClusterIP
port: 80
budget:
minAvailable: 1
env:
normal:
ENKETO_APP_NAME: "Enketo Express for KoboToolbox"
ENKETO_MAX_PROCESSES: "4"
ENKETO_LINKED_FORM_AND_DATA_SERVER_NAME: "KoboToolbox"
ENKETO_LINKED_FORM_AND_DATA_SERVER_ALLOW_INSECURE_TRANSPORT: "true"
ENKETO_LINKED_FORM_AND_DATA_SERVER_SERVER_URL: ""
# -- Maps settings. It is an array, see https://github.com/enketo/enketo-express/blob/master/config/sample.env#L16-L19
ENKETO_MAPS_0_NAME: humanitarian
ENKETO_MAPS_0_TILES_0: "https://{s}.tile.openstreetmap.fr/hot/{z}/{x}/{y}.png"
ENKETO_MAPS_0_ATTRIBUTION: "© <a href=\"http://openstreetmap.org\">OpenStreetMap</a> & <a href=\"https://www.hotosm.org/updates/2013-09-29_a_new_window_on_openstreetmap_data\">Yohan Boniface & Humanitarian OpenStreetMap Team</a> | <a href=\"https://www.openstreetmap.org/copyright\">Terms</a>"
ENKETO_MAPS_1_NAME: satellite
ENKETO_MAPS_1_TILES_0: "https://server.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer/tile/{z}/{y}/{x}"
ENKETO_MAPS_1_ATTRIBUTION: "Tiles © Esri — Source: Esri, i-cubed, USDA, USGS, AEX, GeoEye, Getmapping, Aerogrid, IGN, IGP, UPR-EGP, and the GIS User Community"
ENKETO_MAPS_2_NAME: terrain
ENKETO_MAPS_2_TILES_0: "https://{s}.tile.opentopomap.org/{z}/{x}/{y}.png"
ENKETO_MAPS_2_ATTRIBUTION: "© <a href=\"https://openstreetmap.org\">OpenStreetMap</a> | <a href=\"https://www.openstreetmap.org/copyright\">Terms</a>"
ENKETO_MAPS_3_NAME: streets
ENKETO_MAPS_3_TILES_0: "https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png"
ENKETO_MAPS_3_ATTRIBUTION: "© <a href=\"https://openstreetmap.org\">OpenStreetMap</a> | <a href=\"https://www.openstreetmap.org/copyright\">Terms</a>"
# -- Payload limit
ENKETO_PAYLOAD_LIMIT: 1mb
# -- Text field character limit
ENKETO_TEXT_FIELD_CHARACTER_LIMIT: "1000000"
# -- Widgets list. It is an array.
ENKETO_WIDGETS_0: note
ENKETO_WIDGETS_1: select-desktop
ENKETO_WIDGETS_2: select-mobile
ENKETO_WIDGETS_3: autocomplete
ENKETO_WIDGETS_4: geo
ENKETO_WIDGETS_5: textarea
ENKETO_WIDGETS_6: url
ENKETO_WIDGETS_7: table
ENKETO_WIDGETS_8: radio
ENKETO_WIDGETS_9: date
ENKETO_WIDGETS_10: time
ENKETO_WIDGETS_11: datetime
ENKETO_WIDGETS_12: select-media
ENKETO_WIDGETS_13: file
ENKETO_WIDGETS_14: draw
ENKETO_WIDGETS_15: rank
ENKETO_WIDGETS_16: likert
ENKETO_WIDGETS_17: range
ENKETO_WIDGETS_18: columns
ENKETO_WIDGETS_19: image-view
ENKETO_WIDGETS_20: comment
ENKETO_WIDGETS_21: image-map
ENKETO_WIDGETS_22: date-native
ENKETO_WIDGETS_23: date-native-ios
ENKETO_WIDGETS_24: date-mobile
ENKETO_WIDGETS_25: text-max
ENKETO_WIDGETS_26: text-print
ENKETO_WIDGETS_27: rating
ENKETO_WIDGETS_28: thousands-sep
ENKETO_WIDGETS_29: integer
ENKETO_WIDGETS_30: decimal
ENKETO_WIDGETS_31: "../../../node_modules/enketo-image-customization-widget/image-customization"
ENKETO_WIDGETS_32: "../../../node_modules/enketo-literacy-test-widget/literacywidget"
secret:
{}
# Set if kobotoolbox.redis is unset
# ENKETO_REDIS_MAIN_URL: "redis://localhost:6379"
# ENKETO_REDIS_CACHE_URL: "redis://localhost:6379"
extraVolumeMounts: [ ]
extraVolumes: [ ]
ingress:
enabled: false
className: ""
annotations: {}
# kubernetes.io/ingress.class: nginx
hosts:
- host: chart-example.local
paths:
- path: /
pathType: ImplementationSpecific
tls: []
# - secretName: chart-example-tls
# hosts:
# - chart-example.local
nginx:
image: nginx:1.27
# Chart managed mongodb uses replicaset (by default) to enable high availility
# Kobotoolbox does not have automatic retry logic when the mongodb master changes
# These errors should be rare and brief, minimally acceptable for production.
mongodb:
enabled: false
architecture: "replicaset"
pdb:
create: true
initdbScripts:
init_01_add_index.js: |
db = db.getSiblingDB("formhub");
db.instances.createIndex( { _userform_id: 1 } );
db.instances.createIndex( { _userform_id: 1, _id: -1 } );
persistence:
size: 40Gi
auth:
rootPassword: "change_me_please"
usernames:
- "mongo"
passwords:
- "change_me_please"
databases:
- "formhub"
resources:
limits:
cpu: 1000m
memory: 1Gi
requests:
cpu: 100m
memory: 512Mi
# Chart managed redis is intended for testing only
redis:
enabled: false
auth:
password: "change_me_please"
commonConfiguration: |-
maxmemory 900mb
maxmemory-policy volatile-lru
master:
persistence:
size: 10Gi
resources:
limits:
cpu: 1000m
memory: 1Gi
requests:
cpu: 100m
memory: 512Mi
replica:
persistence:
size: 10Gi
resources:
limits:
cpu: 1000m
memory: 1Gi
requests:
cpu: 100m
memory: 512Mi
# Chart managed postgresql is intended for testing only
postgresql:
enabled: false
auth:
postgresPassword: "change_me_please"
primary:
persistence:
size: 10Gi
initdb:
scripts:
create-koboform.sql: |
CREATE DATABASE koboform;
resources:
limits:
cpu: 1000m
memory: 1Gi
requests:
cpu: 100m
memory: 512Mi
imagePullSecrets: []
nameOverride: ""
fullnameOverride: ""
serviceAccount:
# Specifies whether a service account should be created
create: true
# Annotations to add to the service account
annotations: {}
# The name of the service account to use.
# If not set and create is true, a name is generated using the fullname template
name: ""
podAnnotations: {}
podSecurityContext: {}
# fsGroup: 2000
securityContext:
runAsNonRoot: true
runAsUser: 1000
# capabilities:
# drop:
# - ALL
# readOnlyRootFilesystem: true