Skip to content

Commit fc7b685

Browse files
change generate kafka connect properties from env (datahub-project#10545)
Co-authored-by: david-leifker <[email protected]>
1 parent e83550b commit fc7b685

File tree

2 files changed

+25
-39
lines changed

2 files changed

+25
-39
lines changed
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
import os
2+
import re
3+
import sys
4+
5+
6+
def env_to_properties(env_prefix: str, properties_file: str):
7+
pattern = re.compile('(?<=[^_])_(?=[^_])')
8+
props = {}
9+
10+
for (env_name, val) in os.environ.items():
11+
if env_name.startswith(env_prefix):
12+
raw_name = env_name[len(env_prefix):].lower()
13+
prop_dot = '.'.join(pattern.split(raw_name))
14+
props[prop_dot] = val
15+
16+
with open(properties_file, 'a') as f:
17+
for k, v in props.items():
18+
f.writelines(f'{k}={v}\n')
19+
20+
21+
if __name__ == '__main__':
22+
env_prefix = sys.argv[1]
23+
properties_file = sys.argv[2]
24+
env_to_properties(env_prefix, properties_file)

docker/kafka-setup/kafka-setup.sh

Lines changed: 1 addition & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -10,46 +10,8 @@ fi
1010
. kafka-config.sh
1111

1212
echo "bootstrap.servers=$KAFKA_BOOTSTRAP_SERVER" > $CONNECTION_PROPERTIES_PATH
13-
echo "security.protocol=$KAFKA_PROPERTIES_SECURITY_PROTOCOL" >> $CONNECTION_PROPERTIES_PATH
1413

15-
## Add support for SASL_PLAINTEXT
16-
if [[ $KAFKA_PROPERTIES_SECURITY_PROTOCOL == "SASL_PLAINTEXT" ]]; then
17-
echo "sasl.mechanism=$KAFKA_PROPERTIES_SASL_MECHANISM" >> $CONNECTION_PROPERTIES_PATH
18-
echo "sasl.jaas.config=$KAFKA_PROPERTIES_SASL_JAAS_CONFIG" >> $CONNECTION_PROPERTIES_PATH
19-
echo "sasl.kerberos.service.name=$KAFKA_PROPERTIES_SASL_KERBEROS_SERVICE_NAME" >> $CONNECTION_PROPERTIES_PATH
20-
fi
21-
22-
## Add support for SASL_SSL
23-
if [[ $KAFKA_PROPERTIES_SECURITY_PROTOCOL == "SASL_SSL" ]]; then
24-
echo "sasl.jaas.config=$KAFKA_PROPERTIES_SASL_JAAS_CONFIG" >> $CONNECTION_PROPERTIES_PATH
25-
echo "sasl.mechanism=$KAFKA_PROPERTIES_SASL_MECHANISM" >> $CONNECTION_PROPERTIES_PATH
26-
fi
27-
28-
if [[ $KAFKA_PROPERTIES_SECURITY_PROTOCOL == "SSL" ]]; then
29-
if [[ -n $KAFKA_PROPERTIES_SSL_KEYSTORE_LOCATION ]]; then
30-
echo "ssl.keystore.location=$KAFKA_PROPERTIES_SSL_KEYSTORE_LOCATION" >> $CONNECTION_PROPERTIES_PATH
31-
echo "ssl.keystore.password=$KAFKA_PROPERTIES_SSL_KEYSTORE_PASSWORD" >> $CONNECTION_PROPERTIES_PATH
32-
echo "ssl.key.password=$KAFKA_PROPERTIES_SSL_KEY_PASSWORD" >> $CONNECTION_PROPERTIES_PATH
33-
if [[ -n $KAFKA_PROPERTIES_SSL_KEYSTORE_TYPE ]]; then
34-
echo "ssl.keystore.type=$KAFKA_PROPERTIES_SSL_KEYSTORE_TYPE" >> $CONNECTION_PROPERTIES_PATH
35-
fi
36-
fi
37-
if [[ -n $KAFKA_PROPERTIES_SSL_TRUSTSTORE_LOCATION ]]; then
38-
echo "ssl.truststore.location=$KAFKA_PROPERTIES_SSL_TRUSTSTORE_LOCATION" >> $CONNECTION_PROPERTIES_PATH
39-
if [[ $KAFKA_PROPERTIES_SSL_TRUSTSTORE_TYPE != "PEM" ]]; then
40-
echo "ssl.truststore.password=$KAFKA_PROPERTIES_SSL_TRUSTSTORE_PASSWORD" >> $CONNECTION_PROPERTIES_PATH
41-
fi
42-
if [[ -n $KAFKA_PROPERTIES_SSL_TRUSTSTORE_TYPE ]]; then
43-
echo "ssl.truststore.type=$KAFKA_PROPERTIES_SSL_TRUSTSTORE_TYPE" >> $CONNECTION_PROPERTIES_PATH
44-
fi
45-
fi
46-
echo "ssl.endpoint.identification.algorithm=$KAFKA_PROPERTIES_SSL_ENDPOINT_IDENTIFICATION_ALGORITHM" >> $CONNECTION_PROPERTIES_PATH
47-
fi
48-
49-
# Add support for SASL_CLIENT_CALLBACK_HANDLER_CLASS
50-
if [[ -n "$KAFKA_PROPERTIES_SASL_CLIENT_CALLBACK_HANDLER_CLASS" ]]; then
51-
echo "sasl.client.callback.handler.class=$KAFKA_PROPERTIES_SASL_CLIENT_CALLBACK_HANDLER_CLASS" >> $CONNECTION_PROPERTIES_PATH
52-
fi
14+
python env_to_properties.py KAFKA_PROPERTIES_ $CONNECTION_PROPERTIES_PATH
5315

5416
# cub kafka-ready -c $CONNECTION_PROPERTIES_PATH -b $KAFKA_BOOTSTRAP_SERVER 1 180
5517
. kafka-ready.sh

0 commit comments

Comments
 (0)