Add mysql support to helm chart (#12517)

This commit is contained in:
kezhenxu94 2022-10-25 09:20:14 +08:00 committed by zhuangchong
parent 826ca39a31
commit af031ef9f8
5 changed files with 52 additions and 10 deletions

View File

@ -35,7 +35,7 @@ type: application
# This is the chart version. This version number should be incremented each time you make changes # 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. # 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 # This is the version number of the application being deployed. This version number should be
# incremented each time you make changes to the application. # incremented each time you make changes to the application.
@ -56,3 +56,7 @@ dependencies:
# Same as above. # Same as above.
repository: https://raw.githubusercontent.com/bitnami/charts/archive-full-index/bitnami repository: https://raw.githubusercontent.com/bitnami/charts/archive-full-index/bitnami
condition: zookeeper.enabled condition: zookeeper.enabled
- name: mysql
version: 9.4.1
repository: https://raw.githubusercontent.com/bitnami/charts/archive-full-index/bitnami
condition: mysql.enabled

View File

@ -30,19 +30,19 @@ If release name contains chart name it will be used as a full name.
Create default docker images' fullname. Create default docker images' fullname.
*/}} */}}
{{- define "dolphinscheduler.image.fullname.master" -}} {{- 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 -}} {{- end -}}
{{- define "dolphinscheduler.image.fullname.worker" -}} {{- 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 -}} {{- end -}}
{{- define "dolphinscheduler.image.fullname.api" -}} {{- 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 -}} {{- end -}}
{{- define "dolphinscheduler.image.fullname.alert" -}} {{- 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 -}} {{- end -}}
{{- define "dolphinscheduler.image.fullname.tools" -}} {{- 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 -}} {{- end -}}
{{/* {{/*
@ -100,7 +100,16 @@ We truncate at 63 chars because some Kubernetes name fields are limited to this
{{- end -}} {{- 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). We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
*/}} */}}
{{- define "dolphinscheduler.zookeeper.fullname" -}} {{- define "dolphinscheduler.zookeeper.fullname" -}}
@ -123,18 +132,24 @@ Create a database environment variables.
- name: DATABASE - name: DATABASE
{{- if .Values.postgresql.enabled }} {{- if .Values.postgresql.enabled }}
value: "postgresql" value: "postgresql"
{{- else if .Values.mysql.enabled }}
value: "mysql"
{{- else }} {{- else }}
value: {{ .Values.externalDatabase.type | quote }} value: {{ .Values.externalDatabase.type | quote }}
{{- end }} {{- end }}
- name: SPRING_DATASOURCE_URL - name: SPRING_DATASOURCE_URL
{{- if .Values.postgresql.enabled }} {{- if .Values.postgresql.enabled }}
value: jdbc:postgresql://{{ template "dolphinscheduler.postgresql.fullname" . }}:5432/{{ .Values.postgresql.postgresqlDatabase }}?characterEncoding=utf8 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 }} {{- else }}
value: jdbc:{{ .Values.externalDatabase.type }}://{{ .Values.externalDatabase.host }}:{{ .Values.externalDatabase.port }}/{{ .Values.externalDatabase.database }}?{{ .Values.externalDatabase.params }} value: jdbc:{{ .Values.externalDatabase.type }}://{{ .Values.externalDatabase.host }}:{{ .Values.externalDatabase.port }}/{{ .Values.externalDatabase.database }}?{{ .Values.externalDatabase.params }}
{{- end }} {{- end }}
- name: SPRING_DATASOURCE_USERNAME - name: SPRING_DATASOURCE_USERNAME
{{- if .Values.postgresql.enabled }} {{- if .Values.postgresql.enabled }}
value: {{ .Values.postgresql.postgresqlUsername }} value: {{ .Values.postgresql.postgresqlUsername }}
{{- else if .Values.mysql.enabled }}
value: {{ .Values.mysql.auth.username }}
{{- else }} {{- else }}
value: {{ .Values.externalDatabase.username | quote }} value: {{ .Values.externalDatabase.username | quote }}
{{- end }} {{- end }}
@ -144,6 +159,9 @@ Create a database environment variables.
{{- if .Values.postgresql.enabled }} {{- if .Values.postgresql.enabled }}
name: {{ template "dolphinscheduler.postgresql.fullname" . }} name: {{ template "dolphinscheduler.postgresql.fullname" . }}
key: postgresql-password key: postgresql-password
{{- else if .Values.mysql.enabled }}
name: {{ template "dolphinscheduler.mysql.fullname" . }}
key: mysql-password
{{- else }} {{- else }}
name: {{ include "dolphinscheduler.fullname" . }}-externaldb name: {{ include "dolphinscheduler.fullname" . }}-externaldb
key: database-password key: database-password
@ -159,6 +177,8 @@ Wait for database to be ready.
imagePullPolicy: IfNotPresent imagePullPolicy: IfNotPresent
{{- if .Values.postgresql.enabled }} {{- 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'] 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 }} {{- 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'] 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 }} {{- end }}

View File

@ -70,6 +70,7 @@ spec:
- name: SPRING_JACKSON_TIME_ZONE - name: SPRING_JACKSON_TIME_ZONE
value: {{ .Values.timezone }} value: {{ .Values.timezone }}
{{- include "dolphinscheduler.database.env_vars" . | nindent 12 }} {{- include "dolphinscheduler.database.env_vars" . | nindent 12 }}
{{- include "dolphinscheduler.registry.env_vars" . | nindent 12 }}
{{ range $key, $value := .Values.alert.env }} {{ range $key, $value := .Values.alert.env }}
- name: {{ $key }} - name: {{ $key }}
value: {{ $value | quote }} value: {{ $value | quote }}
@ -117,4 +118,4 @@ spec:
{{- end }} {{- end }}
- name: config-volume - name: config-volume
configMap: configMap:
name: {{ include "dolphinscheduler.fullname" . }}-configs name: {{ include "dolphinscheduler.fullname" . }}-configs

View File

@ -34,7 +34,7 @@ metadata:
{{- end }} {{- end }}
spec: spec:
rules: rules:
- host: {{ .Values.ingress.host }} - host: "{{ .Values.ingress.host }}"
http: http:
paths: paths:
- path: {{ .Values.ingress.path }} - path: {{ .Values.ingress.path }}

View File

@ -26,6 +26,11 @@ image:
tag: "3.1.0" tag: "3.1.0"
pullPolicy: "IfNotPresent" pullPolicy: "IfNotPresent"
pullSecret: "" 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. ## If not exists external database, by default, Dolphinscheduler's database will use it.
postgresql: postgresql:
@ -38,6 +43,18 @@ postgresql:
size: "20Gi" size: "20Gi"
storageClass: "-" 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. ## If exists external database, and set postgresql.enable value to false.
## external database will be used, otherwise Dolphinscheduler's database will be used. ## external database will be used, otherwise Dolphinscheduler's database will be used.
externalDatabase: externalDatabase:
@ -53,7 +70,7 @@ externalDatabase:
zookeeper: zookeeper:
enabled: true enabled: true
service: service:
port: 2181 port: 2181
fourlwCommandsWhitelist: "srvr,ruok,wchs,cons" fourlwCommandsWhitelist: "srvr,ruok,wchs,cons"
persistence: persistence:
enabled: false enabled: false