Skip to content

Commit 94729a0

Browse files
authored
Revert "feat: Replace ubi9 with ubi10 (#1353)" (#1364)
This reverts commit 2dab4c1 from #1353. Images using HDFS require boost-devel, but it seems to have been dropped from EPEL. Instead of using a mixture of UBI9 and UBI10 we will just revert all of it and reapply next year when the package is available.
1 parent 2dab4c1 commit 94729a0

File tree

22 files changed

+4338
-2921
lines changed

22 files changed

+4338
-2921
lines changed

.github/ISSUE_TEMPLATE/update-base-ubi-rust-builders.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,15 +51,15 @@ Add/Change/Remove anything that isn't applicable anymore
5151
> This list should be completed by the assignee(s), once respective PRs have been merged. Once all items have been
5252
> checked, the issue can be moved into _Development: Done_.
5353
54-
- [ ] Done for [ubi10-rust-builder/Dockerfile](https://github.com/stackabletech/docker-images/blob/main/ubi10-rust-builder/Dockerfile)
54+
- [ ] Done for [ubi9-rust-builder/Dockerfile](https://github.com/stackabletech/docker-images/blob/main/ubi9-rust-builder/Dockerfile)
5555
- [ ] Can build the image locally
5656
- [ ] Can build an operator image
5757

5858
<details>
5959
<summary>Testing instructions</summary>
6060

6161
```shell
62-
docker build -t oci.stackable.tech/sdp/ubi10-rust-builder . -f ubi10-rust-builder/Dockerfile
62+
docker build -t oci.stackable.tech/sdp/ubi9-rust-builder . -f ubi9-rust-builder/Dockerfile
6363

6464
# Change directory into the an operator repository and ensure the image can build
6565
docker build . -f docker/Dockerfile

.github/workflows/mirror.yaml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@ on:
1515
- registry.k8s.io/sig-storage/csi-provisioner
1616
- registry.k8s.io/git-sync/git-sync
1717
- registry-1.docker.io/library/golang
18-
- ghcr.io/astral-sh/uv
1918
image-index-manifest-tag:
2019
description: |
2120
The image index manifest tag, like 1.0.14 or v1.0.14

.github/workflows/ubi-rust-builder.yml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ on:
88
branches:
99
- main
1010
paths:
11+
- ubi9-rust-builder/**
1112
- ubi10-rust-builder/**
1213
- .github/actions/**
1314
- .github/workflows/ubi-rust-builder.yml
@@ -24,7 +25,7 @@ jobs:
2425
fail-fast: false
2526
matrix:
2627
runner: ["ubuntu-latest", "ubicloud-standard-8-arm-ubuntu-2404"]
27-
ubi-version: ["ubi10"]
28+
ubi-version: ["ubi9"]
2829
runs-on: ${{ matrix.runner }}
2930
steps:
3031
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
@@ -64,7 +65,7 @@ jobs:
6465
strategy:
6566
fail-fast: false
6667
matrix:
67-
ubi-version: ["ubi10"]
68+
ubi-version: ["ubi9"]
6869
runs-on: ubuntu-latest
6970
needs: ["build"]
7071
steps:

.scripts/upload_new_maven_version.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,4 +71,4 @@ curl --fail -o /dev/null --progress-bar -u "$NEXUS_USER:$NEXUS_PASSWORD" --uploa
7171

7272
echo "Successfully uploaded Maven $VERSION to Nexus"
7373
echo "https://repo.stackable.tech/service/rest/repository/browse/packages/maven/"
74-
echo "https://github.com/apache/maven/releases/tag/maven-$VERSION"
74+
echo "https://github.com/prometheus/maven/releases/tag/$VERSION"

CHANGELOG.md

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@ All notable changes to this project will be documented in this file.
1717
- airflow: Bump celery version to 5.5.3 for Airflow 3.x ([#1343]).
1818
- testing-tools: refactoring: Split image into multiple images, remove unnecessary components and switch to UBI as base image ([#1354]).
1919
- hive: fixed 4.0.1 shaded hive-metastore-opa-authorizer jar by relocating dependencies ([#1356]).
20-
- Use ubi10 as the base image for all products ([#1353]).
2120

2221
### Removed
2322

@@ -31,7 +30,6 @@ All notable changes to this project will be documented in this file.
3130
[#1356]: https://github.com/stackabletech/docker-images/pull/1356
3231
[#1357]: https://github.com/stackabletech/docker-images/pull/1357
3332
[#1358]: https://github.com/stackabletech/docker-images/pull/1358
34-
[#1353]: https://github.com/stackabletech/docker-images/pull/1353
3533

3634
## [25.11.0] - 2025-11-07
3735

airflow/Dockerfile

Lines changed: 26 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,32 +1,33 @@
11
# syntax=docker/dockerfile:1.16.0@sha256:e2dd261f92e4b763d789984f6eab84be66ab4f5f08052316d8eb8f173593acf7
2-
# check=error=true;skip=InvalidDefaultArgInFrom,SecretsUsedInArgOrEnv
32
# Disabled error checks:
43
# - SecretsUsedInArgOrEnv : OPA_AUTH_MANAGER is a false positive and breaks the build.
4+
# check=error=true;skip=InvalidDefaultArgInFrom,SecretsUsedInArgOrEnv
55

66
ARG GIT_SYNC_VERSION
7-
ARG UV_VERSION
87

98
# For updated versions check https://github.com/kubernetes/git-sync/releases
109
# which should contain a image location (e.g. registry.k8s.io/git-sync/git-sync:v3.6.8)
1110
FROM oci.stackable.tech/sdp/git-sync/git-sync:${GIT_SYNC_VERSION} AS gitsync-image
1211

13-
FROM oci.stackable.tech/sdp/astral-sh/uv:${UV_VERSION} AS uv-image
14-
1512
FROM local-image/shared/statsd-exporter AS statsd_exporter-builder
1613

1714
FROM local-image/vector AS opa-auth-manager-builder
1815

1916
ARG OPA_AUTH_MANAGER
2017
ARG PYTHON_VERSION
21-
ARG STACKABLE_USER_UID
18+
ARG UV_VERSION
2219

2320
COPY airflow/opa-auth-manager/${OPA_AUTH_MANAGER} /tmp/opa-auth-manager
2421

2522
WORKDIR /tmp/opa-auth-manager
2623

27-
COPY --from=uv-image --chown=${STACKABLE_USER_UID}:0 /uv /uvx /bin/
28-
2924
RUN <<EOF
25+
microdnf update
26+
microdnf install python${PYTHON_VERSION}-pip
27+
microdnf clean all
28+
29+
pip${PYTHON_VERSION} install --no-cache-dir uv==${UV_VERSION}
30+
3031
# This folder is required by the tests to set up an sqlite database
3132
mkdir /root/airflow
3233

@@ -42,8 +43,10 @@ ARG PRODUCT_VERSION
4243
ARG PYTHON_VERSION
4344
ARG TARGETARCH
4445
ARG STACKABLE_USER_UID
46+
ARG NODEJS_VERSION
4547
ARG S3FS_VERSION
4648
ARG CYCLONEDX_BOM_VERSION
49+
ARG UV_VERSION
4750

4851
# Airflow "extras" packages are listed here: https://airflow.apache.org/docs/apache-airflow/stable/extra-packages-ref.html
4952
# They evolve over time and thus belong to the version-specific arguments.
@@ -59,9 +62,8 @@ ARG AIRFLOW_EXTRAS_EXTERNAL_SERVICES=""
5962
ARG AIRFLOW_EXTRAS_LOCALLY_INSTALLED_SOFTWARE=""
6063
ARG AIRFLOW_EXTRAS_OTHER=""
6164

62-
COPY --from=uv-image --chown=${STACKABLE_USER_UID}:0 /uv /uvx /bin/
63-
64-
RUN microdnf update && \
65+
RUN microdnf module enable -y nodejs:${NODEJS_VERSION} && \
66+
microdnf update && \
6567
microdnf install \
6668
cyrus-sasl-devel \
6769
# Needed for kerberos
@@ -76,6 +78,10 @@ RUN microdnf update && \
7678
libpq-devel \
7779
openldap-devel \
7880
openssl-devel \
81+
python${PYTHON_VERSION} \
82+
python${PYTHON_VERSION}-devel \
83+
python${PYTHON_VERSION}-pip \
84+
python${PYTHON_VERSION}-wheel \
7985
# The airflow odbc provider can compile without the development files (headers and libraries) (see https://github.com/stackabletech/docker-images/pull/683)
8086
unixODBC \
8187
# Needed for Airflow UI assets
@@ -105,10 +111,14 @@ AIRFLOW_EXTRAS="$AIRFLOW_EXTRAS_CORE,$AIRFLOW_EXTRAS_META,$AIRFLOW_EXTRAS_PROVID
105111
# Removing duplicates
106112
AIRFLOW_EXTRAS=$(echo "$AIRFLOW_EXTRAS" | tr ',' '\n' | awk 'NF > 0 {if (!seen[$0]++) print $0}' | tr '\n' ',' | sed 's/,$//')
107113

108-
uv venv --python "${PYTHON_VERSION}" --system-site-packages /stackable/app
109-
. /stackable/app/bin/activate
114+
python${PYTHON_VERSION} -m venv --system-site-packages /stackable/app
115+
116+
source /stackable/app/bin/activate
110117

111-
# Another project manager
118+
# Upgrade pip to the latest version
119+
# Also install uv to get support for build constraints
120+
pip install --no-cache-dir --upgrade pip
121+
pip install --no-cache-dir uv==${UV_VERSION}
112122
uv tool install hatch
113123

114124
cd "$(/stackable/patchable --images-repo-root=src checkout airflow ${PRODUCT_VERSION})"
@@ -215,15 +225,14 @@ COPY --from=gitsync-image --chown=${STACKABLE_USER_UID}:0 /git-sync ${HOME}/git-
215225

216226
COPY airflow/licenses /licenses
217227

218-
COPY --from=uv-image --chown=${STACKABLE_USER_UID}:0 /uv /uvx /bin/
219-
220228
# Update image and install needed packages
221229
RUN <<EOF
222230
microdnf update
223231

224232
# git: Needed for the gitsync functionality
225233
# openldap: Needed for authentication of clients against LDAP servers
226234
# openssh-clients: We need the openssh libs for the gitsync functionality (the clone target could be e.g. git@github.com:org/repo.git)
235+
# python: Airflow needs Python
227236
microdnf install \
228237
ca-certificates \
229238
cyrus-sasl \
@@ -233,6 +242,8 @@ microdnf install \
233242
openldap-clients \
234243
openssh-clients \
235244
openssl-libs \
245+
openssl-pkcs11 \
246+
python${PYTHON_VERSION} \
236247
socat \
237248
unixODBC
238249
microdnf clean all
@@ -242,13 +253,6 @@ rm -rf /var/cache/yum
242253
# It is used as an init alternative in the entrypoint
243254
curl -o /usr/bin/tini "https://repo.stackable.tech/repository/packages/tini/tini-${TINI_VERSION}-${TARGETARCH}"
244255

245-
# There is currently no way to tell `uv` where to write to, and it assumes `$HOME` for the XDG paths.
246-
export XDG_DATA_HOME=/usr/local/share
247-
export XDG_CACHE_HOME=/var/cache
248-
uv venv --python "${PYTHON_VERSION}" --system-site-packages /stackable/app
249-
chown -R "${STACKABLE_USER_UID}:0" /stackable/app/bin
250-
. /stackable/app/bin/activate
251-
252256
# fix missing permissions
253257
chmod a+x /entrypoint.sh
254258
chmod a+x /run-airflow.sh

airflow/boil-config.toml

Lines changed: 18 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,14 @@ stackable-devel = "1.0.0"
55

66
[versions."2.9.3".build-arguments]
77
python-version = "3.9"
8-
git-sync-version = "v4.4.1" # When changing this version, you will need to use the mirror workflow to get the image into our registry
8+
git-sync-version = "v4.4.1"
99
s3fs-version = "2024.9.0"
1010
cyclonedx-bom-version = "6.0.0"
1111
tini-version = "0.19.0"
12-
uv-version = "0.9.10" # When changing this version, you will need to use the mirror workflow to get the image into our registry
12+
uv-version = "0.7.8"
1313
airflow-extras-other = "async,amazon,celery,cncf.kubernetes,docker,dask,elasticsearch,ftp,grpc,hashicorp,http,ldap,google,google_auth,microsoft.azure,odbc,pandas,postgres,redis,sendgrid,sftp,slack,ssh,statsd,virtualenv,trino"
1414
opa-auth-manager = "airflow-2"
15+
nodejs-version = "20"
1516

1617
[versions."2.10.5".local-images]
1718
"shared/statsd-exporter" = "0.28.0"
@@ -20,13 +21,14 @@ stackable-devel = "1.0.0"
2021

2122
[versions."2.10.5".build-arguments]
2223
python-version = "3.12"
23-
git-sync-version = "v4.4.1" # When changing this version, you will need to use the mirror workflow to get the image into our registry
24+
git-sync-version = "v4.4.1"
2425
s3fs-version = "2024.9.0"
2526
cyclonedx-bom-version = "6.0.0"
2627
tini-version = "0.19.0"
27-
uv-version = "0.9.10" # When changing this version, you will need to use the mirror workflow to get the image into our registry
28+
uv-version = "0.7.8"
2829
airflow-extras-other = "async,amazon,celery,cncf.kubernetes,docker,dask,elasticsearch,ftp,grpc,hashicorp,http,ldap,google,google_auth,microsoft.azure,odbc,pandas,postgres,redis,sendgrid,sftp,slack,ssh,statsd,virtualenv,trino"
2930
opa-auth-manager = "airflow-2"
31+
nodejs-version = "20"
3032

3133
[versions."3.0.1".local-images]
3234
"shared/statsd-exporter" = "0.28.0"
@@ -35,13 +37,14 @@ stackable-devel = "1.0.0"
3537

3638
[versions."3.0.1".build-arguments]
3739
python-version = "3.12"
38-
git-sync-version = "v4.4.1" # When changing this version, you will need to use the mirror workflow to get the image into our registry
40+
git-sync-version = "v4.4.1"
3941
s3fs-version = "2024.9.0"
4042
cyclonedx-bom-version = "6.0.0"
4143
tini-version = "0.19.0"
42-
uv-version = "0.9.10" # When changing this version, you will need to use the mirror workflow to get the image into our registry
44+
uv-version = "0.7.8"
4345
airflow-extras-other = "async,amazon,celery,cncf-kubernetes,docker,elasticsearch,fab,ftp,grpc,hashicorp,http,ldap,google,microsoft-azure,odbc,pandas,postgres,redis,sendgrid,sftp,slack,ssh,statsd,trino"
4446
opa-auth-manager = "airflow-3"
47+
nodejs-version = "20"
4548

4649
[versions."3.0.6".local-images]
4750
"shared/statsd-exporter" = "0.28.0"
@@ -50,29 +53,30 @@ stackable-devel = "1.0.0"
5053

5154
[versions."3.0.6".build-arguments]
5255
python-version = "3.12"
53-
git-sync-version = "v4.4.1" # When changing this version, you will need to use the mirror workflow to get the image into our registry
56+
git-sync-version = "v4.4.1"
5457
s3fs-version = "2024.9.0"
5558
cyclonedx-bom-version = "6.0.0"
5659
tini-version = "0.19.0"
57-
uv-version = "0.9.10" # When changing this version, you will need to use the mirror workflow to get the image into our registry
60+
uv-version = "0.7.8"
5861

5962
# Airflow extras are defined in separate lists to make them easier to check against the links below. The lists will be concatenated and duplicates removed in the dockerfile.
6063
# See https://airflow.apache.org/docs/apache-airflow/3.0.6/extra-packages-ref.html#core-airflow-extras
61-
airflow-extras-core = "async,graphviz,kerberos,otel,sentry,standard,statsd"
64+
airflow-extras-core="async,graphviz,kerberos,otel,sentry,standard,statsd"
6265

6366
# See https://airflow.apache.org/docs/apache-airflow/3.0.6/extra-packages-ref.html#meta-airflow-package-extras
64-
airflow-extras-meta = "aiobotocore,cloudpickle,github-enterprise,google-auth,graphviz,ldap,leveldb,pandas,polars,rabbitmq,s3fs,saml,uv"
67+
airflow-extras-meta="aiobotocore,cloudpickle,github-enterprise,google-auth,graphviz,ldap,leveldb,pandas,polars,rabbitmq,s3fs,saml,uv"
6568

6669
# See https://airflow.apache.org/docs/apache-airflow/3.0.6/extra-packages-ref.html#apache-software-extras
67-
airflow-extras-provider-apache = "apache-beam,apache-cassandra,apache-drill,apache-druid,apache-flink,apache-hdfs,apache-hive,apache-iceberg,apache-impala,apache-kafka,apache-kylin,apache-livy,apache-pig,apache-pinot"
70+
airflow-extras-provider-apache="apache-beam,apache-cassandra,apache-drill,apache-druid,apache-flink,apache-hdfs,apache-hive,apache-iceberg,apache-impala,apache-kafka,apache-kylin,apache-livy,apache-pig,apache-pinot"
6871

6972
# See https://airflow.apache.org/docs/apache-airflow/3.0.6/extra-packages-ref.html#external-services-extras
70-
airflow-extras-external-services = "airbyte,alibaba,apprise,amazon,asana,atlassian-jira,microsoft-azure,cloudant,cohere,databricks,datadog,dbt-cloud,dingding,discord,facebook,github,google,hashicorp,openai,opsgenie,pagerduty,pgvector,pinecone,qdrant,salesforce,sendgrid,segment,slack,snowflake,tableau,tabular,telegram,vertica,weaviate,yandex,ydb,zendesk"
73+
airflow-extras-external-services="airbyte,alibaba,apprise,amazon,asana,atlassian-jira,microsoft-azure,cloudant,cohere,databricks,datadog,dbt-cloud,dingding,discord,facebook,github,google,hashicorp,openai,opsgenie,pagerduty,pgvector,pinecone,qdrant,salesforce,sendgrid,segment,slack,snowflake,tableau,tabular,telegram,vertica,weaviate,yandex,ydb,zendesk"
7174

7275
# See https://airflow.apache.org/docs/apache-airflow/3.0.6/extra-packages-ref.html#locally-installed-software-extras
73-
airflow-extras-locally-installed-software = "arangodb,celery,cncf-kubernetes,docker,edge3,elasticsearch,exasol,fab,git,github,influxdb,jenkins,mongo,microsoft-mssql,neo4j,odbc,openfaas,oracle,postgres,presto,redis,samba,singularity,teradata,trino"
76+
airflow-extras-locally-installed-software="arangodb,celery,cncf-kubernetes,docker,edge3,elasticsearch,exasol,fab,git,github,influxdb,jenkins,mongo,microsoft-mssql,neo4j,odbc,openfaas,oracle,postgres,presto,redis,samba,singularity,teradata,trino"
7477

7578
# See https://airflow.apache.org/docs/apache-airflow/3.0.6/extra-packages-ref.html#other-extras
76-
airflow-extras-other = "common-compat,common-io,common-messaging,common-sql,ftp,grpc,http,imap,jdbc,microsoft-psrp,microsoft-winrm,openlineage,opensearch,papermill,sftp,smtp,sqlite,ssh"
79+
airflow-extras-other="common-compat,common-io,common-messaging,common-sql,ftp,grpc,http,imap,jdbc,microsoft-psrp,microsoft-winrm,openlineage,opensearch,papermill,sftp,smtp,sqlite,ssh"
7780

7881
opa-auth-manager = "airflow-3"
82+
nodejs-version = "20"

druid/Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -131,7 +131,7 @@ LABEL org.opencontainers.image.description="${DESCRIPTION}"
131131

132132
# https://docs.openshift.com/container-platform/4.16/openshift_images/create-images.html#defining-image-metadata
133133
# https://github.com/projectatomic/ContainerApplicationGenericLabels/blob/master/vendor/redhat/labels.md
134-
LABEL io.openshift.tags="ubi10,stackable,druid,sdp"
134+
LABEL io.openshift.tags="ubi9,stackable,druid,sdp"
135135
LABEL io.k8s.description="${DESCRIPTION}"
136136
LABEL io.k8s.display-name="${NAME}"
137137

hbase/Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@ LABEL org.opencontainers.image.description="${DESCRIPTION}"
9292

9393
# https://docs.openshift.com/container-platform/4.16/openshift_images/create-images.html#defining-image-metadata
9494
# https://github.com/projectatomic/ContainerApplicationGenericLabels/blob/master/vendor/redhat/labels.md
95-
LABEL io.openshift.tags="ubi10,stackable,hbase,sdp,nosql"
95+
LABEL io.openshift.tags="ubi9,stackable,hbase,sdp,nosql"
9696
LABEL io.k8s.description="${DESCRIPTION}"
9797
LABEL io.k8s.display-name="${NAME}"
9898

hive/Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -173,7 +173,7 @@ LABEL org.opencontainers.image.description="${DESCRIPTION}"
173173

174174
# https://docs.openshift.com/container-platform/4.16/openshift_images/create-images.html#defining-image-metadata
175175
# https://github.com/projectatomic/ContainerApplicationGenericLabels/blob/master/vendor/redhat/labels.md
176-
LABEL io.openshift.tags="ubi10,stackable,hive,sdp"
176+
LABEL io.openshift.tags="ubi9,stackable,hive,sdp"
177177
LABEL io.k8s.description="${DESCRIPTION}"
178178
LABEL io.k8s.display-name="${NAME}"
179179

0 commit comments

Comments
 (0)