{{/*
# 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:
  name: {{ include "common.fullname" . }}
  namespace: {{ include "common.namespace" . }}
  labels:
    app: {{ include "common.name" . }}
    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
    release: {{ include "common.release" . }}
    heritage: {{ .Release.Service }}
spec:
  kafka:
    version: {{ .Values.version }}
    replicas: {{ .Values.replicaCount }}
    listeners:
      - name: plain
        port: {{ .Values.kafkaInternalPort }}
        type: internal
        tls: false
        authentication:
          type: {{ .Values.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: simple
      superUsers:
        - {{ .Values.kafkaStrimziAdminUser }}
    template:
      pod:
        securityContext:
          runAsUser: 0
          fsGroup: 0
    config:
      default.replication.factor: {{ .Values.replicaCount }}
      min.insync.replicas: {{ .Values.replicaCount }}
      offsets.topic.replication.factor: {{ .Values.replicaCount }}
      transaction.state.log.replication.factor: {{ .Values.replicaCount }}
      transaction.state.log.min.isr: {{ .Values.replicaCount }}
      log.message.format.version: {{ .Values.version }}
      inter.broker.protocol.version: {{ .Values.version }}
    storage:
      type: jbod
      volumes:
      - id: 0
        type: persistent-claim
        size: {{ .Values.persistenceKafka.size }}
        deleteClaim: true
        class: {{ include "common.storageClass" (dict "dot" . "suffix" "kafka" "persistenceInfos" .Values.persistenceKafka) }}
  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.persistenceZk.size }}
      deleteClaim: true
      class: {{ include "common.storageClass" (dict "dot" . "suffix" "zk" "persistenceInfos" .Values.persistenceZk) }}
  entityOperator:
    topicOperator: {}
    userOperator: {}

