From dba8957cfa0eba97cd475509ddfe1424808d46e2 Mon Sep 17 00:00:00 2001 From: sophon Date: Fri, 13 Dec 2024 16:55:49 +0800 Subject: [PATCH] chore: support parameters api for mysql --- addons/mysql/templates/_helpers.tpl | 4 ++ addons/mysql/templates/_names.tpl | 50 +++++++++++++++++++ addons/mysql/templates/cmpd-mysql57-orc.yaml | 3 -- addons/mysql/templates/cmpd-mysql57.yaml | 3 -- addons/mysql/templates/cmpd-mysql80-orc.yaml | 3 -- addons/mysql/templates/cmpd-mysql80.yaml | 3 -- addons/mysql/templates/cmpd-mysql84.yaml | 3 -- addons/mysql/templates/cmpd-proxysql.yaml | 2 - ...g-constraint-57.yaml => paramsdef-57.yaml} | 30 +++++------ ...g-constraint-80.yaml => paramsdef-80.yaml} | 34 ++++++------- addons/mysql/templates/pcr-57-orc.yaml | 19 +++++++ addons/mysql/templates/pcr-57.yaml | 19 +++++++ addons/mysql/templates/pcr-80-orc.yaml | 19 +++++++ addons/mysql/templates/pcr-80.yaml | 19 +++++++ addons/mysql/templates/pcr-84.yaml | 19 +++++++ 15 files changed, 175 insertions(+), 55 deletions(-) rename addons/mysql/templates/{config-constraint-57.yaml => paramsdef-57.yaml} (66%) rename addons/mysql/templates/{config-constraint-80.yaml => paramsdef-80.yaml} (58%) create mode 100644 addons/mysql/templates/pcr-57-orc.yaml create mode 100644 addons/mysql/templates/pcr-57.yaml create mode 100644 addons/mysql/templates/pcr-80-orc.yaml create mode 100644 addons/mysql/templates/pcr-80.yaml create mode 100644 addons/mysql/templates/pcr-84.yaml diff --git a/addons/mysql/templates/_helpers.tpl b/addons/mysql/templates/_helpers.tpl index 5500b1e91..3f895195f 100644 --- a/addons/mysql/templates/_helpers.tpl +++ b/addons/mysql/templates/_helpers.tpl @@ -160,6 +160,10 @@ roles: - name: secondary serviceable: true writable: false +exporter: + containerName: mysql-exporter + scrapePath: /metrics + scrapePort: http-metrics {{- end }} {{- define "mysql.spec.runtime.common" -}} diff --git a/addons/mysql/templates/_names.tpl b/addons/mysql/templates/_names.tpl index 9a890eb16..9aea262f2 100644 --- a/addons/mysql/templates/_names.tpl +++ b/addons/mysql/templates/_names.tpl @@ -60,3 +60,53 @@ Define mysql component definition name {{- define "proxysql.componentDefName" -}} {{- printf "%s-proxysql-%s" (include "mysql.cmpdNamePrefix" .) .Chart.Version -}} {{- end -}} + +{{/* +Define parametersdefinition name +*/}} +{{- define "mysql.paramsDefName57" -}} +mysql-5.7-pd +{{- end -}} + +{{/* +Define parametersdefinition name +*/}} +{{- define "mysql.paramsDefName80" -}} +mysql-8.0-pd +{{- end -}} + + +{{/* +Define parameterconfigrenderer name +*/}} +{{- define "mysql.prcName57" -}} +mysql-5.7-pcr +{{- end -}} + +{{/* +Define parameterconfigrenderer name +*/}} +{{- define "mysql.prcNameOrc57" -}} +mysql-5.7-orc-pcr +{{- end -}} + +{{/* +Define parameterconfigrenderer name +*/}} +{{- define "mysql.prcName80" -}} +mysql-8.0-pcr +{{- end -}} + +{{/* +Define parameterconfigrenderer name +*/}} +{{- define "mysql.prcNameOrc80" -}} +mysql-8.0-orc-pcr +{{- end -}} + +{{/* +Define parameterconfigrenderer name +*/}} +{{- define "mysql.prcName84" -}} +mysql-8.4-pcr +{{- end -}} diff --git a/addons/mysql/templates/cmpd-mysql57-orc.yaml b/addons/mysql/templates/cmpd-mysql57-orc.yaml index 7e0fd0ce2..dc9dfb17f 100644 --- a/addons/mysql/templates/cmpd-mysql57-orc.yaml +++ b/addons/mysql/templates/cmpd-mysql57-orc.yaml @@ -30,11 +30,8 @@ spec: configs: - name: mysql-replication-config templateRef: mysql-5.7-config-template - constraintRef: mysql-5.7-config-constraints volumeName: mysql-config namespace: {{ .Release.Namespace }} - reRenderResourceTypes: - - vscale runtime: initContainers: - image: {{ .Values.image.registry | default "docker.io" }}/apecloud/mysql_audit_log:5.7.44 diff --git a/addons/mysql/templates/cmpd-mysql57.yaml b/addons/mysql/templates/cmpd-mysql57.yaml index dc3df780d..e11c0fd55 100644 --- a/addons/mysql/templates/cmpd-mysql57.yaml +++ b/addons/mysql/templates/cmpd-mysql57.yaml @@ -12,11 +12,8 @@ spec: configs: - name: mysql-replication-config templateRef: mysql-5.7-config-template - constraintRef: mysql-5.7-config-constraints volumeName: mysql-config namespace: {{ .Release.Namespace }} - reRenderResourceTypes: - - vscale runtime: initContainers: - image: {{ .Values.image.registry | default "docker.io" }}/apecloud/mysql_audit_log:5.7.44 diff --git a/addons/mysql/templates/cmpd-mysql80-orc.yaml b/addons/mysql/templates/cmpd-mysql80-orc.yaml index 192f4ce6f..44e72abd1 100644 --- a/addons/mysql/templates/cmpd-mysql80-orc.yaml +++ b/addons/mysql/templates/cmpd-mysql80-orc.yaml @@ -30,11 +30,8 @@ spec: configs: - name: mysql-replication-config templateRef: mysql-8.0-config-template - constraintRef: mysql-8.0-config-constraints volumeName: mysql-config namespace: {{ .Release.Namespace }} - reRenderResourceTypes: - - vscale runtime: initContainers: - image: {{ .Values.image.registry | default "docker.io" }}/apecloud/mysql_audit_log:8.0.33 diff --git a/addons/mysql/templates/cmpd-mysql80.yaml b/addons/mysql/templates/cmpd-mysql80.yaml index 959422b0d..468d26bc8 100644 --- a/addons/mysql/templates/cmpd-mysql80.yaml +++ b/addons/mysql/templates/cmpd-mysql80.yaml @@ -12,11 +12,8 @@ spec: configs: - name: mysql-replication-config templateRef: mysql-8.0-config-template - constraintRef: mysql-8.0-config-constraints volumeName: mysql-config namespace: {{ .Release.Namespace }} - reRenderResourceTypes: - - vscale runtime: initContainers: - image: {{ .Values.image.registry | default "docker.io" }}/apecloud/mysql_audit_log:8.0.33 diff --git a/addons/mysql/templates/cmpd-mysql84.yaml b/addons/mysql/templates/cmpd-mysql84.yaml index f535347c3..cc106fe27 100644 --- a/addons/mysql/templates/cmpd-mysql84.yaml +++ b/addons/mysql/templates/cmpd-mysql84.yaml @@ -12,11 +12,8 @@ spec: configs: - name: mysql-replication-config templateRef: mysql-8.0-config-template - constraintRef: mysql-8.0-config-constraints volumeName: mysql-config namespace: {{ .Release.Namespace }} - reRenderResourceTypes: - - vscale runtime: initContainers: - command: diff --git a/addons/mysql/templates/cmpd-proxysql.yaml b/addons/mysql/templates/cmpd-proxysql.yaml index 9a985e9f1..a7d3b50a4 100644 --- a/addons/mysql/templates/cmpd-proxysql.yaml +++ b/addons/mysql/templates/cmpd-proxysql.yaml @@ -17,8 +17,6 @@ spec: templateRef: proxysql-config namespace: {{ .Release.Namespace }} volumeName: proxy-config - reRenderResourceTypes: - - hscale scripts: - name: proxysql-scripts templateRef: proxysql-scripts diff --git a/addons/mysql/templates/config-constraint-57.yaml b/addons/mysql/templates/paramsdef-57.yaml similarity index 66% rename from addons/mysql/templates/config-constraint-57.yaml rename to addons/mysql/templates/paramsdef-57.yaml index 0eb262301..f10142eb3 100644 --- a/addons/mysql/templates/config-constraint-57.yaml +++ b/addons/mysql/templates/paramsdef-57.yaml @@ -1,8 +1,8 @@ -{{- $cc := .Files.Get "config/mysql5.7-config-effect-scope.yaml" | fromYaml }} -apiVersion: apps.kubeblocks.io/v1beta1 -kind: ConfigConstraint +{{- $pd := .Files.Get "config/mysql5.7-config-effect-scope.yaml" | fromYaml }} +apiVersion: parameters.kubeblocks.io/v1alpha1 +kind: ParametersDefinition metadata: - name: mysql-5.7-config-constraints + name: {{ include "mysql.paramsDefName57" . }} labels: {{- include "mysql.labels" . | nindent 4 }} spec: @@ -16,6 +16,7 @@ spec: namespace: {{ .Release.Namespace }} + fileName: my.cnf # ConfigurationSchema that impose restrictions on engine parameter's rule parametersSchema: # top level mysql configuration type @@ -27,35 +28,28 @@ spec: {{- .Files.Get "config/mysql5.7-config-constraint.cue" | nindent 6 }} ## define static parameter list - {{- if hasKey $cc "staticParameters" }} + {{- if hasKey $pd "staticParameters" }} staticParameters: - {{- $params := get $cc "staticParameters" }} + {{- $params := get $pd "staticParameters" }} {{- range $params }} - {{ . }} {{- end }} {{- end}} ## define dynamic parameter list - {{- if hasKey $cc "dynamicParameters" }} + {{- if hasKey $pd "dynamicParameters" }} dynamicParameters: - {{- $params := get $cc "dynamicParameters" }} + {{- $params := get $pd "dynamicParameters" }} {{- range $params }} - {{ . }} {{- end }} {{- end}} ## define immutable parameter list, this feature is not currently supported. - {{- if hasKey $cc "immutableParameters" }} + {{- if hasKey $pd "immutableParameters" }} immutableParameters: - {{- $params := get $cc "immutableParameters" }} + {{- $params := get $pd "immutableParameters" }} {{- range $params }} - {{ . }} {{- end }} - {{- end}} - - - # mysql configuration file format - fileFormatConfig: - format: ini - iniConfig: - sectionName: mysqld + {{- end}} \ No newline at end of file diff --git a/addons/mysql/templates/config-constraint-80.yaml b/addons/mysql/templates/paramsdef-80.yaml similarity index 58% rename from addons/mysql/templates/config-constraint-80.yaml rename to addons/mysql/templates/paramsdef-80.yaml index c211d887d..2d956af80 100644 --- a/addons/mysql/templates/config-constraint-80.yaml +++ b/addons/mysql/templates/paramsdef-80.yaml @@ -1,8 +1,8 @@ -{{- $cc := .Files.Get "config/mysql8-config-effect-scope.yaml" | fromYaml }} -apiVersion: apps.kubeblocks.io/v1beta1 -kind: ConfigConstraint +{{- $pd := .Files.Get "config/mysql8-config-effect-scope.yaml" | fromYaml }} +apiVersion: parameters.kubeblocks.io/v1alpha1 +kind: ParametersDefinition metadata: - name: mysql-8.0-config-constraints + name: {{ include "mysql.paramsDefName80" . }} labels: {{- include "mysql.labels" . | nindent 4 }} spec: @@ -15,6 +15,7 @@ spec: namespace: {{ .Release.Namespace }} + fileName: my.cnf # ConfigurationSchema that impose restrictions on engine parameter's rule parametersSchema: # top level mysql configuration type @@ -26,35 +27,28 @@ spec: {{- .Files.Get "config/mysql8-config-constraint.cue" | nindent 6 }} ## define static parameter list - {{- if hasKey $cc "staticParameters" }} + {{- if hasKey $pd "staticParameters" }} staticParameters: - {{- $params := get $cc "staticParameters" }} + {{- $params := get $pd "staticParameters" }} {{- range $params }} - {{ . }} {{- end }} {{- end}} - ## define dynamic parameter list - {{- if hasKey $cc "dynamicParameters" }} + ## define dynamic parameter list + {{- if hasKey $pd "dynamicParameters" }} dynamicParameters: - {{- $params := get $cc "dynamicParameters" }} + {{- $params := get $pd "dynamicParameters" }} {{- range $params }} - {{ . }} {{- end }} {{- end}} - ## define immutable parameter list, this feature is not currently supported. - {{- if hasKey $cc "immutableParameters" }} + ## define immutable parameter list, this feature is not currently supported. + {{- if hasKey $pd "immutableParameters" }} immutableParameters: - {{- $params := get $cc "immutableParameters" }} + {{- $params := get $pd "immutableParameters" }} {{- range $params }} - {{ . }} {{- end }} - {{- end}} - - - # mysql configuration file format - fileFormatConfig: - format: ini - iniConfig: - sectionName: mysqld + {{- end}} \ No newline at end of file diff --git a/addons/mysql/templates/pcr-57-orc.yaml b/addons/mysql/templates/pcr-57-orc.yaml new file mode 100644 index 000000000..e2eee59f9 --- /dev/null +++ b/addons/mysql/templates/pcr-57-orc.yaml @@ -0,0 +1,19 @@ +apiVersion: parameters.kubeblocks.io/v1alpha1 +kind: ParamConfigRenderer +metadata: + name: {{ include "mysql.prcNameOrc57" . }} + labels: + {{- include "mysql.labels" . | nindent 4 }} +spec: + componentDef: {{ include "mysql.componentDefNameOrc57" . }} + parametersDefs: + - {{ include "mysql.paramsDefName57" . }} + + configs: + - name: my.cnf + fileFormatConfig: + format: ini + iniConfig: + sectionName: mysqld + reRenderResourceTypes: + - vscale \ No newline at end of file diff --git a/addons/mysql/templates/pcr-57.yaml b/addons/mysql/templates/pcr-57.yaml new file mode 100644 index 000000000..e37e54716 --- /dev/null +++ b/addons/mysql/templates/pcr-57.yaml @@ -0,0 +1,19 @@ +apiVersion: parameters.kubeblocks.io/v1alpha1 +kind: ParamConfigRenderer +metadata: + name: {{ include "mysql.prcName57" . }} + labels: + {{- include "mysql.labels" . | nindent 4 }} +spec: + componentDef: {{ include "mysql.componentDefName57" . }} + parametersDefs: + - {{ include "mysql.paramsDefName57" . }} + + configs: + - name: my.cnf + fileFormatConfig: + format: ini + iniConfig: + sectionName: mysqld + reRenderResourceTypes: + - vscale \ No newline at end of file diff --git a/addons/mysql/templates/pcr-80-orc.yaml b/addons/mysql/templates/pcr-80-orc.yaml new file mode 100644 index 000000000..48c65171e --- /dev/null +++ b/addons/mysql/templates/pcr-80-orc.yaml @@ -0,0 +1,19 @@ +apiVersion: parameters.kubeblocks.io/v1alpha1 +kind: ParamConfigRenderer +metadata: + name: {{ include "mysql.prcNameOrc80" . }} + labels: + {{- include "mysql.labels" . | nindent 4 }} +spec: + componentDef: {{ include "mysql.componentDefNameOrc80" . }} + parametersDefs: + - {{ include "mysql.paramsDefName80" . }} + + configs: + - name: my.cnf + fileFormatConfig: + format: ini + iniConfig: + sectionName: mysqld + reRenderResourceTypes: + - vscale \ No newline at end of file diff --git a/addons/mysql/templates/pcr-80.yaml b/addons/mysql/templates/pcr-80.yaml new file mode 100644 index 000000000..eb8fc7d9b --- /dev/null +++ b/addons/mysql/templates/pcr-80.yaml @@ -0,0 +1,19 @@ +apiVersion: parameters.kubeblocks.io/v1alpha1 +kind: ParamConfigRenderer +metadata: + name: {{ include "mysql.prcName80" . }} + labels: + {{- include "mysql.labels" . | nindent 4 }} +spec: + componentDef: {{ include "mysql.componentDefName80" . }} + parametersDefs: + - {{ include "mysql.paramsDefName80" . }} + + configs: + - name: my.cnf + fileFormatConfig: + format: ini + iniConfig: + sectionName: mysqld + reRenderResourceTypes: + - vscale \ No newline at end of file diff --git a/addons/mysql/templates/pcr-84.yaml b/addons/mysql/templates/pcr-84.yaml new file mode 100644 index 000000000..03095bd45 --- /dev/null +++ b/addons/mysql/templates/pcr-84.yaml @@ -0,0 +1,19 @@ +apiVersion: parameters.kubeblocks.io/v1alpha1 +kind: ParamConfigRenderer +metadata: + name: {{ include "mysql.prcName84" . }} + labels: + {{- include "mysql.labels" . | nindent 4 }} +spec: + componentDef: {{ include "mysql.componentDefName84" . }} + parametersDefs: + - {{ include "mysql.paramsDefName80" . }} + + configs: + - name: my.cnf + fileFormatConfig: + format: ini + iniConfig: + sectionName: mysqld + reRenderResourceTypes: + - vscale \ No newline at end of file