Skip to content

Commit

Permalink
[DOCKER] enable to add observer dynamically
Browse files Browse the repository at this point in the history
  • Loading branch information
chia7712 committed Feb 10, 2025
1 parent 36a889e commit f2e2125
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 8 deletions.
2 changes: 1 addition & 1 deletion docker/start_broker.sh
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ declare -r EXPORTER_VERSION="0.16.1"
declare -r EXPORTER_PORT=${EXPORTER_PORT:-"$(getRandomPort)"}
declare -r NODE_ID=${NODE_ID:-"$(getRandomPort)"}
declare -r BROKER_PORT=${BROKER_PORT:-"$(getRandomPort)"}
declare -r CONTAINER_NAME="broker-$BROKER_PORT"
declare -r CONTAINER_NAME="broker-$NODE_ID"
declare -r BROKER_JMX_PORT="${BROKER_JMX_PORT:-"$(getRandomPort)"}"
declare -r ADMIN_NAME="admin"
declare -r ADMIN_PASSWORD="admin-secret"
Expand Down
26 changes: 19 additions & 7 deletions docker/start_controller.sh
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,8 @@ declare -r EXPORTER_PORT=${EXPORTER_PORT:-"$(getRandomPort)"}
declare -r NODE_ID=${NODE_ID:-"$(getRandomPort)"}
declare -r VOTERS=${VOTERS:-""}
declare -r CONTROLLER_PORT=${CONTROLLER_PORT:-"$(generateControllerPort)"}
declare -r CONTAINER_NAME="controller-$CONTROLLER_PORT"
declare -r CONTAINER_NAME="controller-$NODE_ID"
declare -r BOOTSTRAP_HOST=${BOOTSTRAP_HOST:-""}
declare -r CONTROLLER_JMX_PORT="${CONTROLLER_JMX_PORT:-"$(getRandomPort)"}"
declare -r JMX_CONFIG_FILE="${JMX_CONFIG_FILE}"
declare -r JMX_CONFIG_FILE_IN_CONTAINER_PATH="/opt/jmx_exporter/jmx_exporter_config.yml"
Expand Down Expand Up @@ -187,17 +188,20 @@ fi

checkNetwork

addVoter="false"
while [[ $# -gt 0 ]]; do
if [[ "$1" == "help" ]]; then
showHelp
exit 0
fi
echo "$1" >>"$CONTROLLER_PROPERTIES"
if [[ "$1" == "controller.quorum.bootstrap.servers"* ]]; then
addVoter="true"
fi
shift
done

rejectProperty "node.id"
rejectProperty "controller.quorum.bootstrap.servers"
rejectProperty "listeners"
rejectProperty "process.roles"
rejectProperty "controller.listener.names"
Expand All @@ -208,10 +212,11 @@ rejectProperty "broker.id"
rejectProperty "metadata.log.dir"

setPropertyIfEmpty "node.id" "$NODE_ID"
setPropertyIfEmpty "controller.quorum.bootstrap.servers" "${ADDRESS}:$CONTROLLER_PORT"
# this is not allowed before 3.8 ...
#setPropertyIfEmpty "advertised.listeners" "CONTROLLER://${ADDRESS}:$CONTROLLER_PORT"
if [[ "$addVoter" == "false" ]]; then
setPropertyIfEmpty "controller.quorum.bootstrap.servers" "${ADDRESS}:$CONTROLLER_PORT"
fi
setPropertyIfEmpty "listeners" "CONTROLLER://:$CONTROLLER_PORT"
setPropertyIfEmpty "advertised.listeners" "CONTROLLER://${ADDRESS}:$CONTROLLER_PORT"
setPropertyIfEmpty "process.roles" "controller"
setPropertyIfEmpty "controller.listener.names" "CONTROLLER"
setPropertyIfEmpty "num.partitions" "8"
Expand All @@ -231,6 +236,12 @@ if [[ -n "$METADATA_VERSION" ]]; then
release_version="--release-version $METADATA_VERSION"
fi


command="./bin/kafka-storage.sh format -t $CLUSTER_ID $release_version -c /tmp/controller.properties --standalone --ignore-formatted && ./bin/kafka-server-start.sh /tmp/controller.properties"
if [[ "$addVoter" == "true" ]]; then
command="./bin/kafka-storage.sh format -t $CLUSTER_ID $release_version -c /tmp/controller.properties --no-initial-controllers && ./bin/kafka-server-start.sh /tmp/controller.properties"
fi

docker run -d --init \
--name $CONTAINER_NAME \
-e KAFKA_HEAP_OPTS="$HEAP_OPTS" \
Expand All @@ -239,11 +250,11 @@ docker run -d --init \
-v $CONTROLLER_PROPERTIES:/tmp/controller.properties:ro \
$(generateJmxConfigMountCommand) \
$metaMountCommand \
-h "$HOSTNAME" \
-h $CONTAINER_NAME \
-p $CONTROLLER_PORT:$CONTROLLER_PORT \
-p $CONTROLLER_JMX_PORT:$CONTROLLER_JMX_PORT \
-p $EXPORTER_PORT:$EXPORTER_PORT \
"$IMAGE_NAME" sh -c "./bin/kafka-storage.sh format -t $CLUSTER_ID $release_version -c /tmp/controller.properties --standalone --ignore-formatted && ./bin/kafka-server-start.sh /tmp/controller.properties"
"$IMAGE_NAME" sh -c "$command"

if [ "$(echo $?)" -eq 0 ]; then
echo "================================================="
Expand All @@ -252,6 +263,7 @@ if [ "$(echo $?)" -eq 0 ]; then
echo "jmx address: ${ADDRESS}:$CONTROLLER_JMX_PORT"
echo "exporter address: ${ADDRESS}:$EXPORTER_PORT"
echo "================================================="
echo "run CLUSTER_ID=$CLUSTER_ID $DOCKER_FOLDER/start_controller.sh controller.quorum.bootstrap.servers=${ADDRESS}:$CONTROLLER_PORT to join observer"
echo "run CLUSTER_ID=$CLUSTER_ID $DOCKER_FOLDER/start_broker.sh controller.quorum.bootstrap.servers=${ADDRESS}:$CONTROLLER_PORT to join broker"
echo "================================================="
else
Expand Down

0 comments on commit f2e2125

Please sign in to comment.