forked from strimzi/strimzi-kafka-oauth
-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathsimple_kafka_config.sh
executable file
·103 lines (88 loc) · 2.82 KB
/
simple_kafka_config.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
#!/bin/bash
declare -A props
to_property_name() {
key=$1
echo ${key:6} | tr _ . | tr [:upper:] [:lower:]
}
pop_value() {
key=$1
fallback=$2
if [ -z ${props[$key]+x} ] ; then
echo $fallback
else
echo ${props[$key]}
fi
unset props[$key]
}
#
# This function allows you to encode as KAFKA_* env vars property names that contain characters invalid for env var names
# You can use:
# KAFKA_LISTENER_NAME_CLIENT_SCRAM__2DSHA__2D256_SASL_JAAS_CONFIG=something
#
# Which will first be converted to:
# KAFKA_LISTENER_NAME_CLIENT_SCRAM%2DSHA%2D256_SASL_JAAS_CONFIG=something
#
# And then to:
# KAFKA_LISTENER_NAME_CLIENT_SCRAM-SHA-256_SASL_JAAS_CONFIG=something
#
unescape() {
if [[ "$1" != "" ]]; then
echo "$1" | sed -e "s@__@\%@g" -e "s@+@ @g;s@%@\\\\x@g" | xargs -0 printf "%b"
fi
}
unset IFS
for var in $(compgen -e); do
if [[ $var == KAFKA_* ]]; then
case $var in
KAFKA_DEBUG|KAFKA_OPTS|KAFKA_VERSION|KAFKA_HOME|KAFKA_CHECKSUM|KAFKA_LOG4J_OPTS|KAFKA_HEAP_OPTS|KAFKA_JVM_PERFORMANCE_OPTS|KAFKA_GC_LOG_OPTS|KAFKA_JMX_OPTS) ;;
*)
props[$(to_property_name $(unescape $var))]=${!var}
;;
esac
fi
done
#
# Generate output
#
if [[ "$1" == "--kraft" ]]; then
#
# Output kraft version of server.properties
#
echo "#"
echo "# strimzi.properties (kraft)"
echo "#"
echo process.roles=`pop_value process.roles broker,controller`
echo node.id=`pop_value node.id 1`
echo log.dirs=`pop_value log.dirs /tmp/kraft-combined-logs`
elif [[ "$1" == "" ]]; then
echo "#"
echo "# strimzi.properties"
echo "#"
echo broker.id=`pop_value broker.id 0`
echo log.dirs=`pop_value log.dirs /tmp/kafka-logs`
echo group.initial.rebalance.delay.ms=`pop_value group.initial.rebalance.delay.ms 0`
else
echo "Unsupported argument: $1"
exit 1
fi
echo num.network.threads=`pop_value num.network.threads 3`
echo num.io.threads=`pop_value num.io.threads 8`
echo socket.send.buffer.bytes=`pop_value socket.send.buffer.bytes 102400`
echo socket.receive.buffer.bytes=`pop_value socket.receive.buffer.bytes 102400`
echo socket.request.max.bytes=`pop_value socket.request.max.bytes 104857600`
echo num.partitions=`pop_value num.partitions 1`
echo num.recovery.threads.per.data.dir=`pop_value num.recovery.threads.per.data.dir 1`
echo offsets.topic.replication.factor=`pop_value offsets.topic.replication.factor 1`
echo transaction.state.log.replication.factor=`pop_value transaction.state.log.replication.factor 1`
echo transaction.state.log.min.isr=`pop_value transaction.state.log.min.isr 1`
echo log.retention.hours=`pop_value log.retention.hours 168`
echo log.segment.bytes=`pop_value log.segment.bytes 1073741824`
echo log.retention.check.interval.ms=`pop_value log.retention.check.interval.ms 300000`
#
# Add what remains of KAFKA_* env vars
#
for K in "${!props[@]}"
do
echo $K=`pop_value $K`
done
echo