Browse Source

[Improvement][Registry][Jdbc] Add jdbc registry config in helm charts (#14431)

* k8s support jdbc registryt

* fix spotless

* fix

* update

* update

* update

* update
3.2.1-prepare
旺阳 1 year ago committed by GitHub
parent
commit
b532fe5eda
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 50
      deploy/kubernetes/dolphinscheduler/templates/_helpers.tpl
  2. 8
      deploy/kubernetes/dolphinscheduler/templates/secret-external-etcd-ssl.yaml
  3. 28
      deploy/kubernetes/dolphinscheduler/templates/secret-registry-database.yaml
  4. 16
      deploy/kubernetes/dolphinscheduler/values.yaml
  5. 2
      docs/docs/en/architecture/configuration.md
  6. 80
      docs/docs/en/guide/installation/kubernetes.md
  7. 80
      docs/docs/zh/guide/installation/kubernetes.md

50
deploy/kubernetes/dolphinscheduler/templates/_helpers.tpl

@ -252,28 +252,48 @@ Create a registry environment variables.
- name: REGISTRY_TYPE - name: REGISTRY_TYPE
{{- if .Values.zookeeper.enabled }} {{- if .Values.zookeeper.enabled }}
value: "zookeeper" value: "zookeeper"
{{- else if .Values.etcd.enabled }} {{- else if .Values.registryEtcd.enabled }}
value: "etcd" value: "etcd"
{{- else if .Values.registryJdbc.enabled }}
value: "jdbc"
{{- else }} {{- else }}
value: {{ .Values.externalRegistry.registryPluginName }} value: {{ .Values.externalRegistry.registryPluginName }}
{{- end }} {{- end }}
{{- if .Values.etcd.enabled }} {{- if .Values.registryEtcd.enabled }}
- name: REGISTRY_ENDPOINTS - name: REGISTRY_ENDPOINTS
value: {{ .Values.etcd.endpoints }} value: {{ .Values.registryEtcd.endpoints }}
- name: REGISTRY_NAMESPACE - name: REGISTRY_NAMESPACE
value: {{ .Values.etcd.namespace }} value: {{ .Values.registryEtcd.namespace }}
- name: REGISTRY_USER - name: REGISTRY_USER
value: {{ .Values.etcd.user }} value: {{ .Values.registryEtcd.user }}
- name: REGISTRY_PASSWORD - name: REGISTRY_PASSWORD
value: {{ .Values.etcd.passWord }} value: {{ .Values.registryEtcd.passWord }}
- name: REGISTRY_AUTHORITY - name: REGISTRY_AUTHORITY
value: {{ .Values.etcd.authority }} value: {{ .Values.registryEtcd.authority }}
- name: REGISTRY_CERT_FILE - name: REGISTRY_CERT_FILE
value: {{ .Values.etcd.ssl.certFile }} value: {{ .Values.registryEtcd.ssl.certFile }}
- name: REGISTRY_KEY_CERT_CHAIN_FILE - name: REGISTRY_KEY_CERT_CHAIN_FILE
value: {{ .Values.etcd.ssl.keyCertChainFile }} value: {{ .Values.registryEtcd.ssl.keyCertChainFile }}
- name: REGISTRY_KEY_FILE - name: REGISTRY_KEY_FILE
value: {{ .Values.etcd.ssl.keyFile }} value: {{ .Values.registryEtcd.ssl.keyFile }}
{{- else if .Values.registryJdbc.enabled }}
- name: REGISTRY_TERM_REFRESH_INTERVAL
value: {{ .Values.registryJdbc.termRefreshInterval }}
- name: REGISTRY_TERM_EXPIRE_TIMES
value: {{ .Values.registryJdbc.termExpireTimes | quote}}
{{- if .Values.registryJdbc.hikariConfig.enabled }}
- name: REGISTRY_HIKARI_CONFIG_DRIVER_CLASS_NAME
value: {{ .Values.registryJdbc.hikariConfig.driverClassName }}
- name: REGISTRY_HIKARI_CONFIG_JDBC_URL
value: {{ .Values.registryJdbc.hikariConfig.jdbcurl }}
- name: REGISTRY_HIKARI_CONFIG_USERNAME
value: {{ .Values.registryJdbc.hikariConfig.username }}
- name: REGISTRY_HIKARI_CONFIG_PASSWORD
valueFrom:
secretKeyRef:
name: {{ include "dolphinscheduler.fullname" . }}-registry-db
key: registry-password
{{- end }}
{{- else }} {{- else }}
- name: REGISTRY_ZOOKEEPER_CONNECT_STRING - name: REGISTRY_ZOOKEEPER_CONNECT_STRING
{{- if .Values.zookeeper.enabled }} {{- if .Values.zookeeper.enabled }}
@ -330,7 +350,7 @@ Create a fsFileResourcePersistence volumeMount.
Create a etcd ssl volume. Create a etcd ssl volume.
*/}} */}}
{{- define "dolphinscheduler.etcd.ssl.volume" -}} {{- define "dolphinscheduler.etcd.ssl.volume" -}}
{{- if .Values.etcd.ssl.enabled -}} {{- if .Values.registryEtcd.ssl.enabled -}}
- name: etcd-ssl - name: etcd-ssl
secret: secret:
secretName: {{ include "dolphinscheduler.fullname" . }}-etcd-ssl secretName: {{ include "dolphinscheduler.fullname" . }}-etcd-ssl
@ -341,14 +361,14 @@ Create a etcd ssl volume.
Create a etcd ssl volumeMount. Create a etcd ssl volumeMount.
*/}} */}}
{{- define "dolphinscheduler.etcd.ssl.volumeMount" -}} {{- define "dolphinscheduler.etcd.ssl.volumeMount" -}}
{{- if .Values.etcd.ssl.enabled -}} {{- if .Values.registryEtcd.ssl.enabled -}}
- mountPath: /opt/dolphinscheduler/{{ .Values.etcd.ssl.certFile }} - mountPath: /opt/dolphinscheduler/{{ .Values.registryEtcd.ssl.certFile }}
name: etcd-ssl name: etcd-ssl
subPath: cert-file subPath: cert-file
- mountPath: /opt/dolphinscheduler/{{ .Values.etcd.ssl.keyCertChainFile }} - mountPath: /opt/dolphinscheduler/{{ .Values.registryEtcd.ssl.keyCertChainFile }}
name: etcd-ssl name: etcd-ssl
subPath: key-cert-chain-file subPath: key-cert-chain-file
- mountPath: /opt/dolphinscheduler/{{ .Values.etcd.ssl.keyFile }} - mountPath: /opt/dolphinscheduler/{{ .Values.registryEtcd.ssl.keyFile }}
name: etcd-ssl name: etcd-ssl
subPath: key-file subPath: key-file
{{- end -}} {{- end -}}

