Hi all! Is it possible to change Flink* log4j-console.properties* in Native Kubernetes (for example in Kubernetes Application mode) without rebuilding the application docker image?
I was trying to inject a .sh script call (in the attachment) before /docker-entrypoint.sh, but this workaround did not work (k8s gives me an exception that the log4j* files are write-locked because there is a configmap over them). Is there another way to change log4j* files? Thank you very much in advance! Best Regards, Vladislav Keda
#!/usr/bin/env bash # shellcheck disable=SC2034 LOG4J_CLI_PROPERTIES_PATH="${FLINK_HOME}/conf/log4j-cli.properties" # shellcheck disable=SC2034 LOG4J_CONSOLE_PROPERTIES_PATH="${FLINK_HOME}/conf/log4j-console.properties" # shellcheck disable=SC2034 LOG4J_SESSION_PROPERTIES_PATH="${FLINK_HOME}/conf/log4j-session.properties" # shellcheck disable=SC2034 LOG4J_PROPERTIES_PATH="${FLINK_HOME}/conf/log4j.properties" override_properties() { local properties_var=$1 local properties_path_var="${properties_var}_PATH" local content="${!properties_var}" local path="${!properties_path_var}" if [ -n "${content}" ]; then echo "$0: ${properties_var} env variable is set. Overwriting ${path}" echo "${content}" > "${path}" else echo "$0: ${properties_var} env variable is not set. Using Flink's ${path}" fi } override_properties "LOG4J_CLI_PROPERTIES" override_properties "LOG4J_CONSOLE_PROPERTIES" override_properties "LOG4J_SESSION_PROPERTIES" override_properties "LOG4J_PROPERTIES"