diff --git a/deploy/kubernetes/dolphinscheduler/Chart.yaml b/deploy/kubernetes/dolphinscheduler/Chart.yaml index 6ad2f989de..94e5b312ec 100644 --- a/deploy/kubernetes/dolphinscheduler/Chart.yaml +++ b/deploy/kubernetes/dolphinscheduler/Chart.yaml @@ -35,11 +35,11 @@ type: application # This is the chart version. This version number should be incremented each time you make changes # to the chart and its templates, including the app version. -version: 2.0.0 +version: 3.1.0 # This is the version number of the application being deployed. This version number should be # incremented each time you make changes to the application. -appVersion: dev-SNAPSHOT +appVersion: 3.1.0 dependencies: - name: postgresql @@ -56,3 +56,7 @@ dependencies: # Same as above. repository: https://raw.githubusercontent.com/bitnami/charts/archive-full-index/bitnami condition: zookeeper.enabled +- name: mysql + version: 9.4.1 + repository: https://raw.githubusercontent.com/bitnami/charts/archive-full-index/bitnami + condition: mysql.enabled diff --git a/deploy/kubernetes/dolphinscheduler/templates/_helpers.tpl b/deploy/kubernetes/dolphinscheduler/templates/_helpers.tpl index 20d9a464be..a3eb2f37ba 100644 --- a/deploy/kubernetes/dolphinscheduler/templates/_helpers.tpl +++ b/deploy/kubernetes/dolphinscheduler/templates/_helpers.tpl @@ -30,19 +30,19 @@ If release name contains chart name it will be used as a full name. Create default docker images' fullname. */}} {{- define "dolphinscheduler.image.fullname.master" -}} -{{- .Values.image.registry }}/dolphinscheduler-master:{{ .Values.image.tag | default .Chart.AppVersion -}} +{{- .Values.image.registry }}/{{ .Values.image.master }}:{{ .Values.image.tag | default .Chart.AppVersion -}} {{- end -}} {{- define "dolphinscheduler.image.fullname.worker" -}} -{{- .Values.image.registry }}/dolphinscheduler-worker:{{ .Values.image.tag | default .Chart.AppVersion -}} +{{- .Values.image.registry }}/{{ .Values.image.worker }}:{{ .Values.image.tag | default .Chart.AppVersion -}} {{- end -}} {{- define "dolphinscheduler.image.fullname.api" -}} -{{- .Values.image.registry }}/dolphinscheduler-api:{{ .Values.image.tag | default .Chart.AppVersion -}} +{{- .Values.image.registry }}/{{ .Values.image.api }}:{{ .Values.image.tag | default .Chart.AppVersion -}} {{- end -}} {{- define "dolphinscheduler.image.fullname.alert" -}} -{{- .Values.image.registry }}/dolphinscheduler-alert-server:{{ .Values.image.tag | default .Chart.AppVersion -}} +{{- .Values.image.registry }}/{{ .Values.image.alert }}:{{ .Values.image.tag | default .Chart.AppVersion -}} {{- end -}} {{- define "dolphinscheduler.image.fullname.tools" -}} -{{- .Values.image.registry }}/dolphinscheduler-tools:{{ .Values.image.tag | default .Chart.AppVersion -}} +{{- .Values.image.registry }}/{{ .Values.image.tools }}:{{ .Values.image.tag | default .Chart.AppVersion -}} {{- end -}} {{/* @@ -100,7 +100,16 @@ We truncate at 63 chars because some Kubernetes name fields are limited to this {{- end -}} {{/* -Create a default fully qualified zookkeeper name. +Create a default fully qualified mysql name. +We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec). +*/}} +{{- define "dolphinscheduler.mysql.fullname" -}} +{{- $name := default "mysql" .Values.mysql.nameOverride -}} +{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}} +{{- end -}} + +{{/* +Create a default fully qualified zookeeper name. We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec). */}} {{- define "dolphinscheduler.zookeeper.fullname" -}} @@ -123,18 +132,24 @@ Create a database environment variables. - name: DATABASE {{- if .Values.postgresql.enabled }} value: "postgresql" + {{- else if .Values.mysql.enabled }} + value: "mysql" {{- else }} value: {{ .Values.externalDatabase.type | quote }} {{- end }} - name: SPRING_DATASOURCE_URL {{- if .Values.postgresql.enabled }} value: jdbc:postgresql://{{ template "dolphinscheduler.postgresql.fullname" . }}:5432/{{ .Values.postgresql.postgresqlDatabase }}?characterEncoding=utf8 + {{- else if .Values.mysql.enabled }} + value: jdbc:mysql://{{ template "dolphinscheduler.mysql.fullname" . }}:3306/{{ .Values.postgresql.postgresqlDatabase }}?characterEncoding=utf8 {{- else }} value: jdbc:{{ .Values.externalDatabase.type }}://{{ .Values.externalDatabase.host }}:{{ .Values.externalDatabase.port }}/{{ .Values.externalDatabase.database }}?{{ .Values.externalDatabase.params }} {{- end }} - name: SPRING_DATASOURCE_USERNAME {{- if .Values.postgresql.enabled }} value: {{ .Values.postgresql.postgresqlUsername }} + {{- else if .Values.mysql.enabled }} + value: {{ .Values.mysql.auth.username }} {{- else }} value: {{ .Values.externalDatabase.username | quote }} {{- end }} @@ -144,6 +159,9 @@ Create a database environment variables. {{- if .Values.postgresql.enabled }} name: {{ template "dolphinscheduler.postgresql.fullname" . }} key: postgresql-password + {{- else if .Values.mysql.enabled }} + name: {{ template "dolphinscheduler.mysql.fullname" . }} + key: mysql-password {{- else }} name: {{ include "dolphinscheduler.fullname" . }}-externaldb key: database-password @@ -159,6 +177,8 @@ Wait for database to be ready. imagePullPolicy: IfNotPresent {{- if .Values.postgresql.enabled }} command: ['sh', '-xc', 'for i in $(seq 1 180); do nc -z -w3 {{ template "dolphinscheduler.postgresql.fullname" . }} 5432 && exit 0 || sleep 5; done; exit 1'] +{{- else if .Values.mysql.enabled }} + command: ['sh', '-xc', 'for i in $(seq 1 180); do nc -z -w3 {{ template "dolphinscheduler.mysql.fullname" . }} 3306 && exit 0 || sleep 5; done; exit 1'] {{- else }} command: ['sh', '-xc', 'for i in $(seq 1 180); do nc -z -w3 {{ .Values.externalDatabase.host }} {{ .Values.externalDatabase.port }} && exit 0 || sleep 5; done; exit 1'] {{- end }} diff --git a/deploy/kubernetes/dolphinscheduler/templates/deployment-dolphinscheduler-alert.yaml b/deploy/kubernetes/dolphinscheduler/templates/deployment-dolphinscheduler-alert.yaml index 3f7f2796d7..e2ee9f64d1 100644 --- a/deploy/kubernetes/dolphinscheduler/templates/deployment-dolphinscheduler-alert.yaml +++ b/deploy/kubernetes/dolphinscheduler/templates/deployment-dolphinscheduler-alert.yaml @@ -70,6 +70,7 @@ spec: - name: SPRING_JACKSON_TIME_ZONE value: {{ .Values.timezone }} {{- include "dolphinscheduler.database.env_vars" . | nindent 12 }} + {{- include "dolphinscheduler.registry.env_vars" . | nindent 12 }} {{ range $key, $value := .Values.alert.env }} - name: {{ $key }} value: {{ $value | quote }} @@ -117,4 +118,4 @@ spec: {{- end }} - name: config-volume configMap: - name: {{ include "dolphinscheduler.fullname" . }}-configs \ No newline at end of file + name: {{ include "dolphinscheduler.fullname" . }}-configs diff --git a/deploy/kubernetes/dolphinscheduler/templates/ingress.yaml b/deploy/kubernetes/dolphinscheduler/templates/ingress.yaml index e4b2ec337f..2cbe4183f9 100644 --- a/deploy/kubernetes/dolphinscheduler/templates/ingress.yaml +++ b/deploy/kubernetes/dolphinscheduler/templates/ingress.yaml @@ -34,7 +34,7 @@ metadata: {{- end }} spec: rules: - - host: {{ .Values.ingress.host }} + - host: "{{ .Values.ingress.host }}" http: paths: - path: {{ .Values.ingress.path }} diff --git a/deploy/kubernetes/dolphinscheduler/values.yaml b/deploy/kubernetes/dolphinscheduler/values.yaml index 440cda1f2f..2d00f31707 100644 --- a/deploy/kubernetes/dolphinscheduler/values.yaml +++ b/deploy/kubernetes/dolphinscheduler/values.yaml @@ -26,6 +26,11 @@ image: tag: "dev-SNAPSHOT" pullPolicy: "IfNotPresent" pullSecret: "" + master: dolphinscheduler-master + worker: dolphinscheduler-worker + api: dolphinscheduler-api + alert: dolphinscheduler-alert-server + tools: dolphinscheduler-tools ## If not exists external database, by default, Dolphinscheduler's database will use it. postgresql: @@ -38,6 +43,18 @@ postgresql: size: "20Gi" storageClass: "-" +mysql: + enabled: false + auth: + username: "ds" + password: "ds" + database: "dolphinscheduler" + primary: + persistence: + enabled: false + size: "20Gi" + storageClass: "-" + ## If exists external database, and set postgresql.enable value to false. ## external database will be used, otherwise Dolphinscheduler's database will be used. externalDatabase: @@ -53,7 +70,7 @@ externalDatabase: zookeeper: enabled: true service: - port: 2181 + port: 2181 fourlwCommandsWhitelist: "srvr,ruok,wchs,cons" persistence: enabled: false