8
deploy/kubernetes/dolphinscheduler/templates/secret-external-etcd-ssl.yaml

@ -14,7 +14,7 @@
# See the License for the specific language governing permissions and # See the License for the specific language governing permissions and
# limitations under the License. # limitations under the License.
# #
{{- if .Values.etcd.ssl.enabled }} {{- if .Values.registryEtcd.ssl.enabled }}
apiVersion: v1 apiVersion: v1
kind: Secret kind: Secret
metadata: metadata:
@ -24,7 +24,7 @@ metadata:
{{- include "dolphinscheduler.common.labels" . | nindent 4 }} {{- include "dolphinscheduler.common.labels" . | nindent 4 }}
type: Opaque type: Opaque
data: data:
cert-file: {{ .Files.Get .Values.etcd.ssl.certFile | b64enc | quote }} cert-file: {{ .Files.Get .Values.registryEtcd.ssl.certFile | b64enc | quote }}
key-cert-chain-file: {{ .Files.Get .Values.etcd.ssl.keyCertChainFile | b64enc | quote }} key-cert-chain-file: {{ .Files.Get .Values.registryEtcd.ssl.keyCertChainFile | b64enc | quote }}
key-file: {{ .Files.Get .Values.etcd.ssl.keyFile | b64enc | quote }} key-file: {{ .Files.Get .Values.registryEtcd.ssl.keyFile | b64enc | quote }}
{{- end }} {{- end }}

28
deploy/kubernetes/dolphinscheduler/templates/secret-registry-database.yaml

@ -0,0 +1,28 @@
#
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
{{- if .Values.registryJdbc.hikariConfig.enabled }}
apiVersion: v1
kind: Secret
metadata:
name: {{ include "dolphinscheduler.fullname" . }}-registry-db
labels:
app.kubernetes.io/name: {{ include "dolphinscheduler.fullname" . }}-registry-db
{{- include "dolphinscheduler.common.labels" . | nindent 4 }}
type: Opaque
data:
registry-password: {{ .Values.registryJdbc.hikariConfig.password | b64enc | quote }}
{{- end }}

16
deploy/kubernetes/dolphinscheduler/values.yaml

@ -97,7 +97,7 @@ zookeeper:
size: "20Gi" size: "20Gi"
storageClass: "-" storageClass: "-"
etcd: registryEtcd:
enabled: false enabled: false
endpoints: "" endpoints: ""
namespace: "dolphinscheduler" namespace: "dolphinscheduler"
@ -111,6 +111,18 @@ etcd:
keyCertChainFile: "etcd-certs/client.crt" keyCertChainFile: "etcd-certs/client.crt"
keyFile: "etcd-certs/client.pem" keyFile: "etcd-certs/client.pem"
registryJdbc:
enabled: false
termRefreshInterval: 2s
termExpireTimes: 3
hikariConfig:
# Default use same Dolphinscheduler's database, if you want to use other database please change `enabled` to `true` and change other configs
enabled: false
driverClassName: com.mysql.cj.jdbc.Driver
jdbcurl: jdbc:mysql://
username: ""
password: ""
## If exists external registry and set zookeeper.enable value to false, the external registry will be used. ## If exists external registry and set zookeeper.enable value to false, the external registry will be used.
externalRegistry: externalRegistry:
registryPluginName: "zookeeper" registryPluginName: "zookeeper"
@ -118,7 +130,9 @@ externalRegistry:
security: security:
authentication: authentication:
# Authentication types (supported types: PASSWORD,LDAP,CASDOOR_SSO)
type: PASSWORD type: PASSWORD
# IF you set type `LDAP`, below config will be effective
ldap: ldap:
urls: ldap://ldap.forumsys.com:389/ urls: ldap://ldap.forumsys.com:389/
basedn: dc=example,dc=com basedn: dc=example,dc=com

2
docs/docs/en/architecture/configuration.md

@ -258,7 +258,7 @@ Location: `api-server/conf/application.yaml`
|security.authentication.ldap.user.identity-attribute|uid|LDAP user identity attribute| |security.authentication.ldap.user.identity-attribute|uid|LDAP user identity attribute|
|security.authentication.ldap.user.email-attribute|mail|LDAP user email attribute| |security.authentication.ldap.user.email-attribute|mail|LDAP user email attribute|
|security.authentication.ldap.user.not-exist-action|CREATE|action when ldap user is not exist,default value: CREATE. Optional values include(CREATE,DENY)| |security.authentication.ldap.user.not-exist-action|CREATE|action when ldap user is not exist,default value: CREATE. Optional values include(CREATE,DENY)|
|security.authentication.ldap.ssl.enable|false|LDAP switch| |security.authentication.ldap.ssl.enable|false|LDAP ssl switch|
|security.authentication.ldap.ssl.trust-store|ldapkeystore.jks|LDAP jks file absolute path| |security.authentication.ldap.ssl.trust-store|ldapkeystore.jks|LDAP jks file absolute path|
|security.authentication.ldap.ssl.trust-store-password|password|LDAP jks password| |security.authentication.ldap.ssl.trust-store-password|password|LDAP jks password|
|security.authentication.casdoor.user.admin||admin user account when you log-in with Casdoor| |security.authentication.casdoor.user.admin||admin user account when you log-in with Casdoor|

80
docs/docs/en/guide/installation/kubernetes.md

