From 8cd6d0f04d8daca9a1e515e62b2a815df97bbebd Mon Sep 17 00:00:00 2001 From: Benedikt Labrenz Date: Fri, 12 Sep 2025 16:30:23 +0200 Subject: [PATCH 01/23] add image for OpenSearch Dashboards including the securityDashboards plugin --- conf.py | 16 ++ opensearch-dashboards/Dockerfile | 155 ++++++++++++++++++ opensearch-dashboards/README.md | 8 + .../opensearch-build/Dockerfile | 21 +++ ...SEARCH_DASHBOARDS_HOME-in-docker-ent.patch | 22 +++ ...er.host-to-0.0.0.0-in-default-config.patch | 18 ++ .../stackable/patches/3.1.0/patchable.toml | 1 + .../stackable/patches/patchable.toml | 2 + .../opensearch-build/versions.py | 6 + .../security-dashboards-plugin/Dockerfile | 30 ++++ .../stackable/patches/3.1.0.0/patchable.toml | 1 + .../stackable/patches/patchable.toml | 2 + .../security-dashboards-plugin/versions.py | 6 + .../stackable/patches/3.1.0/patchable.toml | 1 + .../stackable/patches/patchable.toml | 2 + opensearch-dashboards/versions.py | 11 ++ 16 files changed, 302 insertions(+) create mode 100644 opensearch-dashboards/Dockerfile create mode 100644 opensearch-dashboards/README.md create mode 100644 opensearch-dashboards/opensearch-build/Dockerfile create mode 100644 opensearch-dashboards/opensearch-build/stackable/patches/3.1.0/0001-set-correct-OPENSEARCH_DASHBOARDS_HOME-in-docker-ent.patch create mode 100644 opensearch-dashboards/opensearch-build/stackable/patches/3.1.0/0002-set-server.host-to-0.0.0.0-in-default-config.patch create mode 100644 opensearch-dashboards/opensearch-build/stackable/patches/3.1.0/patchable.toml create mode 100644 opensearch-dashboards/opensearch-build/stackable/patches/patchable.toml create mode 100644 opensearch-dashboards/opensearch-build/versions.py create mode 100644 opensearch-dashboards/security-dashboards-plugin/Dockerfile create mode 100644 opensearch-dashboards/security-dashboards-plugin/stackable/patches/3.1.0.0/patchable.toml create mode 100644 opensearch-dashboards/security-dashboards-plugin/stackable/patches/patchable.toml create mode 100644 opensearch-dashboards/security-dashboards-plugin/versions.py create mode 100644 opensearch-dashboards/stackable/patches/3.1.0/patchable.toml create mode 100644 opensearch-dashboards/stackable/patches/patchable.toml create mode 100644 opensearch-dashboards/versions.py diff --git a/conf.py b/conf.py index bf62bbad2..b5888b695 100644 --- a/conf.py +++ b/conf.py @@ -36,6 +36,13 @@ opensearch_prometheus_exporter = importlib.import_module( "opensearch.opensearch-prometheus-exporter.versions" ) +opensearch_dashboards = importlib.import_module("opensearch-dashboards.versions") +opensearch_dashboards_opensearch_build = importlib.import_module( + "opensearch-dashboards.opensearch-build.versions" +) +opensearch_dashboards_security_dashboards_plugin = importlib.import_module( + "opensearch-dashboards.security-dashboards-plugin.versions" +) spark_k8s = importlib.import_module("spark-k8s.versions") stackable_base = importlib.import_module("stackable-base.versions") stackable_devel = importlib.import_module("stackable-devel.versions") @@ -82,6 +89,15 @@ "name": "opensearch/opensearch-prometheus-exporter", "versions": opensearch_prometheus_exporter.versions, }, + {"name": "opensearch-dashboards", "versions": opensearch_dashboards.versions}, + { + "name": "opensearch-dashboards/opensearch-build", + "versions": opensearch_dashboards_opensearch_build.versions, + }, + { + "name": "opensearch-dashboards/security-dashboards-plugin", + "versions": opensearch_dashboards_security_dashboards_plugin.versions, + }, {"name": "spark-k8s", "versions": spark_k8s.versions}, {"name": "stackable-base", "versions": stackable_base.versions}, {"name": "stackable-devel", "versions": stackable_devel.versions}, diff --git a/opensearch-dashboards/Dockerfile b/opensearch-dashboards/Dockerfile new file mode 100644 index 000000000..45d2ebe6a --- /dev/null +++ b/opensearch-dashboards/Dockerfile @@ -0,0 +1,155 @@ +# syntax=docker/dockerfile:1.16.0@sha256:e2dd261f92e4b763d789984f6eab84be66ab4f5f08052316d8eb8f173593acf7 +# check=error=true + +FROM stackable/image/opensearch-dashboards/security-dashboards-plugin AS security-dashboards-plugin +FROM stackable/image/opensearch-dashboards/opensearch-build AS opensearch-build +FROM stackable/image/stackable-devel AS opensearch-dashboards-builder + +ARG PRODUCT +ARG RELEASE +ARG OPENSEARCH_DASHBOARDS_SECURITY_DASHBOARDS_PLUGIN +ARG NODEJS +ARG YARN +ARG STACKABLE_USER_UID +ARG TARGETARCH + +WORKDIR /stackable + +COPY --chown=${STACKABLE_USER_UID}:0 opensearch-dashboards/stackable/patches/patchable.toml /stackable/src/opensearch-dashboards/stackable/patches/patchable.toml +COPY --chown=${STACKABLE_USER_UID}:0 opensearch-dashboards/stackable/patches/${PRODUCT} /stackable/src/opensearch-dashboards/stackable/patches/${PRODUCT} +COPY \ + --chown=${STACKABLE_USER_UID}:0 \ + --from=security-dashboards-plugin \ + /stackable/src/opensearch-dashboards/security-dashboards-plugin/patchable-work/worktree/${OPENSEARCH_DASHBOARDS_SECURITY_DASHBOARDS_PLUGIN} \ + /stackable/security-dashboards-plugin + +# tar, xz - extract nodejs bundle +# unzip - extract plugin from archive +RUN < +Date: Tue, 9 Sep 2025 16:41:31 +0200 +Subject: set correct OPENSEARCH_DASHBOARDS_HOME in docker entrypoint + +--- + .../opensearch-dashboards-docker-entrypoint-3.x.sh | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/docker/release/config/opensearch-dashboards/opensearch-dashboards-docker-entrypoint-3.x.sh b/docker/release/config/opensearch-dashboards/opensearch-dashboards-docker-entrypoint-3.x.sh +index 055354ba..33d98353 100755 +--- a/docker/release/config/opensearch-dashboards/opensearch-dashboards-docker-entrypoint-3.x.sh ++++ b/docker/release/config/opensearch-dashboards/opensearch-dashboards-docker-entrypoint-3.x.sh +@@ -16,7 +16,7 @@ + # --opensearch.startupTimeout=60 + + # Setup Home Directory +-export OPENSEARCH_DASHBOARDS_HOME=/usr/share/opensearch-dashboards ++export OPENSEARCH_DASHBOARDS_HOME=/stackable/opensearch-dashboards + + opensearch_dashboards_vars=( + console.enabled diff --git a/opensearch-dashboards/opensearch-build/stackable/patches/3.1.0/0002-set-server.host-to-0.0.0.0-in-default-config.patch b/opensearch-dashboards/opensearch-build/stackable/patches/3.1.0/0002-set-server.host-to-0.0.0.0-in-default-config.patch new file mode 100644 index 000000000..707e66b2c --- /dev/null +++ b/opensearch-dashboards/opensearch-build/stackable/patches/3.1.0/0002-set-server.host-to-0.0.0.0-in-default-config.patch @@ -0,0 +1,18 @@ +From f960bcb699f59416dde917db4302e178aaca3d3a Mon Sep 17 00:00:00 2001 +From: Benedikt Labrenz +Date: Tue, 9 Sep 2025 16:42:53 +0200 +Subject: set server.host to 0.0.0.0 in default config + +--- + config/opensearch_dashboards-3.x.yml | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/config/opensearch_dashboards-3.x.yml b/config/opensearch_dashboards-3.x.yml +index c6e9c6cc..812d391c 100644 +--- a/config/opensearch_dashboards-3.x.yml ++++ b/config/opensearch_dashboards-3.x.yml +@@ -231,3 +231,4 @@ opensearch_security.multitenancy.tenants.preferred: [Private, Global] + opensearch_security.readonly_mode.roles: [kibana_read_only] + # Use this setting if you are running opensearch-dashboards without https + opensearch_security.cookie.secure: false ++server.host: '0.0.0.0' diff --git a/opensearch-dashboards/opensearch-build/stackable/patches/3.1.0/patchable.toml b/opensearch-dashboards/opensearch-build/stackable/patches/3.1.0/patchable.toml new file mode 100644 index 000000000..5d98a0990 --- /dev/null +++ b/opensearch-dashboards/opensearch-build/stackable/patches/3.1.0/patchable.toml @@ -0,0 +1 @@ +base = "c152d16bbe6b4501e3e2418be0f9f8b3dc07559f" diff --git a/opensearch-dashboards/opensearch-build/stackable/patches/patchable.toml b/opensearch-dashboards/opensearch-build/stackable/patches/patchable.toml new file mode 100644 index 000000000..430c25ade --- /dev/null +++ b/opensearch-dashboards/opensearch-build/stackable/patches/patchable.toml @@ -0,0 +1,2 @@ +upstream = "https://github.com/opensearch-project/opensearch-build" +default-mirror = "https://github.com/stackabletech/opensearch-build" diff --git a/opensearch-dashboards/opensearch-build/versions.py b/opensearch-dashboards/opensearch-build/versions.py new file mode 100644 index 000000000..99c7d70ca --- /dev/null +++ b/opensearch-dashboards/opensearch-build/versions.py @@ -0,0 +1,6 @@ +versions = [ + { + "product": "3.1.0", + "stackable-devel": "1.0.0", + }, +] diff --git a/opensearch-dashboards/security-dashboards-plugin/Dockerfile b/opensearch-dashboards/security-dashboards-plugin/Dockerfile new file mode 100644 index 000000000..23ddefeb8 --- /dev/null +++ b/opensearch-dashboards/security-dashboards-plugin/Dockerfile @@ -0,0 +1,30 @@ +# syntax=docker/dockerfile:1.16.0@sha256:e2dd261f92e4b763d789984f6eab84be66ab4f5f08052316d8eb8f173593acf7 +# check=error=true + +FROM stackable/image/stackable-devel AS opensearch-securitydashboards-builder + +ARG PRODUCT +ARG RELEASE +ARG STACKABLE_USER_UID + +WORKDIR /stackable + +COPY --chown=${STACKABLE_USER_UID}:0 opensearch-dashboards/security-dashboards-plugin/stackable/patches/patchable.toml /stackable/src/opensearch-dashboards/security-dashboards-plugin/stackable/patches/patchable.toml +COPY --chown=${STACKABLE_USER_UID}:0 opensearch-dashboards/security-dashboards-plugin/stackable/patches/${PRODUCT} /stackable/src/opensearch-dashboards/security-dashboards-plugin/stackable/patches/${PRODUCT} + +# tar - archive source code +RUN < Date: Fri, 12 Sep 2025 16:37:48 +0200 Subject: [PATCH 02/23] add changelog entry --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index ae4287864..dcc66123b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,6 +11,7 @@ All notable changes to this project will be documented in this file. - opensearch: Use build-repo.stackable.tech instead of Maven Central ([#1222]). - opensearch: Add the `opensearch-prometheus-exporter` plugin to the image ([#1223]). - opensearch: Replace the demo configuration of the OpenSearch Security plugin with a minimal one ([#1228]). +- opensearch: Add an image for Opensearch Dashboards with version `3.1.0` ([#1248]). - nifi: Backport NIFI-14848 to NiFi ([#1225]) ### Changed @@ -31,6 +32,7 @@ All notable changes to this project will be documented in this file. [#1225]: https://github.com/stackabletech/docker-images/pull/1225 [#1228]: https://github.com/stackabletech/docker-images/pull/1228 [#1230]: https://github.com/stackabletech/docker-images/pull/1230 +[#1248]: https://github.com/stackabletech/docker-images/pull/1248 ## [25.7.0] - 2025-07-23 From 3cbb364ecca2f00be711b3f7d1b44325320b4263 Mon Sep 17 00:00:00 2001 From: Benedikt Labrenz Date: Mon, 15 Sep 2025 16:08:17 +0200 Subject: [PATCH 03/23] add boil config for opensearch-dashboards --- opensearch-dashboards/boil-config.toml | 10 ++++++++++ .../opensearch-build/boil-config.toml | 2 ++ .../security-dashboards-plugin/boil-config.toml | 2 ++ 3 files changed, 14 insertions(+) create mode 100644 opensearch-dashboards/boil-config.toml create mode 100644 opensearch-dashboards/opensearch-build/boil-config.toml create mode 100644 opensearch-dashboards/security-dashboards-plugin/boil-config.toml diff --git a/opensearch-dashboards/boil-config.toml b/opensearch-dashboards/boil-config.toml new file mode 100644 index 000000000..693f1e3fb --- /dev/null +++ b/opensearch-dashboards/boil-config.toml @@ -0,0 +1,10 @@ +[versions."3.1.0".local-images] +stackable-devel = "1.0.0" +"opensearch-dashboards/security-dashboards-plugin"= "3.1.0.0" +"opensearch-dashboards/opensearch-build"= "3.1.0" +"vector" = "0.47.0" + +[versions."3.1.0".build-arguments] +nodejs-version = "20.18.3" +nifi-opa-authorizer-plugin-version = "0.1.0" +yarn-version = "1.22.19" diff --git a/opensearch-dashboards/opensearch-build/boil-config.toml b/opensearch-dashboards/opensearch-build/boil-config.toml new file mode 100644 index 000000000..620194e94 --- /dev/null +++ b/opensearch-dashboards/opensearch-build/boil-config.toml @@ -0,0 +1,2 @@ +[versions."3.1.0".local-images] +stackable-devel = "1.0.0" diff --git a/opensearch-dashboards/security-dashboards-plugin/boil-config.toml b/opensearch-dashboards/security-dashboards-plugin/boil-config.toml new file mode 100644 index 000000000..e29ea1010 --- /dev/null +++ b/opensearch-dashboards/security-dashboards-plugin/boil-config.toml @@ -0,0 +1,2 @@ +[versions."3.1.0.0".local-images] +stackable-devel = "1.0.0" From 4345d672a46c60cb31f859d1328cdba6e6292f7c Mon Sep 17 00:00:00 2001 From: Benedikt Labrenz Date: Tue, 16 Sep 2025 12:08:35 +0200 Subject: [PATCH 04/23] fix build args for boil --- opensearch-dashboards/Dockerfile | 48 +++++++++---------- .../opensearch-build/Dockerfile | 8 ++-- .../security-dashboards-plugin/Dockerfile | 10 ++-- 3 files changed, 33 insertions(+), 33 deletions(-) diff --git a/opensearch-dashboards/Dockerfile b/opensearch-dashboards/Dockerfile index 0f9920a95..127b5bc83 100644 --- a/opensearch-dashboards/Dockerfile +++ b/opensearch-dashboards/Dockerfile @@ -5,9 +5,9 @@ FROM local-image/opensearch-dashboards/security-dashboards-plugin AS security-da FROM local-image/opensearch-dashboards/opensearch-build AS opensearch-build FROM local-image/stackable-devel AS opensearch-dashboards-builder -ARG PRODUCT -ARG RELEASE -ARG OPENSEARCH_DASHBOARDS_SECURITY_DASHBOARDS_PLUGIN +ARG PRODUCT_VERSION +ARG RELEASE_VERSION +ARG OPENSEARCH_DASHBOARDS_SECURITY_DASHBOARDS_PLUGIN_VERSION ARG NODEJS_VERSION ARG YARN_VERSION ARG STACKABLE_USER_UID @@ -16,11 +16,11 @@ ARG TARGETARCH WORKDIR /stackable COPY --chown=${STACKABLE_USER_UID}:0 opensearch-dashboards/stackable/patches/patchable.toml /stackable/src/opensearch-dashboards/stackable/patches/patchable.toml -COPY --chown=${STACKABLE_USER_UID}:0 opensearch-dashboards/stackable/patches/${PRODUCT} /stackable/src/opensearch-dashboards/stackable/patches/${PRODUCT} +COPY --chown=${STACKABLE_USER_UID}:0 opensearch-dashboards/stackable/patches/${PRODUCT_VERSION} /stackable/src/opensearch-dashboards/stackable/patches/${PRODUCT_VERSION} COPY \ --chown=${STACKABLE_USER_UID}:0 \ --from=security-dashboards-plugin \ - /stackable/src/opensearch-dashboards/security-dashboards-plugin/patchable-work/worktree/${OPENSEARCH_DASHBOARDS_SECURITY_DASHBOARDS_PLUGIN} \ + /stackable/src/opensearch-dashboards/security-dashboards-plugin/patchable-work/worktree/${OPENSEARCH_DASHBOARDS_SECURITY_DASHBOARDS_PLUGIN_VERSION} \ /stackable/security-dashboards-plugin # tar, xz - extract nodejs bundle @@ -39,18 +39,18 @@ USER ${STACKABLE_USER_UID} RUN < Date: Wed, 17 Sep 2025 14:51:32 +0200 Subject: [PATCH 05/23] wip: add sbom generation with cdxgen --- opensearch-dashboards/Dockerfile | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/opensearch-dashboards/Dockerfile b/opensearch-dashboards/Dockerfile index 127b5bc83..f803b54a7 100644 --- a/opensearch-dashboards/Dockerfile +++ b/opensearch-dashboards/Dockerfile @@ -32,7 +32,12 @@ microdnf install tar xz unzip microdnf clean all rm -rf /var/cache/yum curl "https://nodejs.org/dist/v${NODEJS_VERSION}/node-v${NODEJS_VERSION}-linux-${ARCH}.tar.xz" | tar -xJC /usr/local --strip-components=1 +echo "installing yarn" npm install -g yarn@${YARN_VERSION} +echo "installing cdxgen" +npm update +npm show es-define-property versions +npm install -g @cyclonedx/cdxgen@11.7.0 EOF USER ${STACKABLE_USER_UID} @@ -48,8 +53,10 @@ HUSKY=0 yarn osd bootstrap --single-version=loose yarn build-platform --release mkdir /stackable/opensearch-dashboards tar -xzf target/opensearch-dashboards-${PRODUCT_VERSION}-linux-${ARCH}.tar.gz -C /stackable/opensearch-dashboards --strip-components=1 +cdxgen -t yarn --json-pretty cd plugins/security-dashboards-plugin yarn build +cdxgen -t yarn --json-pretty unzip build/security-dashboards-${OPENSEARCH_DASHBOARDS_SECURITY_DASHBOARDS_PLUGIN_VERSION}.zip -d /stackable/security-dashboards-plugin mv /stackable/security-dashboards-plugin/opensearch-dashboards/securityDashboards /stackable/opensearch-dashboards/plugins/securityDashboards EOF @@ -109,6 +116,16 @@ COPY \ --from=opensearch-build \ /stackable/opensearch_dashboards.yml \ /stackable/opensearch-dashboards-${PRODUCT_VERSION}-stackable${RELEASE_VERSION}/config/opensearch_dashboards.yml +COPY \ + --chown=${STACKABLE_USER_UID}:0 \ + --from=opensearch-dashboards-builder \ + /stackable/src/opensearch-dashboards/patchable-work/worktree/${PRODUCT_VERSION}/bom.json \ + /stackable/opensearch-dashboards-${PRODUCT_VERSION}-stackable${RELEASE_VERSION}.cdx.json +COPY \ + --chown=${STACKABLE_USER_UID}:0 \ + --from=opensearch-dashboards-builder \ + /stackable/src/opensearch-dashboards/patchable-work/worktree/${PRODUCT_VERSION}/plugins/security-dashboards-plugin/bom.json \ + /stackable/opensearch-dashboards-security-dashboards-plugin-${PRODUCT_VERSION}-stackable${RELEASE_VERSION}.cdx.json COPY \ --chown=${STACKABLE_USER_UID}:0 \ --from=opensearch-dashboards-builder \ @@ -129,6 +146,7 @@ chmod g=u /stackable/opensearch-dashboards-${PRODUCT_VERSION}-stackable${RELEASE chmod g=u /stackable/opensearch-dashboards-${PRODUCT_VERSION}-stackable${RELEASE_VERSION}/opensearch-dashboards-docker-entrypoint.sh chmod g=u /stackable/opensearch-dashboards-${PRODUCT_VERSION}-stackable${RELEASE_VERSION}/config/opensearch_dashboards.yml chmod g=u /stackable/*-src.tar.gz +chmod g=u /stackable/*-src.cdx.json ln -s /stackable/opensearch-dashboards-${PRODUCT_VERSION}-stackable${RELEASE_VERSION} ${OPENSEARCH_DASHBOARDS_HOME} chown -h ${STACKABLE_USER_UID}:0 ${OPENSEARCH_DASHBOARDS_HOME} From 23ae176a8ae108448f819445bd4938169ee80df5 Mon Sep 17 00:00:00 2001 From: Benedikt Labrenz Date: Wed, 17 Sep 2025 18:04:58 +0200 Subject: [PATCH 06/23] remove debug code from Dockerfile --- opensearch-dashboards/Dockerfile | 10 +++------- opensearch-dashboards/boil-config.toml | 1 + 2 files changed, 4 insertions(+), 7 deletions(-) diff --git a/opensearch-dashboards/Dockerfile b/opensearch-dashboards/Dockerfile index f803b54a7..de7d88b6a 100644 --- a/opensearch-dashboards/Dockerfile +++ b/opensearch-dashboards/Dockerfile @@ -10,6 +10,7 @@ ARG RELEASE_VERSION ARG OPENSEARCH_DASHBOARDS_SECURITY_DASHBOARDS_PLUGIN_VERSION ARG NODEJS_VERSION ARG YARN_VERSION +ARG CDXGEN_VERSION ARG STACKABLE_USER_UID ARG TARGETARCH @@ -32,12 +33,7 @@ microdnf install tar xz unzip microdnf clean all rm -rf /var/cache/yum curl "https://nodejs.org/dist/v${NODEJS_VERSION}/node-v${NODEJS_VERSION}-linux-${ARCH}.tar.xz" | tar -xJC /usr/local --strip-components=1 -echo "installing yarn" -npm install -g yarn@${YARN_VERSION} -echo "installing cdxgen" -npm update -npm show es-define-property versions -npm install -g @cyclonedx/cdxgen@11.7.0 +npm install -g yarn@${YARN_VERSION} @cyclonedx/cdxgen@${CDXGEN_VERSION} EOF USER ${STACKABLE_USER_UID} @@ -146,7 +142,7 @@ chmod g=u /stackable/opensearch-dashboards-${PRODUCT_VERSION}-stackable${RELEASE chmod g=u /stackable/opensearch-dashboards-${PRODUCT_VERSION}-stackable${RELEASE_VERSION}/opensearch-dashboards-docker-entrypoint.sh chmod g=u /stackable/opensearch-dashboards-${PRODUCT_VERSION}-stackable${RELEASE_VERSION}/config/opensearch_dashboards.yml chmod g=u /stackable/*-src.tar.gz -chmod g=u /stackable/*-src.cdx.json +chmod g=u /stackable/*.cdx.json ln -s /stackable/opensearch-dashboards-${PRODUCT_VERSION}-stackable${RELEASE_VERSION} ${OPENSEARCH_DASHBOARDS_HOME} chown -h ${STACKABLE_USER_UID}:0 ${OPENSEARCH_DASHBOARDS_HOME} diff --git a/opensearch-dashboards/boil-config.toml b/opensearch-dashboards/boil-config.toml index 693f1e3fb..c42c94ab2 100644 --- a/opensearch-dashboards/boil-config.toml +++ b/opensearch-dashboards/boil-config.toml @@ -8,3 +8,4 @@ stackable-devel = "1.0.0" nodejs-version = "20.18.3" nifi-opa-authorizer-plugin-version = "0.1.0" yarn-version = "1.22.19" +cdxgen-version = "11.7.0" From 77b393de25cbd0f4c69a74252dd825a8cc63a643 Mon Sep 17 00:00:00 2001 From: Benedikt Labrenz Date: Tue, 23 Sep 2025 16:57:21 +0200 Subject: [PATCH 07/23] address feedback on PR --- .../update-product-opensearch-dashboards.md | 78 +++++++++++++++++++ .../build_opensearch_dashboards.yaml | 35 +++++++++ CHANGELOG.md | 2 +- README.md | 9 ++- opensearch-dashboards/Dockerfile | 26 ++++--- opensearch-dashboards/README.md | 2 +- opensearch-dashboards/boil-config.toml | 1 - .../opensearch-build/Dockerfile | 3 +- ...er.host-to-0.0.0.0-in-default-config.patch | 18 ----- .../stackable/patches/3.1.0/patchable.toml | 1 + .../security-dashboards-plugin/Dockerfile | 8 +- .../stackable/patches/3.1.0.0/patchable.toml | 1 + .../stackable/patches/3.1.0/patchable.toml | 1 + 13 files changed, 142 insertions(+), 43 deletions(-) create mode 100644 .github/ISSUE_TEMPLATE/update-product-opensearch-dashboards.md create mode 100644 .github/workflows/build_opensearch_dashboards.yaml delete mode 100644 opensearch-dashboards/opensearch-build/stackable/patches/3.1.0/0002-set-server.host-to-0.0.0.0-in-default-config.patch diff --git a/.github/ISSUE_TEMPLATE/update-product-opensearch-dashboards.md b/.github/ISSUE_TEMPLATE/update-product-opensearch-dashboards.md new file mode 100644 index 000000000..a311c2ccf --- /dev/null +++ b/.github/ISSUE_TEMPLATE/update-product-opensearch-dashboards.md @@ -0,0 +1,78 @@ +--- +name: Update OpenSearch Dashboards +about: >- + This template contains instructions specific to updating this product and/or + container image(s). +title: >- + chore(opensearch-dashboards): Update major/minor|patch versions for YY.M.X +labels: [] +# Currently, projects cannot be assigned via front-matter. +projects: ['stackabletech/10'] +assignees: '' +--- + +Part of . + + +- Add: `x.x.x` +- Remove: `y.y.y` + +> [!TIP] +> Please add the `scheduled-for/YY.M.X` label, and add to the [Stackable Engineering][1] project. +> +> [1]: https://github.com/orgs/stackabletech/projects/10 + +## Update tasks + +- [ ] Update `versions.py` to reflect the agreed upon versions in the spreadsheet (including the removal of old versions). +- [ ] Update other dependencies if applicable (eg: security-plugin, etc). +- [ ] Check other operators (getting_started / kuttl / supported-versions) for usage of the versions. Add the PR(s) to the list below. +- [ ] Update the version in demos. Add the PR(s) to the list below. + +## Related Pull Requests + +> [!TIP] +> Delete any items that do not apply so that all applicable items can be checked. +> For example, if you add release notes to the documentation repository, you do not need the latter two criteria. + +- _Link to the docker-images PR (product update)_ +- _Link to the operator PR (getting_started / kuttl / supported-versions)_ +- _Link to any other operator PRs (getting_started / kuttl)_ +- _Link to demo PR (raise against the `main` branch)_ +- _Link to the Release Notes PR in the documentation repo (if not a comment below)_ + +## Acceptance + +> [!TIP] +> This list should be completed by the assignee(s), once respective PRs have been merged. Once all items have been +> checked, the issue can be moved into _Development: Done_. + +- [ ] Can build image (either locally, or in CI) +- [ ] Kuttl smoke tests passes (either locally, or in CI) +- [ ] Release notes added to documentation and linked as a PR above +- [ ] Release notes written in a comment below +- [ ] Applicable `release-note` label added to this issue + +
+Testing instructions + +```shell +# See the latest version at https://pypi.org/project/image-tools-stackabletech/ +pip install image-tools-stackabletech==0.0.16 + +bake --product opensearch-dashboards=x.y.z # where x.y.z is the new version added in this PR + +kind load docker-image oci.stackable.tech/sdp/opensearch-dashboards:x.y.z-stackable0.0.0-dev + +# Change directory into the opensearch-operator repository and update the +# product version in tests/test-definition.yaml (once there is an integration test for opensearch-dashboards) +./scripts/run-tests --test-suite smoke-latest # or similar +``` + +
+ +_Please consider updating this template if these instructions are wrong, or +could be made clearer._ diff --git a/.github/workflows/build_opensearch_dashboards.yaml b/.github/workflows/build_opensearch_dashboards.yaml new file mode 100644 index 000000000..37d1a551c --- /dev/null +++ b/.github/workflows/build_opensearch_dashboards.yaml @@ -0,0 +1,35 @@ +--- +name: Build OpenSearch Dashboards +run-name: | + Build OpenSearch Dashboards (attempt #${{ github.run_attempt }}) + +on: + workflow_dispatch: + schedule: + - cron: '0 0 2/2 * *' # https://crontab.guru/#0_0_2/2_*_* + push: + branches: [main] + tags: + - "[0-9][0-9].[0-9]+.[0-9]+" + - "[0-9][0-9].[0-9]+.[0-9]+-rc[0-9]+" + paths: + # To check dependencies, run this ( you will need to consider transitive dependencies) + # bake --product PRODUCT -d | grep -v 'docker buildx bake' | jq '.target | keys[]' + - opensearch-dashboards/** + - vector/** + - stackable-devel/** + - .github/actions/** + - .github/workflows/build_opensearch_dashboards.yaml + - .github/workflows/reusable_build_image.yaml + +jobs: + build_image: + name: Reusable Workflow + uses: ./.github/workflows/reusable_build_image.yaml + secrets: + harbor-robot-secret: ${{ secrets.HARBOR_ROBOT_SDP_GITHUB_ACTION_BUILD_SECRET }} + slack-token: ${{ secrets.SLACK_CONTAINER_IMAGE_TOKEN }} + with: + product-name: opensearch-dashboards + sdp-version: ${{ github.ref_type == 'tag' && github.ref_name || '0.0.0-dev' }} + registry-namespace: sdp diff --git a/CHANGELOG.md b/CHANGELOG.md index dcc66123b..2af88092c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,7 +11,7 @@ All notable changes to this project will be documented in this file. - opensearch: Use build-repo.stackable.tech instead of Maven Central ([#1222]). - opensearch: Add the `opensearch-prometheus-exporter` plugin to the image ([#1223]). - opensearch: Replace the demo configuration of the OpenSearch Security plugin with a minimal one ([#1228]). -- opensearch: Add an image for Opensearch Dashboards with version `3.1.0` ([#1248]). +- opensearch-dashboards: Add an image for Opensearch Dashboards with version `3.1.0` ([#1248]). - nifi: Backport NIFI-14848 to NiFi ([#1225]) ### Changed diff --git a/README.md b/README.md index efd84522c..8af2fec23 100644 --- a/README.md +++ b/README.md @@ -8,9 +8,10 @@ This repository contains Dockerfiles and scripts to build base images for use wi | [![Build Airflow]][build_airflow.yaml] | [![Build Druid]][build_druid.yaml] | [![Build Hadoop]][build_hadoop.yaml] | [![Build HBase]][build_hbase.yaml] | | [![Build Hive]][build_hive.yaml] | [![Build Java Base]][build_java-base.yaml] | [![Build Java Development]][build_java-devel.yaml] | [![Build Kafka Testing Tools]][build_kafka-testing-tools.yaml] | | [![Build Kafka]][build_kafka.yaml] | [![Build Krb5]][build_krb5.yaml] | [![Build NiFi]][build_nifi.yaml] | [![Build Omid]][build_omid.yaml] | -| [![Build OPA]][build_opa.yaml] | [![Build OpenSearch]][build_opensearch.yaml] | [![Build Spark Connect Client]][build_spark-connect-client.yaml] | [![Build Spark K8s]][build_spark-k8s.yaml] | -| [![Build Stackable Base]][build_stackable-base.yaml] | [![Build Superset]][build_superset.yaml] | [![Build Testing Tools]][build_testing-tools.yaml] | [![Build Tools]][build_tools.yaml] | -| [![Build Trino CLI]][build_trino-cli.yaml] | [![Build Trino]][build_trino.yaml] | [![Build Vector]][build_vector.yaml] | [![Build ZooKeeper]][build_zookeeper.yaml] | +| [![Build OPA]][build_opa.yaml] | [![Build OpenSearch Dashboards]][build_opensearch_dashboards.yaml] | [![Build OpenSearch]][build_opensearch.yaml] | [![Build Spark Connect Client]][build_spark-connect-client.yaml] | +| [![Build Spark K8s]][build_spark-k8s.yaml] | [![Build Stackable Base]][build_stackable-base.yaml] | [![Build Superset]][build_superset.yaml] | [![Build Testing Tools]][build_testing-tools.yaml] | +| [![Build Tools]][build_tools.yaml] | [![Build Trino CLI]][build_trino-cli.yaml] | [![Build Trino]][build_trino.yaml] | [![Build Vector]][build_vector.yaml] | +| [![Build ZooKeeper]][build_zookeeper.yaml] | | | | ## Prerequisites @@ -222,6 +223,8 @@ ENTRYPOINT ["/stackable-zookeeper-operator"] [build_omid.yaml]: https://github.com/stackabletech/docker-images/actions/workflows/build_omid.yaml [Build OPA]: https://github.com/stackabletech/docker-images/actions/workflows/build_opa.yaml/badge.svg [build_opa.yaml]: https://github.com/stackabletech/docker-images/actions/workflows/build_opa.yaml +[Build OpenSearch Dashboards]: https://github.com/stackabletech/docker-images/actions/workflows/build_opensearch_dashboards.yaml/badge.svg +[build_opensearch_dashboards.yaml]: https://github.com/stackabletech/docker-images/actions/workflows/build_opensearch_dashboards.yaml [Build OpenSearch]: https://github.com/stackabletech/docker-images/actions/workflows/build_opensearch.yaml/badge.svg [build_opensearch.yaml]: https://github.com/stackabletech/docker-images/actions/workflows/build_opensearch.yaml [Build Spark Connect Client]: https://github.com/stackabletech/docker-images/actions/workflows/build_spark-connect-client.yaml/badge.svg diff --git a/opensearch-dashboards/Dockerfile b/opensearch-dashboards/Dockerfile index de7d88b6a..8d5a8002d 100644 --- a/opensearch-dashboards/Dockerfile +++ b/opensearch-dashboards/Dockerfile @@ -26,13 +26,15 @@ COPY \ # tar, xz - extract nodejs bundle # unzip - extract plugin from archive +# yarn - build Opensearch Dashboards +# cdxgen - generate CycloneDX SBOM RUN < -Date: Tue, 9 Sep 2025 16:42:53 +0200 -Subject: set server.host to 0.0.0.0 in default config - ---- - config/opensearch_dashboards-3.x.yml | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/config/opensearch_dashboards-3.x.yml b/config/opensearch_dashboards-3.x.yml -index c6e9c6cc..812d391c 100644 ---- a/config/opensearch_dashboards-3.x.yml -+++ b/config/opensearch_dashboards-3.x.yml -@@ -231,3 +231,4 @@ opensearch_security.multitenancy.tenants.preferred: [Private, Global] - opensearch_security.readonly_mode.roles: [kibana_read_only] - # Use this setting if you are running opensearch-dashboards without https - opensearch_security.cookie.secure: false -+server.host: '0.0.0.0' diff --git a/opensearch-dashboards/opensearch-build/stackable/patches/3.1.0/patchable.toml b/opensearch-dashboards/opensearch-build/stackable/patches/3.1.0/patchable.toml index 5d98a0990..86310b870 100644 --- a/opensearch-dashboards/opensearch-build/stackable/patches/3.1.0/patchable.toml +++ b/opensearch-dashboards/opensearch-build/stackable/patches/3.1.0/patchable.toml @@ -1 +1,2 @@ +mirror = "https://github.com/stackabletech/opensearch-build" base = "c152d16bbe6b4501e3e2418be0f9f8b3dc07559f" diff --git a/opensearch-dashboards/security-dashboards-plugin/Dockerfile b/opensearch-dashboards/security-dashboards-plugin/Dockerfile index d0e597f43..f7c2756d8 100644 --- a/opensearch-dashboards/security-dashboards-plugin/Dockerfile +++ b/opensearch-dashboards/security-dashboards-plugin/Dockerfile @@ -4,7 +4,6 @@ FROM local-image/stackable-devel AS opensearch-securitydashboards-builder ARG PRODUCT_VERSION -ARG RELEASE_VERSION ARG STACKABLE_USER_UID WORKDIR /stackable @@ -22,9 +21,4 @@ EOF USER ${STACKABLE_USER_UID} -RUN < Date: Wed, 24 Sep 2025 10:44:45 +0200 Subject: [PATCH 08/23] fix vector image tag --- opensearch-dashboards/boil-config.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/opensearch-dashboards/boil-config.toml b/opensearch-dashboards/boil-config.toml index 1ab5ccfe3..a4284074f 100644 --- a/opensearch-dashboards/boil-config.toml +++ b/opensearch-dashboards/boil-config.toml @@ -2,7 +2,7 @@ stackable-devel = "1.0.0" "opensearch-dashboards/security-dashboards-plugin"= "3.1.0.0" "opensearch-dashboards/opensearch-build"= "3.1.0" -"vector" = "0.47.0" +"vector" = "0.49.0" [versions."3.1.0".build-arguments] nodejs-version = "20.18.3" From 89d4ccb59257172a67462844a8105844a429285c Mon Sep 17 00:00:00 2001 From: Benedikt Labrenz Date: Thu, 25 Sep 2025 09:55:18 +0200 Subject: [PATCH 09/23] address feedback on PR & download nodejs as tar.gz instead of tar.xz --- opensearch-dashboards/Dockerfile | 7 +- .../licenses/OPENSEARCH_DASHBOARDS_LICENSE | 202 ++++++++++++++++++ .../licenses/STACKABLE_LICENSE | 43 ++++ 3 files changed, 249 insertions(+), 3 deletions(-) create mode 100644 opensearch-dashboards/licenses/OPENSEARCH_DASHBOARDS_LICENSE create mode 100644 opensearch-dashboards/licenses/STACKABLE_LICENSE diff --git a/opensearch-dashboards/Dockerfile b/opensearch-dashboards/Dockerfile index 8d5a8002d..6e7af4aed 100644 --- a/opensearch-dashboards/Dockerfile +++ b/opensearch-dashboards/Dockerfile @@ -24,17 +24,17 @@ COPY \ /stackable/src/opensearch-dashboards/security-dashboards-plugin/patchable-work/worktree/${OPENSEARCH_DASHBOARDS_SECURITY_DASHBOARDS_PLUGIN_VERSION} \ /stackable/security-dashboards-plugin -# tar, xz - extract nodejs bundle +# tar - extract nodejs bundle # unzip - extract plugin from archive # yarn - build Opensearch Dashboards # cdxgen - generate CycloneDX SBOM RUN <" or with a notice of your own that is not confusingly similar to the notice in this License; and (iii) You may not claim that your original works are open source software unless your Modified License has been approved by Open Source Initiative (OSI) and You comply with its license review and certification process. From de69886c301d490fe7560c5b0c79145f4a578752 Mon Sep 17 00:00:00 2001 From: Benedikt Labrenz Date: Thu, 25 Sep 2025 14:41:27 +0200 Subject: [PATCH 10/23] fix update-readme-badges --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 0846d41bd..c94304772 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,7 @@ This repository contains Dockerfiles and scripts to build base images for use wi | [![Build Airflow]][build_airflow.yaml] | [![Build Druid]][build_druid.yaml] | [![Build Hadoop]][build_hadoop.yaml] | [![Build HBase]][build_hbase.yaml] | | [![Build Hive]][build_hive.yaml] | [![Build Java Base]][build_java-base.yaml] | [![Build Java Development]][build_java-devel.yaml] | [![Build Kafka Testing Tools]][build_kafka-testing-tools.yaml] | | [![Build Kafka]][build_kafka.yaml] | [![Build Krb5]][build_krb5.yaml] | [![Build NiFi]][build_nifi.yaml] | [![Build Omid]][build_omid.yaml] | -| [![Build OPA]][build_opa.yaml] | [![Build OpenSearch Dashboards]][build_opensearch_dashboards.yaml] | [![Build OpenSearch]][build_opensearch.yaml] | [![Build Spark Connect Client]][build_spark-connect-client.yaml] | +| [![Build OPA]][build_opa.yaml] | [![Build OpenSearch]][build_opensearch.yaml] | [![Build OpenSearch Dashboards]][build_opensearch_dashboards.yaml] | [![Build Spark Connect Client]][build_spark-connect-client.yaml] | | [![Build Spark K8s]][build_spark-k8s.yaml] | [![Build Stackable Base]][build_stackable-base.yaml] | [![Build Superset]][build_superset.yaml] | [![Build Testing Tools]][build_testing-tools.yaml] | | [![Build Tools]][build_tools.yaml] | [![Build Trino CLI]][build_trino-cli.yaml] | [![Build Trino]][build_trino.yaml] | [![Build Vector]][build_vector.yaml] | | [![Build ZooKeeper]][build_zookeeper.yaml] | | | | @@ -78,10 +78,10 @@ preflight check container oci.stackable.tech/sdp/:-stackable Date: Thu, 25 Sep 2025 16:08:56 +0200 Subject: [PATCH 11/23] download node from stackable mirror --- opensearch-dashboards/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/opensearch-dashboards/Dockerfile b/opensearch-dashboards/Dockerfile index 6e7af4aed..7ed380ea3 100644 --- a/opensearch-dashboards/Dockerfile +++ b/opensearch-dashboards/Dockerfile @@ -34,7 +34,7 @@ microdnf update microdnf install tar unzip microdnf clean all rm -rf /var/cache/yum -curl "https://nodejs.org/dist/v${NODEJS_VERSION}/node-v${NODEJS_VERSION}-linux-${ARCH}.tar.gz" | tar -xzC /usr/local --strip-components=1 +curl "https://repo.stackable.tech/repository/packages/node/node-v${NODEJS_VERSION}-linux-${ARCH}.tar.gz" | tar -xzC /usr/local --strip-components=1 npm install -g yarn@${YARN_VERSION} @cyclonedx/cdxgen@${CDXGEN_VERSION} EOF From b017a989ba6492ea4cc36b6bec4150d016000c88 Mon Sep 17 00:00:00 2001 From: Benedikt Labrenz Date: Mon, 29 Sep 2025 09:18:04 +0200 Subject: [PATCH 12/23] add opensearch-dashboardsto various lists --- .github/ISSUE_TEMPLATE/early-pre-release.md | 1 + .github/workflows/preflight.yaml | 1 + .scripts/update_feature_tracker_db.sh | 1 + 3 files changed, 3 insertions(+) diff --git a/.github/ISSUE_TEMPLATE/early-pre-release.md b/.github/ISSUE_TEMPLATE/early-pre-release.md index b0171cdfe..31afef18b 100644 --- a/.github/ISSUE_TEMPLATE/early-pre-release.md +++ b/.github/ISSUE_TEMPLATE/early-pre-release.md @@ -56,6 +56,7 @@ Part of . - [ ] [Create issue from template: update-product-nifi.md](https://github.com/stackabletech/docker-images/issues/new?template=update-product-nifi.md) - [ ] [Create issue from template: update-product-opa.md](https://github.com/stackabletech/docker-images/issues/new?template=update-product-opa.md) - [ ] [Create issue from template: update-product-opensearch.md](https://github.com/stackabletech/docker-images/issues/new?template=update-product-opensearch.md) +- [ ] [Create issue from template: update-product-opensearch-dashboards.md](https://github.com/stackabletech/docker-images/issues/new?template=update-product-opensearch-dashboards.md) - [ ] [Create issue from template: update-product-spark.md](https://github.com/stackabletech/docker-images/issues/new?template=update-product-spark.md) - [ ] [Create issue from template: update-product-superset.md](https://github.com/stackabletech/docker-images/issues/new?template=update-product-superset.md) - [ ] [Create issue from template: update-product-trino.md](https://github.com/stackabletech/docker-images/issues/new?template=update-product-trino.md) diff --git a/.github/workflows/preflight.yaml b/.github/workflows/preflight.yaml index 3c3b5e97a..6821739f0 100644 --- a/.github/workflows/preflight.yaml +++ b/.github/workflows/preflight.yaml @@ -67,6 +67,7 @@ jobs: - omid - opa - opensearch + - opensearch-dashboards - spark-k8s - superset - trino diff --git a/.scripts/update_feature_tracker_db.sh b/.scripts/update_feature_tracker_db.sh index 56ae3a446..1fc52be4f 100755 --- a/.scripts/update_feature_tracker_db.sh +++ b/.scripts/update_feature_tracker_db.sh @@ -34,6 +34,7 @@ PRODUCT_CODE_NAMES=( kafka nifi opensearch + opensearch-dashboards spark-k8s superset trino From 6f340e81eb17f1e56697cb70f5044f2627396806 Mon Sep 17 00:00:00 2001 From: Benedikt Labrenz Date: Thu, 2 Oct 2025 11:16:36 +0200 Subject: [PATCH 13/23] wip: opensearch-dashboards plugins --- opensearch-dashboards/Dockerfile | 361 ++++++++++++------ .../alerting-dashboards-plugin/Dockerfile | 16 + .../boil-config.toml | 2 + .../stackable/patches/3.1.0.0/patchable.toml | 2 + .../stackable/patches/patchable.toml | 2 + .../Dockerfile | 16 + .../boil-config.toml | 2 + .../stackable/patches/3.1.0.0/patchable.toml | 2 + .../stackable/patches/patchable.toml | 2 + opensearch-dashboards/boil-config.toml | 14 + .../dashboards-assistant/Dockerfile | 16 + .../dashboards-assistant/boil-config.toml | 2 + .../stackable/patches/3.1.0.0/patchable.toml | 2 + .../stackable/patches/patchable.toml | 2 + .../dashboards-flow-framework/Dockerfile | 16 + .../boil-config.toml | 2 + .../stackable/patches/3.1.0.0/patchable.toml | 2 + .../stackable/patches/patchable.toml | 2 + .../dashboards-maps/Dockerfile | 16 + .../dashboards-maps/boil-config.toml | 2 + .../stackable/patches/3.1.0.0/patchable.toml | 2 + .../stackable/patches/patchable.toml | 2 + .../dashboards-notifications/Dockerfile | 16 + .../dashboards-notifications/boil-config.toml | 2 + .../stackable/patches/3.1.0.0/patchable.toml | 2 + .../stackable/patches/patchable.toml | 2 + .../dashboards-observability/Dockerfile | 16 + .../dashboards-observability/boil-config.toml | 2 + .../stackable/patches/3.1.0.0/patchable.toml | 2 + .../stackable/patches/patchable.toml | 2 + .../dashboards-query-workbench/Dockerfile | 16 + .../boil-config.toml | 2 + .../stackable/patches/3.1.0.0/patchable.toml | 2 + .../stackable/patches/patchable.toml | 2 + .../dashboards-reporting/Dockerfile | 16 + .../dashboards-reporting/boil-config.toml | 2 + .../stackable/patches/3.1.0.0/patchable.toml | 2 + .../stackable/patches/patchable.toml | 2 + .../dashboards-search-relevance/Dockerfile | 16 + .../boil-config.toml | 2 + .../stackable/patches/3.1.0.0/patchable.toml | 2 + .../stackable/patches/patchable.toml | 2 + .../Dockerfile | 16 + .../boil-config.toml | 2 + .../stackable/patches/3.1.0.0/patchable.toml | 2 + .../stackable/patches/patchable.toml | 2 + .../ml-commons-dashboards/Dockerfile | 16 + .../ml-commons-dashboards/boil-config.toml | 2 + .../stackable/patches/3.1.0.0/patchable.toml | 2 + .../stackable/patches/patchable.toml | 2 + .../query-insights-dashboards/Dockerfile | 16 + .../boil-config.toml | 2 + .../stackable/patches/3.1.0.0/patchable.toml | 2 + .../stackable/patches/patchable.toml | 2 + .../Dockerfile | 16 + .../boil-config.toml | 2 + .../stackable/patches/3.1.0.0/patchable.toml | 2 + .../stackable/patches/patchable.toml | 2 + .../security-dashboards-plugin/Dockerfile | 10 +- 59 files changed, 561 insertions(+), 132 deletions(-) create mode 100644 opensearch-dashboards/alerting-dashboards-plugin/Dockerfile create mode 100644 opensearch-dashboards/alerting-dashboards-plugin/boil-config.toml create mode 100644 opensearch-dashboards/alerting-dashboards-plugin/stackable/patches/3.1.0.0/patchable.toml create mode 100644 opensearch-dashboards/alerting-dashboards-plugin/stackable/patches/patchable.toml create mode 100644 opensearch-dashboards/anomaly-detection-dashboards-plugin/Dockerfile create mode 100644 opensearch-dashboards/anomaly-detection-dashboards-plugin/boil-config.toml create mode 100644 opensearch-dashboards/anomaly-detection-dashboards-plugin/stackable/patches/3.1.0.0/patchable.toml create mode 100644 opensearch-dashboards/anomaly-detection-dashboards-plugin/stackable/patches/patchable.toml create mode 100644 opensearch-dashboards/dashboards-assistant/Dockerfile create mode 100644 opensearch-dashboards/dashboards-assistant/boil-config.toml create mode 100644 opensearch-dashboards/dashboards-assistant/stackable/patches/3.1.0.0/patchable.toml create mode 100644 opensearch-dashboards/dashboards-assistant/stackable/patches/patchable.toml create mode 100644 opensearch-dashboards/dashboards-flow-framework/Dockerfile create mode 100644 opensearch-dashboards/dashboards-flow-framework/boil-config.toml create mode 100644 opensearch-dashboards/dashboards-flow-framework/stackable/patches/3.1.0.0/patchable.toml create mode 100644 opensearch-dashboards/dashboards-flow-framework/stackable/patches/patchable.toml create mode 100644 opensearch-dashboards/dashboards-maps/Dockerfile create mode 100644 opensearch-dashboards/dashboards-maps/boil-config.toml create mode 100644 opensearch-dashboards/dashboards-maps/stackable/patches/3.1.0.0/patchable.toml create mode 100644 opensearch-dashboards/dashboards-maps/stackable/patches/patchable.toml create mode 100644 opensearch-dashboards/dashboards-notifications/Dockerfile create mode 100644 opensearch-dashboards/dashboards-notifications/boil-config.toml create mode 100644 opensearch-dashboards/dashboards-notifications/stackable/patches/3.1.0.0/patchable.toml create mode 100644 opensearch-dashboards/dashboards-notifications/stackable/patches/patchable.toml create mode 100644 opensearch-dashboards/dashboards-observability/Dockerfile create mode 100644 opensearch-dashboards/dashboards-observability/boil-config.toml create mode 100644 opensearch-dashboards/dashboards-observability/stackable/patches/3.1.0.0/patchable.toml create mode 100644 opensearch-dashboards/dashboards-observability/stackable/patches/patchable.toml create mode 100644 opensearch-dashboards/dashboards-query-workbench/Dockerfile create mode 100644 opensearch-dashboards/dashboards-query-workbench/boil-config.toml create mode 100644 opensearch-dashboards/dashboards-query-workbench/stackable/patches/3.1.0.0/patchable.toml create mode 100644 opensearch-dashboards/dashboards-query-workbench/stackable/patches/patchable.toml create mode 100644 opensearch-dashboards/dashboards-reporting/Dockerfile create mode 100644 opensearch-dashboards/dashboards-reporting/boil-config.toml create mode 100644 opensearch-dashboards/dashboards-reporting/stackable/patches/3.1.0.0/patchable.toml create mode 100644 opensearch-dashboards/dashboards-reporting/stackable/patches/patchable.toml create mode 100644 opensearch-dashboards/dashboards-search-relevance/Dockerfile create mode 100644 opensearch-dashboards/dashboards-search-relevance/boil-config.toml create mode 100644 opensearch-dashboards/dashboards-search-relevance/stackable/patches/3.1.0.0/patchable.toml create mode 100644 opensearch-dashboards/dashboards-search-relevance/stackable/patches/patchable.toml create mode 100644 opensearch-dashboards/index-management-dashboards-plugin/Dockerfile create mode 100644 opensearch-dashboards/index-management-dashboards-plugin/boil-config.toml create mode 100644 opensearch-dashboards/index-management-dashboards-plugin/stackable/patches/3.1.0.0/patchable.toml create mode 100644 opensearch-dashboards/index-management-dashboards-plugin/stackable/patches/patchable.toml create mode 100644 opensearch-dashboards/ml-commons-dashboards/Dockerfile create mode 100644 opensearch-dashboards/ml-commons-dashboards/boil-config.toml create mode 100644 opensearch-dashboards/ml-commons-dashboards/stackable/patches/3.1.0.0/patchable.toml create mode 100644 opensearch-dashboards/ml-commons-dashboards/stackable/patches/patchable.toml create mode 100644 opensearch-dashboards/query-insights-dashboards/Dockerfile create mode 100644 opensearch-dashboards/query-insights-dashboards/boil-config.toml create mode 100644 opensearch-dashboards/query-insights-dashboards/stackable/patches/3.1.0.0/patchable.toml create mode 100644 opensearch-dashboards/query-insights-dashboards/stackable/patches/patchable.toml create mode 100644 opensearch-dashboards/security-analytics-dashboards-plugin/Dockerfile create mode 100644 opensearch-dashboards/security-analytics-dashboards-plugin/boil-config.toml create mode 100644 opensearch-dashboards/security-analytics-dashboards-plugin/stackable/patches/3.1.0.0/patchable.toml create mode 100644 opensearch-dashboards/security-analytics-dashboards-plugin/stackable/patches/patchable.toml diff --git a/opensearch-dashboards/Dockerfile b/opensearch-dashboards/Dockerfile index 7ed380ea3..971652256 100644 --- a/opensearch-dashboards/Dockerfile +++ b/opensearch-dashboards/Dockerfile @@ -1,12 +1,41 @@ # syntax=docker/dockerfile:1.16.0@sha256:e2dd261f92e4b763d789984f6eab84be66ab4f5f08052316d8eb8f173593acf7 # check=error=true +FROM local-image/opensearch-dashboards/alerting-dashboards-plugin AS alerting-dashboards-plugin +FROM local-image/opensearch-dashboards/anomaly-detection-dashboards-plugin AS anomaly-detection-dashboards-plugin +FROM local-image/opensearch-dashboards/dashboards-assistant AS dashboards-assistant +FROM local-image/opensearch-dashboards/dashboards-flow-framework AS dashboards-flow-framework +FROM local-image/opensearch-dashboards/dashboards-maps AS dashboards-maps +FROM local-image/opensearch-dashboards/dashboards-notifications AS dashboards-notifications +FROM local-image/opensearch-dashboards/dashboards-observability AS dashboards-observability +FROM local-image/opensearch-dashboards/dashboards-reporting AS dashboards-reporting +FROM local-image/opensearch-dashboards/dashboards-search-relevance AS dashboards-search-relevance +FROM local-image/opensearch-dashboards/index-management-dashboards-plugin AS index-management-dashboards-plugin +FROM local-image/opensearch-dashboards/ml-commons-dashboards AS ml-commons-dashboards +FROM local-image/opensearch-dashboards/query-insights-dashboards AS query-insights-dashboards +FROM local-image/opensearch-dashboards/dashboards-query-workbench AS dashboards-query-workbench +FROM local-image/opensearch-dashboards/security-analytics-dashboards-plugin AS security-analytics-dashboards-plugin FROM local-image/opensearch-dashboards/security-dashboards-plugin AS security-dashboards-plugin + FROM local-image/opensearch-dashboards/opensearch-build AS opensearch-build FROM local-image/stackable-devel AS opensearch-dashboards-builder ARG PRODUCT_VERSION ARG RELEASE_VERSION +ARG OPENSEARCH_DASHBOARDS_ALERTING_DASHBOARDS_VERSION +ARG OPENSEARCH_DASHBOARDS_ANOMALY_DETECTION_DASHBOARDS_PLUGIN_VERSION +ARG OPENSEARCH_DASHBOARDS_DASHBOARDS_ASSISTANT_VERSION +ARG OPENSEARCH_DASHBOARDS_DASHBOARDS_FLOW_FRAMEWORK_VERSION +ARG OPENSEARCH_DASHBOARDS_DASHBOARDS_MAPS_VERSION +ARG OPENSEARCH_DASHBOARDS_DASHBOARDS_NOTIFICATIONS_VERSION +ARG OPENSEARCH_DASHBOARDS_DASHBOARDS_OBSERVABILITY_VERSION +ARG OPENSEARCH_DASHBOARDS_DASHBOARDS_REPORTING_VERSION +ARG OPENSEARCH_DASHBOARDS_DASHBOARDS_SEARCH_RELEVANCE_VERSION +ARG OPENSEARCH_DASHBOARDS_INDEX_MANAGEMENT_DASHBOARDS_PLUGIN_VERSION +ARG OPENSEARCH_DASHBOARDS_ML_COMMONS_DASHBOARDS_VERSION +ARG OPENSEARCH_DASHBOARDS_QUERY_INSIGHTS_DASHBOARDS_VERSION +ARG OPENSEARCH_DASHBOARDS_QUERY_WORKBENCH_VERSION +ARG OPENSEARCH_DASHBOARDS_SECURITY_ANALYTICS_DASHBOARDS_PLUGIN_VERSION ARG OPENSEARCH_DASHBOARDS_SECURITY_DASHBOARDS_PLUGIN_VERSION ARG NODEJS_VERSION ARG YARN_VERSION @@ -18,11 +47,81 @@ WORKDIR /stackable COPY --chown=${STACKABLE_USER_UID}:0 opensearch-dashboards/stackable/patches/patchable.toml /stackable/src/opensearch-dashboards/stackable/patches/patchable.toml COPY --chown=${STACKABLE_USER_UID}:0 opensearch-dashboards/stackable/patches/${PRODUCT_VERSION} /stackable/src/opensearch-dashboards/stackable/patches/${PRODUCT_VERSION} +COPY \ + --chown=${STACKABLE_USER_UID}:0 \ + --from=alerting-dashboards-plugin \ + /stackable/src/opensearch-dashboards/alerting-dashboards-plugin/patchable-work/worktree/${OPENSEARCH_DASHBOARDS_ALERTING_DASHBOARDS_VERSION} \ + /stackable/plugins/alerting-dashboards-plugin +COPY \ + --chown=${STACKABLE_USER_UID}:0 \ + --from=anomaly-detection-dashboards-plugin \ + /stackable/src/opensearch-dashboards/anomaly-detection-dashboards-plugin/patchable-work/worktree/${OPENSEARCH_DASHBOARDS_ANOMALY_DETECTION_DASHBOARDS_PLUGIN_VERSION} \ + /stackable/plugins/anomaly-detection-dashboards-plugin +COPY \ + --chown=${STACKABLE_USER_UID}:0 \ + --from=dashboards-assistant \ + /stackable/src/opensearch-dashboards/dashboards-assistant/patchable-work/worktree/${OPENSEARCH_DASHBOARDS_DASHBOARDS_ASSISTANT_VERSION} \ + /stackable/plugins/dashboards-assistant +COPY \ + --chown=${STACKABLE_USER_UID}:0 \ + --from=dashboards-flow-framework \ + /stackable/src/opensearch-dashboards/dashboards-flow-framework/patchable-work/worktree/${OPENSEARCH_DASHBOARDS_DASHBOARDS_FLOW_FRAMEWORK_VERSION} \ + /stackable/plugins/dashboards-flow-framework +COPY \ + --chown=${STACKABLE_USER_UID}:0 \ + --from=dashboards-maps \ + /stackable/src/opensearch-dashboards/dashboards-maps/patchable-work/worktree/${OPENSEARCH_DASHBOARDS_DASHBOARDS_MAPS_VERSION} \ + /stackable/plugins/dashboards-maps +COPY \ + --chown=${STACKABLE_USER_UID}:0 \ + --from=dashboards-notifications \ + /stackable/src/opensearch-dashboards/dashboards-notifications/patchable-work/worktree/${OPENSEARCH_DASHBOARDS_DASHBOARDS_NOTIFICATIONS_VERSION} \ + /stackable/plugins/dashboards-notifications +COPY \ + --chown=${STACKABLE_USER_UID}:0 \ + --from=dashboards-observability \ + /stackable/src/opensearch-dashboards/dashboards-observability/patchable-work/worktree/${OPENSEARCH_DASHBOARDS_DASHBOARDS_OBSERVABILITY_VERSION} \ + /stackable/plugins/dashboards-observability +COPY \ + --chown=${STACKABLE_USER_UID}:0 \ + --from=dashboards-reporting \ + /stackable/src/opensearch-dashboards/dashboards-reporting/patchable-work/worktree/${OPENSEARCH_DASHBOARDS_DASHBOARDS_REPORTING_VERSION} \ + /stackable/plugins/dashboards-reporting +COPY \ + --chown=${STACKABLE_USER_UID}:0 \ + --from=dashboards-search-relevance \ + /stackable/src/opensearch-dashboards/dashboards-search-relevance/patchable-work/worktree/${OPENSEARCH_DASHBOARDS_DASHBOARDS_SEARCH_RELEVANCE_VERSION} \ + /stackable/plugins/dashboards-search-relevance +COPY \ + --chown=${STACKABLE_USER_UID}:0 \ + --from=index-management-dashboards-plugin \ + /stackable/src/opensearch-dashboards/index-management-dashboards-plugin/patchable-work/worktree/${OPENSEARCH_DASHBOARDS_INDEX_MANAGEMENT_DASHBOARDS_PLUGIN_VERSION} \ + /stackable/plugins/index-management-dashboards-plugin +COPY \ + --chown=${STACKABLE_USER_UID}:0 \ + --from=ml-commons-dashboards \ + /stackable/src/opensearch-dashboards/ml-commons-dashboards/patchable-work/worktree/${OPENSEARCH_DASHBOARDS_ML_COMMONS_DASHBOARDS_VERSION} \ + /stackable/plugins/ml-commons-dashboards +COPY \ + --chown=${STACKABLE_USER_UID}:0 \ + --from=query-insights-dashboards \ + /stackable/src/opensearch-dashboards/query-insights-dashboards/patchable-work/worktree/${OPENSEARCH_DASHBOARDS_QUERY_INSIGHTS_DASHBOARDS_VERSION} \ + /stackable/plugins/query-insights-dashboards +COPY \ + --chown=${STACKABLE_USER_UID}:0 \ + --from=dashboards-query-workbench \ + /stackable/src/opensearch-dashboards/dashboards-query-workbench/patchable-work/worktree/${OPENSEARCH_DASHBOARDS_QUERY_WORKBENCH_VERSION} \ + /stackable/plugins/dashboards-query-workbench +COPY \ + --chown=${STACKABLE_USER_UID}:0 \ + --from=security-analytics-dashboards-plugin \ + /stackable/src/opensearch-dashboards/security-analytics-dashboards-plugin/patchable-work/worktree/${OPENSEARCH_DASHBOARDS_SECURITY_ANALYTICS_DASHBOARDS_PLUGIN_VERSION} \ + /stackable/plugins/security-analytics-dashboards-plugin COPY \ --chown=${STACKABLE_USER_UID}:0 \ --from=security-dashboards-plugin \ /stackable/src/opensearch-dashboards/security-dashboards-plugin/patchable-work/worktree/${OPENSEARCH_DASHBOARDS_SECURITY_DASHBOARDS_PLUGIN_VERSION} \ - /stackable/security-dashboards-plugin + /stackable/plugins/security-dashboards-plugin # tar - extract nodejs bundle # unzip - extract plugin from archive @@ -40,136 +139,152 @@ EOF USER ${STACKABLE_USER_UID} -RUN < Date: Thu, 2 Oct 2025 13:29:19 +0200 Subject: [PATCH 14/23] fix(opensearch-dashboards): Fix the version arguments --- opensearch-dashboards/Dockerfile | 8 ++++---- opensearch-dashboards/boil-config.toml | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/opensearch-dashboards/Dockerfile b/opensearch-dashboards/Dockerfile index 971652256..c4507e667 100644 --- a/opensearch-dashboards/Dockerfile +++ b/opensearch-dashboards/Dockerfile @@ -22,19 +22,19 @@ FROM local-image/stackable-devel AS opensearch-dashboards-builder ARG PRODUCT_VERSION ARG RELEASE_VERSION -ARG OPENSEARCH_DASHBOARDS_ALERTING_DASHBOARDS_VERSION +ARG OPENSEARCH_DASHBOARDS_ALERTING_DASHBOARDS_PLUGIN_VERSION ARG OPENSEARCH_DASHBOARDS_ANOMALY_DETECTION_DASHBOARDS_PLUGIN_VERSION ARG OPENSEARCH_DASHBOARDS_DASHBOARDS_ASSISTANT_VERSION ARG OPENSEARCH_DASHBOARDS_DASHBOARDS_FLOW_FRAMEWORK_VERSION ARG OPENSEARCH_DASHBOARDS_DASHBOARDS_MAPS_VERSION ARG OPENSEARCH_DASHBOARDS_DASHBOARDS_NOTIFICATIONS_VERSION ARG OPENSEARCH_DASHBOARDS_DASHBOARDS_OBSERVABILITY_VERSION +ARG OPENSEARCH_DASHBOARDS_DASHBOARDS_QUERY_WORKBENCH_VERSION ARG OPENSEARCH_DASHBOARDS_DASHBOARDS_REPORTING_VERSION ARG OPENSEARCH_DASHBOARDS_DASHBOARDS_SEARCH_RELEVANCE_VERSION ARG OPENSEARCH_DASHBOARDS_INDEX_MANAGEMENT_DASHBOARDS_PLUGIN_VERSION ARG OPENSEARCH_DASHBOARDS_ML_COMMONS_DASHBOARDS_VERSION ARG OPENSEARCH_DASHBOARDS_QUERY_INSIGHTS_DASHBOARDS_VERSION -ARG OPENSEARCH_DASHBOARDS_QUERY_WORKBENCH_VERSION ARG OPENSEARCH_DASHBOARDS_SECURITY_ANALYTICS_DASHBOARDS_PLUGIN_VERSION ARG OPENSEARCH_DASHBOARDS_SECURITY_DASHBOARDS_PLUGIN_VERSION ARG NODEJS_VERSION @@ -50,7 +50,7 @@ COPY --chown=${STACKABLE_USER_UID}:0 opensearch-dashboards/stackable/patches/${P COPY \ --chown=${STACKABLE_USER_UID}:0 \ --from=alerting-dashboards-plugin \ - /stackable/src/opensearch-dashboards/alerting-dashboards-plugin/patchable-work/worktree/${OPENSEARCH_DASHBOARDS_ALERTING_DASHBOARDS_VERSION} \ + /stackable/src/opensearch-dashboards/alerting-dashboards-plugin/patchable-work/worktree/${OPENSEARCH_DASHBOARDS_ALERTING_DASHBOARDS_PLUGIN_VERSION} \ /stackable/plugins/alerting-dashboards-plugin COPY \ --chown=${STACKABLE_USER_UID}:0 \ @@ -110,7 +110,7 @@ COPY \ COPY \ --chown=${STACKABLE_USER_UID}:0 \ --from=dashboards-query-workbench \ - /stackable/src/opensearch-dashboards/dashboards-query-workbench/patchable-work/worktree/${OPENSEARCH_DASHBOARDS_QUERY_WORKBENCH_VERSION} \ + /stackable/src/opensearch-dashboards/dashboards-query-workbench/patchable-work/worktree/${OPENSEARCH_DASHBOARDS_DASHBOARDS_QUERY_WORKBENCH_VERSION} \ /stackable/plugins/dashboards-query-workbench COPY \ --chown=${STACKABLE_USER_UID}:0 \ diff --git a/opensearch-dashboards/boil-config.toml b/opensearch-dashboards/boil-config.toml index 58dbe1d6f..862332fbd 100644 --- a/opensearch-dashboards/boil-config.toml +++ b/opensearch-dashboards/boil-config.toml @@ -4,10 +4,10 @@ stackable-devel = "1.0.0" "opensearch-dashboards/anomaly-detection-dashboards-plugin"= "3.1.0.0" "opensearch-dashboards/dashboards-assistant"= "3.1.0.0" "opensearch-dashboards/dashboards-flow-framework"= "3.1.0.0" -"opensearch-dashboards/dashboards-query-workbench"= "3.1.0.0" "opensearch-dashboards/dashboards-maps"= "3.1.0.0" "opensearch-dashboards/dashboards-notifications"= "3.1.0.0" "opensearch-dashboards/dashboards-observability"= "3.1.0.0" +"opensearch-dashboards/dashboards-query-workbench"= "3.1.0.0" "opensearch-dashboards/dashboards-reporting"= "3.1.0.0" "opensearch-dashboards/dashboards-search-relevance"= "3.1.0.0" "opensearch-dashboards/index-management-dashboards-plugin"= "3.1.0.0" From 361fc5d429cb2035d96d17c8901fabd6ada7d96a Mon Sep 17 00:00:00 2001 From: Siegfried Weber Date: Thu, 2 Oct 2025 15:00:15 +0200 Subject: [PATCH 15/23] fix(opensearch-dashboards): Fix the installation of the plugins --- opensearch-dashboards/Dockerfile | 69 ++++++++++++++++---------------- 1 file changed, 35 insertions(+), 34 deletions(-) diff --git a/opensearch-dashboards/Dockerfile b/opensearch-dashboards/Dockerfile index c4507e667..5d667f51b 100644 --- a/opensearch-dashboards/Dockerfile +++ b/opensearch-dashboards/Dockerfile @@ -141,40 +141,41 @@ USER ${STACKABLE_USER_UID} RUN /stackable/patchable --images-repo-root=src checkout opensearch-dashboards ${PRODUCT_VERSION} WORKDIR /stackable/src/opensearch-dashboards/patchable-work/worktree/${PRODUCT_VERSION} -# RUN < Date: Thu, 2 Oct 2025 15:38:41 +0200 Subject: [PATCH 16/23] fix whitespace errors --- opensearch-dashboards/Dockerfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/opensearch-dashboards/Dockerfile b/opensearch-dashboards/Dockerfile index 5d667f51b..ce492103b 100644 --- a/opensearch-dashboards/Dockerfile +++ b/opensearch-dashboards/Dockerfile @@ -160,7 +160,7 @@ cd /stackable/src/opensearch-dashboards/patchable-work/worktree/${PRODUCT_VERSIO cp -r /stackable/plugins . # Remove dependencies from previous bootstrapping yarn osd clean -# Bootstrap for the platform plugins. +# Bootstrap for the platform plugins. # --single-version=loose allows diverging versions for dependencies between different plugins yarn osd bootstrap --single-version=loose EOF @@ -170,7 +170,7 @@ cd /stackable/src/opensearch-dashboards/patchable-work/worktree/${PRODUCT_VERSIO cd plugins for plugin in $(ls); do cd "$plugin" - yarn build + yarn build find ~+/build -name *.zip -exec \ /stackable/opensearch-dashboards/bin/opensearch-dashboards-plugin install "file://{}" \; cd - From 008133502e3ee91899ff4278b69843b9ac715c19 Mon Sep 17 00:00:00 2001 From: Benedikt Labrenz Date: Thu, 2 Oct 2025 15:42:30 +0200 Subject: [PATCH 17/23] add comment on tar usage --- opensearch-dashboards/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/opensearch-dashboards/Dockerfile b/opensearch-dashboards/Dockerfile index ce492103b..b942f62bd 100644 --- a/opensearch-dashboards/Dockerfile +++ b/opensearch-dashboards/Dockerfile @@ -123,7 +123,7 @@ COPY \ /stackable/src/opensearch-dashboards/security-dashboards-plugin/patchable-work/worktree/${OPENSEARCH_DASHBOARDS_SECURITY_DASHBOARDS_PLUGIN_VERSION} \ /stackable/plugins/security-dashboards-plugin -# tar - extract nodejs bundle +# tar - extract OpenSearch Dashboards from archive & create source code archive # unzip - extract plugin from archive # yarn - build Opensearch Dashboards # cdxgen - generate CycloneDX SBOM From d7bb5eb13a129a8524f4d02a9ebb16021606c57d Mon Sep 17 00:00:00 2001 From: Benedikt Labrenz Date: Thu, 2 Oct 2025 16:08:28 +0200 Subject: [PATCH 18/23] update issue template to use boil instead of bake --- .../update-product-opensearch-dashboards.md | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/update-product-opensearch-dashboards.md b/.github/ISSUE_TEMPLATE/update-product-opensearch-dashboards.md index a311c2ccf..cfe699ebb 100644 --- a/.github/ISSUE_TEMPLATE/update-product-opensearch-dashboards.md +++ b/.github/ISSUE_TEMPLATE/update-product-opensearch-dashboards.md @@ -11,7 +11,7 @@ projects: ['stackabletech/10'] assignees: '' --- -Part of . +Part of .