From a00fa321955ecdc754bde2f38a9fdc2061e95ff8 Mon Sep 17 00:00:00 2001 From: zhangtao <111836083+sophon-zt@users.noreply.github.com> Date: Mon, 3 Mar 2025 16:51:08 +0800 Subject: [PATCH] chore: support parameters api for kafka (#1369) (cherry picked from commit d3e1e3b7912e86961180339f0d0340a26cedf41f) --- addons/kafka/templates/_helpers.tpl | 33 +++++++++++- addons/kafka/templates/cmpd-broker-27.yaml | 1 - addons/kafka/templates/cmpd-broker.yaml | 1 - addons/kafka/templates/cmpd-combine.yaml | 1 - addons/kafka/templates/cmpd-controller.yaml | 1 - addons/kafka/templates/configconstraint.yaml | 53 -------------------- addons/kafka/templates/paramsdef.yaml | 20 ++++++++ addons/kafka/templates/paramsdef2.yaml | 20 ++++++++ addons/kafka/templates/pcr-broker.yaml | 14 ++++++ addons/kafka/templates/pcr-broker2.yaml | 14 ++++++ addons/kafka/templates/pcr-combine.yaml | 14 ++++++ addons/kafka/templates/pcr-controller.yaml | 14 ++++++ 12 files changed, 127 insertions(+), 59 deletions(-) delete mode 100644 addons/kafka/templates/configconstraint.yaml create mode 100644 addons/kafka/templates/paramsdef.yaml create mode 100644 addons/kafka/templates/paramsdef2.yaml create mode 100644 addons/kafka/templates/pcr-broker.yaml create mode 100644 addons/kafka/templates/pcr-broker2.yaml create mode 100644 addons/kafka/templates/pcr-combine.yaml create mode 100644 addons/kafka/templates/pcr-controller.yaml diff --git a/addons/kafka/templates/_helpers.tpl b/addons/kafka/templates/_helpers.tpl index c1cfdb086..52c2182d7 100644 --- a/addons/kafka/templates/_helpers.tpl +++ b/addons/kafka/templates/_helpers.tpl @@ -138,17 +138,46 @@ Define kafka-broker component definition regex pattern {{/* Define kafka config constraint name */}} -{{- define "kafka.configConstraintName" -}} +{{- define "kafka.paramsDefName" -}} kafka-config-constraints {{- end -}} {{/* Define kafka config constraint name */}} -{{- define "kafka2.configConstraintName" -}} +{{- define "kafka2.paramsDefName" -}} kafka2-config-constraints {{- end -}} +{{/* +Define kafka parameter config renderer name +*/}} +{{- define "kafka.brokerPCRName" -}} +kafka-broker-pcr +{{- end -}} + +{{/* +Define kafka parameter config renderer name +*/}} +{{- define "kafka.combinePCRName" -}} +kafka-combine-pcr +{{- end -}} + +{{/* +Define kafka parameter config renderer name +*/}} +{{- define "kafka.controllerPCRName" -}} +kafka-controller-pcr +{{- end -}} + +{{/* +Define kafka parameter config renderer name +*/}} +{{- define "kafka2.brokerPCRName" -}} +kafka2-broker-pcr +{{- end -}} + + {{/* Define kafka configuration tpl name */}} diff --git a/addons/kafka/templates/cmpd-broker-27.yaml b/addons/kafka/templates/cmpd-broker-27.yaml index e61550f9d..b03b44da4 100644 --- a/addons/kafka/templates/cmpd-broker-27.yaml +++ b/addons/kafka/templates/cmpd-broker-27.yaml @@ -84,7 +84,6 @@ spec: updateStrategy: BestEffortParallel configs: - name: kafka-configuration-tpl - constraintRef: {{ include "kafka2.configConstraintName" . }} templateRef: {{ include "kafka2.configurationTplName" . }} volumeName: kafka-config namespace: {{ .Release.Namespace }} diff --git a/addons/kafka/templates/cmpd-broker.yaml b/addons/kafka/templates/cmpd-broker.yaml index 1f3ca08d7..3ab7bd0ed 100644 --- a/addons/kafka/templates/cmpd-broker.yaml +++ b/addons/kafka/templates/cmpd-broker.yaml @@ -80,7 +80,6 @@ spec: updateStrategy: BestEffortParallel configs: - name: kafka-configuration-tpl - constraintRef: {{ include "kafka.configConstraintName" . }} templateRef: {{ include "kafka.configurationTplName" . }} volumeName: kafka-config namespace: {{ .Release.Namespace }} diff --git a/addons/kafka/templates/cmpd-combine.yaml b/addons/kafka/templates/cmpd-combine.yaml index 890133b56..866b07750 100644 --- a/addons/kafka/templates/cmpd-combine.yaml +++ b/addons/kafka/templates/cmpd-combine.yaml @@ -71,7 +71,6 @@ spec: updateStrategy: BestEffortParallel configs: - name: kafka-configuration-tpl - constraintRef: {{ include "kafka.configConstraintName" . }} templateRef: {{ include "kafka.configurationTplName" . }} volumeName: kafka-config namespace: {{ .Release.Namespace }} diff --git a/addons/kafka/templates/cmpd-controller.yaml b/addons/kafka/templates/cmpd-controller.yaml index df01afe01..2cfdf08e7 100644 --- a/addons/kafka/templates/cmpd-controller.yaml +++ b/addons/kafka/templates/cmpd-controller.yaml @@ -46,7 +46,6 @@ spec: updateStrategy: BestEffortParallel configs: - name: kafka-configuration-tpl - constraintRef: {{ include "kafka.configConstraintName" . }} templateRef: {{ include "kafka.configurationTplName" . }} volumeName: kafka-config namespace: {{ .Release.Namespace }} diff --git a/addons/kafka/templates/configconstraint.yaml b/addons/kafka/templates/configconstraint.yaml deleted file mode 100644 index 27a1449d6..000000000 --- a/addons/kafka/templates/configconstraint.yaml +++ /dev/null @@ -1,53 +0,0 @@ -apiVersion: apps.kubeblocks.io/v1beta1 -kind: ConfigConstraint -metadata: - name: {{ include "kafka.configConstraintName" . }} - labels: - {{- include "kafka.labels" . | nindent 4 }} - {{- if .Values.commonLabels }} - {{- include "common.tplvalues.render" ( dict "value" .Values.commonLabels "context" $ ) | nindent 4 }} - {{- end }} - {{- if .Values.commonAnnotations }} - annotations: {{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }} - {{- end }} -spec: - - # ConfigurationSchema that impose restrictions on engine parameter's rule - parametersSchema: - # top level mysql configuration type - topLevelKey: KafkaParameter - - # schemaInJSON: auto generate from cue scripts - cue: |- - {{- .Files.Get "configs/kafka-server-constraint.cue" | nindent 6 }} - - fileFormatConfig: - format: properties - ---- -apiVersion: apps.kubeblocks.io/v1beta1 -kind: ConfigConstraint -metadata: - name: {{ include "kafka2.configConstraintName" . }} - labels: - {{- include "kafka.labels" . | nindent 4 }} - {{- if .Values.commonLabels }} - {{- include "common.tplvalues.render" ( dict "value" .Values.commonLabels "context" $ ) | nindent 4 }} - {{- end }} - {{- if .Values.commonAnnotations }} - annotations: {{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }} - {{- end }} -spec: - - # ConfigurationSchema that impose restrictions on engine parameter's rule - parametersSchema: - # top level mysql configuration type - topLevelKey: KafkaParameter - - # schemaInJSON: auto generate from cue scripts - cue: |- - {{- .Files.Get "configs/2.7/kafka-27-server-constraint.cue" | nindent 6 }} - - fileFormatConfig: - format: properties - diff --git a/addons/kafka/templates/paramsdef.yaml b/addons/kafka/templates/paramsdef.yaml new file mode 100644 index 000000000..d4884fc5b --- /dev/null +++ b/addons/kafka/templates/paramsdef.yaml @@ -0,0 +1,20 @@ +apiVersion: parameters.kubeblocks.io/v1alpha1 +kind: ParametersDefinition +metadata: + name: {{ include "kafka.paramsDefName" . }} + labels: + {{- include "kafka.labels" . | nindent 4 }} + {{- if .Values.commonLabels }} + {{- include "common.tplvalues.render" ( dict "value" .Values.commonLabels "context" $ ) | nindent 4 }} + {{- end }} + {{- if .Values.commonAnnotations }} + annotations: {{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }} + {{- end }} +spec: + fileName: server.properties + parametersSchema: + # top level mysql configuration type + topLevelKey: KafkaParameter + # schemaInJSON: auto generate from cue scripts + cue: |- + {{- .Files.Get "configs/kafka-server-constraint.cue" | nindent 6 }} \ No newline at end of file diff --git a/addons/kafka/templates/paramsdef2.yaml b/addons/kafka/templates/paramsdef2.yaml new file mode 100644 index 000000000..31914f7c5 --- /dev/null +++ b/addons/kafka/templates/paramsdef2.yaml @@ -0,0 +1,20 @@ +apiVersion: parameters.kubeblocks.io/v1alpha1 +kind: ParametersDefinition +metadata: + name: {{ include "kafka2.paramsDefName" . }} + labels: + {{- include "kafka.labels" . | nindent 4 }} + {{- if .Values.commonLabels }} + {{- include "common.tplvalues.render" ( dict "value" .Values.commonLabels "context" $ ) | nindent 4 }} + {{- end }} + {{- if .Values.commonAnnotations }} + annotations: {{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }} + {{- end }} +spec: + fileName: server.properties + parametersSchema: + # top level mysql configuration type + topLevelKey: KafkaParameter + # schemaInJSON: auto generate from cue scripts + cue: |- + {{- .Files.Get "configs/2.7/kafka-27-server-constraint.cue" | nindent 6 }} \ No newline at end of file diff --git a/addons/kafka/templates/pcr-broker.yaml b/addons/kafka/templates/pcr-broker.yaml new file mode 100644 index 000000000..d064b722f --- /dev/null +++ b/addons/kafka/templates/pcr-broker.yaml @@ -0,0 +1,14 @@ +apiVersion: parameters.kubeblocks.io/v1alpha1 +kind: ParamConfigRenderer +metadata: + name: {{ include "kafka.brokerPCRName" . }} + labels: + {{- include "kafka.labels" . | nindent 4 }} +spec: + componentDef: {{ include "kafka-broker.componentDefName" . }} + parametersDefs: + - {{ include "kafka.paramsDefName" . }} + configs: + - name: server.properties + fileFormatConfig: + format: properties \ No newline at end of file diff --git a/addons/kafka/templates/pcr-broker2.yaml b/addons/kafka/templates/pcr-broker2.yaml new file mode 100644 index 000000000..cee81398a --- /dev/null +++ b/addons/kafka/templates/pcr-broker2.yaml @@ -0,0 +1,14 @@ +apiVersion: parameters.kubeblocks.io/v1alpha1 +kind: ParamConfigRenderer +metadata: + name: {{ include "kafka2.brokerPCRName" . }} + labels: + {{- include "kafka.labels" . | nindent 4 }} +spec: + componentDef: {{ include "kafka2-broker.componentDefName" . }} + parametersDefs: + - {{ include "kafka2.paramsDefName" . }} + configs: + - name: server.properties + fileFormatConfig: + format: properties \ No newline at end of file diff --git a/addons/kafka/templates/pcr-combine.yaml b/addons/kafka/templates/pcr-combine.yaml new file mode 100644 index 000000000..67505a12b --- /dev/null +++ b/addons/kafka/templates/pcr-combine.yaml @@ -0,0 +1,14 @@ +apiVersion: parameters.kubeblocks.io/v1alpha1 +kind: ParamConfigRenderer +metadata: + name: {{ include "kafka.combinePCRName" . }} + labels: + {{- include "kafka.labels" . | nindent 4 }} +spec: + componentDef: {{ include "kafka-combine.componentDefName" . }} + parametersDefs: + - {{ include "kafka.paramsDefName" . }} + configs: + - name: server.properties + fileFormatConfig: + format: properties \ No newline at end of file diff --git a/addons/kafka/templates/pcr-controller.yaml b/addons/kafka/templates/pcr-controller.yaml new file mode 100644 index 000000000..f866393b7 --- /dev/null +++ b/addons/kafka/templates/pcr-controller.yaml @@ -0,0 +1,14 @@ +apiVersion: parameters.kubeblocks.io/v1alpha1 +kind: ParamConfigRenderer +metadata: + name: {{ include "kafka.controllerPCRName" . }} + labels: + {{- include "kafka.labels" . | nindent 4 }} +spec: + componentDef: {{ include "kafka-controller.componentDefName" . }} + parametersDefs: + - {{ include "kafka.paramsDefName" . }} + configs: + - name: server.properties + fileFormatConfig: + format: properties \ No newline at end of file