{{/* # Copyright © 2022 Nordix Foundation # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. */}} apiVersion: kafka.strimzi.io/v1beta2 kind: Kafka metadata: {{- include "common.resourceMetadata" . | nindent 2 }} spec: kafka: version: {{ .Values.config.kafkaVersion }} replicas: {{ .Values.replicaCount }} listeners: - name: plain port: {{ .Values.config.kafkaInternalPort }} type: internal tls: false authentication: type: {{ .Values.config.saslMechanism }} - name: tls port: 9093 type: internal tls: true authentication: type: tls - name: external port: 9094 type: nodeport tls: true authentication: type: tls configuration: bootstrap: nodePort: {{ .Values.global.nodePortPrefixExt }}93 brokers: - broker: 0 nodePort: {{ .Values.global.nodePortPrefixExt }}90 - broker: 1 nodePort: {{ .Values.global.nodePortPrefixExt }}91 - broker: 2 nodePort: {{ .Values.global.nodePortPrefixExt }}92 authorization: type: {{ .Values.config.authType }} superUsers: - {{ .Values.config.strimziKafkaAdminUser }} template: pod: securityContext: runAsUser: 0 fsGroup: 0 config: default.replication.factor: {{ .Values.replicaCount }} min.insync.replicas: {{ (eq 1.0 (.Values.replicaCount)) | ternary 1 (sub .Values.replicaCount 1) }} offsets.topic.replication.factor: {{ .Values.replicaCount }} num.partitions: {{ mul .Values.replicaCount 2 }} transaction.state.log.replication.factor: {{ .Values.replicaCount }} transaction.state.log.min.isr: {{ (eq 1.0 (.Values.replicaCount)) | ternary 1 (sub .Values.replicaCount 1) }} log.message.format.version: {{ .Values.config.kafkaVersion }} inter.broker.protocol.version: {{ .Values.config.kafkaVersion }} storage: type: jbod volumes: - id: 0 type: persistent-claim size: {{ .Values.persistence.kafka.size }} deleteClaim: true class: {{ include "common.storageClass" (dict "dot" . "suffix" "kafka" "persistenceInfos" .Values.persistence.kafka) }} zookeeper: template: pod: securityContext: runAsUser: 0 fsGroup: 0 replicas: {{ .Values.replicaCount }} config: ssl.hostnameVerification: false ssl.quorum.hostnameVerification: false {{- if (include "common.onServiceMesh" .) }} sslQuorum: false {{- end }} storage: type: persistent-claim size: {{ .Values.persistence.zookeeper.size }} deleteClaim: true class: {{ include "common.storageClass" (dict "dot" . "suffix" "zk" "persistenceInfos" .Values.persistence.zookeeper) }} entityOperator: topicOperator: {} userOperator: {}