Skip to content

Commit a8262eb

Browse files
committed
Merge remote-tracking branch 'origin/main' into feat/ubi10
2 parents ccc9669 + 91a837f commit a8262eb

33 files changed

+838
-303
lines changed

.hadolint.yaml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,16 @@ ignored:
5858
# sets the default shell to Bash where [[ ]] is defined.
5959
- SC3010
6060

61+
# In POSIX sh, == in place of = is undefined.
62+
# https://www.shellcheck.net/wiki/SC3014
63+
# Reason: Ignoring because we inherit SHELL from the base image which sets the default shell to Bash where == is defined
64+
- SC3014
65+
66+
# In POSIX sh, =~ regex matching is undefined.
67+
# https://www.shellcheck.net/wiki/SC3015
68+
# Reason: Ignoring because we inherit SHELL from the base image which sets the default shell to Bash where =~ regex matching is defined
69+
- SC3015
70+
6171
# In POSIX sh, string replacement is undefined.
6272
# https://www.shellcheck.net/wiki/SC3060
6373
# Reason: Ignoring because we inherit SHELL from the base image which

CHANGELOG.md

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,20 +8,28 @@ All notable changes to this project will be documented in this file.
88

99
- superset: Add 6.0.0-rc2 ([#1337]).
1010
- hive: Build [hive-metastore-opa-authorizer](https://github.com/boschglobal/hive-metastore-opa-authorizer) from source and add to image ([#1340]).
11+
- hive: Add `4.2.0` ([#1356]).
12+
- nifi: Add patches to replace process group root ID placeholder ([#1358]).
1113

1214
### Changed
1315

1416
- airflow: Extend list of providers for 3.0.6 ([#1336])
1517
- airflow: Bump celery version to 5.5.3 for Airflow 3.x ([#1343]).
18+
- testing-tools: refactoring: Split image into multiple images, remove unnecessary components and switch to UBI as base image ([#1354]).
19+
- hive: fixed 4.0.1 shaded hive-metastore-opa-authorizer jar by relocating dependencies ([#1356]).
1620

1721
### Removed
1822

19-
- hive: Remove `4.0.0` ([#1340]).
23+
- opensearch: Remove the `performance-analyzer` plugin from the OpenSearch image ([#1357]).
2024

2125
[#1336]: https://github.com/stackabletech/docker-images/pull/1336
2226
[#1337]: https://github.com/stackabletech/docker-images/pull/1337
23-
[#1343]: https://github.com/stackabletech/docker-images/pull/1343
2427
[#1340]: https://github.com/stackabletech/docker-images/pull/1340
28+
[#1343]: https://github.com/stackabletech/docker-images/pull/1343
29+
[#1354]: https://github.com/stackabletech/docker-images/pull/1354
30+
[#1356]: https://github.com/stackabletech/docker-images/pull/1356
31+
[#1357]: https://github.com/stackabletech/docker-images/pull/1357
32+
[#1358]: https://github.com/stackabletech/docker-images/pull/1358
2533

2634
## [25.11.0] - 2025-11-07
2735

hive/Dockerfile

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -45,10 +45,6 @@ ENV NEW_VERSION="${PRODUCT_VERSION}-stackable${RELEASE_VERSION}"
4545
# thus taking a bit (which is annoying while development)
4646
RUN /stackable/patchable --images-repo-root=src checkout hive ${PRODUCT_VERSION} > /tmp/HIVE_SOURCE_DIR
4747

48-
# Use bash for regex machting, otherwise docker lint is complaining:
49-
# hive/Dockerfile:51 SC3014 warning: In POSIX sh, == in place of = is undefined.
50-
SHELL ["/bin/bash", "-c"]
51-
5248
# Make expensive maven build a separate layer for better caching
5349
# Cache mounts are owned by root by default
5450
# We need to explicitly give the uid to use
@@ -84,7 +80,6 @@ elif [[ "${PRODUCT_VERSION}" == 4.0.* ]]; then
8480
# We only seem to get a .tar.gz archive, so let's extract that to the correct location
8581
tar --extract --directory=/stackable -f standalone-metastore/metastore-server/target/apache-hive-standalone-metastore-server-${NEW_VERSION}-bin.tar.gz
8682
mv standalone-metastore/metastore-server/target/bom.json /stackable/apache-hive-metastore-${NEW_VERSION}-bin/apache-hive-metastore-${NEW_VERSION}.cdx.json
87-
8883
# TODO: Remove once the fix https://github.com/apache/hive/pull/5419 is merged and released
8984
# The schemaTool.sh is still pointing to the class location from Hive < 4.0.0, it seems like it was forgotten to update it
9085
sed -i -e 's/CLASS=org.apache.hadoop.hive.metastore.tools.MetastoreSchemaTool/CLASS=org.apache.hadoop.hive.metastore.tools.schematool.MetastoreSchemaTool/' /stackable/apache-hive-metastore-${NEW_VERSION}-bin/bin/ext/schemaTool.sh
@@ -239,7 +234,7 @@ USER ${STACKABLE_USER_UID}
239234

240235
ENV HIVE_HOME=/stackable/hive-metastore
241236
ENV HADOOP_HOME=/stackable/hadoop
242-
ENV PATH="${PATH}":/stackable/hadoop/bin:/stackable/hive-metastore/bin
237+
ENV PATH="${PATH}:${HADOOP_HOME}/bin:${HIVE_HOME}/bin"
243238

244239
# The following 2 env-vars are required for common hadoop scripts even if the respective libraries are never used.
245240
# We set them here to a sensible default.

hive/boil-config.toml

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,21 @@ aws-java-sdk-bundle-version = "1.12.367"
1313
azure-storage-version = "7.0.1"
1414
azure-keyvault-core-version = "1.0.0"
1515

16+
[versions."4.0.0".local-images]
17+
# Hive 4 must be built with Java 8 (according to GitHub README) but seems to run on Java 11
18+
java-base = "11"
19+
java-devel = "8"
20+
"hadoop/hadoop" = "3.3.6"
21+
# hive-metastore-opa-authorizer from: https://github.com/boschglobal/hive-metastore-opa-authorizer
22+
"hive/hive-metastore-opa-authorizer" = "v1.0.0-hive-4.0.0-hadoop-3.3.6"
23+
24+
[versions."4.0.0".build-arguments]
25+
jmx-exporter-version = "1.3.0"
26+
# Keep consistent with the dependency from Hadoop: https://mvnrepository.com/artifact/org.apache.hadoop/hadoop-aws/3.3.6
27+
aws-java-sdk-bundle-version = "1.12.367"
28+
azure-storage-version = "7.0.1"
29+
azure-keyvault-core-version = "1.0.0"
30+
1631
[versions."4.0.1".local-images]
1732
# Hive 4.0 must be built with Java 8 (according to GitHub README) but seems to run on Java 11
1833
java-base = "11"
@@ -44,3 +59,20 @@ aws-java-sdk-bundle-version = "2.29.52"
4459
azure-storage-version = "7.0.1"
4560
# Keep consistent with the dependency from azure-storage: https://mvnrepository.com/artifact/com.microsoft.azure/azure-storage/7.0.1
4661
azure-keyvault-core-version = "1.0.0"
62+
63+
[versions."4.2.0".local-images]
64+
# Hive 4.2 requires Java 21 (according to GitHub README)
65+
java-base = "21"
66+
java-devel = "21"
67+
"hadoop/hadoop" = "3.4.2"
68+
# hive-metastore-opa-authorizer from: https://github.com/boschglobal/hive-metastore-opa-authorizer
69+
"hive/hive-metastore-opa-authorizer" = "v1.0.0-hive-4.2.0-hadoop-3.4.2"
70+
71+
[versions."4.2.0".build-arguments]
72+
jmx-exporter-version = "1.3.0"
73+
# Keep consistent with the dependency from hadoop-aws: https://mvnrepository.com/artifact/org.apache.hadoop/hadoop-aws/3.4.2 TODO: CHECK!
74+
aws-java-sdk-bundle-version = "2.29.52"
75+
# Keep consistent with the dependency from hadoop-azure: https://mvnrepository.com/artifact/org.apache.hadoop/hadoop-azure/3.4.2 TODO: CHECK!
76+
azure-storage-version = "7.0.1"
77+
# Keep consistent with the dependency from azure-storage: https://mvnrepository.com/artifact/com.microsoft.azure/azure-storage/7.0.1 TODO: CHECK!
78+
azure-keyvault-core-version = "1.0.0"

hive/hive-metastore-opa-authorizer/Dockerfile

Lines changed: 11 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -23,14 +23,10 @@ COPY --chown=${STACKABLE_USER_UID}:0 hive/hive-metastore-opa-authorizer/stackabl
2323

2424
COPY --chown=${STACKABLE_USER_UID}:0 --from=hadoop-builder /stackable/patched-libs /stackable/patched-libs
2525

26-
# Use bash for regex machting, otherwise docker lint is complaining:
27-
# hive/hive-metastore-opa-authorizer/Dockerfile:26 SC3015 warning: In POSIX sh, =~ regex matching is undefined.
28-
SHELL ["/bin/bash", "-c"]
29-
3026
# Make expensive maven build a separate layer for better caching
3127
# Cache mounts are owned by root by default
3228
# We need to explicitly give the uid to use
33-
RUN --mount=type=cache,id=maven-hive-metastore-opa-authorizer-${AUTHORIZER_VERSION},uid=${STACKABLE_USER_UID},target=/stackable/.m2/repository <<EOF
29+
RUN --mount=type=cache,id=maven-hive-metastore-opa-authorizer-${HIVE_VERSION}-${HADOOP_VERSION}-${AUTHORIZER_VERSION},uid=${STACKABLE_USER_UID},target=/stackable/.m2/repository <<EOF
3430
# for moving nested artifacts out of target folder
3531
mkdir -p /stackable/opa-authorizer-bin
3632
# for moving sources out of target folder
@@ -44,20 +40,22 @@ tar -czf /stackable/opa-authorizer-src/hive-metastore-opa-authorizer-${AUTHORIZE
4440
# Make Maven aware of custom Stackable libraries
4541
cp -r /stackable/patched-libs/maven/* /stackable/.m2/repository
4642

47-
# Set version in the output jars(s)
43+
# Set version
4844
mvn versions:set -DnewVersion=${AUTHORIZER_VERSION}
4945

5046
# The if part can be removed once we do no longer support Hive 3.x.x
51-
if [[ "${HIVE_VERSION}" =~ ^3 ]]; then
47+
# Hive 3.1.3 only works with the shaded jar
48+
if [[ "${HIVE_VERSION}" == "3.1.3" ]]; then
5249
mvn clean package -DskipTests -Dhive.version=${HIVE_VERSION} -Dhadoop.version=${HADOOP_VERSION} -f hms-v3/pom.xml
53-
54-
mv hms-v3/target/com.bosch.bdps.hms3-${HIVE_VERSION}-${HADOOP_VERSION}-${AUTHORIZER_VERSION}.jar /stackable/opa-authorizer-bin
50+
mv hms-v3/target/com.bosch.bdps.hms3-${HIVE_VERSION}-${HADOOP_VERSION}-${AUTHORIZER_VERSION}.jar /stackable/opa-authorizer-bin/hms3-${HIVE_VERSION}-${HADOOP_VERSION}-${AUTHORIZER_VERSION}.jar
51+
# Hive 4.0.* only works with the shaded jar
52+
elif [[ "${HIVE_VERSION}" == 4.0.* ]]; then
53+
mvn clean package -DskipTests -Dhive.version=${HIVE_VERSION} -Dhadoop.version=${HADOOP_VERSION} -f hms-v4/pom.xml
54+
mv hms-v4/target/com.bosch.bdps.hms4-${HIVE_VERSION}-${HADOOP_VERSION}-${AUTHORIZER_VERSION}.jar /stackable/opa-authorizer-bin/hms4-${HIVE_VERSION}-${HADOOP_VERSION}-${AUTHORIZER_VERSION}.jar
55+
# Hive > 4.0.x only works with the non shaded jar
5556
else
5657
mvn clean package -DskipTests -Dhive.version=${HIVE_VERSION} -Dhadoop.version=${HADOOP_VERSION} -f hms-v4/pom.xml
57-
58-
# The hive-metastore-opa-authorizer offers a shaded jar from version 4.x.x. Using the shaded jar leads to problems with schema tool at pod startup.
59-
# mv hms-v4/target/com.bosch.bdps.hms4-${HIVE_VERSION}-${HADOOP_VERSION}-dev.jar /stackable/opa-authorizer-bin
60-
mv hms-v4/target/hms4-${AUTHORIZER_VERSION}.jar /stackable/opa-authorizer-bin
58+
mv hms-v4/target/hms4-${AUTHORIZER_VERSION}.jar /stackable/opa-authorizer-bin/hms4-${HIVE_VERSION}-${HADOOP_VERSION}-${AUTHORIZER_VERSION}.jar
6159
fi
6260

6361
# We're removing these to make the intermediate layer smaller

hive/hive-metastore-opa-authorizer/boil-config.toml

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,15 @@ authorizer-version = "v1.0.0"
77
hive-version = "3.1.3"
88
delete-caches = "true"
99

10+
[versions."v1.0.0-hive-4.0.0-hadoop-3.3.6".local-images]
11+
"java-devel" = "11"
12+
"hadoop/hadoop" = "3.3.6"
13+
14+
[versions."v1.0.0-hive-4.0.0-hadoop-3.3.6".build-arguments]
15+
authorizer-version = "v1.0.0"
16+
hive-version = "4.0.0"
17+
delete-caches = "true"
18+
1019
[versions."v1.0.0-hive-4.0.1-hadoop-3.3.6".local-images]
1120
"java-devel" = "11"
1221
"hadoop/hadoop" = "3.3.6"
@@ -24,3 +33,12 @@ delete-caches = "true"
2433
authorizer-version = "v1.0.0"
2534
hive-version = "4.1.0"
2635
delete-caches = "true"
36+
37+
[versions."v1.0.0-hive-4.2.0-hadoop-3.4.2".local-images]
38+
"java-devel" = "21"
39+
"hadoop/hadoop" = "3.4.2"
40+
41+
[versions."v1.0.0-hive-4.2.0-hadoop-3.4.2".build-arguments]
42+
authorizer-version = "v1.0.0"
43+
hive-version = "4.2.0"
44+
delete-caches = "true"
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
From e9b5503e9c952ab691952fb14724ac55a6890420 Mon Sep 17 00:00:00 2001
2+
From: Malte Sander <malte.sander.it@gmail.com>
3+
Date: Mon, 24 Nov 2025 18:05:16 +0100
4+
Subject: Relocate jline in shading plugin
5+
6+
For Hive 4.0.1 the dependency loading is a mess. We explicitly shade jline to avoid a schematool dependency problem:
7+
8+
Exception in thread "main" java.lang.NoSuchMethodError: 'void org.jline.reader.impl.completer.StringsCompleter.<init>(org.jline.reader.Candidate[])'
9+
at sqlline.SqlLineOpts.setOptionCompleters(SqlLineOpts.java:160)
10+
at sqlline.Application.getCommandHandlers(Application.java:294)
11+
at sqlline.SqlLine$Config.<init>(SqlLine.java:1946)
12+
at sqlline.SqlLine.setAppConfig(SqlLine.java:1875)
13+
at sqlline.SqlLine.<init>(SqlLine.java:229)
14+
at org.apache.hadoop.hive.metastore.tools.schematool.MetastoreSchemaTool.execSql(MetastoreSchemaTool.java:313)
15+
16+
This does not affect versions >= 4.1.x since the non shaded jar is used.
17+
---
18+
hms-v4/pom.xml | 6 ++++++
19+
1 file changed, 6 insertions(+)
20+
21+
diff --git a/hms-v4/pom.xml b/hms-v4/pom.xml
22+
index 4ebeac4..b2940ab 100644
23+
--- a/hms-v4/pom.xml
24+
+++ b/hms-v4/pom.xml
25+
@@ -67,6 +67,12 @@
26+
</excludes>
27+
</filter>
28+
</filters>
29+
+ <relocations>
30+
+ <relocation>
31+
+ <pattern>org.jline</pattern>
32+
+ <shadedPattern>com.bosch.bdps.jline</shadedPattern>
33+
+ </relocation>
34+
+ </relocations>
35+
</configuration>
36+
</execution>
37+
</executions>
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
From f7913f5ee840dc277301fcb0f18e04be7849ab5c Mon Sep 17 00:00:00 2001
2+
From: Malte Sander <malte.sander.it@gmail.com>
3+
Date: Tue, 25 Nov 2025 11:29:03 +0100
4+
Subject: Include Postgres driver
5+
6+
---
7+
standalone-metastore/metastore-server/pom.xml | 1 -
8+
standalone-metastore/pom.xml | 1 -
9+
2 files changed, 2 deletions(-)
10+
11+
diff --git a/standalone-metastore/metastore-server/pom.xml b/standalone-metastore/metastore-server/pom.xml
12+
index fa2418f205..0e24b3ebc9 100644
13+
--- a/standalone-metastore/metastore-server/pom.xml
14+
+++ b/standalone-metastore/metastore-server/pom.xml
15+
@@ -338,7 +338,6 @@
16+
<dependency>
17+
<groupId>org.postgresql</groupId>
18+
<artifactId>postgresql</artifactId>
19+
- <optional>true</optional>
20+
</dependency>
21+
<dependency>
22+
<groupId>org.eclipse.jetty</groupId>
23+
diff --git a/standalone-metastore/pom.xml b/standalone-metastore/pom.xml
24+
index bd6f2227b6..0bf9d09c0b 100644
25+
--- a/standalone-metastore/pom.xml
26+
+++ b/standalone-metastore/pom.xml
27+
@@ -435,7 +435,6 @@
28+
<groupId>org.postgresql</groupId>
29+
<artifactId>postgresql</artifactId>
30+
<version>${postgres.version}</version>
31+
- <scope>runtime</scope>
32+
</dependency>
33+
<dependency>
34+
<groupId>org.apache.httpcomponents</groupId>
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
From 8a74bc78eb3ed664e698dd41be25107a495a018e Mon Sep 17 00:00:00 2001
2+
From: Malte Sander <malte.sander.it@gmail.com>
3+
Date: Tue, 25 Nov 2025 11:30:24 +0100
4+
Subject: Include logging dependencies
5+
6+
---
7+
standalone-metastore/pom.xml | 5 +++++
8+
1 file changed, 5 insertions(+)
9+
10+
diff --git a/standalone-metastore/pom.xml b/standalone-metastore/pom.xml
11+
index 0bf9d09c0b..40bd4fcd83 100644
12+
--- a/standalone-metastore/pom.xml
13+
+++ b/standalone-metastore/pom.xml
14+
@@ -582,6 +582,11 @@
15+
<groupId>com.fasterxml.jackson.core</groupId>
16+
<artifactId>jackson-databind</artifactId>
17+
</dependency>
18+
+ <dependency>
19+
+ <!-- Optional log4j dependency to be able to use the XmlLayout -->
20+
+ <groupId>com.fasterxml.jackson.dataformat</groupId>
21+
+ <artifactId>jackson-dataformat-xml</artifactId>
22+
+ </dependency>
23+
</dependencies>
24+
<build>
25+
<pluginManagement>
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
From 4095defdcf9e049dfa5a7c9b279760ea30615465 Mon Sep 17 00:00:00 2001
2+
From: Malte Sander <malte.sander.it@gmail.com>
3+
Date: Tue, 25 Nov 2025 11:31:34 +0100
4+
Subject: Fix CVE-2024-36114
5+
6+
---
7+
standalone-metastore/pom.xml | 6 ++++++
8+
1 file changed, 6 insertions(+)
9+
10+
diff --git a/standalone-metastore/pom.xml b/standalone-metastore/pom.xml
11+
index 40bd4fcd83..34eb45fb96 100644
12+
--- a/standalone-metastore/pom.xml
13+
+++ b/standalone-metastore/pom.xml
14+
@@ -157,6 +157,12 @@
15+
<version>${netty.version}</version>
16+
<classifier>linux-x86_64</classifier>
17+
</dependency>
18+
+ <!-- Mitigate CVE-2024-36114: See https://github.com/stackabletech/vulnerabilities/issues/834 -->
19+
+ <dependency>
20+
+ <groupId>io.airlift</groupId>
21+
+ <artifactId>aircompressor</artifactId>
22+
+ <version>0.27</version>
23+
+ </dependency>
24+
<dependency>
25+
<groupId>org.apache.orc</groupId>
26+
<artifactId>orc-core</artifactId>

0 commit comments

Comments
 (0)