-
Notifications
You must be signed in to change notification settings - Fork 178
Expand file tree
/
Copy pathvalues-eso-otel.yaml
More file actions
2598 lines (2485 loc) · 101 KB
/
values-eso-otel.yaml
File metadata and controls
2598 lines (2485 loc) · 101 KB
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
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
image:
api:
repository: langgenius/dify-api
tag: "1.12.1"
pullPolicy: IfNotPresent
web:
repository: langgenius/dify-web
tag: "1.12.1"
pullPolicy: IfNotPresent
sandbox:
repository: langgenius/dify-sandbox
tag: "0.2.12"
pullPolicy: IfNotPresent
proxy:
repository: nginx
tag: latest
pullPolicy: IfNotPresent
ssrfProxy:
repository: ubuntu/squid
tag: latest
pullPolicy: IfNotPresent
pluginDaemon:
repository: langgenius/dify-plugin-daemon
tag: 0.5.3-local
pullPolicy: IfNotPresent
api:
enabled: true
replicas: 1
resources: {}
nodeSelector: {}
affinity: {}
tolerations: []
priorityClassName: ""
autoscaling:
enabled: false
minReplicas: 1
maxReplicas: 100
targetCPUUtilizationPercentage: 80
# targetMemoryUtilizationPercentage: 80
## Configure extra options for API containers' liveness, readiness, and startup probes
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#configure-probes
## @param api.livenessProbe.enabled Enable livenessProbe on API nodes
livenessProbe:
enabled: true
initialDelaySeconds: 30
periodSeconds: 30
timeoutSeconds: 5
failureThreshold: 5
successThreshold: 1
## @param api.readinessProbe.enabled Enable readinessProbe on API nodes
readinessProbe:
enabled: true
initialDelaySeconds: 10
periodSeconds: 10
timeoutSeconds: 5
failureThreshold: 5
successThreshold: 1
## @param api.startupProbe.enabled Enable startupProbe on API containers
startupProbe:
enabled: false
initialDelaySeconds: 5
periodSeconds: 10
timeoutSeconds: 5
failureThreshold: 5
successThreshold: 1
## @param api.updateStrategy Update strategy type and configuration parameters
## ref: https://kubernetes.io/docs/concepts/workloads/controllers/deployment/#strategy
updateStrategy: {}
## @param api.customLivenessProbe Custom livenessProbe that overrides the default one
customLivenessProbe: {}
## @param api.customReadinessProbe Custom readinessProbe that overrides the default one
customReadinessProbe: {}
## @param api.customStartupProbe Custom startupProbe that overrides the default one
customStartupProbe: {}
## Configure Pods Security Context
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod
## @param api.podSecurityContext.enabled Enabled Dify api pod's Security Context
## @param api.podSecurityContext.fsGroup Set Dify api pod's Security Context fsGroup
##
podSecurityContext:
enabled: true
fsGroup: 1001
## Configure Container Security Context
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod
## @param api.containerSecurityContext.enabled Dify api containers' Security Context
## @param api.containerSecurityContext.runAsUser Set Dify api containers' Security Context runAsUser
##
containerSecurityContext:
enabled: true
runAsUser: 1001
extraEnv:
# Apply your own Environment Variables if necessary.
# Variables defined here take higher priority than those from `ConfigMap` generated given `.Values`
# Direct value assignment
# - name: LANG
# value: "C.UTF-8"
# - name: SECRET_KEY
# Use existing k8s secrets
# - name: DB_PASSWORD
# valueFrom:
# secretKeyRef:
# name: my-secret
# key: DB_PASSWORD
- name: CHECK_UPDATE_URL
# Won't check for updates if left empty
# value: https://updates.dify.ai
value: ""
- name: CODE_MAX_NUMBER
value: "9223372036854775807"
- name: CODE_MIN_NUMBER
value: "-9223372036854775808"
- name: CODE_MAX_STRING_LENGTH
value: "80000"
- name: TEMPLATE_TRANSFORM_MAX_LENGTH
value: "80000"
- name: CODE_MAX_STRING_ARRAY_LENGTH
value: "30"
- name: CODE_MAX_OBJECT_ARRAY_LENGTH
value: "30"
- name: CODE_MAX_NUMBER_ARRAY_LENGTH
value: "1000"
## OpenTelemetry (OTEL) configuration
otel:
enabled: true
# OpenTelemetry trace endpoint
traceEndpoint: ""
# OpenTelemetry metric endpoint
metricEndpoint: ""
# OpenTelemetry base endpoint
baseEndpoint: "http://otel-collector:4318"
# OpenTelemetry API Key (sensitive - stored in secret)
apiKey: ""
# OpenTelemetry exporter protocol
exporterProtocol: ""
# OpenTelemetry exporter type
exporterType: "otlp"
# OpenTelemetry sampling rate
samplingRate: 0.1
# OpenTelemetry batch export schedule delay in milliseconds
batchExportScheduleDelay: 5000
# OpenTelemetry max queue size
maxQueueSize: 2048
# OpenTelemetry max export batch size
maxExportBatchSize: 512
# OpenTelemetry metric export interval in milliseconds
metricExportInterval: 60000
# OpenTelemetry batch export timeout in milliseconds
batchExportTimeout: 10000
# OpenTelemetry metric export timeout in milliseconds
metricExportTimeout: 30000
service:
port: 5001
annotations: {}
labels: {}
clusterIP: ""
# The log level for the application. Supported values are `DEBUG`, `INFO`, `WARNING`, `ERROR`, `CRITICAL`
logLevel: INFO
url:
# The backend URL of the console API, used to concatenate the authorization callback.
# If empty, it is the same domain. Example: https://api.console.dify.ai
consoleApi: ""
# The front-end URL of the console web, used to concatenate some front-end addresses and for CORS configuration use.
# If empty, it is the same domain. Example: https://console.dify.ai
consoleWeb: ""
# Service API URL, used to display Service API Base URL to the front-end.
# If empty, it is the same domain. Example: https://api.dify.ai
serviceApi: ""
# WebApp API backend URL, used to declare the back-end URL for the front-end API.
# If empty, it is the same domain. Example: https://app.dify.ai
appApi: ""
# WebApp URL, used to display WebAPP API Base URL to the front-end. If empty, it is the same domain. Example: https://api.app.dify.ai
appWeb: ""
# File preview or download URL prefix, used to display the file preview
# or download URL to the front-end or as a multi-modal model input;
# In order to prevent others from forging, the image preview URL is signed and has a 5-minute expiration time.
files: ""
marketplaceApi: "https://marketplace.dify.ai"
marketplace: "https://marketplace.dify.ai"
mail:
# default email sender from email address, if not given a specific address
defaultSender: "YOUR EMAIL FROM (e.g.: no-reply <no-reply@dify.ai>)"
# Mail type, supported values are `smtp`, `resend` https://docs.dify.ai/getting-started/install-self-hosted/environments#mail-related-configuration
type: "resend"
resend:
# Resend API Key
apiKey: ""
# Resend API URL
apiUrl: https://api.resend.com
# SMTP Configuration
smtp:
server: "smtp.server.com"
port: 465
username: "YOUR EMAIL"
password: ""
tls:
enabled: true
optimistic: false
# When enabled, migrations will be executed prior to application startup and the application will start after the migrations have completed.
migration: true
# A secret key that is used for securely signing the session cookie and encrypting sensitive information on the database. You can generate a strong key using `openssl rand -base64 42`.
secretKey: ""
## Storage for `api` and `worker`
## Ignored if `.Values.externalS3.enabled` is true
##
persistence:
mountPath: "/app/api/storage"
annotations:
helm.sh/resource-policy: keep
persistentVolumeClaim:
existingClaim: ""
## Dify App Data Persistent Volume Storage Class
## If defined, storageClassName: <storageClass>
## If set to "-", storageClassName: "", which disables dynamic provisioning
## If undefined (the default) or set to null, no storageClassName spec is
## set, choosing the default provisioner.
## ReadWriteMany access mode required for `api` and `worker`
##
storageClass:
# Workaround: Single-replica setup for CI test environments lacking ReadWriteMany PVC provisioning.
# DO NOT use in production.
accessModes: ReadWriteOnce
size: 5Gi
subPath: ""
## Dify API ServiceAccount configuration
##
serviceAccount:
## @param api.serviceAccount.create Specifies whether a ServiceAccount should be created
##
create: false
## @param api.serviceAccount.name The name of the ServiceAccount to use.
## If not set and create is true, a name is generated using the common.names.fullname template
##
name: ""
## @param api.serviceAccount.automountServiceAccountToken Allows auto mount of ServiceAccountToken on the serviceAccount created
##
automountServiceAccountToken: false
## @param api.serviceAccount.annotations Additional custom annotations for the ServiceAccount
##
annotations: {}
worker:
enabled: true
replicas: 1
resources: {}
nodeSelector: {}
affinity: {}
tolerations: []
priorityClassName: ""
autoscaling:
enabled: false
minReplicas: 1
maxReplicas: 100
targetCPUUtilizationPercentage: 80
# targetMemoryUtilizationPercentage: 80
## Configure extra options for worker containers' liveness, readiness, and startup probes
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#configure-probes
## @param worker.customLivenessProbe Custom livenessProbe that overrides the default one
customLivenessProbe: {}
## @param worker.customReadinessProbe Custom readinessProbe that overrides the default one
customReadinessProbe: {}
## @param worker.customStartupProbe Custom startupProbe that overrides the default one
customStartupProbe: {}
## @param worker.updateStrategy Update strategy type and configuration parameters
## ref: https://kubernetes.io/docs/concepts/workloads/controllers/deployment/#strategy
updateStrategy: {}
## Configure Pods Security Context
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod
## @param worker.podSecurityContext.enabled Enabled Dify worker pod's Security Context
## @param worker.podSecurityContext.fsGroup Set Dify worker pod's Security Context fsGroup
##
podSecurityContext:
enabled: true
fsGroup: 1001
## Configure Container Security Context
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod
## @param worker.containerSecurityContext.enabled Dify worker containers' Security Context
## @param worker.containerSecurityContext.runAsUser Set Dify worker containers' Security Context runAsUser
##
containerSecurityContext:
enabled: true
runAsUser: 1001
extraEnv:
# Apply your own Environment Variables if necessary.
# Variables defined here take higher priority than those from `ConfigMap` generated given `.Values`
# Direct value assignment
# - name: LANG
# value: "C.UTF-8"
# - name: SECRET_KEY
# Use existing k8s secrets
# - name: DB_PASSWORD
# valueFrom:
# secretKeyRef:
# name: my-secret
# key: DB_PASSWORD
logLevel: INFO
## Dify Worker ServiceAccount configuration
##
serviceAccount:
## @param worker.serviceAccount.create Specifies whether a ServiceAccount should be created
##
create: false
## @param worker.serviceAccount.name The name of the ServiceAccount to use.
## If not set and create is true, a name is generated using the common.names.fullname template
##
name: ""
## @param worker.serviceAccount.automountServiceAccountToken Allows auto mount of ServiceAccountToken on the serviceAccount created
##
automountServiceAccountToken: false
## @param worker.serviceAccount.annotations Additional custom annotations for the ServiceAccount
##
annotations: {}
beat:
enabled: false
resources: {}
nodeSelector: {}
affinity: {}
tolerations: []
priorityClassName: ""
## Configure extra options for celery beat containers' liveness, readiness, and startup probes
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#configure-probes
## @param beat.customLivenessProbe Custom livenessProbe that overrides the default one (None)
customLivenessProbe: {}
## @param beat.customReadinessProbe Custom readinessProbe that overrides the default one (None)
customReadinessProbe: {}
## @param beat.customStartupProbe Custom startupProbe that overrides the default one (None)
customStartupProbe: {}
## @param beat.updateStrategy Update strategy type and configuration parameters
## ref: https://kubernetes.io/docs/concepts/workloads/controllers/deployment/#strategy
updateStrategy:
type: Recreate
# Configure Pods Security Context
podSecurityContext: {}
# Configure Container Security Context
containerSecurityContext: {}
extraEnv:
# Apply your own Environment Variables if necessary.
# Variables defined here take higher priority than those from `ConfigMap` generated given `.Values`
# - name: ENABLE_CLEAN_EMBEDDING_CACHE_TASK
# value: "false"
logLevel: INFO
## celery beat ServiceAccount configuration
##
serviceAccount:
## @param beat.serviceAccount.create Specifies whether a ServiceAccount should be created
##
create: false
## @param beat.serviceAccount.name The name of the ServiceAccount to use.
## If not set and create is true, a name is generated using the common.names.fullname template
##
name: ""
## @param beat.serviceAccount.automountServiceAccountToken Allows auto mount of ServiceAccountToken on the serviceAccount created
##
automountServiceAccountToken: false
## @param beat.serviceAccount.annotations Additional custom annotations for the ServiceAccount
##
annotations: {}
proxy:
enabled: true
replicas: 1
resources: {}
nodeSelector: {}
affinity: {}
tolerations: []
priorityClassName: ""
## Configure extra options for proxy containers' liveness, readiness, and startup probes
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#configure-probes
## @param proxy.customLivenessProbe Custom livenessProbe that overrides the default one
customLivenessProbe: {}
## @param proxy.customReadinessProbe Custom readinessProbe that overrides the default one
customReadinessProbe: {}
## @param proxy.customStartupProbe Custom startupProbe that overrides the default one
customStartupProbe: {}
## @param proxy.clientMaxBodySize Custom client_max_body_size param nginx default: 15m
clientMaxBodySize: ""
## @param proxy.updateStrategy Update strategy type and configuration parameters
## ref: https://kubernetes.io/docs/concepts/workloads/controllers/deployment/#strategy
updateStrategy: {}
# Configure Pods Security Context
podSecurityContext: {}
# Configure Container Security Context
containerSecurityContext: {}
extraEnv:
# Apply your own Environment Variables if necessary
# - name: LANG
# value: "C.UTF-8"
log:
persistence:
## If true, create/use a Persistent Volume Claim for log
## If false, flush logs to stdout & stderr
##
enabled: false
mountPath: "/var/log/nginx"
annotations:
helm.sh/resource-policy: keep
persistentVolumeClaim:
existingClaim: ""
## Nginx Logs Persistent Volume Storage Class
## If defined, storageClassName: <storageClass>
## If set to "-", storageClassName: "", which disables dynamic provisioning
## If undefined (the default) or set to null, no storageClassName spec is
## set, choosing the default provisioner.
## ReadWriteMany access mode required for nginx
##
storageClass:
# Workaround: Single-replica setup for CI test environments lacking ReadWriteMany PVC provisioning.
# DO NOT use in production.
accessModes: ReadWriteOnce
size: 1Gi
subPath: ""
## Proxy ServiceAccount configuration
##
serviceAccount:
## @param proxy.serviceAccount.create Specifies whether a ServiceAccount should be created
##
create: false
## @param proxy.serviceAccount.name The name of the ServiceAccount to use.
## If not set and create is true, a name is generated using the common.names.fullname template
##
name: ""
## @param proxy.serviceAccount.automountServiceAccountToken Allows auto mount of ServiceAccountToken on the serviceAccount created
##
automountServiceAccountToken: false
## @param proxy.serviceAccount.annotations Additional custom annotations for the ServiceAccount
##
annotations: {}
web:
enabled: true
replicas: 1
resources: {}
nodeSelector: {}
affinity: {}
tolerations: []
priorityClassName: ""
autoscaling:
enabled: false
minReplicas: 1
maxReplicas: 100
targetCPUUtilizationPercentage: 80
# targetMemoryUtilizationPercentage: 80
## Configure extra options for web containers' liveness, readiness, and startup probes
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#configure-probes
## @param web.livenessProbe.enabled Enable livenessProbe on web nodes
livenessProbe:
enabled: true
initialDelaySeconds: 5
periodSeconds: 30
timeoutSeconds: 5
failureThreshold: 5
successThreshold: 1
## @param web.readinessProbe.enabled Enable readinessProbe on web nodes
readinessProbe:
enabled: true
initialDelaySeconds: 5
periodSeconds: 10
timeoutSeconds: 5
failureThreshold: 5
successThreshold: 1
## @param web.startupProbe.enabled Enable startupProbe on web containers
startupProbe:
enabled: false
initialDelaySeconds: 5
periodSeconds: 10
timeoutSeconds: 5
failureThreshold: 5
successThreshold: 1
## @param web.updateStrategy Update strategy type and configuration parameters
## ref: https://kubernetes.io/docs/concepts/workloads/controllers/deployment/#strategy
updateStrategy: {}
## @param web.customLivenessProbe Custom livenessProbe that overrides the default one
customLivenessProbe: {}
## @param web.customReadinessProbe Custom readinessProbe that overrides the default one
customReadinessProbe: {}
## @param web.customStartupProbe Custom startupProbe that overrides the default one
customStartupProbe: {}
# Configure Pods Security Context
podSecurityContext: {}
# Configure Container Security Context
containerSecurityContext: {}
extraEnv:
# Apply your own Environment Variables if necessary
- name: EDITION
value: "SELF_HOSTED"
service:
port: 3000
annotations: {}
labels: {}
clusterIP: ""
## Web ServiceAccount configuration
##
serviceAccount:
## @param web.serviceAccount.create Specifies whether a ServiceAccount should be created
##
create: false
## @param web.serviceAccount.name The name of the ServiceAccount to use.
## If not set and create is true, a name is generated using the common.names.fullname template
##
name: ""
## @param web.serviceAccount.automountServiceAccountToken Allows auto mount of ServiceAccountToken on the serviceAccount created
##
automountServiceAccountToken: false
## @param web.serviceAccount.annotations Additional custom annotations for the ServiceAccount
##
annotations: {}
## @param web.enableServiceLinks Disable this feature if additional environment variables would lead to `E2BIG` errors in case frontend were managed by `pm2`
##
enableServiceLinks: false
sandbox:
enabled: true
replicas: 1
resources: {}
nodeSelector: {}
affinity: {}
tolerations: []
priorityClassName: ""
autoscaling:
enabled: false
minReplicas: 1
maxReplicas: 100
targetCPUUtilizationPercentage: 80
# targetMemoryUtilizationPercentage: 80
## Configure extra options for sandbox containers' liveness, readiness, and startup probes
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#configure-probes
## @param sandbox.livenessProbe.enabled Enable livenessProbe on sandbox nodes
livenessProbe:
enabled: true
initialDelaySeconds: 1
periodSeconds: 5
timeoutSeconds: 5
failureThreshold: 2
successThreshold: 1
## @param sandbox.readinessProbe.enabled Enable readinessProbe on sandbox nodes
readinessProbe:
enabled: true
initialDelaySeconds: 10
periodSeconds: 10
timeoutSeconds: 5
failureThreshold: 2
successThreshold: 1
## @param sandbox.startupProbe.enabled Enable startupProbe on sandbox containers
startupProbe:
enabled: false
initialDelaySeconds: 5
periodSeconds: 10
timeoutSeconds: 5
failureThreshold: 2
successThreshold: 1
## @param sandbox.updateStrategy Update strategy type and configuration parameters
## ref: https://kubernetes.io/docs/concepts/workloads/controllers/deployment/#strategy
updateStrategy: {}
## @param sandbox.customLivenessProbe Custom livenessProbe that overrides the default one
customLivenessProbe: {}
## @param sandbox.customReadinessProbe Custom readinessProbe that overrides the default one
customReadinessProbe: {}
## @param sandbox.customStartupProbe Custom startupProbe that overrides the default one
customStartupProbe: {}
# Configure Pods Security Context
podSecurityContext: {}
# Configure Container Security Context
containerSecurityContext: {}
extraEnv:
# Apply your own Environment Variables if necessary
# - name: LANG
# value: "C.UTF-8"
- name: WORKER_TIMEOUT
value: "15"
service:
port: 8194
annotations: {}
labels: {}
clusterIP: ""
auth:
apiKey: ""
## Sandbox ServiceAccount configuration
##
serviceAccount:
## @param sandbox.serviceAccount.create Specifies whether a ServiceAccount should be created
##
create: false
## @param sandbox.serviceAccount.name The name of the ServiceAccount to use.
## If not set and create is true, a name is generated using the common.names.fullname template
##
name: ""
## @param sandbox.serviceAccount.automountServiceAccountToken Allows auto mount of ServiceAccountToken on the serviceAccount created
##
automountServiceAccountToken: false
## @param sandbox.serviceAccount.annotations Additional custom annotations for the ServiceAccount
##
annotations: {}
ssrfProxy:
enabled: false
replicas: 1
resources: {}
nodeSelector: {}
affinity: {}
tolerations: []
priorityClassName: ""
## Configure extra options for ssrf proxy containers' liveness, readiness, and startup probes
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#configure-probes
## @param ssrfProxy.customLivenessProbe Custom livenessProbe that overrides the default one
customLivenessProbe: {}
## @param ssrfProxy.customReadinessProbe Custom readinessProbe that overrides the default one
customReadinessProbe: {}
## @param ssrfProxy.customStartupProbe Custom startupProbe that overrides the default one
customStartupProbe: {}
## @param ssrfProxy.updateStrategy Update strategy type and configuration parameters
## ref: https://kubernetes.io/docs/concepts/workloads/controllers/deployment/#strategy
updateStrategy: {}
# Configure Pods Security Context
podSecurityContext: {}
# Configure Container Security Context
containerSecurityContext: {}
extraEnv:
# Apply your own Environment Variables if necessary
# - name: LANG
# value: "C.UTF-8"
log:
persistence:
## If true, create/use a Persistent Volume Claim for log
## If false, flush logs to stdout & stderr
##
enabled: false
mountPath: "/var/log/squid"
annotations:
helm.sh/resource-policy: keep
persistentVolumeClaim:
existingClaim: ""
## Squid Logs Persistent Volume Storage Class
## If defined, storageClassName: <storageClass>
## If set to "-", storageClassName: "", which disables dynamic provisioning
## If undefined (the default) or set to null, no storageClassName spec is
## set, choosing the default provisioner.
## ReadWriteMany access mode required for squid
##
storageClass:
accessModes: ReadWriteMany
size: 1Gi
subPath: ""
service:
port: 3128
annotations: {}
labels: {}
clusterIP: ""
## ssrfProxy ServiceAccount configuration
##
serviceAccount:
## @param ssrfProxy.serviceAccount.create Specifies whether a ServiceAccount should be created
##
create: false
## @param ssrfProxy.serviceAccount.name The name of the ServiceAccount to use.
## If not set and create is true, a name is generated using the common.names.fullname template
##
name: ""
## @param ssrfProxy.serviceAccount.automountServiceAccountToken Allows auto mount of ServiceAccountToken on the serviceAccount created
##
automountServiceAccountToken: false
## @param ssrfProxy.serviceAccount.annotations Additional custom annotations for the ServiceAccount
##
annotations: {}
pluginDaemon:
enabled: true
replicas: 1
resources: {}
nodeSelector: {}
affinity: {}
tolerations: []
priorityClassName: ""
## Configure extra options for plugin daemon containers' liveness, readiness, and startup probes
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#configure-probes
## @param pluginDaemon.customLivenessProbe Custom livenessProbe that overrides the default one
customLivenessProbe: {}
## @param pluginDaemon.customReadinessProbe Custom readinessProbe that overrides the default one
customReadinessProbe: {}
## @param pluginDaemon.customStartupProbe Custom startupProbe that overrides the default one
customStartupProbe: {}
## @param pluginDaemon.updateStrategy Update strategy type and configuration parameters
## ref: https://kubernetes.io/docs/concepts/workloads/controllers/deployment/#strategy
updateStrategy: {}
# Configure Pods Security Context
podSecurityContext: {}
# Configure Container Security Context
containerSecurityContext: {}
extraEnv:
# Apply your own Environment Variables if necessary
# - name: LANG
# value: "C.UTF-8"
service:
ports:
daemon: 5002
# Leave it unspecified in order NOT to expose port for remote installation as a `Service`.
pluginInstall:
# pluginInstall: 5003
annotations: {}
labels: {}
clusterIP: ""
auth:
serverKey: "lYkiYYT6owG+71oLerGzA7GXCgOT++6ovaezWAjpCjf+Sjc3ZtU+qUEi"
# A separate key for interactions between `api`(`worker`) and `pluginDaemon`
difyApiKey: "QaHbTe77CtuXmsfyhR7+vRjI/+XbV1AaFy691iy+kGDv2Jvy0/eAh8Y1"
## Storage for `pluginDaemon`
## Ignored if external object storage were configured via `.Values.externalS3` sections.
##
persistence:
mountPath: "/app/storage"
annotations:
helm.sh/resource-policy: keep
persistentVolumeClaim:
existingClaim: ""
## Dify Plugin Daemon Persistent Volume Storage Class
## If defined, storageClassName: <storageClass>
## If set to "-", storageClassName: "", which disables dynamic provisioning
## If undefined (the default) or set to null, no storageClassName spec is
## set, choosing the default provisioner.
## ReadWriteMany access mode required for `pluginDaemon`
##
storageClass:
# Workaround: Single-replica setup for CI test environments lacking ReadWriteMany PVC provisioning.
# DO NOT use in production.
accessModes: ReadWriteOnce
size: 5Gi
subPath: ""
marketplace:
enabled: true
# Takes effect only if built-in `nginx` were enabled
# If enabled, route marketplace api call to built-in `nginx` and strip headers for tracking.
# https://github.com/BorisPolonsky/dify-helm/pull/131
apiProxyEnabled: false
## pluginDaemon ServiceAccount configuration
##
serviceAccount:
## @param pluginDaemon.serviceAccount.create Specifies whether a ServiceAccount should be created
##
create: false
## @param pluginDaemon.serviceAccount.name The name of the ServiceAccount to use.
## If not set and create is true, a name is generated using the common.names.fullname template
##
name: ""
## @param pluginDaemon.serviceAccount.automountServiceAccountToken Allows auto mount of ServiceAccountToken on the serviceAccount created
##
automountServiceAccountToken: false
## @param pluginDaemon.serviceAccount.annotations Additional custom annotations for the ServiceAccount
##
annotations: {}
postgresql:
enabled: true
name: postgres
global:
storageClass: ""
postgresql:
auth:
existingSecret: "postgresql-secret"
username: ""
password: ""
database: "dify"
image:
registry: docker.io
repository: bitnamilegacy/postgresql
tag: 15.3.0-debian-11-r7
pullPolicy: IfNotPresent
## @param architecture PostgreSQL architecture (`standalone` or `replication`)
##
architecture: standalone
## Replication configuration
## Ignored if `architecture` is `standalone`
##
primary:
resources:
limits: {}
requests: {}
persistence:
enabled: false
storageClass: ""
accessModes:
- ReadWriteOnce
size: 8Gi
## @param primary.affinity Affinity for PostgreSQL primary pods assignment
## ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity
## Note: primary.podAffinityPreset, primary.podAntiAffinityPreset, and primary.nodeAffinityPreset will be ignored when it's set
##
affinity: {}
## @param primary.tolerations Tolerations for PostgreSQL primary pods assignment
## ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
##
tolerations: []
## @section PostgreSQL read only replica parameters (only used when `architecture` is set to `replication`)
##
readReplicas:
name: read
replicaCount: 1
resources:
limits: {}
requests: {}
persistence:
enabled: false
storageClass: ""
accessModes:
- ReadWriteOnce
size: 8Gi
## @param readReplicas.affinity Affinity for PostgreSQL read only pods assignment
## ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity
## Note: primary.podAffinityPreset, primary.podAntiAffinityPreset, and primary.nodeAffinityPreset will be ignored when it's set
##
affinity: {}
## @param readReplicas.tolerations Tolerations for PostgreSQL read only pods assignment
## ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
##
tolerations: []
weaviate:
enabled: true
image:
# registry where weaviate image is stored
registry: cr.weaviate.io
# Tag of weaviate image to deploy
# Note: We strongly recommend you overwrite this value in your own values.yaml.
# Otherwise a mere upgrade of the chart could lead to an unexpected upgrade
# of weaviate. In accordance with Infra-as-code, you should pin this value
# down and only change it if you explicitly want to upgrade the Weaviate
# version.
tag: 1.27.27
repo: semitechnologies/weaviate
# Image pull policy: https://kubernetes.io/docs/concepts/containers/images/#image-pull-policy
pullPolicy: IfNotPresent
pullSecrets: []
# overwrite command and args if you want to run specific startup scripts, for
# example setting the nofile limit
command: ["/bin/weaviate"]
args:
- '--host'
- '0.0.0.0'
- '--port'
- '8080'
- '--scheme'
- 'http'
- '--config-file'
- '/weaviate-config/conf.yaml'
- --read-timeout=60s
- --write-timeout=60s
# below is an example that can be used to set an arbitrary nofile limit at
# startup:
#
# command:
# - "/bin/sh"
# args:
# - "-c"
# - "ulimit -n 65535 && /bin/weaviate --host 0.0.0.0 --port 8080 --scheme http --config-file /weaviate-config/conf.yaml"
# it is possible to change the sysctl's 'vm.max_map_count' using initContainer for Weaviate,
# the init Container runs before Weaviate Container and sets the value for the WHOLE node
# to the one provided below.
# it is possible to run additional initContainer before Weaviate is up and running. You can specify the
# containers as a list in `extraInitContainers`, exactly how they are defined in a kubernetes manifest:
# https://kubernetes.io/docs/concepts/workloads/pods/init-containers/
initContainers:
sysctlInitContainer:
enabled: false
sysctlVmMaxMapCount: 524288
image:
registry: docker.io
repo: alpine
tag: latest
pullPolicy: IfNotPresent
ensureFileOwnershipContainer:
# This init container sets the file ownerships of /var/lib/weaviate directory to the ones set in
# containerSecurityContext.runAsUser and containerSecurityContext.fsGroup settings to ensure that Weaviate is able
# to start in unprivileged configuration.
# Enable this init container only if Weaviate was configured previously without security context
# and now containerSecurityContext is provided to run Weaviate container with non-root user.
# Please be sure to set at least containerSecurityContext.runAsUser and containerSecurityContext.fsGroup.
enabled: false
extraInitContainers: {}
# - image: some-image
# name: some-name
# Scale replicas of Weaviate. Note that as of v1.8.0 dynamic scaling is limited
# to cases where no data is imported yet. Scaling down after importing data may
# break usability. Full dynamic scalability will be added in a future release.
replicas: 1
# Define how pods will be created. Possible values: OrderedReady | Parallel
# OrderedReady - pods will be created one after another
# Parallel - all pods will be created at once
podManagementPolicy: Parallel
updateStrategy:
type: RollingUpdate
# This setting is only available in K8s v1.24 and higher.
# Setting maxUnavailable to 100% results in removing all of the pods
# and re-creating them in parallel all at once.
# rollingUpdate:
# maxUnavailable: 100%
resources: {}
# requests:
# cpu: '500m'
# memory: '300Mi'
# limits:
# cpu: '1000m'
# memory: '1Gi'
# Add a service account ot the Weaviate pods if you need Weaviate to have permissions to
# access kubernetes resources or cloud provider resources. For example for it to have
# access to a backup up bucket, or if you want to restrict Weaviate pod in any way.
# By default, use the default ServiceAccount
serviceAccountName:
# The Persistent Volume Claim settings for Weaviate. If there's a
# storage.fullnameOverride field set, then the default pvc will not be
# created, instead the one defined in fullnameOverride will be used
storage:
size: 32Gi
storageClassName: ""
# The service controls how weaviate is exposed to the outside world. If you
# don't want a public load balancer, you can also choose 'ClusterIP' to make
# weaviate only accessible within your cluster.
service:
name: weaviate
# type: LoadBalancer
type: ClusterIP
loadBalancerSourceRanges: []
# optionally set cluster IP if you want to set a static IP
clusterIP:
annotations: {}
# Adjust liveness, readiness and startup probes configuration
startupProbe:
# For kubernetes versions prior to 1.18 startupProbe is not supported thus can be disabled.
enabled: false
initialDelaySeconds: 300
periodSeconds: 60
failureThreshold: 50
successThreshold: 1
timeoutSeconds: 3
livenessProbe:
initialDelaySeconds: 900
periodSeconds: 10
failureThreshold: 30
successThreshold: 1
timeoutSeconds: 3
readinessProbe:
initialDelaySeconds: 3
periodSeconds: 10
failureThreshold: 3
successThreshold: 1
timeoutSeconds: 3
terminationGracePeriodSeconds: 600
# Weaviate Config
#
# The following settings allow you to customize Weaviate to your needs, for
# example set authentication and authorization options. See weaviate docs
# (https://www.weaviate.io/developers/weaviate/) for all
# configuration.
authentication:
anonymous_access:
enabled: false
# This configuration allows to add API keys to Weaviate. This configuration allows only
# plain text API Keys, if you want to store the API Keys in a Kubernetes secret you can
# configure the same configuration with ENV Vars. Read the `env` section below on what
# needs to be configured. If using ENV Vars over this make sure to comment out the whole
# `apikey` section (as it is by default). ENV Vars has priority over this config.
apikey:
enabled: true
# Any number of allowed API Keys as plain text
allowed_keys:
- ""
# You can either set a single user for all the listed Allowed API keys OR
# one user per API Key, i.e. length(apikey.allowed_keys) == length(apikey.users) OR
# length(apikey.users) == 1
# Only the first user-key pair will be used by `dify.api` and `dify-worker`
# NOTE: Make sure the lister Users are added to the Authorization as well.
users:
- hello@dify.ai