blob: a808b844418f58ecfaae71c76253266673c528e3 [file] [log] [blame]
efiacor5c573312022-01-27 13:46:56 +00001{{/*
2# Copyright © 2022 Nordix Foundation
3#
4# Licensed under the Apache License, Version 2.0 (the "License");
5# you may not use this file except in compliance with the License.
6# You may obtain a copy of the License at
7#
8# http://www.apache.org/licenses/LICENSE-2.0
9#
10# Unless required by applicable law or agreed to in writing, software
11# distributed under the License is distributed on an "AS IS" BASIS,
12# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13# See the License for the specific language governing permissions and
14# limitations under the License.
15*/}}
16apiVersion: kafka.strimzi.io/v1beta2
17kind: Kafka
efiacor57901a92022-11-14 16:17:15 +000018metadata: {{- include "common.resourceMetadata" . | nindent 2 }}
efiacor5c573312022-01-27 13:46:56 +000019spec:
20 kafka:
efiacor57901a92022-11-14 16:17:15 +000021 version: {{ .Values.config.kafkaVersion }}
efiacor5c573312022-01-27 13:46:56 +000022 replicas: {{ .Values.replicaCount }}
23 listeners:
24 - name: plain
efiacor57901a92022-11-14 16:17:15 +000025 port: {{ .Values.config.kafkaInternalPort }}
efiacor5c573312022-01-27 13:46:56 +000026 type: internal
27 tls: false
28 authentication:
efiacor57901a92022-11-14 16:17:15 +000029 type: {{ .Values.config.saslMechanism }}
efiacor5c573312022-01-27 13:46:56 +000030 - name: tls
31 port: 9093
32 type: internal
33 tls: true
34 authentication:
35 type: tls
36 - name: external
37 port: 9094
Andreas Geisslereb68c402023-02-23 11:09:01 +010038 type: {{ if (include "common.ingressEnabled" .) }}cluster-ip{{ else }}nodeport{{ end }}
Andreas Geissler29007652023-03-23 14:05:45 +010039 tls: {{ if (include "common.ingressEnabled" .) }}false{{ else }}true{{ end }}
efiacor5c573312022-01-27 13:46:56 +000040 authentication:
Andreas Geissler29007652023-03-23 14:05:45 +010041 type: {{ if (include "common.ingressEnabled" .) }}{{ .Values.config.saslMechanism }}{{ else }}tls{{ end }}
efiacoraf68a7e2022-04-08 10:59:52 +010042 configuration:
Andreas Geisslereb68c402023-02-23 11:09:01 +010043 {{- if not (include "common.ingressEnabled" .) }}
efiacoraf68a7e2022-04-08 10:59:52 +010044 bootstrap:
Andreas Geissler8cd7e262022-09-13 13:24:50 +020045 nodePort: {{ .Values.global.nodePortPrefixExt }}93
Andreas Geisslereb68c402023-02-23 11:09:01 +010046 {{- end }}
efiacoraf68a7e2022-04-08 10:59:52 +010047 brokers:
48 - broker: 0
Andreas Geisslereb68c402023-02-23 11:09:01 +010049 advertisedHost: {{ .Values.config.advertisedHost }}
50 advertisedPort: {{ .Values.config.advertizedPortBroker0 }}
51 {{- if not (include "common.ingressEnabled" .) }}
Andreas Geissler8cd7e262022-09-13 13:24:50 +020052 nodePort: {{ .Values.global.nodePortPrefixExt }}90
Andreas Geisslereb68c402023-02-23 11:09:01 +010053 {{- end }}
efiacoraf68a7e2022-04-08 10:59:52 +010054 - broker: 1
Andreas Geisslereb68c402023-02-23 11:09:01 +010055 advertisedHost: {{ .Values.config.advertisedHost }}
56 advertisedPort: {{ .Values.config.advertizedPortBroker1 }}
57 {{- if not (include "common.ingressEnabled" .) }}
Andreas Geissler8cd7e262022-09-13 13:24:50 +020058 nodePort: {{ .Values.global.nodePortPrefixExt }}91
Andreas Geisslereb68c402023-02-23 11:09:01 +010059 {{- end }}
Andreas Geissler8cd7e262022-09-13 13:24:50 +020060 - broker: 2
Andreas Geisslereb68c402023-02-23 11:09:01 +010061 advertisedHost: {{ .Values.config.advertisedHost }}
62 advertisedPort: {{ .Values.config.advertizedPortBroker2 }}
63 {{- if not (include "common.ingressEnabled" .) }}
Andreas Geissler8cd7e262022-09-13 13:24:50 +020064 nodePort: {{ .Values.global.nodePortPrefixExt }}92
Andreas Geisslereb68c402023-02-23 11:09:01 +010065 {{- end }}
efiacor5c573312022-01-27 13:46:56 +000066 authorization:
efiacor57901a92022-11-14 16:17:15 +000067 type: {{ .Values.config.authType }}
efiacor5c573312022-01-27 13:46:56 +000068 superUsers:
efiacor57901a92022-11-14 16:17:15 +000069 - {{ .Values.config.strimziKafkaAdminUser }}
efiacor5c573312022-01-27 13:46:56 +000070 template:
71 pod:
72 securityContext:
73 runAsUser: 0
74 fsGroup: 0
Andreas Geissler64f95b12023-11-17 11:35:18 +010075 {{- if .Values.affinity.podAntiAffinity.enabled }}
76 affinity:
77 podAntiAffinity:
78 requiredDuringSchedulingIgnoredDuringExecution:
79 - labelSelector:
80 matchExpressions:
81 - key: strimzi.io/name
82 operator: In
83 values:
84 - {{ include "common.fullname" . }}-kafka
85 topologyKey: "kubernetes.io/hostname"
86 {{- end }}
efiacor5c573312022-01-27 13:46:56 +000087 config:
efiacor23361a32022-03-14 13:44:02 +000088 default.replication.factor: {{ .Values.replicaCount }}
efiacor57901a92022-11-14 16:17:15 +000089 min.insync.replicas: {{ (eq 1.0 (.Values.replicaCount)) | ternary 1 (sub .Values.replicaCount 1) }}
efiacor5c573312022-01-27 13:46:56 +000090 offsets.topic.replication.factor: {{ .Values.replicaCount }}
efiacor57901a92022-11-14 16:17:15 +000091 num.partitions: {{ mul .Values.replicaCount 2 }}
efiacor5c573312022-01-27 13:46:56 +000092 transaction.state.log.replication.factor: {{ .Values.replicaCount }}
efiacor57901a92022-11-14 16:17:15 +000093 transaction.state.log.min.isr: {{ (eq 1.0 (.Values.replicaCount)) | ternary 1 (sub .Values.replicaCount 1) }}
94 log.message.format.version: {{ .Values.config.kafkaVersion }}
95 inter.broker.protocol.version: {{ .Values.config.kafkaVersion }}
Lukasz Rajewski3d097d92023-10-02 13:10:15 +020096 auto.create.topics.enable: {{ .Values.config.autoCreateTopics }}
efiacor5c573312022-01-27 13:46:56 +000097 storage:
98 type: jbod
efiacor5c573312022-01-27 13:46:56 +000099 volumes:
100 - id: 0
101 type: persistent-claim
efiacor57901a92022-11-14 16:17:15 +0000102 size: {{ .Values.persistence.kafka.size }}
efiacorb7a43e22022-04-01 17:41:48 +0100103 deleteClaim: true
efiacor57901a92022-11-14 16:17:15 +0000104 class: {{ include "common.storageClass" (dict "dot" . "suffix" "kafka" "persistenceInfos" .Values.persistence.kafka) }}
miroslavmasarykaa5f0fa2023-03-20 10:21:36 +0100105 {{- if .Values.metrics.kafkaExporter.enabled }}
106 metricsConfig:
107 type: {{ .Values.metrics.kafkaExporter.metricsConfig.type }}
108 valueFrom:
109 configMapKeyRef:
110 name: {{ include "common.fullname" . }}
111 key: kafka-metrics-config.yml
112 {{- end }}
efiacor5c573312022-01-27 13:46:56 +0000113 zookeeper:
114 template:
115 pod:
116 securityContext:
117 runAsUser: 0
118 fsGroup: 0
Andreas Geissler64f95b12023-11-17 11:35:18 +0100119 {{- if .Values.affinity.podAntiAffinity.enabled }}
120 affinity:
121 podAntiAffinity:
122 requiredDuringSchedulingIgnoredDuringExecution:
123 - labelSelector:
124 matchExpressions:
125 - key: strimzi.io/name
126 operator: In
127 values:
128 - {{ include "common.fullname" . }}-zookeeper
129 topologyKey: "kubernetes.io/hostname"
130 {{- end }}
efiacor5c573312022-01-27 13:46:56 +0000131 replicas: {{ .Values.replicaCount }}
132 config:
133 ssl.hostnameVerification: false
efiacor1cfa2fb2022-06-01 16:02:39 +0100134 ssl.quorum.hostnameVerification: false
Andreas Geissler485f6672022-04-06 13:12:48 +0200135 {{- if (include "common.onServiceMesh" .) }}
136 sslQuorum: false
137 {{- end }}
efiacor5c573312022-01-27 13:46:56 +0000138 storage:
139 type: persistent-claim
efiacor57901a92022-11-14 16:17:15 +0000140 size: {{ .Values.persistence.zookeeper.size }}
efiacorb7a43e22022-04-01 17:41:48 +0100141 deleteClaim: true
efiacor57901a92022-11-14 16:17:15 +0000142 class: {{ include "common.storageClass" (dict "dot" . "suffix" "zk" "persistenceInfos" .Values.persistence.zookeeper) }}
miroslavmasarykaa5f0fa2023-03-20 10:21:36 +0100143 {{- if .Values.metrics.kafkaExporter.enabled }}
144 metricsConfig:
145 type: {{ .Values.metrics.kafkaExporter.metricsConfig.type }}
146 valueFrom:
147 configMapKeyRef:
148 name: {{ include "common.fullname" . }}
149 key: zookeeper-metrics-config.yml
150 {{- end }}
efiacor5c573312022-01-27 13:46:56 +0000151 entityOperator:
152 topicOperator: {}
153 userOperator: {}
miroslavmasarykaa5f0fa2023-03-20 10:21:36 +0100154 {{- if .Values.cruiseControl.enabled }}
155 cruiseControl:
156 metricsConfig:
157 type: {{ .Values.cruiseControl.metricsConfig.type }}
158 valueFrom:
159 configMapKeyRef:
160 name: {{ include "common.fullname" . }}
161 key: cruisecontrol-metrics-config.yml
162 {{- end }}
163 {{- if .Values.metrics.kafkaExporter.enabled }}
164 kafkaExporter:
165 topicRegex: {{ .Values.metrics.kafkaExporter.topicRegex }}
166 groupRegex: {{ .Values.metrics.kafkaExporter.groupRegex }}
167 resources:
168 requests:
169 cpu: {{ .Values.metrics.kafkaExporter.resources.requests.cpu }}
170 memory: {{ .Values.metrics.kafkaExporter.resources.requests.memory }}
171 limits:
172 cpu: {{ .Values.metrics.kafkaExporter.resources.limits.cpu }}
173 memory: {{ .Values.metrics.kafkaExporter.resources.limits.memory }}
174 logging: {{ .Values.metrics.kafkaExporter.logging }}
175 enableSaramaLogging: {{ .Values.metrics.kafkaExporter.enableSaramaLogging }}
176 readinessProbe:
177 initialDelaySeconds: {{ .Values.metrics.kafkaExporter.readinessProbe.initialDelaySeconds }}
178 timeoutSeconds: {{ .Values.metrics.kafkaExporter.readinessProbe.timeoutSeconds }}
179 livenessProbe:
180 initialDelaySeconds: {{ .Values.metrics.kafkaExporter.livenessProbe.initialDelaySeconds }}
181 timeoutSeconds: {{ .Values.metrics.kafkaExporter.livenessProbe.timeoutSeconds }}
182 {{- end }}