@@ -59,3 +59,221 @@ Create the name of the service account to use
5959{{- default " default" .Values.serviceAccount.name }}
6060{{- end }}
6161{{- end }}
62+
63+ {{/*
64+ Kafka service name based on deployment mode
65+ Usage: {{ include "akto.kafka.serviceName" (dict "root" . "separate" true/false) }}
66+ */ }}
67+ {{- define " akto.kafka.serviceName" -}}
68+ {{- if .separate }}
69+ {{- printf " %s -kafka" (include " akto.fullname" .root ) }}
70+ {{- else }}
71+ {{- printf " %s -mini-runtime" (include " akto.fullname" .root ) }}
72+ {{- end }}
73+ {{- end }}
74+
75+ {{/*
76+ Kafka FQDN based on deployment mode
77+ Usage: {{ include "akto.kafka.fqdn" (dict "root" . "separate" true/false) }}
78+ */ }}
79+ {{- define " akto.kafka.fqdn" -}}
80+ {{- $serviceName := include " akto.kafka.serviceName" . }}
81+ {{- printf " %s .%s .svc.%s " $serviceName .root.Release.Namespace .root.Values.kubernetesClusterDomain }}
82+ {{- end }}
83+
84+ {{/*
85+ Kafka service template
86+ Usage: {{ include "akto.kafka.service" (dict "root" . "separate" true/false) }}
87+ */ }}
88+ {{- define " akto.kafka.service" -}}
89+ apiVersion: v1
90+ kind: Service
91+ metadata:
92+ name: {{ include " akto.kafka.serviceName" . }}
93+ labels:
94+ {{- include " akto.labels" .root | nindent 4 }}
95+ annotations:
96+ {{- with .root.Values.mini_runtime.annotations }}
97+ {{- toYaml . | nindent 4 }}
98+ {{- end }}
99+ spec:
100+ type: {{ .root.Values.mini_runtime.type }}
101+ selector:
102+ app: {{ include " akto.kafka.serviceName" . }}
103+ {{- include " akto.selectorLabels" .root | nindent 4 }}
104+ ports:
105+ {{- if .root.Values.mini_runtime.kafka1.useSasl }}
106+ {{- .root.Values.ports.sasl | toYaml | nindent 4 -}}
107+ {{- else if .root.Values.mini_runtime.kafka1.useTls }}
108+ {{- .root.Values.ports.tls | toYaml | nindent 4 -}}
109+ {{- else }}
110+ {{- .root.Values.ports.default | toYaml | nindent 4 -}}
111+ {{- end }}
112+ {{- end }}
113+
114+ {{/*
115+ Kafka advertised listeners based on mode and security settings
116+ Usage: {{ include "akto.kafka.advertisedListeners" (dict "root" . "separate" true/false) }}
117+ */ }}
118+ {{- define " akto.kafka.advertisedListeners" -}}
119+ {{- $fqdn := include " akto.kafka.fqdn" . }}
120+ {{- if .root.Values.mini_runtime.kafka1.env.kafkaAdvertisedListeners }}
121+ {{ .root.Values.mini_runtime.kafka1.env.kafkaAdvertisedListeners }}
122+ {{- else if and .root.Values.mini_runtime.kafka1.useSasl .root.Values.mini_runtime.kafka1.useTls }}
123+ LISTENER_DOCKER_EXTERNAL_DIFFHOST_SASL://{{ $fqdn }}:9093, LISTENER_DOCKER_EXTERNAL_LOCALHOST_SASL://localhost:29092
124+ {{- else if .root.Values.mini_runtime.kafka1.useSasl }}
125+ LISTENER_DOCKER_EXTERNAL_LOCALHOST_SASL://localhost:29092,LISTENER_DOCKER_EXTERNAL_DIFFHOST_SASL://{{ $fqdn }}:9092
126+ {{- else if .root.Values.mini_runtime.kafka1.useTls }}
127+ LISTENER_DOCKER_EXTERNAL_LOCALHOST://localhost:29092,LISTENER_DOCKER_EXTERNAL_DIFFHOST://{{ $fqdn }}:9092,LISTENER_DOCKER_EXTERNAL_DIFFHOST_ENCRYPTED://{{ $fqdn }}:9093
128+ {{- else }}
129+ LISTENER_DOCKER_EXTERNAL_LOCALHOST://localhost:29092,LISTENER_DOCKER_EXTERNAL_DIFFHOST://{{ $fqdn }}:9092
130+ {{- end }}
131+ {{- end }}
132+
133+ {{/*
134+ Kafka container template
135+ Usage: {{ include "akto.kafka.container" (dict "root" . "separate" true/false) }}
136+ */ }}
137+ {{- define " akto.kafka.container" -}}
138+ - env:
139+ - name: MY_POD_NAMESPACE
140+ valueFrom:
141+ fieldRef:
142+ fieldPath: metadata.namespace
143+ - name: KAFKA_ADVERTISED_LISTENERS
144+ value: >-
145+ {{- include " akto.kafka.advertisedListeners" . | nindent 6 }}
146+ - name: KAFKA_BROKER_ID
147+ value: {{ quote .root.Values.mini_runtime.kafka1.env.kafkaBrokerId }}
148+ - name: KAFKA_CLEANUP_POLICY
149+ value: {{ quote .root.Values.mini_runtime.kafka1.env.kafkaCleanupPolicy }}
150+ - name: KAFKA_CREATE_TOPICS
151+ {{- if and .separate .root.Values.mini_runtime.kafkaSeparate.kafkaCreateTopics }}
152+ value: {{ quote .root.Values.mini_runtime.kafkaSeparate.kafkaCreateTopics }}
153+ {{- else }}
154+ value: {{ quote .root.Values.mini_runtime.kafka1.env.kafkaCreateTopics }}
155+ {{- end }}
156+ - name: KAFKA_INTER_BROKER_LISTENER_NAME
157+ value: >-
158+ {{- if .root.Values.mini_runtime.kafka1.env.kafkaAdvertisedListeners }}
159+ {{ .root.Values.mini_runtime.kafka1.env.kafkaInterBrokerListenerName }}
160+ {{- else if .root.Values.mini_runtime.kafka1.useSasl }}
161+ LISTENER_DOCKER_EXTERNAL_DIFFHOST_SASL
162+ {{- else if .root.Values.mini_runtime.kafka1.useTls }}
163+ LISTENER_DOCKER_EXTERNAL_DIFFHOST
164+ {{- else }}
165+ {{ .root.Values.mini_runtime.kafka1.env.kafkaInterBrokerListenerName }}
166+ {{- end }}
167+ - name: KAFKA_LISTENER_SECURITY_PROTOCOL_MAP
168+ value: >-
169+ {{- if and .root.Values.mini_runtime.kafka1.useSasl .root.Values.mini_runtime.kafka1.useTls }}
170+ {{ .root.Values.mini_runtime.kafka1.env.kafkaListenerSecurityProtocolMapSaslTls }}
171+ {{- else if .root.Values.mini_runtime.kafka1.useSasl }}
172+ {{ .root.Values.mini_runtime.kafka1.env.kafkaListenerSecurityProtocolMapSasl }}
173+ {{- else if .root.Values.mini_runtime.kafka1.useTls }}
174+ {{ .root.Values.mini_runtime.kafka1.env.kafkaListenerSecurityProtocolMapSsl }}
175+ {{- else }}
176+ {{ .root.Values.mini_runtime.kafka1.env.kafkaListenerSecurityProtocolMap }}
177+ {{- end }}
178+ - name: KAFKA_PROCESS_ROLES
179+ value: {{ quote .root.Values.mini_runtime.kafka1.env.kafkaProcessRoles }}
180+ - name: KAFKA_NODE_ID
181+ value: {{ quote .root.Values.mini_runtime.kafka1.env.kafkaNodeId }}
182+ - name: KAFKA_CONTROLLER_QUORUM_VOTERS
183+ value: {{ quote .root.Values.mini_runtime.kafka1.env.kafkaControllerQuorumVoters }}
184+ - name: KAFKA_CONTROLLER_LISTENER_NAMES
185+ value: {{ quote .root.Values.mini_runtime.kafka1.env.kafkaControllerListenerNames }}
186+ - name: KAFKA_LISTENERS
187+ value: >-
188+ {{- if .root.Values.mini_runtime.kafka1.env.kafkaListeners }}
189+ {{ .root.Values.mini_runtime.kafka1.env.kafkaListeners }}
190+ {{- else if and .root.Values.mini_runtime.kafka1.useSasl .root.Values.mini_runtime.kafka1.useTls }}
191+ CONTROLLER://0.0.0.0 :9094,LISTENER_DOCKER_EXTERNAL_LOCALHOST_SASL://0.0.0.0 :29092,LISTENER_DOCKER_EXTERNAL_DIFFHOST_SASL://0.0.0.0 :9093
192+ {{- else if .root.Values.mini_runtime.kafka1.useSasl }}
193+ CONTROLLER://0.0.0.0 :9094,LISTENER_DOCKER_EXTERNAL_LOCALHOST_SASL://0.0.0.0 :29092,LISTENER_DOCKER_EXTERNAL_DIFFHOST_SASL://0.0.0.0 :9092
194+ {{- else if .root.Values.mini_runtime.kafka1.useTls }}
195+ CONTROLLER://0.0.0.0 :9094,LISTENER_DOCKER_EXTERNAL_LOCALHOST://0.0.0.0 :29092,LISTENER_DOCKER_EXTERNAL_DIFFHOST_ENCRYPTED://0.0.0.0 :9093
196+ {{- else }}
197+ CONTROLLER://0.0.0.0 :9094,LISTENER_DOCKER_EXTERNAL_LOCALHOST://0.0.0.0 :29092,LISTENER_DOCKER_EXTERNAL_DIFFHOST://0.0.0.0 :9092
198+ {{- end }}
199+ - name: KAFKA_LOG_CLEANER_ENABLE
200+ value: {{ quote .root.Values.mini_runtime.kafka1.env.kafkaLogCleanerEnable }}
201+ - name: KAFKA_LOG_RETENTION_BYTES
202+ value: {{ quote .root.Values.mini_runtime.kafka1.env.kafkaLogRetentionBytes }}
203+ - name: KAFKA_LOG_RETENTION_CHECK_INTERVAL_MS
204+ value: {{ quote .root.Values.mini_runtime.kafka1.env.kafkaLogRetentionCheckIntervalMs }}
205+ - name: KAFKA_LOG_RETENTION_HOURS
206+ value: {{ quote .root.Values.mini_runtime.kafka1.env.kafkaLogRetentionHours }}
207+ - name: KAFKA_LOG_SEGMENT_BYTES
208+ value: {{ quote .root.Values.mini_runtime.kafka1.env.kafkaLogSegmentBytes }}
209+ - name: KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR
210+ value: {{ quote .root.Values.mini_runtime.kafka1.env.kafkaOffsetsTopicReplicationFactor }}
211+ - name: KAFKA_TRANSACTION_STATE_LOG_MIN_ISR
212+ value: {{ quote .root.Values.mini_runtime.kafka1.env.kafkaTransactionStateLogMinIsr }}
213+ - name: KAFKA_TRANSACTION_STATE_LOG_REPLICATION_FACTOR
214+ value: {{ quote .root.Values.mini_runtime.kafka1.env.kafkaTransactionStateLogReplicationFactor }}
215+ - name: CLUSTER_ID
216+ value: {{ quote .root.Values.mini_runtime.kafka1.env.kafkaClusterId }}
217+ {{- if .root.Values.mini_runtime.kafka1.useTls }}
218+ - name: KAFKA_SSL_KEYSTORE_LOCATION
219+ value: {{ quote .root.Values.mini_runtime.kafka1.env.sslKeystoreLocation }}
220+ - name: KAFKA_SSL_KEYSTORE_PASSWORD
221+ value: {{ quote .root.Values.mini_runtime.kafka1.env.sslKeystorePassword }}
222+ - name: KAFKA_SSL_KEY_PASSWORD
223+ value: {{ quote .root.Values.mini_runtime.kafka1.env.sslKeyPassword }}
224+ - name: KAFKA_SSL_TRUSTSTORE_LOCATION
225+ value: {{ quote .root.Values.mini_runtime.kafka1.env.sslTruststoreLocation }}
226+ - name: KAFKA_SSL_TRUSTSTORE_PASSWORD
227+ value: {{ quote .root.Values.mini_runtime.kafka1.env.sslTruststorePassword }}
228+ {{- end }}
229+ {{- if .root.Values.mini_runtime.kafka1.useSasl }}
230+ - name: KAFKA_OPTS
231+ value: " -Djava.security.auth.login.config=/etc/kafka/config/kafka_server_jaas.conf"
232+ - name: KAFKA_SASL_ENABLED_MECHANISMS
233+ value: " PLAIN"
234+ - name: KAFKA_SASL_MECHANISM_INTER_BROKER_PROTOCOL
235+ value: " PLAIN"
236+ {{- end }}
237+ - name: KUBERNETES_CLUSTER_DOMAIN
238+ value: {{ quote .root.Values.kubernetesClusterDomain }}
239+ image: {{ .root.Values.mini_runtime.kafka1.image.repository }}:{{ .root.Values.mini_runtime.kafka1.image.tag | default .root.Chart.AppVersion }}
240+ {{- if or .root.Values.mini_runtime.kafka1.useTls .root.Values.mini_runtime.kafka1.useSasl }}
241+ volumeMounts:
242+ {{- if .root.Values.mini_runtime.kafka1.useTls }}
243+ - name: kafka-certs
244+ mountPath: {{ quote .root.Values.mini_runtime.kafka1.env.sslBaseMountPath }}
245+ {{- end }}
246+ {{- if .root.Values.mini_runtime.kafka1.useSasl }}
247+ - name: kafka-jaas-config
248+ mountPath: /etc/kafka/config
249+ readOnly: true
250+ {{- end }}
251+ {{- end }}
252+ name: {{ if .separate }}kafka{{ else }}kafka1{{ end }}
253+ ports:
254+ - containerPort: 9092
255+ - containerPort: 9093
256+ - containerPort: 29092
257+ - containerPort: 9999
258+ resources: {{- toYaml .root.Values.mini_runtime.kafka1.resources | nindent 4 }}
259+ {{- end }}
260+
261+ {{/*
262+ Kafka volumes template
263+ Usage: {{ include "akto.kafka.volumes" . }}
264+ */ }}
265+ {{- define " akto.kafka.volumes" -}}
266+ {{- if or .Values.mini_runtime.kafka1.useTls .Values.mini_runtime.kafka1.useSasl }}
267+ volumes:
268+ {{- if .Values.mini_runtime.kafka1.useTls }}
269+ - name: kafka-certs
270+ secret:
271+ secretName: {{ quote .Values.mini_runtime.kafka1.env.sslSecretName }}
272+ {{- end }}
273+ {{- if .Values.mini_runtime.kafka1.useSasl }}
274+ - name: kafka-jaas-config
275+ configMap:
276+ name: {{ include " akto.fullname" . }}-kafka-jaas-config
277+ {{- end }}
278+ {{- end }}
279+ {{- end }}
0 commit comments