diff --git a/bitnami/opensearch/1/debian-12/Dockerfile b/bitnami/opensearch/1/debian-12/Dockerfile index 436606cd0ed2..57fc516085eb 100644 --- a/bitnami/opensearch/1/debian-12/Dockerfile +++ b/bitnami/opensearch/1/debian-12/Dockerfile @@ -9,10 +9,10 @@ ARG TARGETARCH LABEL com.vmware.cp.artifact.flavor="sha256:c50c90cfd9d12b445b011e6ad529f1ad3daea45c26d20b00732fae3cd71f6a83" \ org.opencontainers.image.base.name="docker.io/bitnami/minideb:bookworm" \ - org.opencontainers.image.created="2024-02-11T04:39:03Z" \ + org.opencontainers.image.created="2024-02-20T19:53:14Z" \ org.opencontainers.image.description="Application packaged by VMware, Inc" \ org.opencontainers.image.licenses="Apache-2.0" \ - org.opencontainers.image.ref.name="1.3.13-debian-12-r14" \ + org.opencontainers.image.ref.name="1.3.13-debian-12-r16" \ org.opencontainers.image.title="opensearch" \ org.opencontainers.image.vendor="VMware, Inc." \ org.opencontainers.image.version="1.3.13" @@ -29,9 +29,9 @@ SHELL ["/bin/bash", "-o", "errexit", "-o", "nounset", "-o", "pipefail", "-c"] RUN install_packages ca-certificates curl libgcc-s1 libgomp1 libstdc++6 procps zlib1g RUN mkdir -p /tmp/bitnami/pkg/cache/ ; cd /tmp/bitnami/pkg/cache/ ; \ COMPONENTS=( \ - "yq-4.40.7-0-linux-${OS_ARCH}-debian-12" \ - "java-17.0.10-13-1-linux-${OS_ARCH}-debian-12" \ - "opensearch-1.3.13-1-linux-${OS_ARCH}-debian-12" \ + "yq-4.41.1-0-linux-${OS_ARCH}-debian-12" \ + "java-17.0.10-13-2-linux-${OS_ARCH}-debian-12" \ + "opensearch-1.3.13-2-linux-${OS_ARCH}-debian-12" \ ) ; \ for COMPONENT in "${COMPONENTS[@]}"; do \ if [ ! -f "${COMPONENT}.tar.gz" ]; then \ diff --git a/bitnami/opensearch/1/debian-12/prebuildfs/opt/bitnami/.bitnami_components.json b/bitnami/opensearch/1/debian-12/prebuildfs/opt/bitnami/.bitnami_components.json index fe631f7bd25e..b746d1c0270f 100644 --- a/bitnami/opensearch/1/debian-12/prebuildfs/opt/bitnami/.bitnami_components.json +++ b/bitnami/opensearch/1/debian-12/prebuildfs/opt/bitnami/.bitnami_components.json @@ -3,18 +3,18 @@ "arch": "amd64", "distro": "debian-12", "type": "NAMI", - "version": "17.0.10-13-1" + "version": "17.0.10-13-2" }, "opensearch": { "arch": "amd64", "distro": "debian-12", "type": "NAMI", - "version": "1.3.13-1" + "version": "1.3.13-2" }, "yq": { "arch": "amd64", "distro": "debian-12", "type": "NAMI", - "version": "4.40.7-0" + "version": "4.41.1-0" } } \ No newline at end of file diff --git a/bitnami/opensearch/1/debian-12/rootfs/opt/bitnami/scripts/opensearch-env.sh b/bitnami/opensearch/1/debian-12/rootfs/opt/bitnami/scripts/opensearch-env.sh index 3ee093be3fdd..1e31be65e72d 100644 --- a/bitnami/opensearch/1/debian-12/rootfs/opt/bitnami/scripts/opensearch-env.sh +++ b/bitnami/opensearch/1/debian-12/rootfs/opt/bitnami/scripts/opensearch-env.sh @@ -112,12 +112,16 @@ export OPENSEARCH_BASE_DIR="/opt/bitnami/opensearch" export DB_BASE_DIR="$OPENSEARCH_BASE_DIR" export OPENSEARCH_CONF_DIR="${DB_BASE_DIR}/config" export DB_CONF_DIR="$OPENSEARCH_CONF_DIR" +export OPENSEARCH_DEFAULT_CONF_DIR="${DB_BASE_DIR}/config.default" +export DB_DEFAULT_CONF_DIR="$OPENSEARCH_DEFAULT_CONF_DIR" export OPENSEARCH_CERTS_DIR="${OPENSEARCH_CERTS_DIR:-${DB_CONF_DIR}/certs}" export DB_CERTS_DIR="$OPENSEARCH_CERTS_DIR" export OPENSEARCH_LOGS_DIR="${DB_BASE_DIR}/logs" export DB_LOGS_DIR="$OPENSEARCH_LOGS_DIR" export OPENSEARCH_PLUGINS_DIR="${DB_BASE_DIR}/plugins" export DB_PLUGINS_DIR="$OPENSEARCH_PLUGINS_DIR" +export OPENSEARCH_DEFAULT_PLUGINS_DIR="${DB_BASE_DIR}/plugins.default" +export DB_DEFAULT_PLUGINS_DIR="$OPENSEARCH_DEFAULT_PLUGINS_DIR" export OPENSEARCH_DATA_DIR="${DB_VOLUME_DIR}/data" export DB_DATA_DIR="$OPENSEARCH_DATA_DIR" export OPENSEARCH_DATA_DIR_LIST="${OPENSEARCH_DATA_DIR_LIST:-}" diff --git a/bitnami/opensearch/1/debian-12/rootfs/opt/bitnami/scripts/opensearch/entrypoint.sh b/bitnami/opensearch/1/debian-12/rootfs/opt/bitnami/scripts/opensearch/entrypoint.sh index 0bca832be31f..9e45c4000359 100755 --- a/bitnami/opensearch/1/debian-12/rootfs/opt/bitnami/scripts/opensearch/entrypoint.sh +++ b/bitnami/opensearch/1/debian-12/rootfs/opt/bitnami/scripts/opensearch/entrypoint.sh @@ -18,6 +18,25 @@ set -o pipefail print_welcome_page +# We add the copy from default config in the entrypoint to not break users +# bypassing the setup.sh logic. If the file already exists do not overwrite (in +# case someone mounts a configuration file in /opt/bitnami/elasticsearch/conf) +debug "Copying files from $DB_DEFAULT_CONF_DIR to $DB_CONF_DIR" +cp -nr "$DB_DEFAULT_CONF_DIR"/. "$DB_CONF_DIR" + +if ! is_dir_empty "$DB_DEFAULT_PLUGINS_DIR"; then + debug "Copying plugins from $DB_DEFAULT_PLUGINS_DIR to $DB_PLUGINS_DIR" + # Copy the plugins installed by default to the plugins directory + # If there is already a plugin with the same name in the plugins folder do nothing + for plugin_path in "${DB_DEFAULT_PLUGINS_DIR}"/*; do + plugin_name="$(basename "$plugin_path")" + plugin_moved_path="${DB_PLUGINS_DIR}/${plugin_name}" + if ! [[ -d "$plugin_moved_path" ]]; then + cp -r "$plugin_path" "$plugin_moved_path" + fi + done +fi + if [[ "$1" = "/opt/bitnami/scripts/opensearch/run.sh" ]]; then info "** Starting Opensearch setup **" /opt/bitnami/scripts/opensearch/setup.sh diff --git a/bitnami/opensearch/1/debian-12/rootfs/opt/bitnami/scripts/opensearch/postunpack.sh b/bitnami/opensearch/1/debian-12/rootfs/opt/bitnami/scripts/opensearch/postunpack.sh index d3c0b846fd7e..64a48a30af9e 100755 --- a/bitnami/opensearch/1/debian-12/rootfs/opt/bitnami/scripts/opensearch/postunpack.sh +++ b/bitnami/opensearch/1/debian-12/rootfs/opt/bitnami/scripts/opensearch/postunpack.sh @@ -11,14 +11,14 @@ # Load environment . /opt/bitnami/scripts/opensearch-env.sh -for dir in "$DB_TMP_DIR" "$DB_DATA_DIR" "$DB_LOGS_DIR" "${DB_BASE_DIR}/plugins" "${DB_BASE_DIR}/modules" "${DB_BASE_DIR}/extensions" "$DB_CONF_DIR" "$DB_VOLUME_DIR" "$DB_INITSCRIPTS_DIR" "$DB_MOUNTED_PLUGINS_DIR"; do +for dir in "$DB_TMP_DIR" "$DB_DATA_DIR" "$DB_LOGS_DIR" "${DB_BASE_DIR}/plugins" "${DB_BASE_DIR}/modules" "${DB_BASE_DIR}/extensions" "$DB_CONF_DIR" "$DB_VOLUME_DIR" "$DB_INITSCRIPTS_DIR" "$DB_MOUNTED_PLUGINS_DIR" "$DB_DEFAULT_CONF_DIR" "$DB_DEFAULT_PLUGINS_DIR"; do ensure_dir_exists "$dir" chmod -R ug+rwX "$dir" done elasticsearch_configure_logging -for dir in "$DB_TMP_DIR" "$DB_DATA_DIR" "$DB_LOGS_DIR" "${DB_BASE_DIR}/plugins" "${DB_BASE_DIR}/modules" "$DB_CONF_DIR" "$DB_VOLUME_DIR" "$DB_INITSCRIPTS_DIR" "$DB_MOUNTED_PLUGINS_DIR"; do +for dir in "$DB_TMP_DIR" "$DB_DATA_DIR" "$DB_LOGS_DIR" "${DB_BASE_DIR}/plugins" "${DB_BASE_DIR}/modules" "$DB_CONF_DIR" "$DB_VOLUME_DIR" "$DB_INITSCRIPTS_DIR" "$DB_MOUNTED_PLUGINS_DIR" "$DB_DEFAULT_CONF_DIR" "$DB_DEFAULT_PLUGINS_DIR"; do # `elasticsearch-plugin install` command complains about being unable to create the a plugin's directory # even when having the proper permissions. # The reason: the code is checking trying to check the permissions by consulting the parent directory owner, @@ -33,3 +33,16 @@ for dir in "$DB_TMP_DIR" "$DB_DATA_DIR" "$DB_LOGS_DIR" "${DB_BASE_DIR}/plugins" done elasticsearch_install_plugins + +# Copy all initially generated configuration files to the default directory +# (this is to avoid breaking when entrypoint is being overridden) +cp -r "${DB_CONF_DIR}/"* "$DB_DEFAULT_CONF_DIR" + +if ! is_dir_empty "$DB_PLUGINS_DIR"; then + # Move all initially installed plugins to the default plugins directory. + for plugin_path in "${DB_PLUGINS_DIR}"/*; do + plugin_name="$(basename "$plugin_path")" + plugin_moved_path="${DB_DEFAULT_PLUGINS_DIR}/${plugin_name}" + mv "$plugin_path" "$plugin_moved_path" + done +fi