File tree Expand file tree Collapse file tree 3 files changed +58
-1
lines changed Expand file tree Collapse file tree 3 files changed +58
-1
lines changed Original file line number Diff line number Diff line change 11
11
export KAFKA_BROKER_ID=${HOSTNAME##*-}
12
12
sed -i "s/\${KAFKA_BROKER_ID}/$KAFKA_BROKER_ID/" /etc/kafka/server.properties
13
13
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
25
+ }
26
+
14
27
server.properties : |-
15
28
# Licensed to the Apache Software Foundation (ASF) under one or more
16
29
# contributor license agreements. See the NOTICE file distributed with
34
47
# The id of the broker. This must be set to a unique integer for each broker.
35
48
broker.id=${KAFKA_BROKER_ID}
36
49
50
+ #init#broker.rack=#init#
51
+
37
52
# Switch to enable topic deletion or not, default value is false
38
53
delete.topic.enable=true
39
54
Original file line number Diff line number Diff line change 15
15
terminationGracePeriodSeconds : 30
16
16
initContainers :
17
17
- name : init-config
18
- image : solsson/kafka:0.11.0.0@sha256:b27560de08d30ebf96d12e74f80afcaca503ad4ca3103e63b1fd43a2e4c976ce
18
+ image : solsson/kafka-initutils@sha256:c275d681019a0d8f01295dbd4a5bae3cfa945c8d0f7f685ae1f00f2579f08c7d
19
+ env :
20
+ - name : NODE_NAME
21
+ valueFrom :
22
+ fieldRef :
23
+ fieldPath : spec.nodeName
19
24
command : ['/bin/bash', '/etc/kafka/init.sh']
20
25
volumeMounts :
21
26
- name : config
Original file line number Diff line number Diff line change
1
+ # To see if init containers need RBAC:
2
+ #
3
+ # $ kubectl exec kafka-0 -- cat /etc/kafka/server.properties | grep broker.rack
4
+ # #init#broker.rack=# zone lookup failed, see -c init-config logs
5
+ # $ kubectl logs -c init-config kafka-0
6
+ # ++ kubectl get node some-node '-o=go-template={{index .metadata.labels "failure-domain.beta.kubernetes.io/zone"}}'
7
+ # Error from server (Forbidden): User "system:serviceaccount:kafka:default" cannot get nodes at the cluster scope.: "Unknown user \"system:serviceaccount:kafka:default\""
8
+ #
9
+ ---
10
+ kind : ClusterRole
11
+ apiVersion : rbac.authorization.k8s.io/v1beta1
12
+ metadata :
13
+ name : node-reader
14
+ labels :
15
+ origin : github.com_Yolean_kubernetes-kafka
16
+ rules :
17
+ - apiGroups :
18
+ - " "
19
+ resources :
20
+ - nodes
21
+ verbs :
22
+ - get
23
+ ---
24
+ kind : ClusterRoleBinding
25
+ apiVersion : rbac.authorization.k8s.io/v1beta1
26
+ metadata :
27
+ name : kafka-node-reader
28
+ labels :
29
+ origin : github.com_Yolean_kubernetes-kafka
30
+ roleRef :
31
+ apiGroup : rbac.authorization.k8s.io
32
+ kind : ClusterRole
33
+ name : node-reader
34
+ subjects :
35
+ - kind : ServiceAccount
36
+ name : default
37
+ namespace : kafka
You can’t perform that action at this time.
0 commit comments