Skip to content

Commit

Permalink
feat: kbcli support to create kafka (#4175)
Browse files Browse the repository at this point in the history
Co-authored-by: L.Dongming <l.dongming@apecloud.com>
  • Loading branch information
caiq1nyu and ldming committed Jul 8, 2023
1 parent 8e578da commit 87e822e
Show file tree
Hide file tree
Showing 28 changed files with 358 additions and 393 deletions.
4 changes: 2 additions & 2 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -289,10 +289,10 @@ build-single-kbcli-embed-chart.%:
.PHONY: build-kbcli-embed-chart
build-kbcli-embed-chart: helmtool create-kbcli-embed-charts-dir \
build-single-kbcli-embed-chart.apecloud-mysql-cluster \
build-single-kbcli-embed-chart.redis-cluster
build-single-kbcli-embed-chart.redis-cluster \
build-single-kbcli-embed-chart.kafka-cluster
# build-single-kbcli-embed-chart.postgresql-cluster \
# build-single-kbcli-embed-chart.clickhouse-cluster \
# build-single-kbcli-embed-chart.kafka-cluster \
# build-single-kbcli-embed-chart.mongodb-cluster \
# build-single-kbcli-embed-chart.milvus-cluster \
# build-single-kbcli-embed-chart.qdrant-cluster \
Expand Down
36 changes: 36 additions & 0 deletions apis/apps/v1alpha1/zz_generated.deepcopy.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions deploy/apecloud-mysql-cluster/templates/cluster.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ spec:
- error
serviceAccountName: {{ include "kblib.serviceAccountName" . }}
{{- include "kblib.componentResources" . | indent 6 }}
{{- include "kblib.componentStorages" . | indent 6 }}
{{- include "kblib.componentServices" . | indent 6 }}
{{- if and (eq .Values.mode "raftGroup") .Values.proxyEnabled }}
{{- include "apecloud-mysql-cluster.proxyComponents" . | indent 4 }}
Expand Down
10 changes: 6 additions & 4 deletions deploy/kafka-cluster/Chart.yaml
Original file line number Diff line number Diff line change
@@ -1,13 +1,15 @@
apiVersion: v2
name: kafka-cluster
description: A Kafka server cluster Helm chart for KubeBlocks.
dependencies:
- name: kblib
version: 0.1.0
repository: file://../kblib
alias: extra

type: application

version: 0.6.0-alpha.28

appVersion: 3.4.0

appVersion: 3.3.2

home: https://kubeblocks.io/
icon: https://bitnami.com/assets/stacks/kafka/img/kafka-stack-220x234.png
Expand Down
164 changes: 44 additions & 120 deletions deploy/kafka-cluster/templates/cluster.yaml
Original file line number Diff line number Diff line change
@@ -1,192 +1,116 @@
apiVersion: apps.kubeblocks.io/v1alpha1
kind: Cluster
metadata:
name: {{ include "clustername" . }}
labels: {{ include "kafka-cluster.labels" . | nindent 4 }}
name: {{ include "kblib.clusterName" . }}
labels: {{ include "kblib.clusterLabels" . | nindent 4 }}
annotations:
"kubeblocks.io/extra-env": '{"KB_KAFKA_ENABLE_SASL":"{{ $.Values.saslEnable }}"}'
spec:
clusterDefinitionRef: kafka # ref clusterdefinition.name
clusterVersionRef: kafka-{{ default .Chart.AppVersion .Values.clusterVersionOverride }}
terminationPolicy: {{ $.Values.terminationPolicy }}
affinity:
{{- with $.Values.topologyKeys }}
topologyKeys: {{ . | toYaml | nindent 6 }}
{{- end }}
{{- with $.Values.tolerations }}
tolerations: {{ . | toYaml | nindent 4 }}
{{- end }}
clusterVersionRef: {{ .Values.version }}
terminationPolicy: {{ .Values.extra.terminationPolicy }}
{{- include "kblib.affinity" . | indent 2 }}
componentSpecs:
{{- if eq "combined" $.Values.mode }}
- name: broker
componentDefRef: kafka-server
tls: {{ $.Values.tls }}
{{- if $.Values.tls }}
tls: {{ $.Values.tlsEnable }}
{{- if $.Values.tlsEnable }}
issuer:
name: KubeBlocks
{{- end }}
replicas: {{ $.Values.kafkaServer.replicaCount }}
monitor: {{ $.Values.monitor.enabled }}
{{- with $.Values.tolerations }}
tolerations: {{ .| toYaml | nindent 8 }}
{{- end }}
{{- with $.Values.kafkaServer.resources }}
resources:
limits:
cpu: {{ .limits.cpu | quote }}
memory: {{ .limits.memory | quote }}
requests:
cpu: {{ .requests.cpu | quote }}
memory: {{ .requests.memory | quote }}
{{- end }}
{{- with $.Values.persistence }}
{{- if .enabled }}
replicas: {{ $.Values.replicas }}
monitor: {{ $.Values.monitorEnable }}
serviceAccountName: {{ include "kblib.serviceAccountName" . }}
{{- include "kblib.componentResources" . | indent 6 }}
{{- include "kblib.componentServices" . | indent 6 }}
{{- if $.Values.storageEnable }}
volumeClaimTemplates:
- name: metadata
spec:
{{- with .metadata.storageClassName }}
storageClassName: {{ . }}
{{- end }}
accessModes:
- ReadWriteOnce
resources:
requests:
storage: {{ .metadata.size }}
storage: {{ print $.Values.metaStorage "Gi" }}
- name: data
spec:
{{- with .data.storageClassName }}
storageClassName: {{ . }}
{{- end }}
accessModes:
- ReadWriteOnce
resources:
requests:
storage: {{ .data.size }}
{{- if .log.enabled }}
storage: {{ print $.Values.dataStorage "Gi" }}
- name: log
spec:
{{- with .log.storageClassName }}
storageClassName: {{ . }}
{{- end }}
accessModes:
- ReadWriteOnce
resources:
requests:
storage: {{ .log.size }}
{{- end }}
storage: {{ print $.Values.logStorage "Gi" }}
{{- end }}
{{- end }}
{{- else }}
- name: kafka-kraft
componentDefRef: kafka-kraft
tls: {{ $.Values.tls }}
{{- if $.Values.tls }}
- name: controller
componentDefRef: controller
tls: {{ $.Values.tlsEnable }}
{{- if $.Values.tlsEnable }}
issuer:
name: KubeBlocks
{{- end }}
replicas: {{ $.Values.kafkaController.replicaCount }}
monitor: {{ $.Values.monitor.enabled }}
{{- with $.Values.tolerations }}
tolerations: {{ .| toYaml | nindent 8 }}
{{- end }}
{{- with $.Values.kafkaController.resources }}
resources:
limits:
cpu: {{ .limits.cpu | quote }}
memory: {{ .limits.memory | quote }}
requests:
cpu: {{ .requests.cpu | quote }}
memory: {{ .requests.memory | quote }}
{{- end }}
{{- with $.Values.persistence }}
{{- if .enabled }}
replicas: {{ $.Values.controllerReplicas }}
monitor: {{ $.Values.monitorEnable }}
serviceAccountName: {{ include "kblib.serviceAccountName" . }}
{{- include "kblib.componentResources" . | indent 6 }}
{{- if $.Values.storageEnable }}
volumeClaimTemplates:
- name: metadata
spec:
{{- with .metadata.storageClassName }}
storageClassName: {{ . }}
{{- end }}
accessModes:
- ReadWriteOnce
resources:
requests:
storage: {{ .metadata.size }}
{{- if .log.enabled }}
- name: log
storage: {{ print $.Values.metaStorage "Gi" }}
- name: log
spec:
{{- with .log.storageClassName }}
storageClassName: {{ . }}
{{- end }}
accessModes:
- ReadWriteOnce
resources:
requests:
storage: {{ .log.size }}
{{- end }}
{{- end }}
storage: {{ print $.Values.logStorage "Gi" }}
{{- end }}
- name: broker
componentDefRef: kafka-broker
tls: {{ $.Values.tls }}
{{- if $.Values.tls }}
tls: {{ $.Values.tlsEnable }}
{{- if $.Values.tlsEnable }}
issuer:
name: KubeBlocks
{{- end }}
replicas: {{ $.Values.kafkaBroker.replicaCount }}
monitor: {{ $.Values.monitor.enabled }}
{{- with $.Values.tolerations }}
tolerations: {{ .| toYaml | nindent 8 }}
{{- end }}
{{- with $.Values.kafkaBroker.resources }}
resources:
limits:
cpu: {{ .limits.cpu | quote }}
memory: {{ .limits.memory | quote }}
requests:
cpu: {{ .requests.cpu | quote }}
memory: {{ .requests.memory | quote }}
{{- end }}
{{- with $.Values.persistence }}
{{- if .enabled }}
replicas: {{ $.Values.brokerReplicas }}
monitor: {{ $.Values.monitorEnable }}
serviceAccountName: {{ include "kblib.serviceAccountName" . }}
{{- include "kblib.componentResources" . | indent 6 }}
{{- include "kblib.componentServices" . | indent 6 }}
{{- if $.Values.storageEnable }}
volumeClaimTemplates:
- name: data
spec:
{{- with .data.storageClassName }}
storageClassName: {{ . }}
{{- end }}
accessModes:
- ReadWriteOnce
resources:
requests:
storage: {{ .data.size }}
{{- if .log.enabled }}
- name: log
storage: {{ print $.Values.metaStorage "Gi" }}
- name: log
spec:
{{- with .log.storageClassName }}
storageClassName: {{ . }}
{{- end }}
accessModes:
- ReadWriteOnce
resources:
requests:
storage: {{ .log.size }}
{{- end }}
storage: {{ print $.Values.logStorage "Gi" }}
{{- end }}
{{- end }}
{{- end }}
{{- if .Values.monitor.enabled }}
{{- if .Values.monitorEnable }}
- name: metrics-exp
componentDefRef: kafka-exporter
replicas: {{ $.Values.monitor.kafkaExporter.replicaCount }}
replicas: {{ $.Values.monitorReplicas }}
monitor: true
{{- with $.Values.tolerations }}
tolerations: {{ .| toYaml | nindent 8 }}
{{- end }}
{{- with $.Values.monitor.kafkaExporter.resources }}
resources:
limits:
cpu: {{ .limits.cpu | quote }}
memory: {{ .limits.memory | quote }}
requests:
cpu: {{ .requests.cpu | quote }}
memory: {{ .requests.memory | quote }}
{{- end }}
{{- include "kblib.componentResources" . | nindent 6 }}
{{- end }}
1 change: 1 addition & 0 deletions deploy/kafka-cluster/templates/rbac.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{{- include "kblib.rbac" . }}
14 changes: 0 additions & 14 deletions deploy/kafka-cluster/templates/role.yaml

This file was deleted.

14 changes: 0 additions & 14 deletions deploy/kafka-cluster/templates/rolebinding.yaml

This file was deleted.

6 changes: 0 additions & 6 deletions deploy/kafka-cluster/templates/serviceaccount.yaml

This file was deleted.

15 changes: 0 additions & 15 deletions deploy/kafka-cluster/templates/tests/test-connection.yaml

This file was deleted.

Loading

0 comments on commit 87e822e

Please sign in to comment.