add mysql ha
This commit is contained in:
59
deploy/mysql/mysql-cluster/templates/_helpers.tpl
Normal file
59
deploy/mysql/mysql-cluster/templates/_helpers.tpl
Normal file
@@ -0,0 +1,59 @@
|
||||
{{/* vim: set filetype=mustache: */}}
|
||||
{{/*
|
||||
Expand the name of the chart.
|
||||
*/}}
|
||||
{{- define "mysql-cluster.name" -}}
|
||||
{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/*
|
||||
Create a default fully qualified app name.
|
||||
We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
|
||||
If release name contains chart name it will be used as a full name.
|
||||
*/}}
|
||||
{{- define "mysql-cluster.fullname" -}}
|
||||
{{- if .Values.fullnameOverride -}}
|
||||
{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}}
|
||||
{{- else -}}
|
||||
{{- $name := default .Chart.Name .Values.nameOverride -}}
|
||||
{{- if contains $name .Release.Name -}}
|
||||
{{- .Release.Name | trunc 63 | trimSuffix "-" -}}
|
||||
{{- else -}}
|
||||
{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/*
|
||||
Create chart name and version as used by the chart label.
|
||||
*/}}
|
||||
{{- define "mysql-cluster.chart" -}}
|
||||
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}}
|
||||
{{- end -}}
|
||||
|
||||
{{- define "mysql-cluster.dbConnectURL" -}}
|
||||
mysql://
|
||||
{{- if .Values.appUser -}}
|
||||
{{ urlquery .Values.appUser -}}
|
||||
{{- if .Values.appPassword -}}
|
||||
:{{ urlquery .Values.appPassword }}
|
||||
{{- end -}}
|
||||
@
|
||||
{{- end -}}
|
||||
{{- include "mysql-cluster.clusterName" . -}}-mysql-master:3306
|
||||
{{- if .Values.appDatabase -}}
|
||||
/{{- .Values.appDatabase -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
|
||||
{{- define "mysql-cluster.clusterName" -}}
|
||||
{{- printf "%s-db" (include "mysql-cluster.fullname" .) | trunc 63 | trimSuffix "-" -}}
|
||||
{{- end -}}
|
||||
|
||||
{{- define "mysql-cluster.secretName" -}}
|
||||
{{- printf "%s-db" (include "mysql-cluster.fullname" .) | trunc 63 | trimSuffix "-" -}}
|
||||
{{- end -}}
|
||||
|
||||
{{- define "mysql-cluster.backupSecretName" -}}
|
||||
{{- printf "%s-db-backup" (include "mysql-cluster.fullname" .) | trunc 63 | trimSuffix "-" -}}
|
||||
{{- end -}}
|
||||
23
deploy/mysql/mysql-cluster/templates/backup-secret.yaml
Normal file
23
deploy/mysql/mysql-cluster/templates/backup-secret.yaml
Normal file
@@ -0,0 +1,23 @@
|
||||
{{- if .Values.backupCredentials }}
|
||||
apiVersion: v1
|
||||
kind: Secret
|
||||
metadata:
|
||||
name: {{ template "mysql-cluster.backupSecretName" . }}
|
||||
labels:
|
||||
app: {{ template "mysql-cluster.name" . }}
|
||||
chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
|
||||
release: {{ .Release.Name }}
|
||||
heritage: {{ .Release.Service }}
|
||||
{{- if .Values.backupSecretLabels }}
|
||||
{{- toYaml .Values.backupSecretLabels | nindent 4 }}
|
||||
{{- end }}
|
||||
{{- if .Values.backupSecretAnnotations }}
|
||||
annotations:
|
||||
{{ toYaml .Values.backupSecretAnnotations }}
|
||||
{{- end }}
|
||||
type: Opaque
|
||||
data:
|
||||
{{- range $key, $value := .Values.backupCredentials }}
|
||||
{{ $key | upper }}: {{ $value | b64enc | quote }}
|
||||
{{- end }}
|
||||
{{- end -}}
|
||||
78
deploy/mysql/mysql-cluster/templates/cluster.yaml
Normal file
78
deploy/mysql/mysql-cluster/templates/cluster.yaml
Normal file
@@ -0,0 +1,78 @@
|
||||
apiVersion: mysql.presslabs.org/v1alpha1
|
||||
kind: MysqlCluster
|
||||
metadata:
|
||||
name: {{ include "mysql-cluster.clusterName" . }}
|
||||
labels:
|
||||
app: {{ template "mysql-cluster.name" . }}
|
||||
chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
|
||||
release: {{ .Release.Name }}
|
||||
heritage: {{ .Release.Service }}
|
||||
spec:
|
||||
replicas: {{ .Values.replicas }}
|
||||
|
||||
{{- if .Values.customSecretName }}
|
||||
secretName: {{ .Values.customSecretName }}
|
||||
{{- else }}
|
||||
secretName: {{ include "mysql-cluster.secretName" . }}
|
||||
{{- end }}
|
||||
|
||||
{{- if .Values.image }}
|
||||
image: {{ .Values.image }}
|
||||
{{- end }}
|
||||
|
||||
{{- if .Values.mysqlVersion }}
|
||||
mysqlVersion: {{ .Values.mysqlVersion | quote }}
|
||||
{{- end }}
|
||||
|
||||
{{- if .Values.initBucketURL }}
|
||||
initBucketURL: {{ .Values.initBucketURL }}
|
||||
{{- end }}
|
||||
{{- if .Values.initBucketSecretName }}
|
||||
initBucketSecretName: {{ .Values.initBucketSecretName }}
|
||||
{{- end }}
|
||||
|
||||
{{- if .Values.backupSecretName }}
|
||||
backupSecretName: {{ .Values.backupSecretName }}
|
||||
{{- else if .Values.backupCredentials }}
|
||||
backupSecretName: {{ include "mysql-cluster.backupSecretName" . }}
|
||||
{{- else if .Values.backupSchedule }}
|
||||
{{ required "One of .mysql.backupSecretName and .mysql.backupCredentials should be specified" "" }}
|
||||
{{- end }}
|
||||
|
||||
{{- if .Values.serverIDOffset }}
|
||||
serverIDOffset: {{ .Values.serverIDOffset }}
|
||||
{{- end }}
|
||||
|
||||
{{- if .Values.backupSchedule }}
|
||||
backupSchedule: "{{ .Values.backupSchedule }}"
|
||||
backupRemoteDeletePolicy: {{ .Values.backupRemoteDeletePolicy }}
|
||||
backupURL: {{ required ".mysql.backupURL is missing" .Values.backupURL }}
|
||||
{{- end }}
|
||||
{{- if .Values.backupScheduleJobsHistoryLimit }}
|
||||
backupScheduleJobsHistoryLimit: {{ .Values.backupScheduleJobsHistoryLimit }}
|
||||
{{- end }}
|
||||
|
||||
{{- if .Values.mysqlConf }}
|
||||
mysqlConf:
|
||||
{{- toYaml .Values.mysqlConf | nindent 4 }}
|
||||
{{- end }}
|
||||
|
||||
{{- if .Values.podSpec }}
|
||||
podSpec:
|
||||
{{- toYaml .Values.podSpec | nindent 4 }}
|
||||
{{- end }}
|
||||
|
||||
{{- if .Values.volumeSpec }}
|
||||
volumeSpec:
|
||||
{{- toYaml .Values.volumeSpec | nindent 4 }}
|
||||
{{- end }}
|
||||
|
||||
{{- if .Values.initFileExtraSQL }}
|
||||
initFileExtraSQL:
|
||||
{{- toYaml .Values.initFileExtraSQL | nindent 6 }}
|
||||
{{- end }}
|
||||
|
||||
{{- if .Values.queryLimits }}
|
||||
queryLimits:
|
||||
{{ toYaml .Values.queryLimits | indent 4 }}
|
||||
{{- end }}
|
||||
25
deploy/mysql/mysql-cluster/templates/secret.yaml
Normal file
25
deploy/mysql/mysql-cluster/templates/secret.yaml
Normal file
@@ -0,0 +1,25 @@
|
||||
{{- if not .Values.customSecretName }}
|
||||
apiVersion: v1
|
||||
kind: Secret
|
||||
metadata:
|
||||
name: {{ include "mysql-cluster.secretName" . }}
|
||||
labels:
|
||||
app: {{ template "mysql-cluster.name" . }}
|
||||
chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
|
||||
release: {{ .Release.Name }}
|
||||
heritage: {{ .Release.Service }}
|
||||
{{- if .Values.appSecretLabels }}
|
||||
{{- toYaml .Values.appSecretLabels | nindent 4 }}
|
||||
{{- end }}
|
||||
{{- if .Values.appSecretAnnotations }}
|
||||
annotations:
|
||||
{{ toYaml .Values.appSecretAnnotations }}
|
||||
{{- end }}
|
||||
type: Opaque
|
||||
data:
|
||||
ROOT_PASSWORD: {{ required ".rootPassword is missing" .Values.rootPassword | b64enc | quote }}
|
||||
USER: {{ .Values.appUser | b64enc | quote }}
|
||||
PASSWORD: {{ .Values.appPassword | b64enc | quote }}
|
||||
DATABASE: {{ .Values.appDatabase | b64enc | quote }}
|
||||
DB_CONNECT_URL: {{ include "mysql-cluster.dbConnectURL" . | b64enc | quote }}
|
||||
{{- end }}
|
||||
Reference in New Issue
Block a user