Skip to content

Commit 4cf964a

Browse files
committed
chart(kafka-ha): release 18.0.0
1 parent 9d675b1 commit 4cf964a

File tree

8 files changed

+84
-55
lines changed

8 files changed

+84
-55
lines changed

charts/kafka-ha/Chart.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,4 +7,4 @@ keywords:
77
- kraft
88
name: kafka-ha
99
type: application
10-
version: 17.0.2
10+
version: 18.0.0

charts/kafka-ha/README.md

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -98,4 +98,16 @@ broker:
9898

9999
## 集群外访问
100100

101-
请参考 <https://github.com/itboon/kafka-helm/blob/main/docs/external.md>
101+
```yaml
102+
## NodePort example
103+
broker:
104+
external:
105+
enabled: true
106+
service:
107+
type: "NodePort"
108+
annotations: {}
109+
autoDiscovery:
110+
enabled: true
111+
```
112+
113+
更多集群外案例请参考 <https://github.com/itboon/kafka-helm/blob/main/docs/external.md>

charts/kafka-ha/templates/broker/_helpers.tpl

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,17 @@ broker.externalDns.domain
5656
{{- end -}}
5757
{{- end -}}
5858

59+
{{/*
60+
broker.externalDns.hostnamePrefix
61+
*/}}
62+
{{- define "broker.externalDns.hostnamePrefix" -}}
63+
{{- if .Values.broker.external.externalDns.hostnamePrefix -}}
64+
{{- .Values.broker.external.externalDns.hostnamePrefix -}}
65+
{{- else -}}
66+
{{- printf "%s-%s" (include "kafka.fullname" .) .Release.Namespace -}}
67+
{{- end -}}
68+
{{- end -}}
69+
5970
{{/*
6071
broker.advertisedListeners.internal
6172
*/}}
@@ -79,8 +90,7 @@ broker.advertisedListeners.external
7990
{{- $port = .hostPort | default .containerPort -}}
8091
{{- end -}}
8192
{{- if eq (include "broker.externalDns.enabled" $) "true" -}}
82-
{{- $domain := (include "broker.externalDns.domain" $) -}}
83-
{{- $addr = printf "$(POD_NAME).%s" $domain -}}
93+
{{- $addr = printf "$(POD_NAME).%s.%s" (include "broker.externalDns.hostnamePrefix" $) (include "broker.externalDns.domain" $) -}}
8494
{{- end -}}
8595
{{- end -}}
8696
{{- printf "EXTERNAL://%s:%d" $addr ($port | int) -}}
@@ -179,12 +189,11 @@ broker.externalEnv
179189
value: {{ include "broker.fullNodePorts" $ | quote }}
180190
{{- end }}
181191
{{- if eq .type "LoadBalancer" }}
182-
{{- $externalDnsEnabled := eq (include "broker.externalDns.enabled" $) "true" }}
183-
{{- if and $externalDnsEnabled .externalDns.hostnamePrefixOverride }}
192+
{{- if eq (include "broker.externalDns.enabled" $) "true" }}
184193
- name: KAFKA_EXTERNAL_DOMAIN
185194
value: {{ include "broker.externalDns.domain" $ }}
186195
- name: KAFKA_EXTERNAL_HOSTNAME_PREFIX
187-
value: {{ .externalDns.hostnamePrefixOverride | quote }}
196+
value: {{ include "broker.externalDns.hostnamePrefix" $ }}
188197
{{- end }}
189198
{{- end }}
190199
{{- end }}

charts/kafka-ha/templates/broker/statefulset.yaml

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -87,23 +87,17 @@ spec:
8787
{{- toYaml . | nindent 10 }}
8888
{{- end }}
8989
volumeMounts:
90-
- mountPath: /opt/kafka/data
90+
- mountPath: {{ .persistence.mountPath }}
9191
name: data
9292
subPath: data
93-
- mountPath: /opt/kafka/logs
93+
- mountPath: {{ .persistence.logsMountPath | default "/opt/kafka/logs" }}
9494
name: data
9595
subPath: logs
9696
- mountPath: "/etc/kafka/base-cm"
9797
name: base-cm
98-
# - mountPath: "kafka.broker.baseConfigFile"
99-
# name: base-config
100-
# subPath: server.properties
10198
- mountPath: /entrypoint.sh
10299
name: entrypoint-sh
103100
subPath: entrypoint.sh
104-
# - mountPath: /etc/kafka/broker/config-init.sh
105-
# name: config-init-sh
106-
# subPath: config-init.sh
107101
{{- if eq (include "broker.external.autoDiscovery.enabled" $) "true" }}
108102
- name: auto-discovery-shared
109103
mountPath: /init-shared

