diff --git a/CHANGELOG.md b/CHANGELOG.md index 015c02dc3..8f9fd71c4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -16,6 +16,7 @@ All notable changes to this project will be documented in this file. - kafka: Add `4.3.1` ([#1659]). - stats-exporter: Add `0.31.0` ([#1664]). - hive: Add `4.2.1` ([#1637]). +- opensearch: Add `3.8.0` ([#1669]). ### Changed @@ -31,7 +32,7 @@ All notable changes to this project will be documented in this file. - vector: Generate the SBOM with the same feature set the binary is built with, so that the integrations that are not compiled in are no longer reported ([#1630]). - base images: Exclude the build-time dependencies from the Rust SBOMs ([#1630]). - kafka: Exclude the non-runtime configurations and the projects that are not shipped from the SBOM ([#1630]). -- opensearch: Exclude the test framework, the test fixtures, the QA projects and the benchmarks from the SBOM of `3.1.0` and `3.4.0` ([#1630]). +- opensearch: Exclude the test framework, the test fixtures, the QA projects and the benchmarks from the SBOM of `3.1.0` ([#1630]). - opensearch: Restrict the SBOM of the Prometheus exporter to the runtime dependencies ([#1630]). - opensearch-dashboards: Pass `--required-only` to cdxgen ([#1630]). This turned out to have no effect, see [#1635]. @@ -43,8 +44,7 @@ All notable changes to this project will be documented in this file. `tools` projects declare the Log4j runtime bindings there, so they were shipped in `libs/` without being part of the SBOM ([#1635]). - kafka: Exclude the `generator`, integration test and Connect test plugin projects from the SBOM ([#1635]). -- opensearch: Exclude the `build-tools` project and the remaining unshipped projects from the SBOM of `3.1.0` - and `3.4.0` ([#1635]). +- opensearch: Exclude the `build-tools` project and the remaining unshipped projects from the SBOM of `3.1.0` ([#1635]). - airflow, superset: Add the missing purls to all packages that are installed from a local wheel or a direct URL, and normalize the names in the purls as defined in the Python packaging specification ([#1635]). @@ -66,6 +66,7 @@ All notable changes to this project will be documented in this file. - omid: remove 1.1.2 ([#1593]). - ci: Remove SLSA build provenance generation for published image indexes ([#1596]). - kafka: Removed `3.9.1`, `4.1.1` ([#1659]). +- opensearch: Removed `3.4.0` ([#1669]). [#1593]: https://github.com/stackabletech/docker-images/pull/1593 [#1595]: https://github.com/stackabletech/docker-images/pull/1595 @@ -84,6 +85,7 @@ All notable changes to this project will be documented in this file. [#1641]: https://github.com/stackabletech/docker-images/pull/1641 [#1662]: https://github.com/stackabletech/docker-images/pull/1662 [#1664]: https://github.com/stackabletech/docker-images/pull/1664 +[#1669]: https://github.com/stackabletech/docker-images/pull/1669 ## [26.7.0] - 2026-07-21 diff --git a/opensearch/boil-config.toml b/opensearch/boil-config.toml index a77114862..883257542 100644 --- a/opensearch/boil-config.toml +++ b/opensearch/boil-config.toml @@ -4,12 +4,11 @@ [versions."3.1.0".local-images] java-devel = "21" jdk-base = "21" -"opensearch/security-plugin" = "3.1.0.0" "opensearch/opensearch-prometheus-exporter" = "3.1.0.0" +"opensearch/security-plugin" = "3.1.0.0" [versions."3.1.0".build-arguments] "opensearch-alerting-plugin-version" = "3.1.0.0" -"opensearch-job-scheduler-plugin-version" = "3.1.0.0" "opensearch-anomaly-detection-plugin-version" = "3.1.0.0" "opensearch-asynchronous-search-plugin-version" = "3.1.0.0" "opensearch-cross-cluster-replication-plugin-version" = "3.1.0.0" @@ -17,6 +16,7 @@ jdk-base = "21" "opensearch-flow-framework-plugin-version" = "3.1.0.0" "opensearch-geospatial-plugin-version" = "3.1.0.0" "opensearch-index-management-plugin-version" = "3.1.0.0" +"opensearch-job-scheduler-plugin-version" = "3.1.0.0" "opensearch-knn-plugin-version" = "3.1.0.0" "opensearch-ml-plugin-version" = "3.1.0.0" "opensearch-neural-search-plugin-version" = "3.1.0.0" @@ -32,47 +32,15 @@ jdk-base = "21" "opensearch-ubi-plugin-version" = "3.1.0.0" "query-insights-plugin-version" = "3.1.0.0" -# Deprecated since 26.7 -[versions."3.4.0".local-images] -java-devel = "24" -jdk-base = "24" -"opensearch/security-plugin" = "3.4.0.0" -"opensearch/opensearch-prometheus-exporter" = "3.4.0.0" - -[versions."3.4.0".build-arguments] -"opensearch-alerting-plugin-version" = "3.4.0.0" -"opensearch-job-scheduler-plugin-version" = "3.4.0.0" -"opensearch-anomaly-detection-plugin-version" = "3.4.0.0" -"opensearch-asynchronous-search-plugin-version" = "3.4.0.0" -"opensearch-cross-cluster-replication-plugin-version" = "3.4.0.0" -"opensearch-custom-codecs-plugin-version" = "3.4.0.0" -"opensearch-flow-framework-plugin-version" = "3.4.0.0" -"opensearch-geospatial-plugin-version" = "3.4.0.0" -"opensearch-index-management-plugin-version" = "3.4.0.0" -"opensearch-knn-plugin-version" = "3.4.0.0" -"opensearch-ml-plugin-version" = "3.4.0.0" -"opensearch-neural-search-plugin-version" = "3.4.0.0" -"opensearch-notifications-core-plugin-version" = "3.4.0.0" -"opensearch-notifications-plugin-version" = "3.4.0.0" -"opensearch-observability-plugin-version" = "3.4.0.0" -"opensearch-reports-scheduler-plugin-version" = "3.4.0.0" -"opensearch-search-relevance-plugin-version" = "3.4.0.0" -"opensearch-security-analytics-plugin-version" = "3.4.0.0" -"opensearch-skills-plugin-version" = "3.4.0.0" -"opensearch-sql-plugin-version" = "3.4.0.0" -"opensearch-system-templates-plugin-version" = "3.4.0.0" -"opensearch-ubi-plugin-version" = "3.4.0.0" -"query-insights-plugin-version" = "3.4.0.0" - +# Deprecated since 26.11 [versions."3.6.0".local-images] java-devel = "25" jdk-base = "25" -"opensearch/security-plugin" = "3.6.0.0" "opensearch/opensearch-prometheus-exporter" = "3.6.0.0" +"opensearch/security-plugin" = "3.6.0.0" [versions."3.6.0".build-arguments] "opensearch-alerting-plugin-version" = "3.6.0.0" -"opensearch-job-scheduler-plugin-version" = "3.6.0.0" "opensearch-anomaly-detection-plugin-version" = "3.6.0.0" "opensearch-asynchronous-search-plugin-version" = "3.6.0.0" "opensearch-cross-cluster-replication-plugin-version" = "3.6.0.0" @@ -80,6 +48,7 @@ jdk-base = "25" "opensearch-flow-framework-plugin-version" = "3.6.0.0" "opensearch-geospatial-plugin-version" = "3.6.0.0" "opensearch-index-management-plugin-version" = "3.6.0.0" +"opensearch-job-scheduler-plugin-version" = "3.6.0.0" "opensearch-knn-plugin-version" = "3.6.0.0" "opensearch-ml-plugin-version" = "3.6.0.0" "opensearch-neural-search-plugin-version" = "3.6.0.0" @@ -94,3 +63,36 @@ jdk-base = "25" "opensearch-system-templates-plugin-version" = "3.6.0.0" "opensearch-ubi-plugin-version" = "3.6.0.0" "query-insights-plugin-version" = "3.6.0.0" + +[versions."3.8.0".local-images] +java-devel = "25" +jdk-base = "25" +"opensearch/opensearch-prometheus-exporter" = "3.8.0.0" +"opensearch/security-plugin" = "3.8.0.0" + +[versions."3.8.0".build-arguments] +"opensearch-alerting-plugin-version" = "3.8.0.0" +"opensearch-anomaly-detection-plugin-version" = "3.8.0.0" +"opensearch-asynchronous-search-plugin-version" = "3.8.0.0" +"opensearch-cross-cluster-replication-plugin-version" = "3.8.0.0" +"opensearch-custom-codecs-plugin-version" = "3.8.0.0" +"opensearch-flow-framework-plugin-version" = "3.8.0.0" +"opensearch-geospatial-plugin-version" = "3.8.0.0" +"opensearch-index-management-plugin-version" = "3.8.0.0" +"opensearch-job-scheduler-plugin-version" = "3.8.0.0" +"opensearch-knn-plugin-version" = "3.8.0.0" +"opensearch-ltr-plugin-version" = "3.8.0.0" +"opensearch-ml-plugin-version" = "3.8.0.0" +"opensearch-neural-search-plugin-version" = "3.8.0.0" +"opensearch-notifications-core-plugin-version" = "3.8.0.0" +"opensearch-notifications-plugin-version" = "3.8.0.0" +"opensearch-observability-plugin-version" = "3.8.0.0" +"opensearch-performance-analyzer-plugin-version" = "3.8.0.0" +"opensearch-reports-scheduler-plugin-version" = "3.8.0.0" +"opensearch-search-relevance-plugin-version" = "3.8.0.0" +"opensearch-security-analytics-plugin-version" = "3.8.0.0" +"opensearch-skills-plugin-version" = "3.8.0.0" +"opensearch-sql-plugin-version" = "3.8.0.0" +"opensearch-system-templates-plugin-version" = "3.8.0.0" +"opensearch-ubi-plugin-version" = "3.8.0.0" +"query-insights-plugin-version" = "3.8.0.0" diff --git a/opensearch/opensearch-prometheus-exporter/boil-config.toml b/opensearch/opensearch-prometheus-exporter/boil-config.toml index 5b315a086..b7b26e5c1 100644 --- a/opensearch/opensearch-prometheus-exporter/boil-config.toml +++ b/opensearch/opensearch-prometheus-exporter/boil-config.toml @@ -1,12 +1,10 @@ [versions."3.1.0.0".local-images] java-devel = "21" -[versions."3.4.0.0".local-images] -# OpenSearch 3.4.0 bundles JDK 24, but the OpenSearch Prometheus Exporter can only be built with -# JDK 21. -java-devel = "21" - [versions."3.6.0.0".local-images] # OpenSearch 3.6.0 bundles JDK 25, but the OpenSearch Prometheus Exporter can only be built with # JDK 21. java-devel = "21" + +[versions."3.8.0.0".local-images] +java-devel = "25" diff --git a/opensearch/opensearch-prometheus-exporter/stackable/patches/3.4.0.0/0001-Add-CycloneDX-plugin.patch b/opensearch/opensearch-prometheus-exporter/stackable/patches/3.4.0.0/0001-Add-CycloneDX-plugin.patch deleted file mode 100644 index 9b457af86..000000000 --- a/opensearch/opensearch-prometheus-exporter/stackable/patches/3.4.0.0/0001-Add-CycloneDX-plugin.patch +++ /dev/null @@ -1,35 +0,0 @@ -From 3f41ca69b26548c060f79a50327ef94e252196c9 Mon Sep 17 00:00:00 2001 -From: Benedikt Labrenz -Date: Tue, 12 Aug 2025 14:59:12 +0200 -Subject: Add CycloneDX plugin - ---- - build.gradle | 15 +++++++++++++++ - 1 file changed, 15 insertions(+) - -diff --git a/build.gradle b/build.gradle -index e23dde9..2b16bb8 100644 ---- a/build.gradle -+++ b/build.gradle -@@ -35,6 +35,21 @@ buildscript { - } - } - -+plugins { -+ id "org.cyclonedx.bom" version "2.4.1" -+} -+ -+cyclonedxBom { -+ includeConfigs = ["runtimeClasspath"] -+ includeLicenseText = false -+ skipConfigs = ["compileClasspath", "testCompileClasspath"] -+ projectType = "application" -+ schemaVersion = "1.6" -+ jsonOutput = file("build/reports/cyclonedx/bom.json") -+ outputFormat = "json" -+ componentVersion = versions.version -+} -+ - apply plugin: 'java' - apply plugin: 'idea' - apply plugin: 'opensearch.opensearchplugin' diff --git a/opensearch/opensearch-prometheus-exporter/stackable/patches/3.8.0.0/0001-Add-CycloneDX-plugin.patch b/opensearch/opensearch-prometheus-exporter/stackable/patches/3.8.0.0/0001-Add-CycloneDX-plugin.patch new file mode 100644 index 000000000..aeb1b05d4 --- /dev/null +++ b/opensearch/opensearch-prometheus-exporter/stackable/patches/3.8.0.0/0001-Add-CycloneDX-plugin.patch @@ -0,0 +1,42 @@ +From 6bafd68d2daa679a16894abce42a307035ee5346 Mon Sep 17 00:00:00 2001 +From: Razvan-Daniel Mihai <84674+razvan@users.noreply.github.com> +Date: Fri, 19 Jun 2026 11:14:39 +0200 +Subject: Add CycloneDX plugin + +--- + build.gradle | 22 ++++++++++++++++++++-- + 1 file changed, 20 insertions(+), 2 deletions(-) + +diff --git a/build.gradle b/build.gradle +index a0486c2..9444a1e 100644 +--- a/build.gradle ++++ b/build.gradle +@@ -30,8 +30,26 @@ buildscript { + } + } + +-configurations { +- zipArchive ++plugins { ++ id("org.cyclonedx.bom") version "3.3.0" ++} ++ ++// The SBOM must only describe what is shipped, so restrict it to the runtime dependencies. ++// Without this it also contains the test and build tooling (JUnit, Mockito, JaCoCo, ++// Checkstyle, ...). This has to be configured on the `cyclonedxDirectBom` task, the ++// `cyclonedxBom` extension below only configures the aggregation. ++cyclonedxDirectBom { ++ includeConfigs = ["runtimeClasspath"] ++ skipConfigs = ["compileClasspath", "testCompileClasspath"] ++} ++ ++cyclonedxBom { ++ // Specified the type of project being built. Defaults to 'library' ++ projectType = org.cyclonedx.model.Component.Type.APPLICATION ++ // Specified the version of the CycloneDX specification to use. Defaults to VERSION_16. ++ schemaVersion = org.cyclonedx.Version.VERSION_16 ++ jsonOutput = file("build/reports/cyclonedx/bom.json") ++ xmlOutput.unsetConvention() + } + + apply plugin: 'java' diff --git a/opensearch/opensearch-prometheus-exporter/stackable/patches/3.4.0.0/patchable.toml b/opensearch/opensearch-prometheus-exporter/stackable/patches/3.8.0.0/patchable.toml similarity index 60% rename from opensearch/opensearch-prometheus-exporter/stackable/patches/3.4.0.0/patchable.toml rename to opensearch/opensearch-prometheus-exporter/stackable/patches/3.8.0.0/patchable.toml index 89e472a35..c2a58117f 100644 --- a/opensearch/opensearch-prometheus-exporter/stackable/patches/3.4.0.0/patchable.toml +++ b/opensearch/opensearch-prometheus-exporter/stackable/patches/3.8.0.0/patchable.toml @@ -1,2 +1,2 @@ mirror = "https://github.com/stackabletech/opensearch-prometheus-exporter" -base = "13da5f22750d6665fb9fc7b0d171265e67948c34" +base = "1247aeb9f190c68e08cd542747c31edfd295764d" diff --git a/opensearch/security-plugin/boil-config.toml b/opensearch/security-plugin/boil-config.toml index 62302c29f..1fd53750b 100644 --- a/opensearch/security-plugin/boil-config.toml +++ b/opensearch/security-plugin/boil-config.toml @@ -1,8 +1,8 @@ [versions."3.1.0.0".local-images] java-devel = "21" -[versions."3.4.0.0".local-images] -java-devel = "24" - [versions."3.6.0.0".local-images] java-devel = "25" + +[versions."3.8.0.0".local-images] +java-devel = "25" diff --git a/opensearch/security-plugin/stackable/patches/3.4.0.0/0001-Add-CycloneDX-plugin.patch b/opensearch/security-plugin/stackable/patches/3.8.0.0/0001-Add-CycloneDX-plugin.patch similarity index 69% rename from opensearch/security-plugin/stackable/patches/3.4.0.0/0001-Add-CycloneDX-plugin.patch rename to opensearch/security-plugin/stackable/patches/3.8.0.0/0001-Add-CycloneDX-plugin.patch index 2bc924685..d28e74a52 100644 --- a/opensearch/security-plugin/stackable/patches/3.4.0.0/0001-Add-CycloneDX-plugin.patch +++ b/opensearch/security-plugin/stackable/patches/3.8.0.0/0001-Add-CycloneDX-plugin.patch @@ -1,6 +1,6 @@ -From 870b5dac41602586d987a6dd6b45f0b58e0f30e7 Mon Sep 17 00:00:00 2001 -From: dervoeti -Date: Tue, 22 Jul 2025 09:52:55 +0200 +From b546afb954e7595319a5eceba6f79c1794d59157 Mon Sep 17 00:00:00 2001 +From: Razvan-Daniel Mihai <84674+razvan@users.noreply.github.com> +Date: Fri, 19 Jun 2026 11:24:38 +0200 Subject: Add CycloneDX plugin --- @@ -8,14 +8,14 @@ Subject: Add CycloneDX plugin 1 file changed, 13 insertions(+) diff --git a/build.gradle b/build.gradle -index af480ede..b3c0ad34 100644 +index ea39593a..ffbe3c4f 100644 --- a/build.gradle +++ b/build.gradle -@@ -69,11 +69,24 @@ plugins { +@@ -65,11 +65,24 @@ plugins { id 'eclipse' - id "com.github.spotbugs" version "6.4.4" + id "com.github.spotbugs" version "6.5.9" id "com.google.osdetector" version "1.7.3" -+ id "org.cyclonedx.bom" version "3.1.0" ++ id "org.cyclonedx.bom" version "3.3.0" } allprojects { diff --git a/opensearch/security-plugin/stackable/patches/3.4.0.0/0002-Replace-the-demo-configuration-with-a-minimal-one.patch b/opensearch/security-plugin/stackable/patches/3.8.0.0/0002-Replace-the-demo-configuration-with-a-minimal-one.patch similarity index 98% rename from opensearch/security-plugin/stackable/patches/3.4.0.0/0002-Replace-the-demo-configuration-with-a-minimal-one.patch rename to opensearch/security-plugin/stackable/patches/3.8.0.0/0002-Replace-the-demo-configuration-with-a-minimal-one.patch index 6b27b3579..168d7e9e3 100644 --- a/opensearch/security-plugin/stackable/patches/3.4.0.0/0002-Replace-the-demo-configuration-with-a-minimal-one.patch +++ b/opensearch/security-plugin/stackable/patches/3.8.0.0/0002-Replace-the-demo-configuration-with-a-minimal-one.patch @@ -1,4 +1,4 @@ -From 8239b8fdcbc0471d6c3891d11e9ad5f32488bc29 Mon Sep 17 00:00:00 2001 +From 4fa5103608344c082d4a96ff007e61cabf2aa8c0 Mon Sep 17 00:00:00 2001 From: Siegfried Weber Date: Fri, 29 Aug 2025 15:43:25 +0200 Subject: Replace the demo configuration with a minimal one @@ -6,15 +6,15 @@ Subject: Replace the demo configuration with a minimal one --- config/action_groups.yml | 3 +- config/allowlist.yml | 64 +--- - config/audit.yml | 84 +----- - config/config.yml | 253 +--------------- + config/audit.yml | 86 +----- + config/config.yml | 252 +--------------- config/internal_users.yml | 61 +--- config/nodes_dn.yml | 8 +- config/opensearch.yml.example | 228 -------------- config/roles.yml | 549 +--------------------------------- - config/roles_mapping.yml | 47 +-- + config/roles_mapping.yml | 41 +-- config/tenants.yml | 9 +- - 10 files changed, 17 insertions(+), 1289 deletions(-) + 10 files changed, 17 insertions(+), 1284 deletions(-) delete mode 100644 config/opensearch.yml.example diff --git a/config/action_groups.yml b/config/action_groups.yml @@ -103,10 +103,10 @@ index e669557d..f7f1bfb1 100644 - /_cat/nodes: - - GET diff --git a/config/audit.yml b/config/audit.yml -index dcfbad8d..9033c5a6 100644 +index a297f0bf..9033c5a6 100644 --- a/config/audit.yml +++ b/config/audit.yml -@@ -1,85 +1,7 @@ +@@ -1,87 +1,7 @@ +--- _meta: - type: "audit" @@ -133,6 +133,8 @@ index dcfbad8d..9033c5a6 100644 - disabled_transport_categories: - - AUTHENTICATED - - GRANTED_PRIVILEGES +- - CLUSTER_SETTINGS_CHANGED +- - INDEX_SETTINGS_CHANGED - - # Users to be excluded from auditing. Wildcard patterns are supported. Eg: - # ignore_users: ["test-user", "employee-*"] @@ -196,10 +198,10 @@ index dcfbad8d..9033c5a6 100644 - - kibanaserver + enabled: false diff --git a/config/config.yml b/config/config.yml -index abd7edde..a3a46ef2 100644 +index ea8b7d72..a3a46ef2 100644 --- a/config/config.yml +++ b/config/config.yml -@@ -1,255 +1,10 @@ +@@ -1,254 +1,10 @@ --- - -# This is the main OpenSearch Security configuration file where authentication @@ -263,11 +265,10 @@ index abd7edde..a3a46ef2 100644 config: dynamic: -- # Set filtered_alias_mode to 'disallow' to forbid more than 2 filtered aliases per index -- # Set filtered_alias_mode to 'warn' to allow more than 2 filtered aliases per index but warns about it (default) -- # Set filtered_alias_mode to 'nowarn' to allow more than 2 filtered aliases per index silently -- #filtered_alias_mode: warn -- #do_not_fail_on_forbidden: false +- # Set privileges_evaluation_type to "v4" to enable the new privileges evaluation engine. +- # This should give you a more seamless experience, especially for users with restricted privileges +- # working in OpenSearch Dashboards. +- # privileges_evaluation_type: "v4" - #kibana: - # Kibana multitenancy - #multitenancy_enabled: true @@ -1334,10 +1335,10 @@ index ff09b706..5f8152a3 100644 - - 'indices:data/write*' - - 'indices_monitor' diff --git a/config/roles_mapping.yml b/config/roles_mapping.yml -index 89f46bf2..22a1f231 100644 +index 6acf82ec..22a1f231 100644 --- a/config/roles_mapping.yml +++ b/config/roles_mapping.yml -@@ -1,49 +1,4 @@ +@@ -1,43 +1,4 @@ --- -# In this file users, backendroles and hosts can be mapped to Security roles. -# Permissions for OpenSearch roles are configured in roles.yml @@ -1357,12 +1358,6 @@ index 89f46bf2..22a1f231 100644 - - "admin" - description: "Maps admin to all_access" - --own_index: -- reserved: false -- users: -- - "*" -- description: "Allow full access to an index named like the username" -- -logstash: - reserved: false - backend_roles: diff --git a/opensearch/security-plugin/stackable/patches/3.4.0.0/patchable.toml b/opensearch/security-plugin/stackable/patches/3.8.0.0/patchable.toml similarity index 56% rename from opensearch/security-plugin/stackable/patches/3.4.0.0/patchable.toml rename to opensearch/security-plugin/stackable/patches/3.8.0.0/patchable.toml index 65ba9a2c4..5f057c468 100644 --- a/opensearch/security-plugin/stackable/patches/3.4.0.0/patchable.toml +++ b/opensearch/security-plugin/stackable/patches/3.8.0.0/patchable.toml @@ -1,2 +1,2 @@ mirror = "https://github.com/stackabletech/opensearch-security" -base = "b4293103b1c53d96e0e2bf40ec56a0468e3fdc8e" +base = "53854713aeda279e9fc80e7a9cd8f58823ad75af" diff --git a/opensearch/stackable/patches/3.4.0/0002-Add-CycloneDX-plugin.patch b/opensearch/stackable/patches/3.4.0/0002-Add-CycloneDX-plugin.patch deleted file mode 100644 index 29693114d..000000000 --- a/opensearch/stackable/patches/3.4.0/0002-Add-CycloneDX-plugin.patch +++ /dev/null @@ -1,229 +0,0 @@ -From dfa42b3aeba004f8a66acbcdc0f7840a0394a618 Mon Sep 17 00:00:00 2001 -From: dervoeti -Date: Mon, 21 Jul 2025 12:45:43 +0200 -Subject: Add CycloneDX plugin - ---- - build.gradle | 13 +++++++++++++ - buildSrc/build.gradle | 2 +- - gradle/libs.versions.toml | 7 ++++--- - libs/dissect/build.gradle | 2 +- - plugins/arrow-flight-rpc/build.gradle | 2 +- - plugins/crypto-kms/build.gradle | 2 +- - plugins/discovery-ec2/build.gradle | 2 +- - plugins/ingestion-kafka/build.gradle | 2 +- - plugins/ingestion-kinesis/build.gradle | 4 ++-- - plugins/repository-azure/build.gradle | 2 +- - plugins/repository-s3/build.gradle | 2 +- - qa/os/build.gradle | 2 +- - qa/wildfly/build.gradle | 2 +- - 13 files changed, 29 insertions(+), 15 deletions(-) - -diff --git a/build.gradle b/build.gradle -index a6dc4348bdd..926ea970423 100644 ---- a/build.gradle -+++ b/build.gradle -@@ -59,6 +59,7 @@ plugins { - id "org.gradle.test-retry" version "1.6.2" apply false - id "test-report-aggregation" - id 'jacoco-report-aggregation' -+ id 'org.cyclonedx.bom' version '3.1.0' - } - - apply from: 'gradle/build-complete.gradle' -@@ -81,6 +82,18 @@ allprojects { - group = 'org.opensearch' - version = VersionProperties.getOpenSearch() - description = "OpenSearch subproject ${project.path}" -+ -+ cyclonedxDirectBom { -+ includeConfigs = ["runtimeClasspath"] -+ skipConfigs = ["compileClasspath", "testCompileClasspath"] -+ } -+} -+ -+cyclonedxBom { -+ includeLicenseText = false -+ projectType = "application" -+ schemaVersion = org.cyclonedx.Version.VERSION_16 -+ componentVersion = VersionProperties.getOpenSearch() - } - - configure(allprojects - project(':distribution:archives:integ-test-zip')) { -diff --git a/buildSrc/build.gradle b/buildSrc/build.gradle -index fdf98e29bd6..76403740f00 100644 ---- a/buildSrc/build.gradle -+++ b/buildSrc/build.gradle -@@ -118,7 +118,7 @@ dependencies { - api 'com.avast.gradle:gradle-docker-compose-plugin:0.17.12' - api "org.yaml:snakeyaml:${props.getProperty('snakeyaml')}" - api 'org.apache.maven:maven-model:3.9.6' -- api 'com.networknt:json-schema-validator:1.2.0' -+ api 'com.networknt:json-schema-validator:1.5.9' - api 'org.jruby.jcodings:jcodings:1.0.58' - api 'org.jruby.joni:joni:2.2.3' - api "com.fasterxml.jackson.core:jackson-databind:${props.getProperty('jackson_databind')}" -diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml -index a4835c9f29c..1c940c1dd35 100644 ---- a/gradle/libs.versions.toml -+++ b/gradle/libs.versions.toml -@@ -8,8 +8,9 @@ bundled_jdk = "25.0.1+8" - # optional dependencies - spatial4j = "0.7" - jts = "1.15.0" --jackson = "2.18.2" --jackson_databind = "2.18.2" -+jackson = "2.20.1" -+jackson_annotations = "2.20" -+jackson_databind = "2.20.1" - snakeyaml = "2.1" - icu4j = "77.1" - supercsv = "2.4.0" -@@ -114,7 +115,7 @@ bouncycastle-util = { group = "org.bouncycastle", name = "bcutil-fips", version. - gson = { group = "com.google.code.gson", name = "gson", version.ref = "gson" } - hamcrest = { group = "org.hamcrest", name = "hamcrest", version.ref = "hamcrest" } - hdrhistogram = { group = "org.hdrhistogram", name = "HdrHistogram", version.ref = "hdrhistogram" } --jackson-annotation = { group = "com.fasterxml.jackson.core", name = "jackson-annotations", version.ref = "jackson" } -+jackson-annotation = { group = "com.fasterxml.jackson.core", name = "jackson-annotations", version.ref = "jackson_annotations" } - jackson-databind = { group = "com.fasterxml.jackson.core", name = "jackson-databind", version.ref = "jackson_databind" } - jackson-datatype-jsr310 = { group = "com.fasterxml.jackson.datatype", name = "jackson-datatype-jsr310", version.ref = "jackson" } - jakartaannotation = { group = "jakarta.annotation", name = "jakarta.annotation-api", version.ref = "jakarta_annotation" } -diff --git a/libs/dissect/build.gradle b/libs/dissect/build.gradle -index dc98d2820ef..09c49ef7ff2 100644 ---- a/libs/dissect/build.gradle -+++ b/libs/dissect/build.gradle -@@ -33,7 +33,7 @@ dependencies { - exclude group: 'org.opensearch', module: 'opensearch-dissect' - } - testImplementation "com.fasterxml.jackson.core:jackson-core:${versions.jackson}" -- testImplementation "com.fasterxml.jackson.core:jackson-annotations:${versions.jackson}" -+ testImplementation "com.fasterxml.jackson.core:jackson-annotations:${versions.jackson_annotations}" - testImplementation "com.fasterxml.jackson.core:jackson-databind:${versions.jackson_databind}" - } - -diff --git a/plugins/arrow-flight-rpc/build.gradle b/plugins/arrow-flight-rpc/build.gradle -index 52b1ed328d5..335af2a716e 100644 ---- a/plugins/arrow-flight-rpc/build.gradle -+++ b/plugins/arrow-flight-rpc/build.gradle -@@ -35,7 +35,7 @@ dependencies { - api "org.slf4j:slf4j-api:${versions.slf4j}" - api "com.fasterxml.jackson.core:jackson-core:${versions.jackson}" - api "com.fasterxml.jackson.core:jackson-databind:${versions.jackson}" -- api "com.fasterxml.jackson.core:jackson-annotations:${versions.jackson}" -+ api "com.fasterxml.jackson.core:jackson-annotations:${versions.jackson_annotations}" - api "commons-codec:commons-codec:${versions.commonscodec}" - - // arrow flight dependencies. -diff --git a/plugins/crypto-kms/build.gradle b/plugins/crypto-kms/build.gradle -index 9d3b3ba534c..910b0eb132e 100644 ---- a/plugins/crypto-kms/build.gradle -+++ b/plugins/crypto-kms/build.gradle -@@ -59,7 +59,7 @@ dependencies { - api "org.slf4j:slf4j-api:${versions.slf4j}" - api "commons-codec:commons-codec:${versions.commonscodec}" - api "com.fasterxml.jackson.core:jackson-databind:${versions.jackson_databind}" -- api "com.fasterxml.jackson.core:jackson-annotations:${versions.jackson}" -+ api "com.fasterxml.jackson.core:jackson-annotations:${versions.jackson_annotations}" - api "org.reactivestreams:reactive-streams:${versions.reactivestreams}" - } - -diff --git a/plugins/discovery-ec2/build.gradle b/plugins/discovery-ec2/build.gradle -index ac05f42a72e..29175754e1b 100644 ---- a/plugins/discovery-ec2/build.gradle -+++ b/plugins/discovery-ec2/build.gradle -@@ -73,7 +73,7 @@ dependencies { - api "org.slf4j:slf4j-api:${versions.slf4j}" - api "commons-codec:commons-codec:${versions.commonscodec}" - api "com.fasterxml.jackson.core:jackson-databind:${versions.jackson_databind}" -- api "com.fasterxml.jackson.core:jackson-annotations:${versions.jackson}" -+ api "com.fasterxml.jackson.core:jackson-annotations:${versions.jackson_annotations}" - api "org.reactivestreams:reactive-streams:${versions.reactivestreams}" - testFipsRuntimeOnly "org.bouncycastle:bc-fips:${versions.bouncycastle_jce}" - testFipsRuntimeOnly "org.bouncycastle:bctls-fips:${versions.bouncycastle_tls}" -diff --git a/plugins/ingestion-kafka/build.gradle b/plugins/ingestion-kafka/build.gradle -index abd1b1a5c03..2c79d156f81 100644 ---- a/plugins/ingestion-kafka/build.gradle -+++ b/plugins/ingestion-kafka/build.gradle -@@ -36,7 +36,7 @@ dependencies { - testImplementation "com.github.docker-java:docker-java-api:${versions.docker}" - testImplementation "com.github.docker-java:docker-java-transport:${versions.docker}" - testImplementation "com.github.docker-java:docker-java-transport-zerodep:${versions.docker}" -- testImplementation "com.fasterxml.jackson.core:jackson-annotations:${versions.jackson}" -+ testImplementation "com.fasterxml.jackson.core:jackson-annotations:${versions.jackson_annotations}" - testImplementation "org.testcontainers:testcontainers:${versions.testcontainers}" - testImplementation "org.testcontainers:kafka:${versions.testcontainers}" - testImplementation "org.rnorth.duct-tape:duct-tape:${versions.ducttape}" -diff --git a/plugins/ingestion-kinesis/build.gradle b/plugins/ingestion-kinesis/build.gradle -index 5142cf6860a..2fbf58494ab 100644 ---- a/plugins/ingestion-kinesis/build.gradle -+++ b/plugins/ingestion-kinesis/build.gradle -@@ -65,7 +65,7 @@ dependencies { - api "commons-codec:commons-codec:${versions.commonscodec}" - api "com.fasterxml.jackson.core:jackson-core:${versions.jackson}" - api "com.fasterxml.jackson.core:jackson-databind:${versions.jackson_databind}" -- api "com.fasterxml.jackson.core:jackson-annotations:${versions.jackson}" -+ api "com.fasterxml.jackson.core:jackson-annotations:${versions.jackson_annotations}" - api "com.fasterxml.jackson.dataformat:jackson-dataformat-cbor:${versions.jackson}" - api "joda-time:joda-time:${versions.joda}" - api "org.slf4j:slf4j-api:${versions.slf4j}" -@@ -89,7 +89,7 @@ dependencies { - testImplementation "com.github.docker-java:docker-java-api:${versions.docker}" - testImplementation "com.github.docker-java:docker-java-transport:${versions.docker}" - testImplementation "com.github.docker-java:docker-java-transport-zerodep:${versions.docker}" -- testImplementation "com.fasterxml.jackson.core:jackson-annotations:${versions.jackson}" -+ testImplementation "com.fasterxml.jackson.core:jackson-annotations:${versions.jackson_annotations}" - testImplementation "org.testcontainers:testcontainers:${versions.testcontainers}" - testImplementation "org.testcontainers:localstack:${versions.testcontainers}" - testImplementation "org.rnorth.duct-tape:duct-tape:${versions.ducttape}" -diff --git a/plugins/repository-azure/build.gradle b/plugins/repository-azure/build.gradle -index ab78de7497b..fc9064ffea1 100644 ---- a/plugins/repository-azure/build.gradle -+++ b/plugins/repository-azure/build.gradle -@@ -76,7 +76,7 @@ dependencies { - api "io.projectreactor.netty:reactor-netty-core:${versions.reactor_netty}" - api "io.projectreactor.netty:reactor-netty-http:${versions.reactor_netty}" - api "org.slf4j:slf4j-api:${versions.slf4j}" -- api "com.fasterxml.jackson.core:jackson-annotations:${versions.jackson}" -+ api "com.fasterxml.jackson.core:jackson-annotations:${versions.jackson_annotations}" - api "com.fasterxml.jackson.core:jackson-databind:${versions.jackson_databind}" - api "com.fasterxml.jackson.datatype:jackson-datatype-jsr310:${versions.jackson}" - api "com.fasterxml.jackson.dataformat:jackson-dataformat-xml:${versions.jackson}" -diff --git a/plugins/repository-s3/build.gradle b/plugins/repository-s3/build.gradle -index 9ab82327780..846441eeb68 100644 ---- a/plugins/repository-s3/build.gradle -+++ b/plugins/repository-s3/build.gradle -@@ -88,7 +88,7 @@ dependencies { - api "commons-codec:commons-codec:${versions.commonscodec}" - api "com.fasterxml.jackson.core:jackson-core:${versions.jackson}" - api "com.fasterxml.jackson.core:jackson-databind:${versions.jackson_databind}" -- api "com.fasterxml.jackson.core:jackson-annotations:${versions.jackson}" -+ api "com.fasterxml.jackson.core:jackson-annotations:${versions.jackson_annotations}" - api "com.fasterxml.jackson.dataformat:jackson-dataformat-cbor:${versions.jackson}" - api "joda-time:joda-time:${versions.joda}" - api "org.slf4j:slf4j-api:${versions.slf4j}" -diff --git a/qa/os/build.gradle b/qa/os/build.gradle -index 082ed527757..6901a824a57 100644 ---- a/qa/os/build.gradle -+++ b/qa/os/build.gradle -@@ -50,7 +50,7 @@ dependencies { - api project(':libs:opensearch-common') - api project(':libs:opensearch-core') - -- testImplementation "com.fasterxml.jackson.core:jackson-annotations:${versions.jackson}" -+ testImplementation "com.fasterxml.jackson.core:jackson-annotations:${versions.jackson_annotations}" - testImplementation "com.fasterxml.jackson.core:jackson-core:${versions.jackson}" - testImplementation "com.fasterxml.jackson.core:jackson-databind:${versions.jackson_databind}" - } -diff --git a/qa/wildfly/build.gradle b/qa/wildfly/build.gradle -index 0606c3ccbff..4a7fe6b9407 100644 ---- a/qa/wildfly/build.gradle -+++ b/qa/wildfly/build.gradle -@@ -54,7 +54,7 @@ dependencies { - exclude group: 'com.fasterxml.jackson.dataformat' - exclude group: 'com.fasterxml.jackson.module' - } -- api "com.fasterxml.jackson.core:jackson-annotations:${versions.jackson}" -+ api "com.fasterxml.jackson.core:jackson-annotations:${versions.jackson_annotations}" - api "com.fasterxml.jackson.core:jackson-databind:${versions.jackson}" - api "com.fasterxml.jackson.jakarta.rs:jackson-jakarta-rs-base:${versions.jackson}" - api "com.fasterxml.jackson.jakarta.rs:jackson-jakarta-rs-json-provider:${versions.jackson}" diff --git a/opensearch/stackable/patches/3.4.0/0005-Scope-CycloneDX-SBOM-to-shipped-components-only.patch b/opensearch/stackable/patches/3.4.0/0005-Scope-CycloneDX-SBOM-to-shipped-components-only.patch deleted file mode 100644 index 67edafdef..000000000 --- a/opensearch/stackable/patches/3.4.0/0005-Scope-CycloneDX-SBOM-to-shipped-components-only.patch +++ /dev/null @@ -1,64 +0,0 @@ -From bcbaaa67c14cff600128ddc5b88da30048642ca6 Mon Sep 17 00:00:00 2001 -From: dervoeti -Date: Thu, 26 Mar 2026 21:05:47 +0000 -Subject: Scope CycloneDX SBOM to shipped components only - -Exclude plugin subprojects that are not included in the opensearch-min -distribution from the CycloneDX BOM generation. Only repository-s3 and -telemetry-otel are shipped from the local build. Other plugins like -ingest-attachment (which pulls in tika-core) are not installed in the -Stackable image and should not appear in the runtime SBOM. ---- - build.gradle | 39 +++++++++++++++++++++++++++++++++++++++ - 1 file changed, 39 insertions(+) - -diff --git a/build.gradle b/build.gradle -index 49d3b971efa..d10aa4d298f 100644 ---- a/build.gradle -+++ b/build.gradle -@@ -82,6 +82,45 @@ allprojects { - version = VersionProperties.getOpenSearch() - description = "OpenSearch subproject ${project.path}" - -+ // Only include subprojects that are part of the opensearch-min distribution -+ // (server, libs, modules) plus the core plugins shipped in the Stackable -+ // image (repository-s3 and telemetry-otel). This prevents build-only plugin -+ // dependencies (e.g. tika-core from ingest-attachment) from appearing in the -+ // runtime SBOM as false positives. -+ // The test framework, the test fixtures, the QA projects and the benchmarks are not -+ // shipped either and are the only source of JUnit, Mockito, Hamcrest, randomizedtesting -+ // and JMH in the SBOM. -+ // The build-tools project (buildSrc) is not shipped either. It resolves the Gradle build -+ // classpath, which adds Ant, Apache Rat, forbiddenapis, the Nebula and Shadow Gradle -+ // plugins and the JGit/SVNKit stack of grgit to the SBOM. Worse, it pulls in its own -+ // versions of libraries that are also shipped (for example Log4j and ASM), so the SBOM -+ // ends up asserting versions that are not in the image. -+ // Note that :distribution must not be excluded. The launchers and CLI tools under -+ // :distribution:tools are shipped in lib/tools. -+ def shippedPlugins = ['repository-s3', 'telemetry-otel'] as Set -+ def isUnshipped = (project.path.startsWith(':plugins:') && !(project.name in shippedPlugins)) || -+ project.path.startsWith(':example-plugins') || -+ project.path == ':build-tools' || -+ project.path.startsWith(':build-tools:') || -+ project.path == ':test' || -+ project.path.startsWith(':test:') || -+ project.path.startsWith(':qa') || -+ project.path == ':benchmarks' || -+ project.path == ':client:test' || -+ project.path == ':client:benchmark' || -+ project.path == ':client:client-benchmark-noop-api-plugin' || -+ project.path == ':client:sniffer' || -+ project.path.startsWith(':sandbox') || -+ project.path == ':docs' || -+ project.path == ':doc-tools' || -+ project.path == ':rest-api-spec' -+ -+ if (isUnshipped) { -+ tasks.matching { it.name == 'cyclonedxDirectBom' }.configureEach { -+ enabled = false -+ } -+ } -+ - cyclonedxDirectBom { - includeConfigs = ["runtimeClasspath"] - skipConfigs = ["compileClasspath", "testCompileClasspath"] diff --git a/opensearch/stackable/patches/3.4.0/0001-opensearch-home.patch b/opensearch/stackable/patches/3.8.0/0001-opensearch-home.patch similarity index 98% rename from opensearch/stackable/patches/3.4.0/0001-opensearch-home.patch rename to opensearch/stackable/patches/3.8.0/0001-opensearch-home.patch index c70a99cc3..897578c31 100644 --- a/opensearch/stackable/patches/3.4.0/0001-opensearch-home.patch +++ b/opensearch/stackable/patches/3.8.0/0001-opensearch-home.patch @@ -1,4 +1,4 @@ -From 9006a07b3a0d18d59bf902edbb1bf74fa53c0b72 Mon Sep 17 00:00:00 2001 +From 5c39bb14cd761b401845870460a6b5af16b0b77f Mon Sep 17 00:00:00 2001 From: Benedikt Labrenz Date: Wed, 16 Jul 2025 14:29:10 +0200 Subject: opensearch home @@ -64,7 +64,7 @@ index 099d788c90d..f8697f133db 100644 -run_as_other_user_if_needed /usr/share/opensearch/bin/opensearch <<<"$KEYSTORE_PASSWORD" +run_as_other_user_if_needed /stackable/opensearch/bin/opensearch <<<"$KEYSTORE_PASSWORD" diff --git a/distribution/packages/build.gradle b/distribution/packages/build.gradle -index 2d172e76b1b..f76a390dc17 100644 +index d9410b766ea..64cfad844f2 100644 --- a/distribution/packages/build.gradle +++ b/distribution/packages/build.gradle @@ -88,7 +88,7 @@ void addProcessFilesTask(String type, boolean jdk) { @@ -205,7 +205,7 @@ index 75eded92a8e..7d494d5bf19 100644 fi diff --git a/distribution/packages/src/common/systemd/opensearch.service b/distribution/packages/src/common/systemd/opensearch.service -index a27608c6294..97543c9463a 100644 +index 91adbf3c839..f01faf02115 100644 --- a/distribution/packages/src/common/systemd/opensearch.service +++ b/distribution/packages/src/common/systemd/opensearch.service @@ -21,7 +21,7 @@ PrivateTmp=true diff --git a/opensearch/stackable/patches/3.8.0/0002-Add-CycloneDX-plugin.patch b/opensearch/stackable/patches/3.8.0/0002-Add-CycloneDX-plugin.patch new file mode 100644 index 000000000..9343e7c5d --- /dev/null +++ b/opensearch/stackable/patches/3.8.0/0002-Add-CycloneDX-plugin.patch @@ -0,0 +1,76 @@ +From 88acf360a467f9dca7c36f0a6c5b0dffe3daeb3c Mon Sep 17 00:00:00 2001 +From: Razvan-Daniel Mihai <84674+razvan@users.noreply.github.com> +Date: Mon, 22 Jun 2026 16:46:43 +0200 +Subject: Add CycloneDX plugin + +--- + build.gradle | 33 +++++++++++++++++++++++++++++++++ + buildSrc/build.gradle | 4 +++- + 2 files changed, 36 insertions(+), 1 deletion(-) + +diff --git a/build.gradle b/build.gradle +index 667bc41b438..2546b0344e6 100644 +--- a/build.gradle ++++ b/build.gradle +@@ -58,6 +58,7 @@ plugins { + id "org.gradle.test-retry" version "1.6.2" apply false + id "test-report-aggregation" + id 'jacoco-report-aggregation' ++ id 'org.cyclonedx.bom' version '3.3.0' + } + + apply from: 'gradle/build-complete.gradle' +@@ -86,6 +87,38 @@ allprojects { + group = 'org.opensearch' + version = VersionProperties.getOpenSearch() + description = "OpenSearch subproject ${project.path}" ++ ++ // Only include subprojects that are part of the opensearch-min distribution ++ // (server, libs, modules) plus the core plugins shipped in the Stackable ++ // image (repository-s3 and telemetry-otel). This prevents build-only ++ // dependencies (e.g. tika-core from ingest-attachment, or test fixtures such ++ // as hdfs-fixture) from appearing in the runtime SBOM as false positives. ++ def shippedPlugins = ['repository-s3', 'telemetry-otel'] as Set ++ def isShipped = project.path == ':server' || ++ project.path.startsWith(':libs:') || ++ project.path.startsWith(':modules:') || ++ (project.path.startsWith(':plugins:') && project.name in shippedPlugins) ++ ++ cyclonedxDirectBom { ++ if (isShipped) { ++ includeConfigs = ["runtimeClasspath"] ++ skipConfigs = ["compileClasspath", "testCompileClasspath"] ++ } else { ++ // NOTE: an empty includeConfigs means "include ALL configurations", so we ++ // point it at a sentinel configuration that does not exist instead. This ++ // makes the task resolve nothing, avoiding the broken-POM resolution ++ // failures while keeping the task harmlessly disabled. ++ enabled = false ++ includeConfigs = ["__sbom_excluded__"] ++ } ++ } ++} ++ ++cyclonedxBom { ++ includeLicenseText = false ++ projectType = org.cyclonedx.model.Component.Type.APPLICATION ++ schemaVersion = org.cyclonedx.Version.VERSION_16 ++ componentVersion = VersionProperties.getOpenSearch() + } + + configure(allprojects - project(':distribution:archives:integ-test-zip')) { +diff --git a/buildSrc/build.gradle b/buildSrc/build.gradle +index d1cb9276e60..b10d06eb6fd 100644 +--- a/buildSrc/build.gradle ++++ b/buildSrc/build.gradle +@@ -139,7 +139,9 @@ dependencies { + api "org.yaml:snakeyaml:${props.getProperty('snakeyaml')}" + api 'org.apache.maven:maven-model:3.9.16' + api 'org.codehaus.plexus:plexus-xml:3.0.1' +- api 'com.networknt:json-schema-validator:1.2.0' ++ // Aligned with the version pulled in by cyclonedx-core-java (via the ++ // org.cyclonedx.bom plugin). ++ api 'com.networknt:json-schema-validator:1.5.9' + api 'org.jruby.jcodings:jcodings:1.0.58' + api 'org.jruby.joni:joni:2.2.6' + api "com.fasterxml.jackson.core:jackson-databind:${props.getProperty('jackson_databind')}" diff --git a/opensearch/stackable/patches/3.4.0/0003-Use-the-Nexus-Build-Repo.patch b/opensearch/stackable/patches/3.8.0/0003-Use-the-Nexus-Build-Repo.patch similarity index 61% rename from opensearch/stackable/patches/3.4.0/0003-Use-the-Nexus-Build-Repo.patch rename to opensearch/stackable/patches/3.8.0/0003-Use-the-Nexus-Build-Repo.patch index f4093f4a6..4198aeb8f 100644 --- a/opensearch/stackable/patches/3.4.0/0003-Use-the-Nexus-Build-Repo.patch +++ b/opensearch/stackable/patches/3.8.0/0003-Use-the-Nexus-Build-Repo.patch @@ -1,44 +1,43 @@ -From bfe54fa3e3ab7f6242e7053d4ea7bd508fed4a79 Mon Sep 17 00:00:00 2001 +From f73f15cc82915affc3d2b7f6c6902ecddefe3a04 Mon Sep 17 00:00:00 2001 From: Siegfried Weber Date: Wed, 6 Aug 2025 13:12:12 +0200 Subject: Use the Nexus Build Repo --- - buildSrc/build.gradle | 4 +++- + buildSrc/build.gradle | 3 ++- .../gradle/OpenSearchTestBasePluginFuncTest.groovy | 4 +++- - .../org/opensearch/gradle/RepositoriesSetupPlugin.java | 2 +- + .../org/opensearch/gradle/RepositoriesSetupPlugin.java | 5 ++++- .../test/resources/plugin/optional-dependencies.gradle | 4 +++- buildSrc/src/testKit/opensearch.build/build.gradle | 8 ++++++-- buildSrc/src/testKit/testingConventions/build.gradle | 4 +++- buildSrc/src/testKit/thirdPartyAudit/build.gradle | 4 +++- .../src/testKit/thirdPartyAudit/sample_jars/build.gradle | 4 +++- - doc-tools/build.gradle | 4 +++- - gradle/code-coverage.gradle | 4 +++- + doc-tools/build.gradle | 3 ++- + gradle/code-coverage.gradle | 3 ++- 10 files changed, 31 insertions(+), 11 deletions(-) diff --git a/buildSrc/build.gradle b/buildSrc/build.gradle -index 76403740f00..0e8a478b3d9 100644 +index b10d06eb6fd..a4865034d8b 100644 --- a/buildSrc/build.gradle +++ b/buildSrc/build.gradle -@@ -94,7 +94,9 @@ tasks.withType(JavaCompile).configureEach { - *****************************************************************************/ - - repositories { -- mavenCentral() +@@ -106,7 +106,8 @@ repositories { + excludeGroupByRegex "adoptium.*|adoptopenjdk.*|openjdk.*" + } + } +- mavenCentral { + maven { + url = uri("https://build-repo.stackable.tech/repository/maven-public/") -+ } - gradlePluginPortal() - } - + content { + excludeGroupByRegex "adoptium.*|adoptopenjdk.*|openjdk.*" + } diff --git a/buildSrc/src/integTest/groovy/org/opensearch/gradle/OpenSearchTestBasePluginFuncTest.groovy b/buildSrc/src/integTest/groovy/org/opensearch/gradle/OpenSearchTestBasePluginFuncTest.groovy -index fb61bbded5e..85df5b10c4a 100644 +index 250c3c7e389..388b5e382eb 100644 --- a/buildSrc/src/integTest/groovy/org/opensearch/gradle/OpenSearchTestBasePluginFuncTest.groovy +++ b/buildSrc/src/integTest/groovy/org/opensearch/gradle/OpenSearchTestBasePluginFuncTest.groovy -@@ -53,7 +53,9 @@ class OpenSearchTestBasePluginFuncTest extends AbstractGradleFuncTest { - } +@@ -54,7 +54,9 @@ class OpenSearchTestBasePluginFuncTest extends AbstractGradleFuncTest { repositories { + maven { url = uri("https://ci.opensearch.org/maven2/") } - mavenCentral() + maven { + url = uri("https://build-repo.stackable.tech/repository/maven-public/") @@ -47,26 +46,29 @@ index fb61bbded5e..85df5b10c4a 100644 dependencies { diff --git a/buildSrc/src/main/java/org/opensearch/gradle/RepositoriesSetupPlugin.java b/buildSrc/src/main/java/org/opensearch/gradle/RepositoriesSetupPlugin.java -index 0c901b97269..8a4e8c9c53a 100644 +index c41a9774d13..8aca13e3d6d 100644 --- a/buildSrc/src/main/java/org/opensearch/gradle/RepositoriesSetupPlugin.java +++ b/buildSrc/src/main/java/org/opensearch/gradle/RepositoriesSetupPlugin.java -@@ -82,7 +82,7 @@ public class RepositoriesSetupPlugin implements Plugin { - // such that we don't have to pass hardcoded files to gradle - repos.mavenLocal(); - } -- repos.mavenCentral(); -+ repos.maven(repo -> repo.setUrl("https://build-repo.stackable.tech/repository/maven-public/")); +@@ -92,7 +92,10 @@ public class RepositoriesSetupPlugin implements Plugin { + repo.setUrl("https://ci.opensearch.org/m2/"); + repo.content(descriptor -> descriptor.excludeGroupByRegex("adoptium.*|adoptopenjdk.*|openjdk.*")); + }); +- repos.mavenCentral(repo -> { repo.content(descriptor -> descriptor.excludeGroupByRegex("adoptium.*|adoptopenjdk.*|openjdk.*")); }); ++ repos.maven(repo -> { ++ repo.setUrl("https://build-repo.stackable.tech/repository/maven-public/"); ++ repo.content(descriptor -> descriptor.excludeGroupByRegex("adoptium.*|adoptopenjdk.*|openjdk.*")); ++ }); String luceneVersion = VersionProperties.getLucene(); if (luceneVersion.contains("-snapshot")) { diff --git a/buildSrc/src/test/resources/plugin/optional-dependencies.gradle b/buildSrc/src/test/resources/plugin/optional-dependencies.gradle -index ebcf758f578..af8ce7143ff 100644 +index 021779ba935..9bc37efc602 100644 --- a/buildSrc/src/test/resources/plugin/optional-dependencies.gradle +++ b/buildSrc/src/test/resources/plugin/optional-dependencies.gradle -@@ -18,7 +18,9 @@ group = "org.custom.group" - version = '1.0.0' +@@ -19,7 +19,9 @@ version = '1.0.0' repositories { + maven { url = uri("https://ci.opensearch.org/maven2/") } - mavenCentral() + maven { + url = uri("https://build-repo.stackable.tech/repository/maven-public/") @@ -75,13 +77,13 @@ index ebcf758f578..af8ce7143ff 100644 dependencies { diff --git a/buildSrc/src/testKit/opensearch.build/build.gradle b/buildSrc/src/testKit/opensearch.build/build.gradle -index a0093eb1d2c..8267594fb64 100644 +index 4a37e9d2cbd..210a1293aeb 100644 --- a/buildSrc/src/testKit/opensearch.build/build.gradle +++ b/buildSrc/src/testKit/opensearch.build/build.gradle -@@ -39,7 +39,9 @@ repositories { - artifact() +@@ -40,7 +40,9 @@ repositories { } } + maven { url = uri("https://ci.opensearch.org/maven2/") } - mavenCentral() + maven { + url = uri("https://build-repo.stackable.tech/repository/maven-public/") @@ -89,10 +91,10 @@ index a0093eb1d2c..8267594fb64 100644 } repositories { -@@ -53,7 +55,9 @@ repositories { - artifact() +@@ -55,7 +57,9 @@ repositories { } } + maven { url = uri("https://ci.opensearch.org/maven2/") } - mavenCentral() + maven { + url = uri("https://build-repo.stackable.tech/repository/maven-public/") @@ -101,13 +103,13 @@ index a0093eb1d2c..8267594fb64 100644 // todo remove offending rules diff --git a/buildSrc/src/testKit/testingConventions/build.gradle b/buildSrc/src/testKit/testingConventions/build.gradle -index afd3f06a4ed..cb5a8154303 100644 +index 565890dcfe2..156ac5cc37f 100644 --- a/buildSrc/src/testKit/testingConventions/build.gradle +++ b/buildSrc/src/testKit/testingConventions/build.gradle -@@ -18,7 +18,9 @@ allprojects { - apply plugin: 'opensearch.build' +@@ -19,7 +19,9 @@ allprojects { repositories { + maven { url = uri("https://ci.opensearch.org/maven2/") } - mavenCentral() + maven { + url = uri("https://build-repo.stackable.tech/repository/maven-public/") @@ -116,13 +118,13 @@ index afd3f06a4ed..cb5a8154303 100644 dependencies { testImplementation "junit:junit:${versions.junit}" diff --git a/buildSrc/src/testKit/thirdPartyAudit/build.gradle b/buildSrc/src/testKit/thirdPartyAudit/build.gradle -index caaaa6bd1ac..e9a107cf125 100644 +index c490d85ff1b..4907fa3e80a 100644 --- a/buildSrc/src/testKit/thirdPartyAudit/build.gradle +++ b/buildSrc/src/testKit/thirdPartyAudit/build.gradle -@@ -36,7 +36,9 @@ repositories { - artifact() +@@ -42,7 +42,9 @@ repositories { } } + maven { url = uri("https://ci.opensearch.org/maven2/") } - mavenCentral() + maven { + url = uri("https://build-repo.stackable.tech/repository/maven-public/") @@ -131,13 +133,13 @@ index caaaa6bd1ac..e9a107cf125 100644 dependencies { diff --git a/buildSrc/src/testKit/thirdPartyAudit/sample_jars/build.gradle b/buildSrc/src/testKit/thirdPartyAudit/sample_jars/build.gradle -index 00d52021688..ba5f9ee2d76 100644 +index 2906cbc78d8..ff92fe05e7e 100644 --- a/buildSrc/src/testKit/thirdPartyAudit/sample_jars/build.gradle +++ b/buildSrc/src/testKit/thirdPartyAudit/sample_jars/build.gradle -@@ -13,7 +13,9 @@ plugins { - id 'java' +@@ -14,7 +14,9 @@ plugins { } repositories { + maven { url = uri("https://ci.opensearch.org/maven2/") } - mavenCentral() + maven { + url = uri("https://build-repo.stackable.tech/repository/maven-public/") @@ -146,30 +148,30 @@ index 00d52021688..ba5f9ee2d76 100644 dependencies { diff --git a/doc-tools/build.gradle b/doc-tools/build.gradle -index 9639c7d7048..3bd6ed063ba 100644 +index a02339b67b2..fe6f26554c2 100644 --- a/doc-tools/build.gradle +++ b/doc-tools/build.gradle -@@ -8,5 +8,7 @@ base { - } - - repositories { -- mavenCentral() +@@ -14,7 +14,8 @@ repositories { + excludeGroupByRegex "adoptium.*|adoptopenjdk.*|openjdk.*" + } + } +- mavenCentral { + maven { -+ url = uri("https://build-repo.stackable.tech/repository/maven-public/") -+ } - } ++ url = uri("https://build-repo.stackable.tech/repository/maven-public/") + content { + excludeGroupByRegex "adoptium.*|adoptopenjdk.*|openjdk.*" + } diff --git a/gradle/code-coverage.gradle b/gradle/code-coverage.gradle -index 11a8a1253e1..8ae530d4773 100644 +index 24e43630894..07165443b1c 100644 --- a/gradle/code-coverage.gradle +++ b/gradle/code-coverage.gradle -@@ -9,7 +9,9 @@ - apply plugin: 'jacoco' - - repositories { -- mavenCentral() +@@ -21,7 +21,8 @@ repositories { + excludeGroupByRegex "adoptium.*|adoptopenjdk.*|openjdk.*" + } + } +- mavenCentral { + maven { + url = uri("https://build-repo.stackable.tech/repository/maven-public/") -+ } - gradlePluginPortal() - // TODO: Find the way to use the repositories from RepositoriesSetupPlugin - maven { + content { + excludeGroupByRegex "adoptium.*|adoptopenjdk.*|openjdk.*" + } diff --git a/opensearch/stackable/patches/3.4.0/0004-stop-applying-formatting-plugin.patch b/opensearch/stackable/patches/3.8.0/0004-stop-applying-formatting-plugin.patch similarity index 72% rename from opensearch/stackable/patches/3.4.0/0004-stop-applying-formatting-plugin.patch rename to opensearch/stackable/patches/3.8.0/0004-stop-applying-formatting-plugin.patch index 9c6877652..660a198a7 100644 --- a/opensearch/stackable/patches/3.4.0/0004-stop-applying-formatting-plugin.patch +++ b/opensearch/stackable/patches/3.8.0/0004-stop-applying-formatting-plugin.patch @@ -1,4 +1,4 @@ -From fd41b94dc450563346e5415776e1aa4d05160cf1 Mon Sep 17 00:00:00 2001 +From 800e5834414c0adbd5f2ce24f414c7b9d385348b Mon Sep 17 00:00:00 2001 From: Benedikt Labrenz Date: Tue, 2 Sep 2025 12:01:22 +0200 Subject: stop applying formatting plugin @@ -6,9 +6,10 @@ Subject: stop applying formatting plugin --- benchmarks/build.gradle | 9 --------- build.gradle | 1 - + libs/concurrent-queue/build.gradle | 6 ------ plugins/arrow-flight-rpc/build.gradle | 7 ------- qa/wildfly/build.gradle | 4 ---- - 4 files changed, 21 deletions(-) + 5 files changed, 27 deletions(-) diff --git a/benchmarks/build.gradle b/benchmarks/build.gradle index 732e77934b4..47a7c1b1066 100644 @@ -30,10 +31,10 @@ index 732e77934b4..47a7c1b1066 100644 // Add support for incubator modules on supported Java versions. run.jvmArgs += ['--add-modules=jdk.incubator.vector'] diff --git a/build.gradle b/build.gradle -index 926ea970423..49d3b971efa 100644 +index 2546b0344e6..9eadead35f5 100644 --- a/build.gradle +++ b/build.gradle -@@ -66,7 +66,6 @@ apply from: 'gradle/build-complete.gradle' +@@ -65,7 +65,6 @@ apply from: 'gradle/build-complete.gradle' apply from: 'gradle/runtime-jdk-provision.gradle' apply from: 'gradle/ide.gradle' apply from: 'gradle/forbidden-dependencies.gradle' @@ -41,12 +42,26 @@ index 926ea970423..49d3b971efa 100644 apply from: 'gradle/local-distribution.gradle' apply from: 'gradle/run.gradle' apply from: 'gradle/missing-javadoc.gradle' +diff --git a/libs/concurrent-queue/build.gradle b/libs/concurrent-queue/build.gradle +index f5d834aa72b..769df7a618d 100644 +--- a/libs/concurrent-queue/build.gradle ++++ b/libs/concurrent-queue/build.gradle +@@ -61,9 +61,3 @@ tasks.register('jmh', JavaExec) { + args project.property('jmh.includes') + } + } +- +-spotless { +- java { +- targetExclude 'src/jmh/generated/**/*.java' +- } +-} diff --git a/plugins/arrow-flight-rpc/build.gradle b/plugins/arrow-flight-rpc/build.gradle -index 335af2a716e..1d1c1a6b6bc 100644 +index 50492118a97..a420221a263 100644 --- a/plugins/arrow-flight-rpc/build.gradle +++ b/plugins/arrow-flight-rpc/build.gradle -@@ -103,13 +103,6 @@ internalClusterTest { - jvmArgs += ["--add-opens", "java.base/java.nio=org.apache.arrow.memory.core,ALL-UNNAMED"] +@@ -95,13 +95,6 @@ internalClusterTest { + jvmArgs += ["--add-opens", "java.base/java.nio=ALL-UNNAMED"] } -spotless { @@ -60,7 +75,7 @@ index 335af2a716e..1d1c1a6b6bc 100644 tasks.named("dependencyLicenses").configure { mapping from: /netty-.*/, to: 'netty' diff --git a/qa/wildfly/build.gradle b/qa/wildfly/build.gradle -index 4a7fe6b9407..1dda2688e35 100644 +index 12f2eacccd9..a559d08dc9e 100644 --- a/qa/wildfly/build.gradle +++ b/qa/wildfly/build.gradle @@ -88,10 +88,6 @@ preProcessFixture { diff --git a/opensearch/stackable/patches/3.4.0/patchable.toml b/opensearch/stackable/patches/3.8.0/patchable.toml similarity index 52% rename from opensearch/stackable/patches/3.4.0/patchable.toml rename to opensearch/stackable/patches/3.8.0/patchable.toml index 17b0a78fc..93f82991c 100644 --- a/opensearch/stackable/patches/3.4.0/patchable.toml +++ b/opensearch/stackable/patches/3.8.0/patchable.toml @@ -1,2 +1,2 @@ mirror = "https://github.com/stackabletech/opensearch" -base = "00336141f90b2456d7aa35e9052fd6baf7147423" +base = "e5a3c5691be87af6c12dbe3e158c59c04ee72973"