diff --git a/bitnami/schema-registry/8.0/debian-12/Dockerfile b/bitnami/schema-registry/8.0/debian-12/Dockerfile index aa14d34b1831..f9f4dd93c85e 100644 --- a/bitnami/schema-registry/8.0/debian-12/Dockerfile +++ b/bitnami/schema-registry/8.0/debian-12/Dockerfile @@ -9,7 +9,7 @@ ARG TARGETARCH LABEL com.vmware.cp.artifact.flavor="sha256:c50c90cfd9d12b445b011e6ad529f1ad3daea45c26d20b00732fae3cd71f6a83" \ org.opencontainers.image.base.name="docker.io/bitnami/minideb:bookworm" \ - org.opencontainers.image.created="2025-07-17T08:18:08Z" \ + org.opencontainers.image.created="2025-08-01T15:12:05Z" \ org.opencontainers.image.description="Application packaged by Broadcom, Inc." \ org.opencontainers.image.documentation="https://github.com/bitnami/containers/tree/main/bitnami/schema-registry/README.md" \ org.opencontainers.image.source="https://github.com/bitnami/containers/tree/main/bitnami/schema-registry" \ diff --git a/bitnami/schema-registry/8.0/debian-12/rootfs/opt/bitnami/scripts/libschemaregistry.sh b/bitnami/schema-registry/8.0/debian-12/rootfs/opt/bitnami/scripts/libschemaregistry.sh index cec47243b074..df17be6c32c3 100644 --- a/bitnami/schema-registry/8.0/debian-12/rootfs/opt/bitnami/scripts/libschemaregistry.sh +++ b/bitnami/schema-registry/8.0/debian-12/rootfs/opt/bitnami/scripts/libschemaregistry.sh @@ -178,12 +178,6 @@ schema_registry_validate() { print_validation_error "The allowed values for SCHEMA_REGISTRY_CLIENT_AUTHENTICATION are: NONE, REQUESTED, or REQUIRED." fi fi - if [[ -n "$SCHEMA_REGISTRY_AVRO_COMPATIBILY_LEVEL" ]]; then - if ! [[ "$SCHEMA_REGISTRY_AVRO_COMPATIBILY_LEVEL" =~ ^(none|backward|backward_transitive|forward|forward_transitive|full|full_transitive)$ ]]; then - print_validation_error "The allowed values for SCHEMA_REGISTRY_AVRO_COMPATIBILY_LEVEL are: none, backward, backward_transitive, forward, forward_transitive, full or full_transitive" - fi - fi - [[ -n "$SCHEMA_REGISTRY_DEBUG" ]] && check_true_false_value SCHEMA_REGISTRY_DEBUG [[ "$error_code" -eq 0 ]] || return "$error_code" } @@ -263,6 +257,25 @@ schema_registry_for_kafka_brokers() { fi } +######################## +# Configure Schema registry from environment variables +# Globals: +# SCHEMA_REGISTRY_* +# Arguments: +# None +# Returns: +# None +######################### +schema_registry_setup_from_environment_variables() { + # Map environment variables to config properties + for var in "${!SCHEMA_REGISTRY_CFG_@}"; do + # Double underscores (__) will be replaced with dashes (-), while single underscores (_) will be replaced with dots (.) + key="$(echo "$var" | sed -e 's/^SCHEMA_REGISTRY_CFG_//g' -e 's/__/\-/g' -e 's/_/\./g' | tr '[:upper:]' '[:lower:]')" + value="${!var}" + schema_registry_conf_set "$key" "$value" + done +} + ######################## # Initialize Schema Registry # Globals: @@ -287,6 +300,9 @@ schema_registry_initialize() { info "No injected configuration files found, creating config file based on SCHEMA_REGISTRY_* env vars" mv "${SCHEMA_REGISTRY_CONF_DIR}/schema-registry/schema-registry.properties.default" "$SCHEMA_REGISTRY_CONF_FILE" + # Hostname + schema_registry_conf_set "host.name" "$(schema_registry_hostname)" + # Authentication Settings brokers_auth_protocol="$(schema_registry_brokers_auth_protocol)" [[ -n "$SCHEMA_REGISTRY_KAFKA_BROKERS" ]] && schema_registry_conf_set "kafkastore.bootstrap.servers" "${SCHEMA_REGISTRY_KAFKA_BROKERS/%,/}" @@ -324,10 +340,8 @@ schema_registry_initialize() { [[ -n "$SCHEMA_REGISTRY_CLIENT_AUTHENTICATION" ]] && schema_registry_conf_set "ssl.client.authentication" "$SCHEMA_REGISTRY_CLIENT_AUTHENTICATION" fi - # Other settings - [[ -n "$SCHEMA_REGISTRY_AVRO_COMPATIBILY_LEVEL" ]] && schema_registry_conf_set "schema.compatibility.level" "$SCHEMA_REGISTRY_AVRO_COMPATIBILY_LEVEL" - [[ -n "$SCHEMA_REGISTRY_DEBUG" ]] && schema_registry_conf_set "debug" "$SCHEMA_REGISTRY_DEBUG" - schema_registry_conf_set "host.name" "$(schema_registry_hostname)" + # Configure Schema registry using SCHEMA_REGISTRY_CFG_* enviroment variables if provided + schema_registry_setup_from_environment_variables fi schema_registry_for_kafka_brokers } diff --git a/bitnami/schema-registry/8.0/debian-12/rootfs/opt/bitnami/scripts/schema-registry-env.sh b/bitnami/schema-registry/8.0/debian-12/rootfs/opt/bitnami/scripts/schema-registry-env.sh index db39eec4cca5..a92ee0a0a67a 100644 --- a/bitnami/schema-registry/8.0/debian-12/rootfs/opt/bitnami/scripts/schema-registry-env.sh +++ b/bitnami/schema-registry/8.0/debian-12/rootfs/opt/bitnami/scripts/schema-registry-env.sh @@ -38,10 +38,12 @@ schema_registry_env_vars=( SCHEMA_REGISTRY_SSL_TRUSTSTORE_PASSWORD SCHEMA_REGISTRY_SSL_ENDPOINT_IDENTIFICATION_ALGORITHM SCHEMA_REGISTRY_CLIENT_AUTHENTICATION - SCHEMA_REGISTRY_AVRO_COMPATIBILY_LEVEL - SCHEMA_REGISTRY_DEBUG + SCHEMA_REGISTRY_CFG_SCHEMA_COMPATIBILITY_LEVEL + SCHEMA_REGISTRY_CFG_DEBUG SCHEMA_REGISTRY_KAFKA_SASL_USERS SCHEMA_REGISTRY_KAFKA_SASL_PASSWORDS + SCHEMA_REGISTRY_AVRO_COMPATIBILY_LEVEL + SCHEMA_REGISTRY_DEBUG ) for env_var in "${schema_registry_env_vars[@]}"; do file_env_var="${env_var}_FILE" @@ -90,7 +92,9 @@ export SCHEMA_REGISTRY_SSL_KEY_PASSWORD="${SCHEMA_REGISTRY_SSL_KEY_PASSWORD:-}" export SCHEMA_REGISTRY_SSL_TRUSTSTORE_PASSWORD="${SCHEMA_REGISTRY_SSL_TRUSTSTORE_PASSWORD:-}" export SCHEMA_REGISTRY_SSL_ENDPOINT_IDENTIFICATION_ALGORITHM="${SCHEMA_REGISTRY_SSL_ENDPOINT_IDENTIFICATION_ALGORITHM:-}" export SCHEMA_REGISTRY_CLIENT_AUTHENTICATION="${SCHEMA_REGISTRY_CLIENT_AUTHENTICATION:-}" -export SCHEMA_REGISTRY_AVRO_COMPATIBILY_LEVEL="${SCHEMA_REGISTRY_AVRO_COMPATIBILY_LEVEL:-}" -export SCHEMA_REGISTRY_DEBUG="${SCHEMA_REGISTRY_DEBUG:-}" +SCHEMA_REGISTRY_CFG_SCHEMA_COMPATIBILITY_LEVEL="${SCHEMA_REGISTRY_CFG_SCHEMA_COMPATIBILITY_LEVEL:-"${SCHEMA_REGISTRY_AVRO_COMPATIBILY_LEVEL:-}"}" +export SCHEMA_REGISTRY_CFG_SCHEMA_COMPATIBILITY_LEVEL="${SCHEMA_REGISTRY_CFG_SCHEMA_COMPATIBILITY_LEVEL:-}" +SCHEMA_REGISTRY_CFG_DEBUG="${SCHEMA_REGISTRY_CFG_DEBUG:-"${SCHEMA_REGISTRY_DEBUG:-}"}" +export SCHEMA_REGISTRY_CFG_DEBUG="${SCHEMA_REGISTRY_CFG_DEBUG:-}" # Custom environment variables may be defined below diff --git a/bitnami/schema-registry/README.md b/bitnami/schema-registry/README.md index cd5a26098aa0..65074aaca8c6 100644 --- a/bitnami/schema-registry/README.md +++ b/bitnami/schema-registry/README.md @@ -87,8 +87,8 @@ docker build -t bitnami/APP:latest . | `SCHEMA_REGISTRY_SSL_TRUSTSTORE_PASSWORD` | Password to access the SSL truststore. | `nil` | | `SCHEMA_REGISTRY_SSL_ENDPOINT_IDENTIFICATION_ALGORITHM` | Endpoint identification algorithm to validate the server hostname using the server certificate. | `nil` | | `SCHEMA_REGISTRY_CLIENT_AUTHENTICATION` | Client authentication configuration. Valid options: none, requested, over required. | `nil` | -| `SCHEMA_REGISTRY_AVRO_COMPATIBILY_LEVEL` | The Avro compatibility type. Valid options: none, backward, backward_transitive, forward, forward_transitive, full, or full_transitive | `nil` | -| `SCHEMA_REGISTRY_DEBUG` | Enable Schema Registry debug logs. Valid options: true or false | `nil` | +| `SCHEMA_REGISTRY_CFG_SCHEMA_COMPATIBILITY_LEVEL` | The Avro compatibility type. Valid options: none, backward, backward_transitive, forward, forward_transitive, full, or full_transitive | `nil` | +| `SCHEMA_REGISTRY_CFG_DEBUG` | Enable Schema Registry debug logs. Valid options: true or false | `nil` | #### Read-only environment variables