From 1ea471cd6a559cf93f50dc0b94548278943cc058 Mon Sep 17 00:00:00 2001 From: Nick Larsen Date: Fri, 25 Sep 2026 13:15:27 +0200 Subject: [PATCH 1/8] chore(signal-processing): Update demo image to use nifi 2.12.0 and jdbc postgres 42.7.13 --- .github/workflows/dev_nifi.yaml | 2 +- demos/signal-processing/Dockerfile-nifi | 6 +++--- stacks/signal-processing/nifi.yaml | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/dev_nifi.yaml b/.github/workflows/dev_nifi.yaml index ccd1d41d..b47e9153 100644 --- a/.github/workflows/dev_nifi.yaml +++ b/.github/workflows/dev_nifi.yaml @@ -30,5 +30,5 @@ jobs: image-name: nifi # TODO (@NickLarsenNZ): Use a versioned image with stackable0.0.0-dev or stackableXX.X.X so that # the demo is reproducable for the release and it will be automatically replaced for the release branch. - image-version: 2.9.0-postgresql + image-version: 2.12.0-postgresql containerfile-path: demos/signal-processing/Dockerfile-nifi diff --git a/demos/signal-processing/Dockerfile-nifi b/demos/signal-processing/Dockerfile-nifi index 744d3241..f040bab6 100644 --- a/demos/signal-processing/Dockerfile-nifi +++ b/demos/signal-processing/Dockerfile-nifi @@ -1,13 +1,13 @@ -FROM oci.stackable.tech/sdp/nifi:2.9.0-stackable0.0.0-dev +FROM oci.stackable.tech/sdp/nifi:2.12.0-stackable0.0.0-dev # This is the postgresql JDBC driver from https://jdbc.postgresql.org/download/ # There appear to be no signatures to validate against 😬 # -# VERSION="42.7.10" +# VERSION="42.7.13" # curl -O "https://jdbc.postgresql.org/download/postgresql-$VERSION.jar" # curl --fail -u "your_username" --upload-file "postgresql-$VERSION.jar" 'https://repo.stackable.tech/repository/misc/jdbc/' # rm "postgresql-$VERSION.jar" # IMPORTANT (@NickLarsenNZ): Changing this version requires a change in the NiFi template (DownloadAndWriteToDB.json) -ARG DRIVER_VERSION="42.7.10" +ARG DRIVER_VERSION="42.7.13" RUN curl --fail -o "/stackable/nifi/postgresql-$DRIVER_VERSION.jar" "https://repo.stackable.tech/repository/misc/jdbc/postgresql-$DRIVER_VERSION.jar" diff --git a/stacks/signal-processing/nifi.yaml b/stacks/signal-processing/nifi.yaml index 6c7d84f6..b6143df0 100644 --- a/stacks/signal-processing/nifi.yaml +++ b/stacks/signal-processing/nifi.yaml @@ -5,10 +5,10 @@ metadata: name: nifi spec: image: - productVersion: 2.9.0 + productVersion: 2.12.0 # TODO (@NickLarsenNZ): Use a versioned image with stackable0.0.0-dev or stackableXX.X.X so that # the demo is reproducable for the release and it will be automatically replaced for the release branch. - custom: oci.stackable.tech/demos/nifi:2.9.0-postgresql + custom: oci.stackable.tech/demos/nifi:2.12.0-postgresql # pullPolicy: IfNotPresent clusterConfig: authentication: From cd674212e5a0009a23cad84f614cbd9130853bfd Mon Sep 17 00:00:00 2001 From: Nick Larsen Date: Fri, 25 Sep 2026 13:21:54 +0200 Subject: [PATCH 2/8] chore(stack/data-lakehouse-iceberg-trino-spark): Update nifi cluster to 2.12.0 --- stacks/data-lakehouse-iceberg-trino-spark/nifi.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/stacks/data-lakehouse-iceberg-trino-spark/nifi.yaml b/stacks/data-lakehouse-iceberg-trino-spark/nifi.yaml index 5fb94dbe..62cba760 100644 --- a/stacks/data-lakehouse-iceberg-trino-spark/nifi.yaml +++ b/stacks/data-lakehouse-iceberg-trino-spark/nifi.yaml @@ -5,7 +5,7 @@ metadata: name: nifi spec: image: - productVersion: 2.9.0 + productVersion: 2.12.0 clusterConfig: authentication: - authenticationClass: nifi-admin-credentials From 8cd298ca639ea5cb816872c1b1f2e10c67e7044d Mon Sep 17 00:00:00 2001 From: Nick Larsen Date: Fri, 25 Sep 2026 13:22:21 +0200 Subject: [PATCH 3/8] chore(stack/nifi-kafka-druid-superset-s3): Update nifi cluster to 2.12.0 --- stacks/nifi-kafka-druid-superset-s3/nifi.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/stacks/nifi-kafka-druid-superset-s3/nifi.yaml b/stacks/nifi-kafka-druid-superset-s3/nifi.yaml index e624ebfb..39c8bff1 100644 --- a/stacks/nifi-kafka-druid-superset-s3/nifi.yaml +++ b/stacks/nifi-kafka-druid-superset-s3/nifi.yaml @@ -5,7 +5,7 @@ metadata: name: nifi spec: image: - productVersion: 2.9.0 + productVersion: 2.12.0 clusterConfig: authentication: - authenticationClass: nifi-admin-credentials From 96c1c7807a4c5322f72069b4038219678a1ab387 Mon Sep 17 00:00:00 2001 From: Nick Larsen Date: Fri, 25 Sep 2026 15:08:50 +0200 Subject: [PATCH 4/8] chore(demo/signal-processing): Update deps --- .../signal-processing/DownloadAndWriteToDB.json | 16 ++++++++-------- demos/signal-processing/requirements.txt | 4 ++-- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/demos/signal-processing/DownloadAndWriteToDB.json b/demos/signal-processing/DownloadAndWriteToDB.json index 018e033c..376f0a80 100644 --- a/demos/signal-processing/DownloadAndWriteToDB.json +++ b/demos/signal-processing/DownloadAndWriteToDB.json @@ -24,7 +24,7 @@ "bundle": { "group": "org.apache.nifi", "artifact": "nifi-standard-nar", - "version": "2.6.0" + "version": "2.12.0" }, "properties": { "Proxy Host": null, @@ -337,7 +337,7 @@ "bundle": { "group": "org.apache.nifi", "artifact": "nifi-standard-nar", - "version": "2.6.0" + "version": "2.12.0" }, "properties": { "put-db-record-allow-multiple-statements": "false", @@ -538,7 +538,7 @@ "bundle": { "group": "org.apache.nifi", "artifact": "nifi-standard-nar", - "version": "2.6.0" + "version": "2.12.0" }, "properties": { "Support Fragmented Transactions": "false", @@ -729,7 +729,7 @@ "bundle": { "group": "org.apache.nifi", "artifact": "nifi-dbcp-service-nar", - "version": "2.6.0" + "version": "2.12.0" }, "properties": { "dbcp-min-idle-conns": "0", @@ -746,7 +746,7 @@ "Database User": "admin", "kerberos-user-service": null, "dbcp-soft-min-evictable-idle-time": "-1", - "database-driver-locations": "/stackable/nifi/postgresql-42.7.10.jar", + "database-driver-locations": "/stackable/nifi/postgresql-42.7.13.jar", "dbcp-max-idle-conns": "8" }, "propertyDescriptors": { @@ -873,7 +873,7 @@ "bundle": { "group": "org.apache.nifi", "artifact": "nifi-standard-services-api-nar", - "version": "2.6.0" + "version": "2.12.0" } } ], @@ -891,7 +891,7 @@ "bundle": { "group": "org.apache.nifi", "artifact": "nifi-record-serialization-services-nar", - "version": "2.6.0" + "version": "2.12.0" }, "properties": { "ignore-csv-header": "false", @@ -1064,7 +1064,7 @@ "bundle": { "group": "org.apache.nifi", "artifact": "nifi-standard-services-api-nar", - "version": "2.6.0" + "version": "2.12.0" } } ], diff --git a/demos/signal-processing/requirements.txt b/demos/signal-processing/requirements.txt index 21dcca7c..c663b521 100644 --- a/demos/signal-processing/requirements.txt +++ b/demos/signal-processing/requirements.txt @@ -1,2 +1,2 @@ -psycopg2-binary==2.9.9 -alibi-detect==0.11.4 +psycopg2-binary==2.9.13 +alibi-detect==0.13.0 From 556cbfb52dadb145c1bd9121c62ce803f884c56f Mon Sep 17 00:00:00 2001 From: Nick Larsen Date: Fri, 25 Sep 2026 15:30:02 +0200 Subject: [PATCH 5/8] chore(demo/signal-processing): Upgrade pyspark-notebook image to python-3.11 --- .../workflows/dev_jupyter-pyspark-with-alibi-detect.yaml | 2 +- demos/signal-processing/Dockerfile-jupyter | 4 +++- docs/modules/demos/pages/signal-processing.adoc | 6 +++--- 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/.github/workflows/dev_jupyter-pyspark-with-alibi-detect.yaml b/.github/workflows/dev_jupyter-pyspark-with-alibi-detect.yaml index 0e332bbf..9a33515c 100644 --- a/.github/workflows/dev_jupyter-pyspark-with-alibi-detect.yaml +++ b/.github/workflows/dev_jupyter-pyspark-with-alibi-detect.yaml @@ -29,5 +29,5 @@ jobs: image-name: jupyter-pyspark-with-alibi-detect # TODO (@NickLarsenNZ): Use a versioned image with stackable0.0.0-dev or stackableXX.X.X so that # the demo is reproducable for the release and it will be automatically replaced for the release branch. - image-version: python-3.9 + image-version: python-3.11 containerfile-path: demos/signal-processing/Dockerfile-jupyter diff --git a/demos/signal-processing/Dockerfile-jupyter b/demos/signal-processing/Dockerfile-jupyter index a21ef4c8..53bd8563 100644 --- a/demos/signal-processing/Dockerfile-jupyter +++ b/demos/signal-processing/Dockerfile-jupyter @@ -1,4 +1,6 @@ -FROM jupyter/pyspark-notebook:python-3.9 +# Find the latest python version here: +# https://hub.docker.com/r/jupyter/pyspark-notebook/tags?name=python- +FROM jupyter/pyspark-notebook:python-3.11 COPY demos/signal-processing/requirements.txt . diff --git a/docs/modules/demos/pages/signal-processing.adoc b/docs/modules/demos/pages/signal-processing.adoc index 1d07c0d4..a8d89369 100644 --- a/docs/modules/demos/pages/signal-processing.adoc +++ b/docs/modules/demos/pages/signal-processing.adoc @@ -90,7 +90,7 @@ To achieve the same imports as mentioned in the previous section, build the Dock [source,console] ---- -FROM jupyter/pyspark-notebook:python-3.9 +FROM jupyter/pyspark-notebook:python-3.11 COPY demos/signal-processing/requirements.txt . @@ -102,8 +102,8 @@ Where `requirements.txt` contains: [source,console] ---- -psycopg2-binary==2.9.9 -alibi-detect==0.11.4 +psycopg2-binary==2.9.13 +alibi-detect==0.13.0 ---- NOTE: Using a custom image requires access to a repository where the image can be made available. From b295b7044dc84aa2ab1a94efc18caa03a7e1dff6 Mon Sep 17 00:00:00 2001 From: Nick Larsen Date: Fri, 25 Sep 2026 15:39:47 +0200 Subject: [PATCH 6/8] chore(demo/signal-processing): Upgrade pyspark-notebook image to python-3.13 --- .github/workflows/dev_jupyter-pyspark-with-alibi-detect.yaml | 2 +- demos/signal-processing/Dockerfile-jupyter | 4 ++-- docs/modules/demos/pages/signal-processing.adoc | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/dev_jupyter-pyspark-with-alibi-detect.yaml b/.github/workflows/dev_jupyter-pyspark-with-alibi-detect.yaml index 9a33515c..dfd0a4f1 100644 --- a/.github/workflows/dev_jupyter-pyspark-with-alibi-detect.yaml +++ b/.github/workflows/dev_jupyter-pyspark-with-alibi-detect.yaml @@ -29,5 +29,5 @@ jobs: image-name: jupyter-pyspark-with-alibi-detect # TODO (@NickLarsenNZ): Use a versioned image with stackable0.0.0-dev or stackableXX.X.X so that # the demo is reproducable for the release and it will be automatically replaced for the release branch. - image-version: python-3.11 + image-version: python-3.13 containerfile-path: demos/signal-processing/Dockerfile-jupyter diff --git a/demos/signal-processing/Dockerfile-jupyter b/demos/signal-processing/Dockerfile-jupyter index 53bd8563..317fe281 100644 --- a/demos/signal-processing/Dockerfile-jupyter +++ b/demos/signal-processing/Dockerfile-jupyter @@ -1,6 +1,6 @@ # Find the latest python version here: -# https://hub.docker.com/r/jupyter/pyspark-notebook/tags?name=python- -FROM jupyter/pyspark-notebook:python-3.11 +# https://quay.io/repository/jupyter/pyspark-notebook?tab=tags (use the tag search) +FROM quay.io/jupyter/pyspark-notebook:python-3.13 COPY demos/signal-processing/requirements.txt . diff --git a/docs/modules/demos/pages/signal-processing.adoc b/docs/modules/demos/pages/signal-processing.adoc index a8d89369..21c95c27 100644 --- a/docs/modules/demos/pages/signal-processing.adoc +++ b/docs/modules/demos/pages/signal-processing.adoc @@ -90,7 +90,7 @@ To achieve the same imports as mentioned in the previous section, build the Dock [source,console] ---- -FROM jupyter/pyspark-notebook:python-3.11 +FROM quay.io/jupyter/pyspark-notebook:python-3.13 COPY demos/signal-processing/requirements.txt . From 815c49ac515b4fe5cd34101fce6f674ac686c19a Mon Sep 17 00:00:00 2001 From: Nick Larsen Date: Wed, 30 Sep 2026 10:04:38 +0200 Subject: [PATCH 7/8] fix(jupyter-pyspark-with-alibi-detect): Drop to Python 3.12 --- .github/workflows/dev_jupyter-pyspark-with-alibi-detect.yaml | 2 +- demos/signal-processing/Dockerfile-jupyter | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/dev_jupyter-pyspark-with-alibi-detect.yaml b/.github/workflows/dev_jupyter-pyspark-with-alibi-detect.yaml index dfd0a4f1..3f2200a8 100644 --- a/.github/workflows/dev_jupyter-pyspark-with-alibi-detect.yaml +++ b/.github/workflows/dev_jupyter-pyspark-with-alibi-detect.yaml @@ -29,5 +29,5 @@ jobs: image-name: jupyter-pyspark-with-alibi-detect # TODO (@NickLarsenNZ): Use a versioned image with stackable0.0.0-dev or stackableXX.X.X so that # the demo is reproducable for the release and it will be automatically replaced for the release branch. - image-version: python-3.13 + image-version: python-3.12 containerfile-path: demos/signal-processing/Dockerfile-jupyter diff --git a/demos/signal-processing/Dockerfile-jupyter b/demos/signal-processing/Dockerfile-jupyter index 317fe281..a0e60208 100644 --- a/demos/signal-processing/Dockerfile-jupyter +++ b/demos/signal-processing/Dockerfile-jupyter @@ -1,6 +1,7 @@ # Find the latest python version here: # https://quay.io/repository/jupyter/pyspark-notebook?tab=tags (use the tag search) -FROM quay.io/jupyter/pyspark-notebook:python-3.13 +# NOTE: This can't run on Python 3.13 until https://github.com/SeldonIO/alibi-detect/issues/963 is resolved +FROM quay.io/jupyter/pyspark-notebook:python-3.12 COPY demos/signal-processing/requirements.txt . From 5c254f932393d033c0c961310b531106068d77c2 Mon Sep 17 00:00:00 2001 From: Nick Larsen Date: Wed, 30 Sep 2026 10:09:41 +0200 Subject: [PATCH 8/8] fix(stacks/signal-processing): Update image version used in demo --- stacks/signal-processing/jupyterhub.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/stacks/signal-processing/jupyterhub.yaml b/stacks/signal-processing/jupyterhub.yaml index 41579c77..f2645a8c 100644 --- a/stacks/signal-processing/jupyterhub.yaml +++ b/stacks/signal-processing/jupyterhub.yaml @@ -41,7 +41,7 @@ options: # TODO (@NickLarsenNZ): Use a versioned image with stackable0.0.0-dev or stackableXX.X.X so that # the demo is reproducable for the release and it will be automatically replaced for the release branch. name: oci.stackable.tech/demos/jupyter-pyspark-with-alibi-detect - tag: python-3.9 + tag: python-3.12 cloudMetadata: # Disable, otherwise we get Back-off restarting failed container block-cloud-metadata in pod: # block-cloud-metadata iptables v1.8.9 (legacy): can't initialize iptables table `filter': Table does not exist (do you need to insmod?)