mirror of
https://github.com/bitnami/containers.git
synced 2026-02-10 03:15:53 +08:00
3.7.1-debian-11-r5 release
This commit is contained in:
committed by
Bitnami Containers
parent
7f1b6a60ba
commit
1ddfcfc14f
@@ -58,8 +58,8 @@ component_unpack() {
|
||||
fi
|
||||
if [ -n "$package_sha256" ]; then
|
||||
echo "Verifying package integrity"
|
||||
echo "$package_sha256 ${base_name}.tar.gz" | sha256sum --check - || exit "$?"
|
||||
echo "$package_sha256 ${base_name}.tar.gz" | sha256sum --check - || return "$?"
|
||||
fi
|
||||
tar --directory "${directory}" --extract --gunzip --file "${base_name}.tar.gz" --no-same-owner --strip-components=2
|
||||
tar --directory "${directory}" --extract --gunzip --file "${base_name}.tar.gz" --no-same-owner --strip-components=2 || return "$?"
|
||||
rm "${base_name}.tar.gz"
|
||||
}
|
||||
|
||||
@@ -33,13 +33,6 @@ zookeeper_validate() {
|
||||
error_code=1
|
||||
}
|
||||
|
||||
# ZooKeeper authentication validations
|
||||
if is_boolean_yes "$ALLOW_ANONYMOUS_LOGIN"; then
|
||||
warn "You have set the environment variable ALLOW_ANONYMOUS_LOGIN=${ALLOW_ANONYMOUS_LOGIN}. For safety reasons, do not use this flag in a production environment."
|
||||
elif ! is_boolean_yes "$ZOO_ENABLE_AUTH"; then
|
||||
print_validation_error "The ZOO_ENABLE_AUTH environment variable does not configure authentication. Set the environment variable ALLOW_ANONYMOUS_LOGIN=yes to allow unauthenticated users to connect to ZooKeeper."
|
||||
fi
|
||||
|
||||
# ZooKeeper port validations
|
||||
check_conflicting_ports() {
|
||||
local -r total="$#"
|
||||
@@ -75,6 +68,30 @@ zookeeper_validate() {
|
||||
is_boolean_yes "$ZOO_ENABLE_ADMIN_SERVER" && check_allowed_port ZOO_ADMIN_SERVER_PORT_NUMBER
|
||||
is_boolean_yes "$ZOO_ENABLE_ADMIN_SERVER" && check_conflicting_ports ZOO_PORT_NUMBER ZOO_PROMETHEUS_METRICS_PORT_NUMBER ZOO_ADMIN_SERVER_PORT_NUMBER
|
||||
|
||||
# ZooKeeper client-server authentication validations
|
||||
if is_boolean_yes "$ALLOW_ANONYMOUS_LOGIN"; then
|
||||
warn "You have set the environment variable ALLOW_ANONYMOUS_LOGIN=${ALLOW_ANONYMOUS_LOGIN}. For safety reasons, do not use this flag in a production environment."
|
||||
elif ! is_boolean_yes "$ZOO_ENABLE_AUTH"; then
|
||||
print_validation_error "The ZOO_ENABLE_AUTH environment variable does not configure authentication. Set the environment variable ALLOW_ANONYMOUS_LOGIN=yes to allow unauthenticated users to connect to ZooKeeper."
|
||||
fi
|
||||
|
||||
# ZooKeeper server-server authentication validations
|
||||
if is_boolean_yes "$ZOO_ENABLE_QUORUM_AUTH"; then
|
||||
if is_empty_value "$ZOO_QUORUM_LEARNER_USER" || is_empty_value "$ZOO_QUORUM_LEARNER_PASSWORD"; then
|
||||
print_validation_error "The ZOO_QUORUM_LEARNER_USER and ZOO_QUORUM_LEARNER_USER environment variables are not set. They are required if using ZOO_ENABLE_QUORUM_AUTH=yes."
|
||||
fi
|
||||
|
||||
if is_empty_value "$ZOO_QUORUM_SERVER_USERS" || is_empty_value "$ZOO_QUORUM_SERVER_PASSWORDS"; then
|
||||
print_validation_error "The ZOO_QUORUM_SERVER_USERS and ZOO_QUORUM_SERVER_PASSWORDS environment variables are not set. They are required if using ZOO_ENABLE_QUORUM_AUTH=yes."
|
||||
fi
|
||||
|
||||
read -r -a quorum_server_users_list <<<"${ZOO_QUORUM_SERVER_USERS//[;, ]/ }"
|
||||
read -r -a quorum_server_passwords_list <<<"${ZOO_QUORUM_SERVER_PASSWORDS//[;, ]/ }"
|
||||
if [[ ${#quorum_server_users_list[@]} -ne ${#quorum_server_passwords_list[@]} ]]; then
|
||||
print_validation_error "ZOO_QUORUM_SERVER_USERS and ZOO_QUORUM_SERVER_PASSWORDS lists should have the same length"
|
||||
fi
|
||||
fi
|
||||
|
||||
# ZooKeeper server users validations
|
||||
read -r -a server_users_list <<<"${ZOO_SERVER_USERS//[;, ]/ }"
|
||||
read -r -a server_passwords_list <<<"${ZOO_SERVER_PASSWORDS//[;, ]/ }"
|
||||
@@ -123,7 +140,12 @@ zookeeper_initialize() {
|
||||
zookeeper_generate_conf
|
||||
zookeeper_configure_heap_size "$ZOO_HEAP_SIZE"
|
||||
if is_boolean_yes "$ZOO_ENABLE_AUTH"; then
|
||||
zookeeper_enable_authentication "$ZOO_CONF_FILE"
|
||||
zookeeper_enable_client_server_authentication "$ZOO_CONF_FILE"
|
||||
fi
|
||||
if is_boolean_yes "$ZOO_ENABLE_QUORUM_AUTH"; then
|
||||
zookeeper_enable_server_server_authentication "$ZOO_CONF_FILE"
|
||||
fi
|
||||
if is_boolean_yes "$ZOO_ENABLE_QUORUM_AUTH" || is_boolean_yes "$ZOO_ENABLE_AUTH"; then
|
||||
zookeeper_create_jaas_file
|
||||
fi
|
||||
if is_boolean_yes "$ZOO_ENABLE_PROMETHEUS_METRICS"; then
|
||||
@@ -266,7 +288,7 @@ zookeeper_configure_heap_size() {
|
||||
}
|
||||
|
||||
########################
|
||||
# Enable authentication for ZooKeeper
|
||||
# Enable authentication for ZooKeeper client-server communications
|
||||
# Globals:
|
||||
# None
|
||||
# Arguments:
|
||||
@@ -274,7 +296,7 @@ zookeeper_configure_heap_size() {
|
||||
# Returns:
|
||||
# None
|
||||
#########################
|
||||
zookeeper_enable_authentication() {
|
||||
zookeeper_enable_client_server_authentication() {
|
||||
local -r filename="${1:?filename is required}"
|
||||
|
||||
info "Enabling authentication..."
|
||||
@@ -282,6 +304,26 @@ zookeeper_enable_authentication() {
|
||||
zookeeper_conf_set "$filename" requireClientAuthScheme sasl
|
||||
}
|
||||
|
||||
########################
|
||||
# Enable authentication for ZooKeeper server-server communications
|
||||
# Globals:
|
||||
# None
|
||||
# Arguments:
|
||||
# $1 - filename
|
||||
# Returns:
|
||||
# None
|
||||
#########################
|
||||
zookeeper_enable_server_server_authentication() {
|
||||
local -r filename="${1:?filename is required}"
|
||||
|
||||
info "Enabling authentication..."
|
||||
zookeeper_conf_set "$filename" quorum.auth.enableSasl true
|
||||
zookeeper_conf_set "$filename" quorum.auth.learnerRequireSasl true
|
||||
zookeeper_conf_set "$filename" quorum.auth.serverRequireSasl true
|
||||
zookeeper_conf_set "$filename" quorum.auth.learner.saslLoginContext QuorumLearner
|
||||
zookeeper_conf_set "$filename" quorum.auth.server.saslLoginContext QuorumServer
|
||||
}
|
||||
|
||||
########################
|
||||
# Enable Prometheus metrics for ZooKeeper
|
||||
# Globals:
|
||||
@@ -334,27 +376,52 @@ zookeeper_conf_set() {
|
||||
#########################
|
||||
zookeeper_create_jaas_file() {
|
||||
info "Creating jaas file..."
|
||||
read -r -a server_users_list <<<"${ZOO_SERVER_USERS//[;, ]/ }"
|
||||
read -r -a server_passwords_list <<<"${ZOO_SERVER_PASSWORDS//[;, ]/ }"
|
||||
local jaas_content
|
||||
if is_boolean_yes "$ZOO_ENABLE_AUTH"; then
|
||||
read -r -a server_users_list <<<"${ZOO_SERVER_USERS//[;, ]/ }"
|
||||
read -r -a server_passwords_list <<<"${ZOO_SERVER_PASSWORDS//[;, ]/ }"
|
||||
|
||||
local zookeeper_server_user_passwords=""
|
||||
for i in $(seq 0 $((${#server_users_list[@]} - 1))); do
|
||||
zookeeper_server_user_passwords="${zookeeper_server_user_passwords}\n user_${server_users_list[i]}=\"${server_passwords_list[i]}\""
|
||||
done
|
||||
zookeeper_server_user_passwords="${zookeeper_server_user_passwords#\\n };"
|
||||
local zookeeper_server_user_passwords=""
|
||||
for i in $(seq 0 $((${#server_users_list[@]} - 1))); do
|
||||
zookeeper_server_user_passwords="${zookeeper_server_user_passwords}\n user_${server_users_list[i]}=\"${server_passwords_list[i]}\""
|
||||
done
|
||||
zookeeper_server_user_passwords="${zookeeper_server_user_passwords#\\n };"
|
||||
|
||||
# TODO: Indent properly
|
||||
cat >"${ZOO_CONF_DIR}/zoo_jaas.conf" <<EOF
|
||||
jaas_content+="
|
||||
Client {
|
||||
org.apache.zookeeper.server.auth.DigestLoginModule required
|
||||
username="$ZOO_CLIENT_USER"
|
||||
password="$ZOO_CLIENT_PASSWORD";
|
||||
username=\"${ZOO_CLIENT_USER}\"
|
||||
password=\"${ZOO_CLIENT_PASSWORD}\";
|
||||
};
|
||||
Server {
|
||||
org.apache.zookeeper.server.auth.DigestLoginModule required
|
||||
$(echo -e -n "${zookeeper_server_user_passwords}")
|
||||
};"
|
||||
fi
|
||||
|
||||
if is_boolean_yes "$ZOO_ENABLE_QUORUM_AUTH"; then
|
||||
read -r -a quorum_server_users_list <<<"${ZOO_QUORUM_SERVER_USERS//[;, ]/ }"
|
||||
read -r -a quorum_server_passwords_list <<<"${ZOO_QUORUM_SERVER_PASSWORDS//[;, ]/ }"
|
||||
|
||||
local zookeeper_quorum_server_user_passwords=""
|
||||
for i in $(seq 0 $((${#quorum_server_users_list[@]} - 1))); do
|
||||
zookeeper_quorum_server_user_passwords="${zookeeper_quorum_server_user_passwords}\n user_${quorum_server_users_list[i]}=\"${quorum_server_passwords_list[i]}\""
|
||||
done
|
||||
zookeeper_quorum_server_user_passwords="${zookeeper_quorum_server_user_passwords#\\n };"
|
||||
|
||||
jaas_content+="
|
||||
QuorumLearner {
|
||||
org.apache.zookeeper.server.auth.DigestLoginModule required
|
||||
username=\"${ZOO_QUORUM_LEARNER_USER}\"
|
||||
password=\"${ZOO_QUORUM_LEARNER_PASSWORD}\";
|
||||
};
|
||||
EOF
|
||||
QuorumServer {
|
||||
org.apache.zookeeper.server.auth.DigestLoginModule required
|
||||
$(echo -e -n "${zookeeper_quorum_server_user_passwords}")
|
||||
};
|
||||
"
|
||||
fi
|
||||
echo "${jaas_content}" > "${ZOO_CONF_DIR}/zoo_jaas.conf"
|
||||
zookeeper_export_jvmflags "-Djava.security.auth.login.config=${ZOO_CONF_DIR}/zoo_jaas.conf"
|
||||
|
||||
# Restrict file permissions
|
||||
|
||||
@@ -65,6 +65,11 @@ zookeeper_env_vars=(
|
||||
ZOO_SERVER_USERS
|
||||
ZOO_CLIENT_PASSWORD
|
||||
ZOO_SERVER_PASSWORDS
|
||||
ZOO_ENABLE_QUORUM_AUTH
|
||||
ZOO_QUORUM_LEARNER_USER
|
||||
ZOO_QUORUM_LEARNER_PASSWORD
|
||||
ZOO_QUORUM_SERVER_USERS
|
||||
ZOO_QUORUM_SERVER_PASSWORDS
|
||||
)
|
||||
for env_var in "${zookeeper_env_vars[@]}"; do
|
||||
file_env_var="${env_var}_FILE"
|
||||
@@ -139,7 +144,7 @@ export ZOO_TLS_QUORUM_CLIENT_AUTH="${ZOO_TLS_QUORUM_CLIENT_AUTH:-need}"
|
||||
export JVMFLAGS="${JVMFLAGS:-}"
|
||||
export ZOO_HEAP_SIZE="${ZOO_HEAP_SIZE:-1024}"
|
||||
|
||||
# Authentication
|
||||
# Client-server authentication
|
||||
export ALLOW_ANONYMOUS_LOGIN="${ALLOW_ANONYMOUS_LOGIN:-no}"
|
||||
export ZOO_ENABLE_AUTH="${ZOO_ENABLE_AUTH:-no}"
|
||||
export ZOO_CLIENT_USER="${ZOO_CLIENT_USER:-}"
|
||||
@@ -147,4 +152,11 @@ export ZOO_SERVER_USERS="${ZOO_SERVER_USERS:-}"
|
||||
export ZOO_CLIENT_PASSWORD="${ZOO_CLIENT_PASSWORD:-}"
|
||||
export ZOO_SERVER_PASSWORDS="${ZOO_SERVER_PASSWORDS:-}"
|
||||
|
||||
# Server-server authentication
|
||||
export ZOO_ENABLE_QUORUM_AUTH="${ZOO_ENABLE_QUORUM_AUTH:-no}"
|
||||
export ZOO_QUORUM_LEARNER_USER="${ZOO_QUORUM_LEARNER_USER:-}"
|
||||
export ZOO_QUORUM_LEARNER_PASSWORD="${ZOO_QUORUM_LEARNER_PASSWORD:-}"
|
||||
export ZOO_QUORUM_SERVER_USERS="${ZOO_QUORUM_SERVER_USERS:-}"
|
||||
export ZOO_QUORUM_SERVER_PASSWORDS="${ZOO_QUORUM_SERVER_PASSWORDS:-}"
|
||||
|
||||
# Custom environment variables may be defined below
|
||||
|
||||
@@ -51,7 +51,7 @@ Learn more about the Bitnami tagging policy and the difference between rolling t
|
||||
|
||||
|
||||
* [`3.8`, `3.8-debian-11`, `3.8.0`, `3.8.0-debian-11-r5`, `latest` (3.8/debian-11/Dockerfile)](https://github.com/bitnami/bitnami-docker-zookeeper/blob/3.8.0-debian-11-r5/3.8/debian-11/Dockerfile)
|
||||
* [`3.7`, `3.7-debian-11`, `3.7.1`, `3.7.1-debian-11-r4` (3.7/debian-11/Dockerfile)](https://github.com/bitnami/bitnami-docker-zookeeper/blob/3.7.1-debian-11-r4/3.7/debian-11/Dockerfile)
|
||||
* [`3.7`, `3.7-debian-11`, `3.7.1`, `3.7.1-debian-11-r5` (3.7/debian-11/Dockerfile)](https://github.com/bitnami/bitnami-docker-zookeeper/blob/3.7.1-debian-11-r5/3.7/debian-11/Dockerfile)
|
||||
* [`3.6`, `3.6-debian-11`, `3.6.3`, `3.6.3-debian-11-r5` (3.6/debian-11/Dockerfile)](https://github.com/bitnami/bitnami-docker-zookeeper/blob/3.6.3-debian-11-r5/3.6/debian-11/Dockerfile)
|
||||
* [`3.5`, `3.5-debian-11`, `3.5.10`, `3.5.10-debian-11-r5` (3.5/debian-11/Dockerfile)](https://github.com/bitnami/bitnami-docker-zookeeper/blob/3.5.10-debian-11-r5/3.5/debian-11/Dockerfile)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user