move mysql operator and cluster
This commit is contained in:
21
deploy/mysql-cluster/.helmignore
Normal file
21
deploy/mysql-cluster/.helmignore
Normal file
@@ -0,0 +1,21 @@
|
||||
# Patterns to ignore when building packages.
|
||||
# This supports shell glob matching, relative path matching, and
|
||||
# negation (prefixed with !). Only one pattern per line.
|
||||
.DS_Store
|
||||
# Common VCS dirs
|
||||
.git/
|
||||
.gitignore
|
||||
.bzr/
|
||||
.bzrignore
|
||||
.hg/
|
||||
.hgignore
|
||||
.svn/
|
||||
# Common backup files
|
||||
*.swp
|
||||
*.bak
|
||||
*.tmp
|
||||
*~
|
||||
# Various IDEs
|
||||
.project
|
||||
.idea/
|
||||
*.tmproj
|
||||
5
deploy/mysql-cluster/Chart.yaml
Normal file
5
deploy/mysql-cluster/Chart.yaml
Normal file
@@ -0,0 +1,5 @@
|
||||
apiVersion: v1
|
||||
appVersion: "1.0"
|
||||
description: A Helm chart for easy deployment of a MySQL cluster with MySQL operator.
|
||||
name: mysql-cluster
|
||||
version: 0.3.1
|
||||
59
deploy/mysql-cluster/templates/_helpers.tpl
Normal file
59
deploy/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-cluster/templates/backup-secret.yaml
Normal file
23
deploy/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-cluster/templates/cluster.yaml
Normal file
78
deploy/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-cluster/templates/secret.yaml
Normal file
25
deploy/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 }}
|
||||
76
deploy/mysql-cluster/values.yaml
Normal file
76
deploy/mysql-cluster/values.yaml
Normal file
@@ -0,0 +1,76 @@
|
||||
# Default values for mysql-cluster.
|
||||
# This is a YAML-formatted file.
|
||||
# Declare variables to be passed into your templates.
|
||||
|
||||
## The cluster number of nodes
|
||||
replicas: 1
|
||||
|
||||
## For setting custom docker image or specifying mysql version
|
||||
## the image field has priority over mysqlVersion.
|
||||
# image: percona:5.7
|
||||
# mysqlVersion: "5.7"
|
||||
|
||||
## MySQL connect credentials, those credentials will be provisioned in the cluster
|
||||
rootPassword: "CHANGE_ME"
|
||||
appUser: ""
|
||||
appPassword: ""
|
||||
appDatabase: ""
|
||||
# appSecretLabels: {}
|
||||
# appSecretAnnotations: {}
|
||||
|
||||
podSpec:
|
||||
mysqlConf:
|
||||
volumeSpec:
|
||||
|
||||
serverIDOffset:
|
||||
|
||||
initBucketURL:
|
||||
initBucketSecretName:
|
||||
|
||||
backupSchedule:
|
||||
backupScheduleJobsHistoryLimit:
|
||||
backupURL:
|
||||
backupSecretName:
|
||||
backupRemoteDeletePolicy:
|
||||
# backupSecretLabels: {}
|
||||
# backupSecretAnnotations: {}
|
||||
backupCredentials:
|
||||
# use s3 https://rclone.org/s3/
|
||||
# S3_PROVIDER: ? # like: AWS, Minio, Ceph, and so on
|
||||
# S3_ENDPOINT: ?
|
||||
# AWS_ACCESS_KEY_ID: ?
|
||||
# AWS_SECRET_ACCESS_KEY: ?
|
||||
# AWS_REGION: ?
|
||||
# AWS_ACL: ?
|
||||
# AWS_STORAGE_CLASS: ?
|
||||
# AWS_SESSION_TOKEN: ?
|
||||
|
||||
# use google cloud storage https://rclone.org/googlecloudstorage/
|
||||
# GCS_SERVICE_ACCOUNT_JSON_KEY: ?
|
||||
# GCS_PROJECT_ID: ?
|
||||
# GCS_OBJECT_ACL: ?
|
||||
# GCS_BUCKET_ACL: ?
|
||||
# GCS_LOCATION: ?
|
||||
# GCS_STORAGE_CLASS: MULTI_REGIONAL
|
||||
|
||||
# use http https://rclone.org/http/
|
||||
# HTTP_URL: ?
|
||||
|
||||
# use google drive https://rclone.org/drive/
|
||||
# GDRIVE_CLIENT_ID: ?
|
||||
# GDRIVE_ROOT_FOLDER_ID: ?
|
||||
# GDRIVE_IMPERSONATOR: ?
|
||||
|
||||
# use azure https://rclone.org/azureblob/
|
||||
# AZUREBLOB_ACCOUNT: ?
|
||||
# AZUREBLOB_KEY: ?
|
||||
|
||||
## For enabling and configuring pt-kill: https://www.percona.com/doc/percona-toolkit/LATEST/pt-kill.html
|
||||
#queryLimits:
|
||||
# maxIdleTime: ... # pt-kill --idle-time
|
||||
# maxQueryTime: ... # pt-kill --busy-time
|
||||
# kill: oldest|all|all-but-oldest # pt-kill --victims
|
||||
# killMode: query|connection # pt-kill --kill-query or pt-kill --kill
|
||||
# ignoreDb: [] # pt-kill --ignore-db ...
|
||||
# ignoreCommand: [] # pt-kill --ignore-command ...
|
||||
# ignoreUser: [] # pt-kill --ignore-user
|
||||
Reference in New Issue
Block a user