charts/kafka-ha/templates/broker/svc-external.yaml

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,10 +26,7 @@ metadata:
2626
{{- end }}
2727
{{- if eq (include "broker.externalDns.enabled" $) "true" }}
2828
{{- if eq $.Values.broker.external.type "LoadBalancer" }}
29-
{{- $hostname := printf "%s.%s" $targetPod (include "broker.externalDns.domain" $) }}
30-
{{- with $.Values.broker.external.externalDns.hostnamePrefixOverride }}
31-
{{- $hostname = printf "%s-%d.%s" . (int $i) (include "broker.externalDns.domain" $) }}
32-
{{- end }}
29+
{{- $hostname := printf "%s-%d.%s" (include "broker.externalDns.hostnamePrefix" $) (int $i) (include "broker.externalDns.domain" $) }}
3330
external-dns.alpha.kubernetes.io/hostname: {{ $hostname | quote }}
3431
{{- with $.Values.broker.external.externalDns.annotations }}
3532
{{- toYaml . | nindent 4 }}

charts/kafka-ha/templates/broker/svc-headless.yaml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,8 @@ metadata:
1919
{{- $validExternalType := list "PodIP" "NodePort" "HostPort" }}
2020
{{- $externalType := $.Values.broker.external.type }}
2121
{{- if has $externalType $validExternalType }}
22-
external-dns.alpha.kubernetes.io/hostname: {{ include "broker.externalDns.domain" $ }}
22+
{{- $hostname := printf "%s.%s" (include "broker.externalDns.hostnamePrefix" $) (include "broker.externalDns.domain" $) }}
23+
external-dns.alpha.kubernetes.io/hostname: {{ $hostname | quote }}
2324
{{- if or (eq $externalType "NodePort") (eq $externalType "HostPort") }}
2425
external-dns.alpha.kubernetes.io/endpoints-type: HostIP
2526
{{- end }}

charts/kafka-ha/templates/cm-entrypoint.yaml

