From badcf4578406378e33682307d7807ca3b94a9271 Mon Sep 17 00:00:00 2001 From: dervoeti Date: Fri, 21 Nov 2025 10:57:21 +0100 Subject: [PATCH 1/3] feat: split testing tools into multiple images, switch to UBI as base, remove unnecessary components --- testing-tools/Dockerfile | 86 +++++----- testing-tools/boil-config.toml | 4 +- testing-tools/hive/Dockerfile | 42 +++++ testing-tools/hive/boil-config.toml | 2 + testing-tools/hive/requirements.txt | 7 + testing-tools/licenses/KEYCLOAK_LICENSE | 202 ------------------------ testing-tools/nifi/Dockerfile | 33 ++++ testing-tools/nifi/boil-config.toml | 2 + testing-tools/nifi/requirements.txt | 2 + testing-tools/python/requirements.txt | 21 --- testing-tools/requirements.txt | 11 ++ testing-tools/trino/Dockerfile | 33 ++++ testing-tools/trino/boil-config.toml | 2 + testing-tools/trino/requirements.txt | 1 + 14 files changed, 182 insertions(+), 266 deletions(-) create mode 100644 testing-tools/hive/Dockerfile create mode 100644 testing-tools/hive/boil-config.toml create mode 100644 testing-tools/hive/requirements.txt delete mode 100644 testing-tools/licenses/KEYCLOAK_LICENSE create mode 100644 testing-tools/nifi/Dockerfile create mode 100644 testing-tools/nifi/boil-config.toml create mode 100644 testing-tools/nifi/requirements.txt delete mode 100644 testing-tools/python/requirements.txt create mode 100644 testing-tools/requirements.txt create mode 100644 testing-tools/trino/Dockerfile create mode 100644 testing-tools/trino/boil-config.toml create mode 100644 testing-tools/trino/requirements.txt diff --git a/testing-tools/Dockerfile b/testing-tools/Dockerfile index 9bb2e64e4..2fd99d9bd 100644 --- a/testing-tools/Dockerfile +++ b/testing-tools/Dockerfile @@ -1,15 +1,14 @@ # syntax=docker/dockerfile:1.16.0@sha256:e2dd261f92e4b763d789984f6eab84be66ab4f5f08052316d8eb8f173593acf7 # check=error=true -# Manifest list digest because of multi architecture builds ( https://www.redhat.com/architect/pull-container-image#:~:text=A%20manifest%20list%20exists%20to,system%20on%20a%20specific%20architecture ) -# https://hub.docker.com/_/python/tags -# In Docker Hub, open up the tag and look for Index Digest. Otherwise do: -# docker pull python:3.12-slim-bullseye and see the digest that appears in the output. -FROM python:3.12-slim-bullseye@sha256:411fa4dcfdce7e7a3057c45662beba9dcd4fa36b2e50a2bfcd6c9333e59bf0db +# Find the latest version at https://catalog.redhat.com/en/software/containers/ubi10/ubi-minimal/66f1504a379b9c2cf23e145c#get-this-image +# IMPORTANT: Make sure to use the "Manifest List Digest" that references the images for multiple architectures +# rather than just the "Image Digest" that references the image for the selected architecture. +FROM registry.access.redhat.com/ubi10/ubi-minimal@sha256:28ec2f4662bdc4b0d4893ef0d8aebf36a5165dfb1d1dc9f46319bd8a03ed3365 ARG PRODUCT_VERSION +ARG PYTHON_VERSION ARG RELEASE_VERSION -ARG KEYCLOAK_VERSION ARG STACKABLE_USER_UID ARG STACKABLE_USER_GID ARG STACKABLE_USER_NAME @@ -25,50 +24,54 @@ LABEL name="Stackable Testing Tools" \ # https://github.com/hadolint/hadolint/wiki/DL4006 SHELL ["/bin/bash", "-euo", "pipefail", "-c"] -# This is needed so that krb5-user installs without prompting for a realm. -ENV DEBIAN_FRONTEND=noninteractive +# We configure microdnf to not install weak dependencies in this file +# Not doing this caused the content of images to become unpredictable because +# based on which packages get updated by `microdnf update` new weak dependencies +# might be installed that were not present earlier (the ubi base image doesn't +# seem to install weak dependencies) +# This also affects the packages that are installed in our Dockerfiles (java as prime +# example). +# https://github.com/stackabletech/docker-images/pull/533 +COPY stackable-base/stackable/dnf.conf /etc/dnf/dnf.conf -COPY testing-tools/python /stackable/python -COPY testing-tools/licenses /licenses +# Default curl configuration to avoid forgetting settings and to declutter the Dockerfiles +COPY stackable-base/stackable/curlrc /root/.curlrc +# Base requirements for all testing-tools images +COPY testing-tools/requirements.txt /stackable/requirements.txt +COPY testing-tools/licenses /licenses RUN < Date: Fri, 21 Nov 2025 12:40:58 +0100 Subject: [PATCH 2/3] chore: changelog --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index e04dce3c5..49eec254f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,6 +13,7 @@ All notable changes to this project will be documented in this file. - airflow: Extend list of providers for 3.0.6 ([#1336]) - airflow: Bump celery version to 5.5.3 for Airflow 3.x ([#1343]). +- testing-tools: refactoring: Split image into multiple images, remove unnecessary components and switch to UBI as base image ([#1354]). ### Removed @@ -22,6 +23,7 @@ All notable changes to this project will be documented in this file. [#1337]: https://github.com/stackabletech/docker-images/pull/1337 [#1343]: https://github.com/stackabletech/docker-images/pull/1343 [#1340]: https://github.com/stackabletech/docker-images/pull/1340 +[#1354]: https://github.com/stackabletech/docker-images/pull/1354 ## [25.11.0] - 2025-11-07 From 7359d29af1248f324cc515fcacbcdada2f4c8c9d Mon Sep 17 00:00:00 2001 From: dervoeti Date: Fri, 21 Nov 2025 12:44:03 +0100 Subject: [PATCH 3/3] chore: pre-commit fix --- testing-tools/boil-config.toml | 2 +- testing-tools/hive/requirements.txt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/testing-tools/boil-config.toml b/testing-tools/boil-config.toml index 7dc02a749..71b7b08b0 100644 --- a/testing-tools/boil-config.toml +++ b/testing-tools/boil-config.toml @@ -1,2 +1,2 @@ [versions."0.3.0".build-arguments] -python-version = "3.12" \ No newline at end of file +python-version = "3.12" diff --git a/testing-tools/hive/requirements.txt b/testing-tools/hive/requirements.txt index 67331f428..9e030b145 100644 --- a/testing-tools/hive/requirements.txt +++ b/testing-tools/hive/requirements.txt @@ -4,4 +4,4 @@ thrift==0.13.0 # gssapi/kerberos/pure-sasl are needed for using the python metastore client with kerberos. gssapi==1.10.1 kerberos==1.3.1 -pure-sasl==0.6.2 \ No newline at end of file +pure-sasl==0.6.2