{{/*
# 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: {{ if (include "common.ingressEnabled" .) }}cluster-ip{{ else }}nodeport{{ end }}
        tls: {{ if (include "common.ingressEnabled" .) }}false{{ else }}true{{ end }}
        authentication:
          type: {{ if (include "common.ingressEnabled" .) }}{{ .Values.config.saslMechanism }}{{ else }}tls{{ end }}
        configuration:
          {{- if not (include "common.ingressEnabled" .) }}
          bootstrap:
            nodePort: {{ .Values.global.nodePortPrefixExt }}93
          {{- end }}
          brokers:
            - broker: 0
              advertisedHost: {{ .Values.config.advertisedHost }}
              advertisedPort: {{ .Values.config.advertizedPortBroker0 }}
              {{- if not (include "common.ingressEnabled" .) }}
              nodePort: {{ .Values.global.nodePortPrefixExt }}90
              {{- end }}
            - broker: 1
              advertisedHost: {{ .Values.config.advertisedHost }}
              advertisedPort: {{ .Values.config.advertizedPortBroker1 }}
              {{- if not (include "common.ingressEnabled" .) }}
              nodePort: {{ .Values.global.nodePortPrefixExt }}91
              {{- end }}
            - broker: 2
              advertisedHost: {{ .Values.config.advertisedHost }}
              advertisedPort: {{ .Values.config.advertizedPortBroker2 }}
              {{- if not (include "common.ingressEnabled" .) }}
              nodePort: {{ .Values.global.nodePortPrefixExt }}92
              {{- end }}
    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: {}

