Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
22 commits
Select commit Hold shift + click to select a range
609510d
feat: include source code of components / migrate some components to …
dervoeti May 20, 2025
f401686
chore(deps): update docker/dockerfile docker tag to v1.15.1 (#1120)
stackable-bot May 20, 2025
f3bc6f5
chore: Update pre-commit dependencies (#1123)
lfrancke May 21, 2025
73b5e84
chore(kafka): update images for release 25.7.0 (#1117)
razvan May 21, 2025
b42d023
chore: stop building kcat image (#1124)
dervoeti May 21, 2025
b427968
chore: changelog / hadolint fix
dervoeti May 23, 2025
a7caad3
Merge branch 'main' of https://github.com/stackabletech/docker-images…
dervoeti May 23, 2025
a99d481
Merge branch 'main' of https://github.com/stackabletech/docker-images…
dervoeti May 26, 2025
a11273d
fix: missing patchable config for protobuf
dervoeti May 26, 2025
15c1b43
wip
dervoeti May 31, 2025
ad0f65a
zk custom version
dervoeti Jun 6, 2025
dbfc4a5
Merge branch 'main' of https://github.com/stackabletech/docker-images…
dervoeti Jun 6, 2025
6c1801a
working state, trino and nifi 1 need testing
dervoeti Jun 8, 2025
70c08e6
fix: trino fixes / changed dir name for patched libs
dervoeti Jun 11, 2025
4518d8d
fix: separate phoenix / hbase-operator-tools versions
dervoeti Jun 12, 2025
88e3955
Merge branch 'main' of https://github.com/stackabletech/docker-images…
dervoeti Jun 12, 2025
b08f30f
fix: hbase operator tools / trino 476 / copy libs fix
dervoeti Jun 12, 2025
571c668
Merge branch 'main' of https://github.com/stackabletech/docker-images…
dervoeti Jun 12, 2025
10488e7
chore: rename trino alias in conf.py to be in sync with the hbase one
dervoeti Jun 12, 2025
3938fa8
Merge branch 'main' of https://github.com/stackabletech/docker-images…
dervoeti Jun 13, 2025
25741a9
docs: changelog
dervoeti Jun 13, 2025
d57f5d7
chore: hadolint fixes
dervoeti Jun 13, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -82,6 +82,7 @@ All notable changes to this project will be documented in this file.
- vector: Bump to `0.47.0` ([#1152]).
- zookeeper: backport ZOOKEEPER-4846, ZOOKEEPER-4921, ZOOKEEPER-4925 into Zookeeper 3.9.3 ([#1150]).
- testing-tools: Update base image ([#1165]).
- use custom versions for patched components ([#1068]).

### Fixed

Expand Down Expand Up @@ -146,6 +147,7 @@ All notable changes to this project will be documented in this file.
[#1056]: https://github.com/stackabletech/docker-images/pull/1056
[#1058]: https://github.com/stackabletech/docker-images/pull/1058
[#1060]: https://github.com/stackabletech/docker-images/pull/1060
[#1068]: https://github.com/stackabletech/docker-images/pull/1068
[#1090]: https://github.com/stackabletech/docker-images/pull/1090
[#1091]: https://github.com/stackabletech/docker-images/pull/1091
[#1093]: https://github.com/stackabletech/docker-images/pull/1093
Expand Down
4 changes: 4 additions & 0 deletions conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
druid = importlib.import_module("druid.versions")
hadoop = importlib.import_module("hadoop.versions")
hbase = importlib.import_module("hbase.versions")
hbase_jars = importlib.import_module("hbase.hbase.versions")
hbase_phoenix = importlib.import_module("hbase.phoenix.versions")
hbase_opa_authorizer = importlib.import_module("hbase.hbase-opa-authorizer.versions")
hbase_operator_tools = importlib.import_module("hbase.hbase-operator-tools.versions")
Expand All @@ -33,6 +34,7 @@
superset = importlib.import_module("superset.versions")
trino_cli = importlib.import_module("trino-cli.versions")
trino = importlib.import_module("trino.versions")
trino_jars = importlib.import_module("trino.trino.versions")
trino_storage_connector = importlib.import_module("trino.storage-connector.versions")
kafka_testing_tools = importlib.import_module("kafka-testing-tools.versions")
kcat = importlib.import_module("kafka.kcat.versions")
Expand All @@ -47,6 +49,7 @@
{"name": "druid", "versions": druid.versions},
{"name": "hadoop", "versions": hadoop.versions},
{"name": "hbase", "versions": hbase.versions},
{"name": "hbase/hbase", "versions": hbase_jars.versions},
{"name": "hbase/phoenix", "versions": hbase_phoenix.versions},
{"name": "hbase/hbase-opa-authorizer", "versions": hbase_opa_authorizer.versions},
{"name": "hbase/hbase-operator-tools", "versions": hbase_operator_tools.versions},
Expand All @@ -66,6 +69,7 @@
{"name": "superset", "versions": superset.versions},
{"name": "trino-cli", "versions": trino_cli.versions},
{"name": "trino", "versions": trino.versions},
{"name": "trino/trino", "versions": trino_jars.versions},
{"name": "trino/storage-connector", "versions": trino_storage_connector.versions},
{"name": "kafka-testing-tools", "versions": kafka_testing_tools.versions},
{"name": "kafka/kcat", "versions": kcat.versions},
Expand Down
36 changes: 25 additions & 11 deletions druid/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,14 +1,18 @@
# syntax=docker/dockerfile:1.16.0@sha256:e2dd261f92e4b763d789984f6eab84be66ab4f5f08052316d8eb8f173593acf7
# check=error=true

FROM stackable/image/hadoop AS hadoop-builder

FROM stackable/image/java-devel AS druid-builder

ARG PRODUCT
ARG RELEASE
ARG JACKSON_DATAFORMAT_XML
ARG STAX2_API
ARG WOODSTOX_CORE
ARG AUTHORIZER
ARG STACKABLE_USER_UID
ARG HADOOP

# Setting this to anything other than "true" will keep the cache folders around (e.g. for Maven, NPM etc.)
# This can be used to speed up builds when disk space is of no concern.
Expand All @@ -35,6 +39,7 @@ WORKDIR /stackable
COPY --chown=${STACKABLE_USER_UID}:0 druid/stackable/patches/patchable.toml /stackable/src/druid/stackable/patches/patchable.toml
COPY --chown=${STACKABLE_USER_UID}:0 druid/stackable/patches/${PRODUCT} /stackable/src/druid/stackable/patches/${PRODUCT}

COPY --from=hadoop-builder --chown=${STACKABLE_USER_UID}:0 /stackable/patched-libs /stackable/patched-libs
# Cache mounts are owned by root by default
# We need to explicitly give the uid to use which is hardcoded to "1000" in stackable-base
# The cache id has to include the product version that we are building because otherwise
Expand All @@ -54,24 +59,33 @@ RUN --mount=type=cache,id=maven-${PRODUCT},uid=${STACKABLE_USER_UID},target=/sta
cd "$(cat /tmp/DRUID_SOURCE_DIR)" || exit 1
rm /tmp/DRUID_SOURCE_DIR

ORIGINAL_VERSION=$(mvn help:evaluate -Dexpression=project.version -q -DforceStdout)
NEW_VERSION="${PRODUCT}-stackable${RELEASE}"

mvn versions:set -DnewVersion=$NEW_VERSION

# Make Maven aware of custom Stackable libraries
cp -r /stackable/patched-libs/maven/* /stackable/.m2/repository

# Create snapshot of the source code including custom patches
tar -czf /stackable/druid-${PRODUCT}-src.tar.gz .
tar -czf /stackable/druid-${NEW_VERSION}-src.tar.gz .

mvn \
--batch-mode \
--no-transfer-progress \
clean install \
-Pdist,stackable-bundle-contrib-exts \
-Dmaven.test.skip `# Skip test compilation` \
-Dhadoop.compile.version=${HADOOP}-stackable${RELEASE} \
-DskipTests `# Skip test execution` \
-Dcheckstyle.skip `# Skip checkstyle checks. We dont care if the code is properly formatted, it just wastes time` \
-Dmaven.javadoc.skip=true `# Dont generate javadoc` \
-Dmaven.gitcommitid.skip=true `# The gitcommitid plugin cannot work with git workspaces (ie: patchable)` \
$(if [[ ${PRODUCT} != 30.* ]]; then echo --projects '!quidem-ut'; fi) `# This is just a maven module for tests. https://github.com/apache/druid/pull/16867 added https://raw.githubusercontent.com/kgyrtkirk/datasets/repo/ as a Maven repository, which fails to pull for us (Failed to execute goal on project druid-quidem-ut: Could not resolve dependencies for project org.apache.druid:druid-quidem-ut:jar:33.0.0: com.github.kgyrtkirk.datasets:kttm-nested:jar:0.1 was not found in https://build-repo.stackable.tech/repository/maven-public/). By disabling the maven module we dont pull in this weird dependency...`

mv distribution/target/apache-druid-${PRODUCT}-bin/apache-druid-${PRODUCT} /stackable/
mv distribution/target/bom.json /stackable/apache-druid-${PRODUCT}/apache-druid-${PRODUCT}.cdx.json
rm -rf /stackable/apache-druid-${PRODUCT}-src
mv distribution/target/apache-druid-${NEW_VERSION}-bin/apache-druid-${NEW_VERSION} /stackable/
sed -i "s/${NEW_VERSION}/${ORIGINAL_VERSION}/g" distribution/target/bom.json
mv distribution/target/bom.json /stackable/apache-druid-${NEW_VERSION}/apache-druid-${NEW_VERSION}.cdx.json
rm -rf /stackable/apache-druid-${NEW_VERSION}-src

# We're removing these to make the intermediate layer smaller
# This can be necessary even though it's only a builder image because the GitHub Action Runners only have very limited space available
Expand All @@ -83,11 +97,11 @@ if [ "${DELETE_CACHES}" = "true" ] ; then
rm -rf /stackable/.cache/*
fi

# Do not remove the /stackable/apache-druid-${PRODUCT}/quickstart folder, it is needed for loading the Wikipedia
# Do not remove the /stackable/apache-druid-${NEW_VERSION}/quickstart folder, it is needed for loading the Wikipedia
# testdata in kuttl tests and the getting started guide.

# Install OPA authorizer extension.
curl "https://repo.stackable.tech/repository/packages/druid/druid-opa-authorizer-${AUTHORIZER}.tar.gz" | tar -xzC /stackable/apache-druid-${PRODUCT}/extensions
curl "https://repo.stackable.tech/repository/packages/druid/druid-opa-authorizer-${AUTHORIZER}.tar.gz" | tar -xzC /stackable/apache-druid-${NEW_VERSION}/extensions

# change groups
chmod -R g=u /stackable
Expand Down Expand Up @@ -122,8 +136,8 @@ LABEL io.k8s.description="${DESCRIPTION}"
LABEL io.k8s.display-name="${NAME}"


COPY --chown=${STACKABLE_USER_UID}:0 --from=druid-builder /stackable/apache-druid-${PRODUCT} /stackable/apache-druid-${PRODUCT}
COPY --chown=${STACKABLE_USER_UID}:0 --from=druid-builder /stackable/druid-${PRODUCT}-src.tar.gz /stackable
COPY --chown=${STACKABLE_USER_UID}:0 --from=druid-builder /stackable/apache-druid-${PRODUCT}-stackable${RELEASE} /stackable/apache-druid-${PRODUCT}-stackable${RELEASE}
COPY --chown=${STACKABLE_USER_UID}:0 --from=druid-builder /stackable/druid-${PRODUCT}-stackable${RELEASE}-src.tar.gz /stackable

COPY --chown=${STACKABLE_USER_UID}:0 druid/stackable/bin /stackable/bin
COPY --chown=${STACKABLE_USER_UID}:0 druid/licenses /licenses
Expand All @@ -136,7 +150,7 @@ chown ${STACKABLE_USER_UID}:0 /stackable/package_manifest.txt
chmod g=u /stackable/package_manifest.txt
rm -rf /var/cache/yum

ln -sf /stackable/apache-druid-${PRODUCT} /stackable/druid
ln -sf /stackable/apache-druid-${PRODUCT}-stackable${RELEASE} /stackable/druid
chown -h ${STACKABLE_USER_UID}:0 stackable/druid

# Force to overwrite the existing 'run-druid'
Expand All @@ -145,7 +159,7 @@ chown -h ${STACKABLE_USER_UID}:0 /stackable/druid/bin/run-druid

# fix missing permissions
chmod -R g=u /stackable/bin
chmod g=u /stackable/apache-druid-${PRODUCT}
chmod g=u /stackable/apache-druid-${PRODUCT}-stackable${RELEASE} /stackable/druid-${PRODUCT}-stackable${RELEASE}-src.tar.gz
EOF

# ----------------------------------------
Expand Down
43 changes: 0 additions & 43 deletions druid/stackable/patches/30.0.1/0010-Fix-CVE-2023-34455.patch

This file was deleted.

43 changes: 0 additions & 43 deletions druid/stackable/patches/31.0.1/0010-Fix-CVE-2023-34455.patch

This file was deleted.

43 changes: 0 additions & 43 deletions druid/stackable/patches/33.0.0/0010-Fix-CVE-2023-34455.patch

This file was deleted.

3 changes: 3 additions & 0 deletions druid/versions.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,20 +4,23 @@
# https://druid.apache.org/docs/30.0.1/operations/java/
"java-base": "17",
"java-devel": "17",
"hadoop": "3.3.6",
"authorizer": "0.7.0",
},
{
"product": "31.0.1",
# https://druid.apache.org/docs/31.0.1/operations/java/
"java-base": "17",
"java-devel": "17",
"hadoop": "3.3.6",
"authorizer": "0.7.0",
},
{
"product": "33.0.0",
# https://druid.apache.org/docs/33.0.0/operations/java/
"java-base": "17",
"java-devel": "17",
"hadoop": "3.3.6",
"authorizer": "0.7.0",
},
]
Loading