Browse Source

Add mysql support to helm chart (#12517)

3.2.0-release
kezhenxu94 2 years ago committed by GitHub
parent
commit
fdac751379
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 8
      deploy/kubernetes/dolphinscheduler/Chart.yaml
  2. 32
      deploy/kubernetes/dolphinscheduler/templates/_helpers.tpl
  3. 1
      deploy/kubernetes/dolphinscheduler/templates/deployment-dolphinscheduler-alert.yaml
  4. 2
      deploy/kubernetes/dolphinscheduler/templates/ingress.yaml
  5. 17
      deploy/kubernetes/dolphinscheduler/values.yaml

8
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 # 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.
appVersion: dev-SNAPSHOT appVersion: 3.1.0
dependencies: dependencies:
- name: postgresql - name: postgresql
@ -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

32
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. 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 }}

1
deploy/kubernetes/dolphinscheduler/templates/deployment-dolphinscheduler-alert.yaml

@ -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 }}

2
deploy/kubernetes/dolphinscheduler/templates/ingress.yaml

@ -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 }}

17
deploy/kubernetes/dolphinscheduler/values.yaml

@ -26,6 +26,11 @@ image:
tag: "dev-SNAPSHOT" tag: "dev-SNAPSHOT"
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:

Loading…
Cancel
Save