Lines changed: 47 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -11,26 +11,20 @@ data:
1111
entrypoint.sh: |
1212
#!/bin/sh
1313
14+
export KAFKA_HOME="${KAFKA_HOME:=/opt/kafka}"
15+
1416
export KAFKA_CONF_FILE="${KAFKA_CONF_FILE:=/etc/kafka/server.properties}"
1517
export KAFKA_BROKER_LISTENER_PORT="${KAFKA_BROKER_LISTENER_PORT:=9092}"
1618
export KAFKA_CONTROLLER_LISTENER_PORT="${KAFKA_CONTROLLER_LISTENER_PORT:=19091}"
1719
export KAFKA_BASE_CONF_FILE="${KAFKA_BASE_CONF_FILE:=/etc/kafka/base-cm/server.properties}"
1820
19-
export KAFKA_CFG_LOG_DIR="$KAFKA_HOME/data"
20-
21-
if [ -z "$KAFKA_HOME" ]; then
22-
export KAFKA_HOME="/opt/kafka"
23-
export KAFKA_CFG_LOG_DIR="$KAFKA_HOME/data"
24-
fi
25-
if [ ! -d "$KAFKA_HOME" ]; then
26-
mkdir -p "$KAFKA_HOME"
27-
fi
21+
export KAFKA_CFG_LOG_DIR="${KAFKA_CFG_LOG_DIR:=/var/lib/kafka/data}"
2822
2923
check_runtime() {
3024
java -version
3125
if [ $? -ne 0 ]; then
3226
echo "[ERROR] Missing java"
33-
exit "500"
27+
exit "50"
3428
fi
3529
}
3630
@@ -84,15 +78,6 @@ data:
8478
fi
8579
}
8680
87-
take_file_ownership() {
88-
if [ "$(id -u)" = "0" ]; then
89-
chown -R 1000:1000 "$KAFKA_HOME"
90-
if [ -d "$KAFKA_CFG_LOG_DIR" ]; then
91-
chown -R 1000:1000 "$KAFKA_CFG_LOG_DIR"
92-
fi
93-
fi
94-
}
95-
9681
update_server_conf() {
9782
local key=$1
9883
local value=$2
@@ -169,7 +154,7 @@ data:
169154
if [ ! -f "$KAFKA_CONF_FILE" ]; then
170155
mkdir -p "$(dirname $KAFKA_CONF_FILE)"
171156
if [ -f "$KAFKA_BASE_CONF_FILE" ]; then
172-
cat "$KAFKA_BASE_CONF_FILE" > $KAFKA_CONF_FILE
157+
cat "$KAFKA_BASE_CONF_FILE" | grep -Ev '^log.dirs? *=' > $KAFKA_CONF_FILE
173158
fi
174159
touch "$KAFKA_CONF_FILE"
175160
fi
@@ -182,22 +167,43 @@ data:
182167
done
183168
}
184169
185-
reset_log_dirs() {
186-
## protect log.dirs
187-
if [ "$KAFKA_LOG_DIR_LOCKED" = "false" ]; then
170+
take_logdir_ownership_if_needed() {
171+
local dir="$1"
172+
if [ -d "$dir" ]; then
173+
if [ "$KAFKA_LOGDIR_CHOWN_FORCE" = "true" ]; then
174+
chown -R 1000:1000 "$dir"
175+
echo "ls -alh $dir" ; ls -alh "$dir"
176+
elif [ "$(stat -c "%u" $dir)" != "1000" ]; then
177+
chown -R 1000:1000 "$dir"
178+
echo "ls -alh $dir" ; ls -alh "$dir"
179+
fi
180+
fi
181+
}
182+
183+
init_kafka_dirs_ownership() {
184+
if [ "$(id -u)" != "0" ]; then
188185
return
189186
fi
190-
sed -i "/^log.dir *=/d" "$KAFKA_CONF_FILE"
191-
update_server_conf "log.dirs" "$KAFKA_CFG_LOG_DIR"
187+
if [ -n "$KAFKA_CFG_LOG_DIRS" ]; then
188+
unset IFS
189+
echo "$KAFKA_CFG_LOG_DIRS" | tr ',' '\n' | while read dir ; do
190+
take_logdir_ownership_if_needed "$dir"
191+
done
192+
elif [ -d "$KAFKA_CFG_LOG_DIR" ]; then
193+
take_logdir_ownership_if_needed "$KAFKA_CFG_LOG_DIR"
194+
fi
195+
if [ "$KAFKA_HOMEDIR_CHOWN_FORCE" = "true" ]; then
196+
chown -R 1000:1000 "$KAFKA_HOME"
197+
fi
198+
take_logdir_ownership_if_needed "$KAFKA_HOME/logs"
192199
}
193200
194-
start_server() {
195-
check_runtime
196-
reset_log_dirs
197-
if [ -n "$KAFKA_HEAP_OPTS" ]; then
198-
export JAVA_TOOL_OPTIONS="${JAVA_TOOL_OPTIONS} ${KAFKA_HEAP_OPTS}"
201+
init_storage_format_if_needed() {
202+
local logdir="$KAFKA_CFG_LOG_DIR"
203+
if [ -n "$KAFKA_CFG_LOG_DIRS" ]; then
204+
logdir=$(echo "$KAFKA_CFG_LOG_DIRS" | cut -d "," -f 1)
199205
fi
200-
if [ ! -f "$KAFKA_CFG_LOG_DIR/meta.properties" ]; then
206+
if [ ! -f "$logdir/meta.properties" ]; then
201207
echo ">>> Format Log Directories <<<"
202208
if [ -z "$KAFKA_CLUSTER_ID" ]; then
203209
echo "Generate a Cluster UUID"
@@ -212,11 +218,19 @@ data:
212218
-t $KAFKA_CLUSTER_ID -c "$KAFKA_CONF_FILE"
213219
fi
214220
fi
221+
}
222+
223+
start_server() {
224+
check_runtime
225+
init_server_conf
226+
init_kafka_dirs_ownership
227+
if [ -n "$KAFKA_HEAP_OPTS" ]; then
228+
export JAVA_TOOL_OPTIONS="${JAVA_TOOL_OPTIONS} ${KAFKA_HEAP_OPTS}"
229+
fi
230+
init_storage_format_if_needed
215231
run_as_other_user_if_needed "${KAFKA_HOME}/bin/kafka-server-start.sh" "$KAFKA_CONF_FILE"
216232
}
217233
218-
init_server_conf
219-
take_file_ownership
220234
if [ "$@" = "start" ]; then
221235
start_server
222236
else

charts/kafka-ha/values.yaml

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,8 @@ broker:
6060
persistence:
6161
enabled: true
6262
size: 20Gi
63+
mountPath: /var/lib/kafka/data
64+
logsMountPath: /opt/kafka/logs
6365
# storageClass: "gp2"
6466
## broker.resources
6567
resources:
@@ -108,8 +110,8 @@ broker:
108110
nodePorts: []
109111
externalDns:
110112
enabled: false
111-
# domain: ""
112-
# hostnamePrefixOverride: ""
113+
domain: ""
114+
hostnamePrefix: ""
113115
annotations: {}
114116
autoDiscovery:
115117
enabled: false

0 commit comments

Comments
 (0)