-
Notifications
You must be signed in to change notification settings - Fork 0
/
values.local.yaml
1371 lines (1207 loc) · 49.3 KB
/
values.local.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
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
# README:
# - If using a fixed tag for images, changing the image pull policy to anything other than "Always"
# will use a cached/stale image.
# - We recommend using unique tags for user code images, as this will guarantee that the docker
# image will be consistent for the pipeline's entire execution.
---
global:
postgresqlSecretName: "dagster-postgresql-secret"
# The DAGSTER_HOME env var is set by default on all nodes from this value
dagsterHome: "/opt/dagster/dagster_home"
# A service account name to use for this chart and all subcharts. If this is set, then
# dagster subcharts will not create their own service accounts.
serviceAccountName: ""
# The name for the secret used to pass Celery broker and backend connection urls. This can
# generally be left as the default, but can be useful if setting generateCeleryConfigSecret
# to false below.
celeryConfigSecretName: "dagster-celery-config-secret"
nameOverride: ""
fullnameOverride: ""
rbacEnabled: true
# Specify secrets to run containers based on images in private registries. See:
# https://kubernetes.io/docs/concepts/containers/images/#referring-to-an-imagepullsecrets-on-a-pod
imagePullSecrets: []
####################################################################################################
# Dagster Webserver: Configuration for the Dagster webserver
####################################################################################################
dagsterWebserver:
replicaCount: 1
image:
# When a tag is not supplied for a Dagster provided image,
# it will default as the Helm chart version.
repository: "docker.io/dagster/dagster-celery-k8s"
tag: ~
pullPolicy: Always
# Support overriding the name prefix of the webserver pods
nameOverride: "dagster-webserver"
# Support path prefix (i.e. /dagster)
pathPrefix: ~
service:
type: ClusterIP
# Defines the port where the webserver will serve requests; if changed, don't forget to update the
# livenessProbe and startupProbe entries below as well.
port: 80
annotations: {}
# Defines a workspace for the webserver. This should only be set if user deployments are enabled, but
# the subchart is disabled to manage user deployments in a separate Helm release.
# In this case, the webserver will need the addresses of the code servers in order to load the user code,
# or the name of an existing configmap to mount as the workspace file.
workspace:
enabled: false
# List of servers to include in the workflow file. When set,
# `externalConfigmap` must be empty.
servers:
- host: "k8s-example-user-code-1"
port: 3030
name: "user-code-example"
# Defines the name of a configmap provisioned outside of the
# Helm release to use as workspace file. When set, `servers`
# must be empty.
externalConfigmap: ~
# Deploy a separate instance of the webserver in --read-only mode (can't launch runs, disable schedules, etc.)
enableReadOnly: false
# The timeout in milliseconds to set on database statements sent to the Dagster instance.
dbStatementTimeout: ~
# The maximum age in seconds of a connection to use in the sqlalchemy connection pool.
# Defaults to 1 hour if not set.
# Set to -1 to disable.
dbPoolRecycle: ~
# The log level of the uvicorn web server, defaults to warning if not set
logLevel: ~
# Additional environment variables to set.
# These will be directly applied to the daemon container. See
# https://kubernetes.io/docs/tasks/inject-data-application/define-environment-variable-container/
#
# Example:
#
# env:
# - name: ENV_ONE
# value: "one"
# - name: ENV_TWO
# value: "two"
env: []
# Additional environment variables can be retrieved and set from ConfigMaps. See:
# https://kubernetes.io/docs/tasks/configure-pod-container/configure-pod-configmap/#configure-all-key-value-pairs-in-a-configmap-as-container-environment-variables
#
# Example:
#
# envConfigMaps:
# - name: config-map
envConfigMaps: []
# Additional environment variables can be retrieved and set from Secrets. See:
# https://kubernetes.io/docs/concepts/configuration/secret/#use-case-as-container-environment-variables
#
# Example:
#
# envSecrets:
# - name: secret
envSecrets: []
# Additional labels that should be included on the deployment. See:
# https://kubernetes.io/docs/concepts/overview/working-with-objects/labels
#
# Example:
# labels:
# my-label-key: my_label-value
deploymentLabels: {}
# Additional labels that should be included on the pod. See:
# https://kubernetes.io/docs/concepts/overview/working-with-objects/labels
#
# Example:
# labels:
# my-label-key: my_label-value
labels: {}
# Additional volumes that should be included. See:
# https://v1-18.docs.kubernetes.io/docs/reference/generated/kubernetes-api/v1.18/#volume-v1-core
#
# Example:
#
# volumes:
# - name: my-volume
# configMap: my-config-map
volumes: []
# Additional volume mounts that should be included. See:
# See: https://v1-18.docs.kubernetes.io/docs/reference/generated/kubernetes-api/v1.18/#volumemount-v1-core
#
# Example:
#
# volumeMounts:
# - name: test-volume
# mountPath: /opt/dagster/test_folder
# subPath: test_file.yaml
volumeMounts: []
# Support Node, affinity and tolerations for webserver pod assignment. See:
# https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#nodeselector
# https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity
# https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
annotations: {}
nodeSelector: {}
affinity: {}
tolerations: []
podSecurityContext: {}
securityContext: {}
resources: {}
# Configure initContainer resources separately from main container
initContainerResources: {}
# Override the default K8s scheduler
# schedulerName: ~
# If you want to specify resources, uncomment the following lines, adjust them as necessary,
# and remove the curly braces after 'resources:'.
# limits:
# cpu: 100m
# memory: 128Mi
# requests:
# cpu: 100m
# memory: 128Mi
# Readiness probe detects when the pod is ready to serve requests.
# https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes
readinessProbe:
httpGet:
path: "/server_info"
port: 80
periodSeconds: 20
timeoutSeconds: 10
successThreshold: 1
failureThreshold: 3
# As of 0.14.0, liveness probes are disabled by default. If you want to enable them, it's recommended to also
# enable startup probes.
livenessProbe: {}
startupProbe:
enabled: false
####################################################################################################
# Compute Log Manager: Configuration for the compute log manager.
#
# By default, NoOpComputeLogManager is set as a compute log manager. As a result, stdout and stderr
# logs will be unavailable in the Dagster UI. To change this behavior, choose a compute log
# manager with a storage backend to capture and persist stdout and stderr logs.
#
# See https://docs.dagster.io/deployment/dagster-instance#compute-log-storage for more information.
####################################################################################################
computeLogManager:
# Type can be one of [
# NoOpComputeLogManager,
# AzureBlobComputeLogManager,
# GCSComputeLogManager,
# S3ComputeLogManager,
# CustomComputeLogManager,
# ]
type: NoOpComputeLogManager
config: {}
## Uncomment this configuration if the AzureBlobComputeLogManager is selected
# azureBlobComputeLogManager:
# storageAccount: ~
# container: ~
# secretKey: ~
# defaultAzureCredential: ~
# localDir: ~
# prefix: ~
# uploadInterval: ~
## Uncomment this configuration if the GCSComputeLogManager is selected
# gcsComputeLogManager:
# bucket: ~
# localDir: ~
# prefix: ~
# jsonCredentialsEnvvar: ~
# uploadInterval: ~
## Uncomment this configuration if the S3ComputeLogManager is selected
# s3ComputeLogManager:
# bucket: ~
# localDir: ~
# prefix: ~
# useSsl: ~
# verify: ~
# verifyCertPath: ~
# endpointUrl: ~
# skipEmptyFiles: ~
# uploadInterval: ~
# uploadExtraArgs: {}
## Uncomment this configuration if the CustomComputeLogManager is selected.
## Using this setting requires a custom webserver image that defines the user specified
## compute log manager in an installed python module.
# customComputeLogManager:
# module: ~
# class: ~
# config: {}
pythonLogs: {}
## The names of python loggers that will be captured as Dagster logs
# managedPythonLoggers:
# - foo_logger
## The log level for the instance. Logs emitted below this severity will be ignored.
## One of [NOTSET, DEBUG, INFO, WARNING, WARN, ERROR, FATAL, CRITICAL]
# pythonLogLevel: INFO
## Python log handlers that will be applied to all Dagster logs
# dagsterHandlerConfig:
# handlers:
# myHandler:
# class: logging.FileHandler
# filename: "/logs/my_dagster_logs.log"
# mode: "a"
####################################################################################################
# User Code Deployments: Configuration for user code containers to be loaded via GRPC server. For
# each item in the "deployments" list, a K8s Deployment and K8s Service will be created to run the
# GRPC server that the Dagster webserver communicates with to get definitions information and the current
# image information. These deployments can be updated independently of the Dagster webserver, and the webserver
# will pull the current image for all execution. When using a distributed executor (such as
# Celery-K8s) for job execution, the current image will be queried once and used for all
# op executions for that run. In order to guarantee that all op executions within a job
# execution use the same image, we recommend using a unique tag (ie not "latest").
#
# All user code will be invoked within the images.
####################################################################################################
dagster-user-deployments:
# Creates a workspace file with the gRPC servers hosting your user code.
enabled: true
# If you plan on deploying user code in a separate Helm release, set this to false.
enableSubchart: true
# Specify secrets to run user code server containers based on images in private registries. See:
# https://kubernetes.io/docs/concepts/containers/images/#referring-to-an-imagepullsecrets-on-a-pod
imagePullSecrets: []
# List of unique deployments
deployments:
- name: "dinkind"
image:
# When a tag is not supplied, it will default as the Helm chart version.
repository: "dinkind-registry:5000/dinkind_code_location"
tag: "0.0.1"
# Change with caution! If you're using a fixed tag for pipeline run images, changing the
# image pull policy to anything other than "Always" will use a cached/stale image, which is
# almost certainly not what you want.
pullPolicy: Always
# Arguments to `dagster api grpc`.
# Ex: "dagster api grpc -m dagster_test.test_project.test_jobs.repo -a define_demo_execution_repo"
# would translate to:
# dagsterApiGrpcArgs:
# - "-m"
# - "dagster_test.test_project.test_jobs.repo"
# - "-a"
# - "define_demo_execution_repo"
#
# The `dagsterApiGrpcArgs` key can also be replaced with `codeServerArgs` to use a new
# experimental `dagster code-server start` command instead of `dagster api grpc`, which takes
# identical arguments but can reload its definitions from within the Dagster UI without
# needing to restart the user code deployment pod.
dagsterApiGrpcArgs:
- "--python-file"
- "definitions.py"
port: 3030
# Whether or not to include configuration specified for this user code deployment in the pods
# launched for runs from that deployment
includeConfigInLaunchedRuns:
enabled: true
# Additional environment variables to set.
# These will be directly applied to the daemon container. See
# https://kubernetes.io/docs/tasks/inject-data-application/define-environment-variable-container/
#
# Example:
#
# env:
# - name: ENV_ONE
# value: "one"
# - name: ENV_TWO
# value: "two"
env: []
# Additional environment variables can be retrieved and set from ConfigMaps. See:
# https://kubernetes.io/docs/tasks/configure-pod-container/configure-pod-configmap/#configure-all-key-value-pairs-in-a-configmap-as-container-environment-variables
#
# Example:
#
# envConfigMaps:
# - name: config-map
envConfigMaps: []
# Additional environment variables can be retrieved and set from Secrets. See:
# https://kubernetes.io/docs/concepts/configuration/secret/#use-case-as-container-environment-variables
#
# Example:
#
# envSecrets:
# - name: secret
envSecrets: []
# Additional labels that should be included. See:
# https://kubernetes.io/docs/concepts/overview/working-with-objects/labels
#
# Example:
# labels:
# my-label-key: my_label-value
labels: {}
# Additional volumes that should be included. See:
# https://v1-18.docs.kubernetes.io/docs/reference/generated/kubernetes-api/v1.18/#volume-v1-core
#
# Example:
#
# volumes:
# - name: my-volume
# configMap: my-config-map
volumes: []
# Additional volume mounts that should be included. See:
# See: https://v1-18.docs.kubernetes.io/docs/reference/generated/kubernetes-api/v1.18/#volumemount-v1-core
#
# Example:
#
# volumeMounts:
# - name: test-volume
# mountPath: /opt/dagster/test_folder
# subPath: test_file.yaml
volumeMounts: []
# Init containers to run before the main container. See:
# https://kubernetes.io/docs/concepts/workloads/pods/init-containers/
initContainers: []
# Additional containers (i.e. sidecars) to run alongside the main container. See:
# https://kubernetes.io/docs/concepts/workloads/pods/sidecar-containers/
#
# Example:
#
# sidecarContainers:
# - name: my-sidecar
# image: ...
# volumeMounts: []
# env: []
sidecarContainers: []
annotations: {}
nodeSelector: {}
affinity: {}
tolerations: []
podSecurityContext: {}
securityContext: {}
resources: {}
# Override the default K8s scheduler
# schedulerName: ~
# Readiness probe detects when the pod is ready to serve requests.
# https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes
readinessProbe:
# Readiness probes are enabled by default.
enabled: true
# If `readinessProbe` has no `exec` field, then the following default will be used:
# exec:
# command: ["dagster", "api", "grpc-health-check", "-p", "{{ $deployment.port }}"]
periodSeconds: 20
timeoutSeconds: 10
successThreshold: 1
# Allow roughly 300 seconds to start up by default
failureThreshold: 1
# As of 0.14.0, liveness probes are disabled by default. If you want to enable them, it's recommended to also
# enable startup probes.
livenessProbe: {}
startupProbe:
enabled: false
service:
annotations: {}
####################################################################################################
# Scheduler: Configuration for the scheduler
####################################################################################################
scheduler:
# Type can be one of [
# DagsterDaemonScheduler,
# CustomScheduler,
# ]
type: DagsterDaemonScheduler
config:
{}
## This configuration will only be used if the DagsterDaemonScheduler is selected.
# daemonScheduler:
# maxCatchupRuns: 5
# maxTickRetries: 0
## This configuration will only be used if the CustomScheduler is selected.
## Using this setting requires a custom webserver image that defines the user specified
## scheduler in an installed python module.
# customScheduler:
# module: ~
# class: ~
# config: {}
####################################################################################################
# Run Launcher: Configuration for run launcher
####################################################################################################
runLauncher:
# Type can be one of [K8sRunLauncher, CeleryK8sRunLauncher, CustomRunLauncher]
type: K8sRunLauncher
config:
# This configuration will only be used if the K8sRunLauncher is selected
k8sRunLauncher:
# Change with caution! If you're using a fixed tag for pipeline run images, changing the
# image pull policy to anything other than "Always" will use a cached/stale image, which is
# almost certainly not what you want.
imagePullPolicy: "Always"
## The image to use for the launched Job's Dagster container.
## The `pullPolicy` field is ignored. Use`imagePullPolicy` instead.
# image:
# repository: ""
# tag: ""
# pullPolicy: Always
# The Kubernetes namespace where new jobs will be launched.
# By default, the release namespace is used.
jobNamespace: ~
# Set to true to load kubeconfig from within cluster.
loadInclusterConfig: true
# File to load kubeconfig from. Only set this if loadInclusterConfig is false.
kubeconfigFile: ~
# Additional environment variables can be retrieved and set from ConfigMaps for the Job. See:
# https://kubernetes.io/docs/tasks/configure-pod-container/configure-pod-configmap/#configure-all-key-value-pairs-in-a-configmap-as-container-environment-variables
#
# Example:
#
# envConfigMaps:
# - name: config-map
envConfigMaps: []
# Additional environment variables can be retrieved and set from Secrets for the Job. See:
# https://kubernetes.io/docs/concepts/configuration/secret/#use-case-as-container-environment-variables
#
# Example:
#
# envSecrets:
# - name: secret
envSecrets: []
# Additional variables from the existing environment can be passed into the Job.
#
# Example:
#
# envVars:
# - "FOO_ENV_VAR" (Will pull the value of FOO_ENV_VAR from the calling process)
# - "BAR_ENV_VAR=baz_value" (Will set the value of BAR_ENV_VAR to baz_value)
envVars: []
# Additional volumes that should be included in the Job's Pod. See:
# https://v1-18.docs.kubernetes.io/docs/reference/generated/kubernetes-api/v1.18/#volume-v1-core
#
# Example:
#
# volumes:
# - name: my-volume
# configMap: my-config-map
volumes: []
# Additional volume mounts that should be included in the container in the Job's Pod. See:
# See: https://v1-18.docs.kubernetes.io/docs/reference/generated/kubernetes-api/v1.18/#volumemount-v1-core
#
# Example:
#
# volumeMounts:
# - name: test-volume
# mountPath: /opt/dagster/test_folder
# subPath: test_file.yaml
volumeMounts: []
# Additional labels that should be included in the Job's Pod. See:
# https://kubernetes.io/docs/concepts/overview/working-with-objects/labels
#
# Example:
# labels:
# my_label_key: my_label_value
labels: {}
# Default compute resource requirements for the container in the Job's Pod. See:
# https://kubernetes.io/docs/concepts/configuration/manage-resources-containers
#
# Example:
# resources:
# limits:
# cpu: 100m
# memory: 128Mi
# requests:
# cpu: 100m
# memory: 128Mi
resources: {}
# Override the default K8s scheduler for launched Pods
# schedulerName: ~
# Whether the launched Kubernetes Jobs and Pods should fail if the Dagster run fails.
failPodOnRunFailure: false
# Security settings for the container. See
# https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-capabilities-for-a-container
securityContext: ~
# Raw k8s configuration for the Kubernetes Job and Pod created for the run.
# See: https://docs.dagster.io/deployment/guides/kubernetes/customizing-your-deployment
#
# Example:
# runK8sConfig:
# containerConfig: # raw config for the pod's main container
# resources:
# limits:
# cpu: 100m
# memory: 128Mi
# podTemplateSpecMetadata: # raw config for the pod's metadata
# annotations:
# mykey: myvalue
# podSpecConfig: # raw config for the spec of the launched's pod
# nodeSelector:
# disktype: ssd
# jobSpecConfig: # raw config for the kubernetes job's spec
# ttlSecondsAfterFinished: 7200
# jobMetadata: # raw config for the kubernetes job's metadata
# annotations:
# mykey: myvalue
runK8sConfig: {}
# This configuration will only be used if the CeleryK8sRunLauncher is selected
celeryK8sRunLauncher:
# Change with caution! If you're using a fixed tag for pipeline run images, changing the
# image pull policy to anything other than "Always" will use a cached/stale image, which is
# almost certainly not what you want.
imagePullPolicy: "Always"
# The Celery workers can be deployed with a fixed image (no user code included)
image:
# When a tag is not supplied for a Dagster provided image,
# it will default as the Helm chart version.
repository: "docker.io/dagster/dagster-celery-k8s"
tag: ~
pullPolicy: Always
# The Kubernetes namespace where new jobs will be launched.
# By default, the release namespace is used.
jobNamespace: ~
# Support overriding the name prefix of Celery worker pods
nameOverride: "celery-workers"
# Additional config options for Celery, applied to all queues.
# These can be overridden per-queue below.
# For available options, see:
# https://docs.celeryq.dev/en/stable/userguide/configuration.html
configSource: {}
# Additional Celery worker queues can be configured here. When overriding, be sure to
# provision a "dagster" worker queue, as this is the default queue used by Dagster.
#
# Optionally, labels and node selectors can be set on the Celery queue's workers.
# Specifying a queue's node selector will override any existing node selector defaults.
# configSource will be merged with the shared configSource above.
workerQueues:
- name: "dagster"
replicaCount: 2
labels: {}
nodeSelector: {}
configSource: {}
additionalCeleryArgs: []
# Additional environment variables to set on the celery/job containers
# A Kubernetes ConfigMap will be created with these environment variables. See:
# https://kubernetes.io/docs/concepts/configuration/configmap/
#
# Example:
#
# env:
# ENV_ONE: one
# ENV_TWO: two
env: {}
# Additional environment variables can be retrieved and set from ConfigMaps. See:
# https://kubernetes.io/docs/tasks/configure-pod-container/configure-pod-configmap/#configure-all-key-value-pairs-in-a-configmap-as-container-environment-variables
#
# Example:
#
# envConfigMaps:
# - name: config-map
envConfigMaps: []
# Additional environment variables can be retrieved and set from Secrets. See:
# https://kubernetes.io/docs/concepts/configuration/secret/#use-case-as-container-environment-variables
#
# Example:
#
# envSecrets:
# - name: secret
envSecrets: []
annotations: {}
# Sets a node selector as a default for all Celery queues.
#
# See:
# https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#nodeselector
nodeSelector: {}
# Support affinity and tolerations for Celery pod assignment. See:
# https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity
# https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
affinity: {}
tolerations: []
podSecurityContext: {}
securityContext: {}
# Specify resources.
# Example:
#
# resources:
# limits:
# cpu: 100m
# memory: 128Mi
# requests:
# cpu: 100m
# memory: 128Mi
resources: {}
# Override the default K8s scheduler
# schedulerName: ~
# If `livenessProbe` does not contain `exec` field, then we will default to using:
# exec:
# command:
# - /bin/sh
# - -c
# - dagster-celery status -A dagster_celery_k8s.app -y {{ $.Values.global.dagsterHome }}/celery-config.yaml | grep "${HOSTNAME}:.*OK"
livenessProbe:
initialDelaySeconds: 15
periodSeconds: 10
timeoutSeconds: 10
successThreshold: 1
failureThreshold: 3
# Additional volumes that should be included in the Job's Pod. See:
# https://v1-18.docs.kubernetes.io/docs/reference/generated/kubernetes-api/v1.18/#volume-v1-core
#
# Example:
#
# volumes:
# - name: my-volume
# configMap: my-config-map
volumes: []
# Additional volume mounts that should be included in the container in the Job's Pod. See:
# See: https://v1-18.docs.kubernetes.io/docs/reference/generated/kubernetes-api/v1.18/#volumemount-v1-core
#
# Example:
#
# volumeMounts:
# - name: test-volume
# mountPath: /opt/dagster/test_folder
# subPath: test_file.yaml
volumeMounts: []
# Additional labels that should be included in the Job's Pod. See:
# https://kubernetes.io/docs/concepts/overview/working-with-objects/labels
#
# Example:
# labels:
# my_label_key: my_label_value
labels: {}
# Whether the launched Kubernetes Jobs and Pods should fail if the Dagster run fails.
failPodOnRunFailure: false
## Uncomment this configuration will only be used if the CustomRunLauncher is selected.
## Using this setting requires a custom webserver image that defines the user specified
## run launcher in an installed python module.
# customRunLauncher:
# module: ~
# class: ~
# config: {}
####################################################################################################
# PostgreSQL: Configuration values for postgresql
#
# https://github.com/kubernetes/charts/blob/master/stable/postgresql/README.md
#
# A PostgreSQL database is required to run Dagster on Kubernetes. If postgresql.enabled is marked as
# false, the PG credentials specified here will still be used, and should point to an external PG
# database that is accessible from this chart.
####################################################################################################
postgresql:
# set postgresql.enabled to be false to disable deploy of a PostgreSQL database and use an
# existing external PostgreSQL database
enabled: true
# Used by init container to check that db is running. (Even if enabled:false)
image:
repository: "library/postgres"
tag: "14.6"
pullPolicy: IfNotPresent
# set this PostgreSQL hostname when using an external PostgreSQL database
postgresqlHost: ""
postgresqlUsername: test
# Note when changing this password (e.g. in test) that credentials will
# persist as long as the PVCs do -- see:
# https://github.com/helm/charts/issues/12836#issuecomment-524552358
postgresqlPassword: test
postgresqlDatabase: test
# set postgresql parameter keywords for the connection string.
# see: https://www.postgresql.org/docs/current/libpq-connect.html#LIBPQ-PARAMKEYWORDS
postgresqlParams: {}
# When set, overrides the default `postgresql` scheme for the connection string.
# (e.g., set to `postgresql+pg8000` to use the `pg8000` library).
# See: https://docs.sqlalchemy.org/en/13/dialects/postgresql.html#dialect-postgresql
postgresqlScheme: ""
service:
port: 5432
# Whether to generate a secret resource for the PostgreSQL password. Useful if
# global.postgresqlSecretName is managed outside of this helm chart.
generatePostgresqlPasswordSecret: true
# If true, the helm chart will create a secret for you with the Celery broker and backend
# connection urls, including an optional Redis or RabbitMQ password. Set this to false if you want
# to manage a secret with the Celery broker/backend connection strings yourself. If you manage
# the secret yourself, the secret should have the name specified in global.celeryConfigSecretName,
# and should have the broker URL in a DAGSTER_CELERY_BROKER_URL key and the backend URL in a
# DAGSTER_CELERY_BACKEND_URL key.
generateCeleryConfigSecret: true
####################################################################################################
# RabbitMQ: Configuration values for rabbitmq. Only one of RabbitMQ / Redis should be enabled.
####################################################################################################
rabbitmq:
enabled: false
image:
repository: "bitnami/rabbitmq"
tag: "3.8.12"
pullPolicy: IfNotPresent
rabbitmq:
username: test
password: test
service:
port: 5672
# https://github.com/helm/charts/issues/17250#issuecomment-533444837
volumePermissions:
enabled: true
image:
repository: bitnami/minideb
tag: stretch
pullPolicy: IfNotPresent
####################################################################################################
# Redis: Configuration values for Redis. Can be used instead of RabbitMQ.
####################################################################################################
redis:
# To use redis instead of rabbitmq, set `enabled` to true.
enabled: false
# To manage redis via helm, set `internal` to `true`. To use an external redis, set `internal` to `false`.
# Note: If `internal` is true, then redis pod will be created regardless of `enabled` flag.
internal: false
usePassword: false
password: "test"
# Redis host URL
host: ""
# Redis port
port: 6379
# Set DB number for Redis broker DB (default 0)
brokerDbNumber: 0
# Set DB number for Redis backend DB (default 0)
backendDbNumber: 0
# If your Redis connection needs configuration options, you can use this field to specific the
# exact connection URL needed, rather than letting it be constructed from the Helm values.
brokerUrl: ""
backendUrl: ""
####################################################################################################
# Flower: (Optional) The flower web interface for diagnostics and debugging Celery queues & workers
####################################################################################################
flower:
enabled: false
image:
repository: "docker.io/mher/flower"
tag: "0.9.5"
pullPolicy: Always
service:
type: ClusterIP
annotations: {}
port: 5555
# Support Node, affinity and tolerations for Flower pod assignment. See:
# https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#nodeselector
# https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity
# https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
annotations: {}
nodeSelector: {}
affinity: {}
tolerations: []
podSecurityContext: {}
securityContext: {}
# Override the default K8s scheduler
# schedulerName: ~
resources: {}
# If you want to specify resources, uncomment the following lines, adjust them as necessary,
# and remove the curly braces after 'resources:'.
# limits:
# cpu: 100m
# memory: 128Mi
# requests:
# cpu: 100m
# memory: 128Mi
# Liveness probe detects when to restart flower.
# https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes
livenessProbe:
tcpSocket:
port: "flower"
# initialDelaySeconds: 60
periodSeconds: 20
failureThreshold: 3
# Startup probe (available in kubernetes v1.16+) is used at pod startup. Once it has succeeded,
# then liveness probe takes over.
# If on kubernetes < v1.16, then comment out `startupProbe` lines and comment in
# `initialDelaySeconds: 60` under `livenessProbe`
startupProbe:
tcpSocket:
port: "flower"
periodSeconds: 10
failureThreshold: 6
####################################################################################################
# Ingress: (Optional) Create ingresses for the Dagster webserver and Flower
####################################################################################################
ingress:
enabled: false
annotations: {}
labels: {}
# Specify the IngressClass used to implement this ingress.
#
# See https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#specifying-the-class-of-an-ingress
ingressClassName: ~
dagsterWebserver:
# Ingress hostname for the webserver e.g. dagster.mycompany.com
# This variable allows customizing the route pattern in the ingress. Some
# ingress controllers may only support "/", whereas some may need "/*".
path: "/*"
pathType: ImplementationSpecific
# NOTE: do NOT keep trailing slash. For root configuration, set as empty string
# See: https://github.com/dagster-io/dagster/issues/2073
host: ""
tls:
enabled: false
secretName: ""
# Different http paths to add to the ingress before the default webserver path
# Example:
#
# precedingPaths:
# - path: "/*"
# pathType: ImplementationSpecific
# serviceName: "ssl-redirect"
# servicePort: "use-annotation"
precedingPaths: []
# Different http paths to add to the ingress after the default webserver path
# Example:
#
# succeedingPaths:
# - path: "/*"
# pathType: ImplementationSpecific
# serviceName: "ssl-redirect"
# servicePort: "use-annotation"
succeedingPaths: []
readOnlyDagsterWebserver:
# Ingress hostname for read only webserver e.g. viewer.dagster.mycompany.com
# This variable allows customizing the route pattern in the ingress. Some
# ingress controllers may only support "/", whereas some may need "/*".
path: "/*"
pathType: ImplementationSpecific
# NOTE: do NOT keep trailing slash. For root configuration, set as empty string
# See: https://github.com/dagster-io/dagster/issues/2073
host: ""
tls:
enabled: false
secretName: ""
# Different http paths to add to the ingress before the default webserver path
# Example:
#
# precedingPaths:
# - path: "/*"
# pathType: ImplementationSpecific
# serviceName: "ssl-redirect"
# servicePort: "use-annotation"
precedingPaths: []
# Different http paths to add to the ingress after the default webserver path
# Example:
#
# succeedingPaths:
# - path: "/*"
# pathType: ImplementationSpecific
# serviceName: "ssl-redirect"
# servicePort: "use-annotation"
succeedingPaths: []