aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStaffan Olsson <staffan@repos.se>2018-01-08 16:15:45 +0100
committerStaffan Olsson <staffan@repos.se>2018-01-08 16:15:45 +0100
commitcc27bc113cfe2d295a59336236ea4d69ca4c38f3 (patch)
tree58d4492daf234cabb824eecbaedd0c41738f93e1
parentf76e192ab4cdd5d0cc833690276a5eb3e7aa715d (diff)
downloadkubernetes-kafka-cc27bc113cfe2d295a59336236ea4d69ca4c38f3.tar.gz
kubernetes-kafka-cc27bc113cfe2d295a59336236ea4d69ca4c38f3.tar.bz2
kubernetes-kafka-cc27bc113cfe2d295a59336236ea4d69ca4c38f3.zip
Sets all labels at the end of the init script,broker-init-pod-labler
to speed up a bit and reduce the risk that it interferes with actual config. Also if the init script goes crash looping you won't get warnings about labels already being set.
-rw-r--r--kafka/10broker-config.yml13
-rw-r--r--rbac-namespace-default/pod-labler.yml1
2 files changed, 8 insertions, 6 deletions
diff --git a/kafka/10broker-config.yml b/kafka/10broker-config.yml
index 55a0c3b..2846232 100644
--- a/kafka/10broker-config.yml
+++ b/kafka/10broker-config.yml
@@ -11,6 +11,8 @@ data:
KAFKA_BROKER_ID=${HOSTNAME##*-}
sed -i "s/#init#broker.id=#init#/broker.id=$KAFKA_BROKER_ID/" /etc/kafka/server.properties
+ LABELS="kafka-broker-id=$KAFKA_BROKER_ID"
+
hash kubectl 2>/dev/null || {
sed -i "s/#init#broker.rack=#init#/#init#broker.rack=# kubectl not found in path/" /etc/kafka/server.properties
} && {
@@ -21,19 +23,20 @@ data:
sed -i "s/#init#broker.rack=#init#/#init#broker.rack=# zone label not found for node $NODE_NAME/" /etc/kafka/server.properties
else
sed -i "s/#init#broker.rack=#init#/broker.rack=$ZONE/" /etc/kafka/server.properties
- kubectl -n $POD_NAMESPACE label pod $POD_NAME kafka-broker-rack=$ZONE
+ LABELS="$LABELS kafka-broker-rack=$ZONE"
fi
- kubectl -n $POD_NAMESPACE label pod $POD_NAME kafka-broker-id=$KAFKA_BROKER_ID
-
OUTSIDE_HOST=$(kubectl get node "$NODE_NAME" -o jsonpath='{.status.addresses[?(@.type=="InternalIP")].address}')
if [ $? -ne 0 ]; then
echo "Outside (i.e. cluster-external access) host lookup command failed"
else
OUTSIDE_PORT=3240${KAFKA_BROKER_ID}
sed -i "s|#init#advertised.listeners=OUTSIDE://#init#|advertised.listeners=OUTSIDE://${OUTSIDE_HOST}:${OUTSIDE_PORT}|" /etc/kafka/server.properties
- kubectl -n $POD_NAMESPACE label pod $POD_NAME kafka-listener-outside-host=$OUTSIDE_HOST
- kubectl -n $POD_NAMESPACE label pod $POD_NAME kafka-listener-outside-port=$OUTSIDE_PORT
+ LABELS="$LABELS kafka-listener-outside-host=$OUTSIDE_HOST kafka-listener-outside-port=$OUTSIDE_PORT"
+ fi
+
+ if [ ! -z "$LABELS" ]; then
+ kubectl -n $POD_NAMESPACE label pod $POD_NAME $LABELS || echo "Failed to label $POD_NAMESPACE.$POD_NAME - RBAC issue?"
fi
}
diff --git a/rbac-namespace-default/pod-labler.yml b/rbac-namespace-default/pod-labler.yml
index 92745af..bd488b0 100644
--- a/rbac-namespace-default/pod-labler.yml
+++ b/rbac-namespace-default/pod-labler.yml
@@ -2,7 +2,6 @@
#
# $ kubectl -n kafka logs kafka-2 -c init-config
# ...
-# + kubectl -n kafka label pod kafka-2 kafka-broker-id=2
# Error from server (Forbidden): pods "kafka-2" is forbidden: User "system:serviceaccount:kafka:default" cannot get pods in the namespace "kafka": Unknown user "system:serviceaccount:kafka:default"
#
---