Skip to content

Commit 900fa11

Browse files
authored
fix: kafka backup when both sasl and tls enabled (#2289)
1 parent a6b80f2 commit 900fa11

File tree

6 files changed

+27
-11
lines changed

6 files changed

+27
-11
lines changed

addons/kafka/configs/kafka-server.prop.tpl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -225,15 +225,15 @@ password.encoder.key.length=128
225225
password.encoder.iterations=4096
226226

227227
# SSL Keystore of an Existing Listener
228-
ssl.keystore.type=JKS
228+
# ssl.keystore.type=JKS
229229
# ssl.keystore.location=
230230
# ssl.keystore.password=
231231
# ssl.key.password=
232232
# ssl.keystore.key=
233233
# ssl.keystore.certificate.chain=
234234

235235
# SSL Truststore of an Existing Listener
236-
ssl.truststore.type=JKS
236+
# ssl.truststore.type=JKS
237237
# ssl.truststore.location=
238238
# ssl.truststore.password=
239239
# ssl.truststore.certificates=

addons/kafka/dataprotection/backup.sh

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,8 @@ echo "getting topics..."
2323
topic_list=$(kafkactl get topics | tail -n +2)
2424
if [[ -z $topic_list ]]; then
2525
echo "nothing to backup"
26-
exit 1
26+
DP_save_backup_status_info 0
27+
exit 0
2728
fi
2829
echo $topic_list | grep -v __consumer_offsets | datasafed push - topics.txt
2930
readarray -t topics < <(kafkactl get topics -o compact | grep -v __consumer_offsets)

addons/kafka/dataprotection/common.sh

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,10 @@ function DP_save_backup_status_info() {
2323
fi
2424
}
2525

26-
export BROKERS="$DP_DB_HOST:$DP_DB_PORT"
26+
# don't let kb's env affect kafkactl's config
27+
export TLS_ENABLED="false"
28+
# we'll use the internal listener to avoid using ssl
29+
export BROKERS="$DP_DB_HOST:9094"
2730
export PATH="$PATH:$DP_DATASAFED_BIN_PATH"
2831
export DATASAFED_BACKEND_BASE_PATH=${DP_BACKUP_BASE_PATH}
2932

addons/kafka/dataprotection/restore.sh

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,10 @@
11
#!/bin/bash
22

33
echo "getting topics..."
4+
if [[ -z $(datasafed list topics.txt) ]]; then
5+
echo "restore from an empty backup! doing nothing..."
6+
exit 0
7+
fi
48
readarray -t lines < <(datasafed pull topics.txt -)
59
for line in "${lines[@]}"; do
610
read -r topic partitions replication <<< "$line"

addons/kafka/scripts/common.sh

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -33,8 +33,13 @@ build_zk_server_sasl_properties() {
3333
INTER_BROKER_PROTOCOL=${KB_KAFKA_SASL_INTER_BROKER_PROTOCOL}
3434
fi
3535

36-
export KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP=INTERNAL:SASL_PLAINTEXT,CLIENT:SASL_PLAINTEXT
37-
echo "[sasl]KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP=$KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP"
36+
if [[ "$TLS_ENABLED" == "true" ]]; then
37+
export KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP="INTERNAL:SASL_PLAINTEXT,CLIENT:SASL_SSL"
38+
echo "[sasl]KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP=$KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP"
39+
else
40+
export KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP="INTERNAL:SASL_PLAINTEXT,CLIENT:SASL_PLAINTEXT"
41+
echo "[sasl]KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP=$KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP"
42+
fi
3843
export KAFKA_CFG_SASL_ENABLED_MECHANISMS="${ENABLED_MECHANISMS}"
3944
echo "[sasl]export KAFKA_CFG_SASL_ENABLED_MECHANISMS=${KAFKA_CFG_SASL_ENABLED_MECHANISMS}"
4045
export KAFKA_CFG_SASL_MECHANISM_INTER_BROKER_PROTOCOL="${INTER_BROKER_PROTOCOL}"
@@ -50,8 +55,13 @@ build_kraft_server_sasl_properties() {
5055
INTER_BROKER_PROTOCOL=${KB_KAFKA_SASL_INTER_BROKER_PROTOCOL}
5156
fi
5257

53-
export KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP=CONTROLLER:PLAINTEXT,INTERNAL:SASL_PLAINTEXT,CLIENT:SASL_PLAINTEXT
54-
echo "[sasl]KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP=$KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP"
58+
if [[ "$TLS_ENABLED" == "true" ]]; then
59+
export KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP="CONTROLLER:PLAINTEXT,INTERNAL:SASL_PLAINTEXT,CLIENT:SASL_SSL"
60+
echo "[sasl]KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP=$KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP"
61+
else
62+
export KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP="CONTROLLER:PLAINTEXT,INTERNAL:SASL_PLAINTEXT,CLIENT:SASL_PLAINTEXT"
63+
echo "[sasl]KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP=$KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP"
64+
fi
5565
export KAFKA_CFG_SASL_ENABLED_MECHANISMS="${ENABLED_MECHANISMS}"
5666
echo "[sasl]export KAFKA_CFG_SASL_ENABLED_MECHANISMS=${KAFKA_CFG_SASL_ENABLED_MECHANISMS}"
5767
export KAFKA_CFG_SASL_MECHANISM_INTER_BROKER_PROTOCOL="${INTER_BROKER_PROTOCOL}"
@@ -119,7 +129,7 @@ build_if_build_in_enabled() {
119129

120130
get_client_default_mechanism() {
121131
isZkOrNot="$1"
122-
if [[ "$(is_sasl_enabled)" == "false" ]]; then
132+
if [[ "$(is_sasl_enabled $isZkOrNot)" == "false" ]]; then
123133
echo ""
124134
return 0
125135
fi

addons/kafka/scripts/kafka-server-setup.sh

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -72,8 +72,6 @@ set_tls_configuration_if_needed() {
7272
fi
7373
export KAFKA_TLS_TRUSTSTORE_FILE="$kafka_config_certs_path/kafka.truststore.pem"
7474
echo "[tls]KAFKA_TLS_TRUSTSTORE_FILE=$KAFKA_TLS_TRUSTSTORE_FILE"
75-
echo "[tls]ssl.endpoint.identification.algorithm=" >> $kafka_kraft_config_path/server.properties
76-
echo "[tls]ssl.endpoint.identification.algorithm=" >> $kafka_config_path/server.properties
7775
return 0
7876
}
7977

0 commit comments

Comments
 (0)