@ -514,42 +514,17 @@ common:
SW_GRPC_LOG_SERVER_PORT: "11800" SW_GRPC_LOG_SERVER_PORT: "11800"
``` ```
### How to deploy specific components separately?
Modify the `api.enabled`, `alert.enabled`, `master.enabled`, or `worker.enabled` configuration items in the `values.yaml` file.
For example, if you need to deploy worker to both CPU and GPU servers in a cluster, and the worker uses different images, you can do the following:
```bash
# Install master, api-server, alert-server, and other default components, but do not install worker
helm install dolphinscheduler . --set worker.enabled=false
# Disable the installation of other components, only install worker, use the self-built CPU image, deploy to CPU servers with the `x86` label through nodeselector, and use zookeeper as the external registry center
helm install dolphinscheduler-cpu-worker . \
--set minio.enabled=false --set postgresql.enabled=false --set zookeeper.enabled=false \
--set master.enabled=false --set api.enabled=false --set alert.enabled=false \
--set worker.enabled=true --set image.tag=latest-cpu --set worker.nodeSelector.cpu="x86" \
--set externalRegistry.registryPluginName=zookeeper --set externalRegistry.registryServers=dolphinscheduler-zookeeper:2181
# Disable the installation of other components, only install worker, use the self-built GPU image, deploy to GPU servers with the `a100` label through nodeselector, and use zookeeper as the external registry center
helm install dolphinscheduler-gpu-worker . \
--set minio.enabled=false --set postgresql.enabled=false --set zookeeper.enabled=false \
--set master.enabled=false --set api.enabled=false --set alert.enabled=false \
--set worker.enabled=true --set image.tag=latest-gpu --set worker.nodeSelector.gpu="a100" \
--set externalRegistry.registryPluginName=zookeeper --set externalRegistry.registryServers=dolphinscheduler-zookeeper:2181
```
Please note that the above steps are for reference only, and specific operations need to be adjusted according to the actual situation.
## Appendix-Configuration ## Appendix-Configuration
| Parameter | Description | Default | | Parameter | Description | Default |
|----------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------|---------------------------------------| |----------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------|
| `timezone` | World time and date for cities in all time zones | `Asia/Shanghai` | | `timezone` | World time and date for cities in all time zones | `Asia/Shanghai` |
| | | | | <br/> | | |
| `image.repository` | Docker image repository for the DolphinScheduler | `apache/dolphinscheduler` | | `image.repository` | Docker image repository for the DolphinScheduler | `apache/dolphinscheduler` |
| `image.tag` | Docker image version for the DolphinScheduler | `latest` | | `image.tag` | Docker image version for the DolphinScheduler | `latest` |
| `image.pullPolicy` | Image pull policy. Options: Always, Never, IfNotPresent | `IfNotPresent` | | `image.pullPolicy` | Image pull policy. Options: Always, Never, IfNotPresent | `IfNotPresent` |
| `image.pullSecret` | Image pull secret. An optional reference to secret in the same namespace to use for pulling any of the images | `nil` | | `image.pullSecret` | Image pull secret. An optional reference to secret in the same namespace to use for pulling any of the images | `nil` |
| | | | | <br/> | | |
| `postgresql.enabled` | If not exists external PostgreSQL, by default, the DolphinScheduler will use a internal PostgreSQL | `true` | | `postgresql.enabled` | If not exists external PostgreSQL, by default, the DolphinScheduler will use a internal PostgreSQL | `true` |
| `postgresql.postgresqlUsername` | The username for internal PostgreSQL | `root` | | `postgresql.postgresqlUsername` | The username for internal PostgreSQL | `root` |
| `postgresql.postgresqlPassword` | The password for internal PostgreSQL | `root` | | `postgresql.postgresqlPassword` | The password for internal PostgreSQL | `root` |
@ -566,16 +541,47 @@ Please note that the above steps are for reference only, and specific operations
| `externalDatabase.password` | If exists external PostgreSQL, and set `postgresql.enabled` value to false. DolphinScheduler's database password will use it | `root` | | `externalDatabase.password` | If exists external PostgreSQL, and set `postgresql.enabled` value to false. DolphinScheduler's database password will use it | `root` |
| `externalDatabase.database` | If exists external PostgreSQL, and set `postgresql.enabled` value to false. DolphinScheduler's database database will use it | `dolphinscheduler` | | `externalDatabase.database` | If exists external PostgreSQL, and set `postgresql.enabled` value to false. DolphinScheduler's database database will use it | `dolphinscheduler` |
| `externalDatabase.params` | If exists external PostgreSQL, and set `postgresql.enabled` value to false. DolphinScheduler's database params will use it | `characterEncoding=utf8` | | `externalDatabase.params` | If exists external PostgreSQL, and set `postgresql.enabled` value to false. DolphinScheduler's database params will use it | `characterEncoding=utf8` |
| | | | | <br/> | | |
| `zookeeper.enabled` | If not exists external ZooKeeper, by default, the DolphinScheduler will use a internal ZooKeeper | `true` | | `zookeeper.enabled` | If not exists external ZooKeeper, by default, the DolphinScheduler will use a internal ZooKeeper | `true` |
| `zookeeper.service.port` | The port of zookeeper | `2181` | | `zookeeper.service.port` | The port of zookeeper | `2181` |
| `zookeeper.fourlwCommandsWhitelist` | A list of comma separated Four Letter Words commands to use | `srvr,ruok,wchs,cons` | | `zookeeper.fourlwCommandsWhitelist` | A list of comma separated Four Letter Words commands to use | `srvr,ruok,wchs,cons` |
| `zookeeper.persistence.enabled` | Set `zookeeper.persistence.enabled` to `true` to mount a new volume for internal ZooKeeper | `false` | | `zookeeper.persistence.enabled` | Set `zookeeper.persistence.enabled` to `true` to mount a new volume for internal ZooKeeper | `false` |
| `zookeeper.persistence.size` | `PersistentVolumeClaim` size | `20Gi` | | `zookeeper.persistence.size` | `PersistentVolumeClaim` size | `20Gi` |
| `zookeeper.persistence.storageClass` | ZooKeeper data persistent volume storage class. If set to "-", storageClassName: "", which disables dynamic provisioning | `-` | | `zookeeper.persistence.storageClass` | ZooKeeper data persistent volume storage class. If set to "-", storageClassName: "", which disables dynamic provisioning | `-` |
| `externalRegistry.registryPluginName` | If exists external registry and set `zookeeper.enable` to `false`, specify the external registry plugin name | `zookeeper` | | `registryEtcd.enabled` | If you want to use Etcd for your registry center, change this value to true. And set `zookeeper.enabled` to false | `false` |
| `externalRegistry.registryServers` | If exists external registry and set `zookeeper.enable` to `false`, specify the external registry servers | `127.0.0.1:2181` | | `registryEtcd.endpoints` | Etcd endpoints | `""` |
| | | | | `registryEtcd.namespace` | Etcd namespace | `dolphinscheduler` |
| `registryEtcd.user` | Etcd user | `""` |
| `registryEtcd.passWord` | Etcd passWord | `""` |
| `registryEtcd.authority` | Etcd authority | `""` |
| `registryEtcd.ssl.enabled` | If your Etcd server has configured with ssl, change this value to true. About certification files you can see [here](https://github.com/etcd-io/jetcd/blob/main/docs/SslConfig.md) for how to convert. | `false` |
| `registryEtcd.ssl.certFile` | CertFile file path | `etcd-certs/ca.crt` |
| `registryEtcd.ssl.keyCertChainFile` | keyCertChainFile file path | `etcd-certs/client.crt` |
| `registryEtcd.ssl.keyFile` | keyFile file path | `etcd-certs/client.pem` |
| `registryJdbc.enabled` | If you want to use JDbc for your registry center, change this value to true. And set `zookeeper.enabled` and `registryEtcd.enabled` to false | `false` |
| `registryJdbc.termRefreshInterval` | Used to schedule refresh the ephemeral data/ lock | `2s` |
| `registryJdbc.termExpireTimes` | Used to calculate the expire time | `3` |
| `registryJdbc.hikariConfig.driverClassName` | Default use same Dolphinscheduler's database if you don't change this value. If you set this value, Registry jdbc's database type will use it | `com.mysql.cj.jdbc.Driver` |
| `registryJdbc.hikariConfig.jdbcurl` | Default use same Dolphinscheduler's database if you don't change this value. If you set this value, Registry jdbc's database type will use it | `jdbc:mysql://` |
| `registryJdbc.hikariConfig.username` | Default use same Dolphinscheduler's database if you don't change this value. If you set this value, Registry jdbc's database type will use it | `""` |
| `registryJdbc.hikariConfig.password` | Default use same Dolphinscheduler's database if you don't change this value. If you set this value, Registry jdbc's database type will use it | `""` |
| `externalRegistry.registryPluginName` | If exists external registry and set `zookeeper.enable` && `registryEtcd.enabled` && `registryJdbc.enabled` to `false`, specify the external registry plugin name | `zookeeper` |
| `externalRegistry.registryServers` | If exists external registry and set `zookeeper.enable` && `registryEtcd.enabled` && `registryJdbc.enabled` to `false`, specify the external registry servers | `127.0.0.1:2181` |
| <br/> | | `PASSWORD` |
| `security.authentication.type` | Authentication types (supported types: PASSWORD,LDAP,CASDOOR_SSO) | `ldap://ldap.forumsys.com:389/` |
| `security.authentication.ldap.urls` | LDAP urls | `dc=example,dc=com` |
| `security.authentication.ldap.basedn` | LDAP base dn | `cn=read-only-admin,dc=example,dc=com` |
| `security.authentication.ldap.username` | LDAP username | `password` |
| `security.authentication.ldap.password` | LDAP password | `read-only-admin` |
| `security.authentication.ldap.user.admin` | Admin user account when you log-in with LDAP | `uid` |
| `security.authentication.ldap.user.identityattribute` | LDAP user identity attribute | `mail` |
| `security.authentication.ldap.user.emailattribute` | LDAP user email attribute | `CREATE` |
| `security.authentication.ldap.user.notexistaction` | action when ldap user is not exist,default value: CREATE. Optional values include(CREATE,DENY) | `false` |
| `security.authentication.ldap.ssl.enable` | LDAP ssl switch | `false` |
| `security.authentication.ldap.ssl.truststore` | LDAP jks file absolute path, do not change this value | `/opt/ldapkeystore.jks` |
| `security.authentication.ldap.ssl.jksbase64content` | LDAP jks file base64 content | `""` |
| `security.authentication.ldap.ssl.truststorepassword` | LDAP jks password | `""` |
| <br/> | | |
| `common.configmap.DOLPHINSCHEDULER_OPTS` | The jvm options for dolphinscheduler, suitable for all servers | `""` | | `common.configmap.DOLPHINSCHEDULER_OPTS` | The jvm options for dolphinscheduler, suitable for all servers | `""` |
| `common.configmap.DATA_BASEDIR_PATH` | User data directory path, self configuration, please make sure the directory exists and have read write permissions | `/tmp/dolphinscheduler` | | `common.configmap.DATA_BASEDIR_PATH` | User data directory path, self configuration, please make sure the directory exists and have read write permissions | `/tmp/dolphinscheduler` |
| `common.configmap.RESOURCE_STORAGE_TYPE` | Resource storage type: HDFS, S3, OSS, GCS, ABS, NONE | `HDFS` | | `common.configmap.RESOURCE_STORAGE_TYPE` | Resource storage type: HDFS, S3, OSS, GCS, ABS, NONE | `HDFS` |
@ -614,7 +620,7 @@ Please note that the above steps are for reference only, and specific operations
| `common.fsFileResourcePersistence.accessModes` | `PersistentVolumeClaim` access modes, must be `ReadWriteMany` | `[ReadWriteMany]` | | `common.fsFileResourcePersistence.accessModes` | `PersistentVolumeClaim` access modes, must be `ReadWriteMany` | `[ReadWriteMany]` |
| `common.fsFileResourcePersistence.storageClassName` | Resource persistent volume storage class, must support the access mode: ReadWriteMany | `-` | | `common.fsFileResourcePersistence.storageClassName` | Resource persistent volume storage class, must support the access mode: ReadWriteMany | `-` |
| `common.fsFileResourcePersistence.storage` | `PersistentVolumeClaim` size | `20Gi` | | `common.fsFileResourcePersistence.storage` | `PersistentVolumeClaim` size | `20Gi` |
| | | | | <br/> | | |
| `master.enabled` | Enable or disable the Master component | true | | `master.enabled` | Enable or disable the Master component | true |
| `master.podManagementPolicy` | PodManagementPolicy controls how pods are created during initial scale up, when replacing pods on nodes, or when scaling down | `Parallel` | | `master.podManagementPolicy` | PodManagementPolicy controls how pods are created during initial scale up, when replacing pods on nodes, or when scaling down | `Parallel` |
| `master.replicas` | Replicas is the desired number of replicas of the given Template | `3` | | `master.replicas` | Replicas is the desired number of replicas of the given Template | `3` |
@ -649,7 +655,7 @@ Please note that the above steps are for reference only, and specific operations
| `master.persistentVolumeClaim.accessModes` | `PersistentVolumeClaim` access modes | `[ReadWriteOnce]` | | `master.persistentVolumeClaim.accessModes` | `PersistentVolumeClaim` access modes | `[ReadWriteOnce]` |
| `master.persistentVolumeClaim.storageClassName` | `Master` logs data persistent volume storage class. If set to "-", storageClassName: "", which disables dynamic provisioning | `-` | | `master.persistentVolumeClaim.storageClassName` | `Master` logs data persistent volume storage class. If set to "-", storageClassName: "", which disables dynamic provisioning | `-` |
| `master.persistentVolumeClaim.storage` | `PersistentVolumeClaim` size | `20Gi` | | `master.persistentVolumeClaim.storage` | `PersistentVolumeClaim` size | `20Gi` |
| | | | | <br/> | | |
| `worker.enabled` | Enable or disable the Worker component | true | | `worker.enabled` | Enable or disable the Worker component | true |
| `worker.podManagementPolicy` | PodManagementPolicy controls how pods are created during initial scale up, when replacing pods on nodes, or when scaling down | `Parallel` | | `worker.podManagementPolicy` | PodManagementPolicy controls how pods are created during initial scale up, when replacing pods on nodes, or when scaling down | `Parallel` |
| `worker.replicas` | Replicas is the desired number of replicas of the given Template | `3` | | `worker.replicas` | Replicas is the desired number of replicas of the given Template | `3` |
@ -684,7 +690,7 @@ Please note that the above steps are for reference only, and specific operations
| `worker.persistentVolumeClaim.logsPersistentVolume.accessModes` | `PersistentVolumeClaim` access modes | `[ReadWriteOnce]` | | `worker.persistentVolumeClaim.logsPersistentVolume.accessModes` | `PersistentVolumeClaim` access modes | `[ReadWriteOnce]` |
| `worker.persistentVolumeClaim.logsPersistentVolume.storageClassName` | `Worker` logs data persistent volume storage class. If set to "-", storageClassName: "", which disables dynamic provisioning | `-` | | `worker.persistentVolumeClaim.logsPersistentVolume.storageClassName` | `Worker` logs data persistent volume storage class. If set to "-", storageClassName: "", which disables dynamic provisioning | `-` |
| `worker.persistentVolumeClaim.logsPersistentVolume.storage` | `PersistentVolumeClaim` size | `20Gi` | | `worker.persistentVolumeClaim.logsPersistentVolume.storage` | `PersistentVolumeClaim` size | `20Gi` |
| | | | | <br/> | | |
| `alert.enabled` | Enable or disable the Alert-Server component | true | | `alert.enabled` | Enable or disable the Alert-Server component | true |
| `alert.replicas` | Replicas is the desired number of replicas of the given Template | `1` | | `alert.replicas` | Replicas is the desired number of replicas of the given Template | `1` |
| `alert.strategy.type` | Type of deployment. Can be "Recreate" or "RollingUpdate" | `RollingUpdate` | | `alert.strategy.type` | Type of deployment. Can be "Recreate" or "RollingUpdate" | `RollingUpdate` |
@ -726,7 +732,7 @@ Please note that the above steps are for reference only, and specific operations
| `alert.persistentVolumeClaim.accessModes` | `PersistentVolumeClaim` access modes | `[ReadWriteOnce]` | | `alert.persistentVolumeClaim.accessModes` | `PersistentVolumeClaim` access modes | `[ReadWriteOnce]` |
| `alert.persistentVolumeClaim.storageClassName` | `Alert` logs data persistent volume storage class. If set to "-", storageClassName: "", which disables dynamic provisioning | `-` | | `alert.persistentVolumeClaim.storageClassName` | `Alert` logs data persistent volume storage class. If set to "-", storageClassName: "", which disables dynamic provisioning | `-` |
| `alert.persistentVolumeClaim.storage` | `PersistentVolumeClaim` size | `20Gi` | | `alert.persistentVolumeClaim.storage` | `PersistentVolumeClaim` size | `20Gi` |
| | | | | <br/> | | |
| `api.enabled` | Enable or disable the API-Server component | true | | `api.enabled` | Enable or disable the API-Server component | true |
| `api.replicas` | Replicas is the desired number of replicas of the given Template | `1` | | `api.replicas` | Replicas is the desired number of replicas of the given Template | `1` |
| `api.strategy.type` | Type of deployment. Can be "Recreate" or "RollingUpdate" | `RollingUpdate` | | `api.strategy.type` | Type of deployment. Can be "Recreate" or "RollingUpdate" | `RollingUpdate` |
@ -761,7 +767,7 @@ Please note that the above steps are for reference only, and specific operations
| `api.service.externalName` | `externalName` is the external reference that kubedns or equivalent will return as a CNAME record for this service | `nil` | | `api.service.externalName` | `externalName` is the external reference that kubedns or equivalent will return as a CNAME record for this service | `nil` |
| `api.service.loadBalancerIP` | `loadBalancerIP` when service.type is LoadBalancer. LoadBalancer will get created with the IP specified in this field | `nil` | | `api.service.loadBalancerIP` | `loadBalancerIP` when service.type is LoadBalancer. LoadBalancer will get created with the IP specified in this field | `nil` |
| `api.service.annotations` | `annotations` may need to be set when service.type is LoadBalancer | `{}` | | `api.service.annotations` | `annotations` may need to be set when service.type is LoadBalancer | `{}` |
| | | | | <br/> | | |
| `ingress.enabled` | Enable ingress | `false` | | `ingress.enabled` | Enable ingress | `false` |
| `ingress.host` | Ingress host | `dolphinscheduler.org` | | `ingress.host` | Ingress host | `dolphinscheduler.org` |
| `ingress.path` | Ingress path | `/dolphinscheduler` | | `ingress.path` | Ingress path | `/dolphinscheduler` |

80
docs/docs/zh/guide/installation/kubernetes.md

@ -513,42 +513,17 @@ common:
SW_GRPC_LOG_SERVER_PORT: "11800" SW_GRPC_LOG_SERVER_PORT: "11800"
``` ```
### 如何单独部署特定组件?
修改 `values.yaml` 文件中的 `api.enabled`, `alert.enabled` `master.enabled``worker.enabled` 配置项
例如,在一个集群中需要同时将 worker 部署到 CPU 服务器和 GPU 服务器,并且 worker 使用不同的镜像,可以这样做:
```bash
# 安装 master、api-server、alert-server以及其他默认组件,但是不安装 worker
helm install dolphinscheduler . --set worker.enabled=false
# 禁用其他组件的安装,只安装 worker,使用自行建构建的 CPU镜像,通过 nodeselector部署到附带 x86标签的 CPU服务器,使用 zookeeper作为外部注册中心
helm install dolphinscheduler-cpu-worker . \
--set minio.enabled=false --set postgresql.enabled=false --set zookeeper.enabled=false \
--set master.enabled=false --set api.enabled=false --set alert.enabled=false \
--set worker.enabled=true --set image.tag=latest-cpu --set worker.nodeSelector.cpu="x86" \
--set externalRegistry.registryPluginName=zookeeper --set externalRegistry.registryServers=dolphinscheduler-zookeeper:2181
# 禁用其他组件的安装,只安装 worker,使用自行建构建的 GPU 镜像,通过 nodeselector部署到附带 a100标签的 gpu服务器,使用zookeeper作为外部注册中心
helm install dolphinscheduler-gpu-worker . \
--set minio.enabled=false --set postgresql.enabled=false --set zookeeper.enabled=false \
--set master.enabled=false --set api.enabled=false --set alert.enabled=false \
--set worker.enabled=true --set image.tag=latest-gpu --set worker.nodeSelector.gpu="a100" \
--set externalRegistry.registryPluginName=zookeeper --set externalRegistry.registryServers=dolphinscheduler-zookeeper:2181
```
请注意,以上步骤仅供参考,具体操作需要根据实际情况进行调整。
## 附录-配置 ## 附录-配置
| Parameter | Description | Default | | Parameter | Description | Default |
|----------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------|---------------------------------------| |----------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------|
| `timezone` | World time and date for cities in all time zones | `Asia/Shanghai` | | `timezone` | World time and date for cities in all time zones | `Asia/Shanghai` |
| | | | | <br/> | | |
| `image.repository` | Docker image repository for the DolphinScheduler | `apache/dolphinscheduler` | | `image.repository` | Docker image repository for the DolphinScheduler | `apache/dolphinscheduler` |
| `image.tag` | Docker image version for the DolphinScheduler | `latest` | | `image.tag` | Docker image version for the DolphinScheduler | `latest` |
| `image.pullPolicy` | Image pull policy. Options: Always, Never, IfNotPresent | `IfNotPresent` | | `image.pullPolicy` | Image pull policy. Options: Always, Never, IfNotPresent | `IfNotPresent` |
| `image.pullSecret` | Image pull secret. An optional reference to secret in the same namespace to use for pulling any of the images | `nil` | | `image.pullSecret` | Image pull secret. An optional reference to secret in the same namespace to use for pulling any of the images | `nil` |
| | | | | <br/> | | |
| `postgresql.enabled` | If not exists external PostgreSQL, by default, the DolphinScheduler will use a internal PostgreSQL | `true` | | `postgresql.enabled` | If not exists external PostgreSQL, by default, the DolphinScheduler will use a internal PostgreSQL | `true` |
| `postgresql.postgresqlUsername` | The username for internal PostgreSQL | `root` | | `postgresql.postgresqlUsername` | The username for internal PostgreSQL | `root` |
| `postgresql.postgresqlPassword` | The password for internal PostgreSQL | `root` | | `postgresql.postgresqlPassword` | The password for internal PostgreSQL | `root` |
@ -565,16 +540,47 @@ helm install dolphinscheduler-gpu-worker . \
| `externalDatabase.password` | If exists external PostgreSQL, and set `postgresql.enabled` value to false. DolphinScheduler's database password will use it | `root` | | `externalDatabase.password` | If exists external PostgreSQL, and set `postgresql.enabled` value to false. DolphinScheduler's database password will use it | `root` |
| `externalDatabase.database` | If exists external PostgreSQL, and set `postgresql.enabled` value to false. DolphinScheduler's database database will use it | `dolphinscheduler` | | `externalDatabase.database` | If exists external PostgreSQL, and set `postgresql.enabled` value to false. DolphinScheduler's database database will use it | `dolphinscheduler` |
| `externalDatabase.params` | If exists external PostgreSQL, and set `postgresql.enabled` value to false. DolphinScheduler's database params will use it | `characterEncoding=utf8` | | `externalDatabase.params` | If exists external PostgreSQL, and set `postgresql.enabled` value to false. DolphinScheduler's database params will use it | `characterEncoding=utf8` |
| | | | | <br/> | | |
| `zookeeper.enabled` | If not exists external ZooKeeper, by default, the DolphinScheduler will use a internal ZooKeeper | `true` | | `zookeeper.enabled` | If not exists external ZooKeeper, by default, the DolphinScheduler will use a internal ZooKeeper | `true` |
| `zookeeper.service.port` | The port of zookeeper | `2181` | | `zookeeper.service.port` | The port of zookeeper | `2181` |
| `zookeeper.fourlwCommandsWhitelist` | A list of comma separated Four Letter Words commands to use | `srvr,ruok,wchs,cons` | | `zookeeper.fourlwCommandsWhitelist` | A list of comma separated Four Letter Words commands to use | `srvr,ruok,wchs,cons` |
| `zookeeper.persistence.enabled` | Set `zookeeper.persistence.enabled` to `true` to mount a new volume for internal ZooKeeper | `false` | | `zookeeper.persistence.enabled` | Set `zookeeper.persistence.enabled` to `true` to mount a new volume for internal ZooKeeper | `false` |
| `zookeeper.persistence.size` | `PersistentVolumeClaim` size | `20Gi` | | `zookeeper.persistence.size` | `PersistentVolumeClaim` size | `20Gi` |
| `zookeeper.persistence.storageClass` | ZooKeeper data persistent volume storage class. If set to "-", storageClassName: "", which disables dynamic provisioning | `-` | | `zookeeper.persistence.storageClass` | ZooKeeper data persistent volume storage class. If set to "-", storageClassName: "", which disables dynamic provisioning | `-` |
| `externalRegistry.registryPluginName` | If exists external registry and set `zookeeper.enable` to `false`, specify the external registry plugin name | `zookeeper` | | `registryEtcd.enabled` | If you want to use Etcd for your registry center, change this value to true. And set `zookeeper.enabled` to false | `false` |
| `externalRegistry.registryServers` | If exists external registry and set `zookeeper.enable` to `false`, specify the external registry servers | `127.0.0.1:2181` | | `registryEtcd.endpoints` | Etcd endpoints | `""` |
| | | | | `registryEtcd.namespace` | Etcd namespace | `dolphinscheduler` |
| `registryEtcd.user` | Etcd user | `""` |
| `registryEtcd.passWord` | Etcd passWord | `""` |
| `registryEtcd.authority` | Etcd authority | `""` |
| `registryEtcd.ssl.enabled` | If your Etcd server has configured with ssl, change this value to true. About certification files you can see [here](https://github.com/etcd-io/jetcd/blob/main/docs/SslConfig.md) for how to convert. | `false` |
| `registryEtcd.ssl.certFile` | CertFile file path | `etcd-certs/ca.crt` |
| `registryEtcd.ssl.keyCertChainFile` | keyCertChainFile file path | `etcd-certs/client.crt` |
| `registryEtcd.ssl.keyFile` | keyFile file path | `etcd-certs/client.pem` |
| `registryJdbc.enabled` | If you want to use JDbc for your registry center, change this value to true. And set `zookeeper.enabled` and `registryEtcd.enabled` to false | `false` |
| `registryJdbc.termRefreshInterval` | Used to schedule refresh the ephemeral data/ lock | `2s` |
| `registryJdbc.termExpireTimes` | Used to calculate the expire time | `3` |
| `registryJdbc.hikariConfig.driverClassName` | Default use same Dolphinscheduler's database if you don't change this value. If you set this value, Registry jdbc's database type will use it | `com.mysql.cj.jdbc.Driver` |
| `registryJdbc.hikariConfig.jdbcurl` | Default use same Dolphinscheduler's database if you don't change this value. If you set this value, Registry jdbc's database type will use it | `jdbc:mysql://` |
| `registryJdbc.hikariConfig.username` | Default use same Dolphinscheduler's database if you don't change this value. If you set this value, Registry jdbc's database type will use it | `""` |
| `registryJdbc.hikariConfig.password` | Default use same Dolphinscheduler's database if you don't change this value. If you set this value, Registry jdbc's database type will use it | `""` |
| `externalRegistry.registryPluginName` | If exists external registry and set `zookeeper.enable` && `registryEtcd.enabled` && `registryJdbc.enabled` to `false`, specify the external registry plugin name | `zookeeper` |
| `externalRegistry.registryServers` | If exists external registry and set `zookeeper.enable` && `registryEtcd.enabled` && `registryJdbc.enabled` to `false`, specify the external registry servers | `127.0.0.1:2181` |
| <br/> | | `PASSWORD` |
| `security.authentication.type` | Authentication types (supported types: PASSWORD,LDAP,CASDOOR_SSO) | `ldap://ldap.forumsys.com:389/` |
| `security.authentication.ldap.urls` | LDAP urls | `dc=example,dc=com` |
| `security.authentication.ldap.basedn` | LDAP base dn | `cn=read-only-admin,dc=example,dc=com` |
| `security.authentication.ldap.username` | LDAP username | `password` |
| `security.authentication.ldap.password` | LDAP password | `read-only-admin` |
| `security.authentication.ldap.user.admin` | Admin user account when you log-in with LDAP | `uid` |
| `security.authentication.ldap.user.identityattribute` | LDAP user identity attribute | `mail` |
| `security.authentication.ldap.user.emailattribute` | LDAP user email attribute | `CREATE` |
| `security.authentication.ldap.user.notexistaction` | action when ldap user is not exist,default value: CREATE. Optional values include(CREATE,DENY) | `false` |
| `security.authentication.ldap.ssl.enable` | LDAP ssl switch | `false` |
| `security.authentication.ldap.ssl.truststore` | LDAP jks file absolute path, do not change this value | `/opt/ldapkeystore.jks` |
| `security.authentication.ldap.ssl.jksbase64content` | LDAP jks file base64 content | `""` |
| `security.authentication.ldap.ssl.truststorepassword` | LDAP jks password | `""` |
| <br/> | | |
| `common.configmap.DOLPHINSCHEDULER_OPTS` | The jvm options for dolphinscheduler, suitable for all servers | `""` | | `common.configmap.DOLPHINSCHEDULER_OPTS` | The jvm options for dolphinscheduler, suitable for all servers | `""` |
| `common.configmap.DATA_BASEDIR_PATH` | User data directory path, self configuration, please make sure the directory exists and have read write permissions | `/tmp/dolphinscheduler` | | `common.configmap.DATA_BASEDIR_PATH` | User data directory path, self configuration, please make sure the directory exists and have read write permissions | `/tmp/dolphinscheduler` |
| `common.configmap.RESOURCE_STORAGE_TYPE` | Resource storage type: HDFS, S3, OSS, GCS, ABS, NONE | `HDFS` | | `common.configmap.RESOURCE_STORAGE_TYPE` | Resource storage type: HDFS, S3, OSS, GCS, ABS, NONE | `HDFS` |
@ -613,7 +619,7 @@ helm install dolphinscheduler-gpu-worker . \
| `common.fsFileResourcePersistence.accessModes` | `PersistentVolumeClaim` access modes, must be `ReadWriteMany` | `[ReadWriteMany]` | | `common.fsFileResourcePersistence.accessModes` | `PersistentVolumeClaim` access modes, must be `ReadWriteMany` | `[ReadWriteMany]` |
| `common.fsFileResourcePersistence.storageClassName` | Resource persistent volume storage class, must support the access mode: ReadWriteMany | `-` | | `common.fsFileResourcePersistence.storageClassName` | Resource persistent volume storage class, must support the access mode: ReadWriteMany | `-` |
| `common.fsFileResourcePersistence.storage` | `PersistentVolumeClaim` size | `20Gi` | | `common.fsFileResourcePersistence.storage` | `PersistentVolumeClaim` size | `20Gi` |
| | | | | <br/> | | |
| `master.enabled` | Enable or disable the Master component | true | | `master.enabled` | Enable or disable the Master component | true |
| `master.podManagementPolicy` | PodManagementPolicy controls how pods are created during initial scale up, when replacing pods on nodes, or when scaling down | `Parallel` | | `master.podManagementPolicy` | PodManagementPolicy controls how pods are created during initial scale up, when replacing pods on nodes, or when scaling down | `Parallel` |
| `master.replicas` | Replicas is the desired number of replicas of the given Template | `3` | | `master.replicas` | Replicas is the desired number of replicas of the given Template | `3` |
@ -648,7 +654,7 @@ helm install dolphinscheduler-gpu-worker . \
| `master.persistentVolumeClaim.accessModes` | `PersistentVolumeClaim` access modes | `[ReadWriteOnce]` | | `master.persistentVolumeClaim.accessModes` | `PersistentVolumeClaim` access modes | `[ReadWriteOnce]` |
| `master.persistentVolumeClaim.storageClassName` | `Master` logs data persistent volume storage class. If set to "-", storageClassName: "", which disables dynamic provisioning | `-` | | `master.persistentVolumeClaim.storageClassName` | `Master` logs data persistent volume storage class. If set to "-", storageClassName: "", which disables dynamic provisioning | `-` |
| `master.persistentVolumeClaim.storage` | `PersistentVolumeClaim` size | `20Gi` | | `master.persistentVolumeClaim.storage` | `PersistentVolumeClaim` size | `20Gi` |
| | | | | <br/> | | |
| `worker.enabled` | Enable or disable the Worker component | true | | `worker.enabled` | Enable or disable the Worker component | true |
| `worker.podManagementPolicy` | PodManagementPolicy controls how pods are created during initial scale up, when replacing pods on nodes, or when scaling down | `Parallel` | | `worker.podManagementPolicy` | PodManagementPolicy controls how pods are created during initial scale up, when replacing pods on nodes, or when scaling down | `Parallel` |
| `worker.replicas` | Replicas is the desired number of replicas of the given Template | `3` | | `worker.replicas` | Replicas is the desired number of replicas of the given Template | `3` |
@ -683,7 +689,7 @@ helm install dolphinscheduler-gpu-worker . \
| `worker.persistentVolumeClaim.logsPersistentVolume.accessModes` | `PersistentVolumeClaim` access modes | `[ReadWriteOnce]` | | `worker.persistentVolumeClaim.logsPersistentVolume.accessModes` | `PersistentVolumeClaim` access modes | `[ReadWriteOnce]` |
| `worker.persistentVolumeClaim.logsPersistentVolume.storageClassName` | `Worker` logs data persistent volume storage class. If set to "-", storageClassName: "", which disables dynamic provisioning | `-` | | `worker.persistentVolumeClaim.logsPersistentVolume.storageClassName` | `Worker` logs data persistent volume storage class. If set to "-", storageClassName: "", which disables dynamic provisioning | `-` |
| `worker.persistentVolumeClaim.logsPersistentVolume.storage` | `PersistentVolumeClaim` size | `20Gi` | | `worker.persistentVolumeClaim.logsPersistentVolume.storage` | `PersistentVolumeClaim` size | `20Gi` |
| | | | | <br/> | | |
| `alert.enabled` | Enable or disable the Alert-Server component | true | | `alert.enabled` | Enable or disable the Alert-Server component | true |
| `alert.replicas` | Replicas is the desired number of replicas of the given Template | `1` | | `alert.replicas` | Replicas is the desired number of replicas of the given Template | `1` |
| `alert.strategy.type` | Type of deployment. Can be "Recreate" or "RollingUpdate" | `RollingUpdate` | | `alert.strategy.type` | Type of deployment. Can be "Recreate" or "RollingUpdate" | `RollingUpdate` |
@ -725,7 +731,7 @@ helm install dolphinscheduler-gpu-worker . \
| `alert.persistentVolumeClaim.accessModes` | `PersistentVolumeClaim` access modes | `[ReadWriteOnce]` | | `alert.persistentVolumeClaim.accessModes` | `PersistentVolumeClaim` access modes | `[ReadWriteOnce]` |
| `alert.persistentVolumeClaim.storageClassName` | `Alert` logs data persistent volume storage class. If set to "-", storageClassName: "", which disables dynamic provisioning | `-` | | `alert.persistentVolumeClaim.storageClassName` | `Alert` logs data persistent volume storage class. If set to "-", storageClassName: "", which disables dynamic provisioning | `-` |
| `alert.persistentVolumeClaim.storage` | `PersistentVolumeClaim` size | `20Gi` | | `alert.persistentVolumeClaim.storage` | `PersistentVolumeClaim` size | `20Gi` |
| | | | | <br/> | | |
| `api.enabled` | Enable or disable the API-Server component | true | | `api.enabled` | Enable or disable the API-Server component | true |
| `api.replicas` | Replicas is the desired number of replicas of the given Template | `1` | | `api.replicas` | Replicas is the desired number of replicas of the given Template | `1` |
| `api.strategy.type` | Type of deployment. Can be "Recreate" or "RollingUpdate" | `RollingUpdate` | | `api.strategy.type` | Type of deployment. Can be "Recreate" or "RollingUpdate" | `RollingUpdate` |
@ -760,7 +766,7 @@ helm install dolphinscheduler-gpu-worker . \
| `api.service.externalName` | `externalName` is the external reference that kubedns or equivalent will return as a CNAME record for this service | `nil` | | `api.service.externalName` | `externalName` is the external reference that kubedns or equivalent will return as a CNAME record for this service | `nil` |
| `api.service.loadBalancerIP` | `loadBalancerIP` when service.type is LoadBalancer. LoadBalancer will get created with the IP specified in this field | `nil` | | `api.service.loadBalancerIP` | `loadBalancerIP` when service.type is LoadBalancer. LoadBalancer will get created with the IP specified in this field | `nil` |
| `api.service.annotations` | `annotations` may need to be set when service.type is LoadBalancer | `{}` | | `api.service.annotations` | `annotations` may need to be set when service.type is LoadBalancer | `{}` |
| | | | | <br/> | | |
| `ingress.enabled` | Enable ingress | `false` | | `ingress.enabled` | Enable ingress | `false` |
| `ingress.host` | Ingress host | `dolphinscheduler.org` | | `ingress.host` | Ingress host | `dolphinscheduler.org` |
| `ingress.path` | Ingress path | `/dolphinscheduler` | | `ingress.path` | Ingress path | `/dolphinscheduler` |

Loading…
Cancel
Save