Skip to content

Commit d4ddabd

Browse files
committed
Looks up zone if kubectl is found, tries to not break config otherwise
1 parent 8ee2ef6 commit d4ddabd

File tree

2 files changed

+17
-12
lines changed

2 files changed

+17
-12
lines changed

10broker-config.yml

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -11,17 +11,17 @@ data:
1111
export KAFKA_BROKER_ID=${HOSTNAME##*-}
1212
sed -i "s/\${KAFKA_BROKER_ID}/$KAFKA_BROKER_ID/" /etc/kafka/server.properties
1313
14-
PODNAME=$HOSTNAME
15-
NAMESPACE=$(cat /var/run/secrets/kubernetes.io/serviceaccount/namespace)
16-
17-
# todo add curl to kafka image, switch to a curl image for init or write the whole lookup in java
18-
hash curl 2>/dev/null || { apt-get update; DEBIAN_FRONTEND=noninteractive apt-get install curl -y --no-install-recommends; }
19-
20-
API=https://$KUBERNETES_SERVICE_HOST:$KUBERNETES_SERVICE_PORT/api
21-
AUTH="--cacert /run/secrets/kubernetes.io/serviceaccount/ca.crt --header \"Authorization: Bearer $(cat /run/secrets/kubernetes.io/serviceaccount/token)\""
22-
23-
curl -s $AUTH $API/namespaces/kafka/pods/$PODNAME -I --fail-early || {
24-
echo "Access problems. Could be RBAC."
14+
hash kubectl 2>/dev/null || {
15+
sed -i "s/#init#broker.rack=#init#/#init#broker.rack=# kubectl not found in path/" /etc/kafka/server.properties
16+
} && {
17+
ZONE=$(kubectl get node "$NODE_NAME" -o=go-template='{{index .metadata.labels "failure-domain.beta.kubernetes.io/zone"}}')
18+
if [ $? -ne 0 ]; then
19+
sed -i "s/#init#broker.rack=#init#/#init#broker.rack=# zone lookup failed, see -c init-config logs/" /etc/kafka/server.properties
20+
elif [ "x$ZONE" == "x<no value>" ]; then
21+
sed -i "s/#init#broker.rack=#init#/#init#broker.rack=# zone label not found for node $NODE_NAME/" /etc/kafka/server.properties
22+
else
23+
sed -i "s/#init#broker.rack=#init#/broker.rack=$ZONE/" /etc/kafka/server.properties
24+
fi
2525
}
2626
2727
server.properties: |-
@@ -47,7 +47,7 @@ data:
4747
# The id of the broker. This must be set to a unique integer for each broker.
4848
broker.id=${KAFKA_BROKER_ID}
4949
50-
#broker.rack=${KAFKA_BROKER_RACK}
50+
#init#broker.rack=#init#
5151
5252
# Switch to enable topic deletion or not, default value is false
5353
delete.topic.enable=true

50kafka.yml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,11 @@ spec:
1616
initContainers:
1717
- name: init-config
1818
image: solsson/kafka:0.11.0.0@sha256:b27560de08d30ebf96d12e74f80afcaca503ad4ca3103e63b1fd43a2e4c976ce
19+
env:
20+
- name: NODE_NAME
21+
valueFrom:
22+
fieldRef:
23+
fieldPath: spec.nodeName
1924
command: ['/bin/bash', '/etc/kafka/init.sh']
2025
volumeMounts:
2126
- name: config

0 commit comments

Comments
 (0)