Skip to content

chore: Pre-release updates for Stackable Release 26.3.0#576

Merged
lfrancke merged 4 commits intomainfrom
chore/sdp-26.3.0
Feb 27, 2026
Merged

chore: Pre-release updates for Stackable Release 26.3.0#576
lfrancke merged 4 commits intomainfrom
chore/sdp-26.3.0

Conversation

@sbernauer
Copy link
Member

@sbernauer sbernauer commented Feb 20, 2026

Part of #575

@sbernauer sbernauer self-assigned this Feb 27, 2026
@sbernauer sbernauer moved this to Development: Waiting for Review in Stackable Engineering Feb 27, 2026
@NickLarsenNZ NickLarsenNZ moved this from Development: Waiting for Review to Development: In Review in Stackable Engineering Feb 27, 2026
@NickLarsenNZ NickLarsenNZ self-requested a review February 27, 2026 08:57
@NickLarsenNZ
Copy link
Member

NickLarsenNZ commented Feb 27, 2026

I'll test this with nifi-operator

./test.sh --extra-vars "shard_repositories=['nifi-operator']"
pushd work/nifi-operator
git diff origin/main..HEAD # inspected this, see diff below
popd
diff
diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml
index b2f9cdd..6713a73 100644
--- a/.github/workflows/build.yaml
+++ b/.github/workflows/build.yaml
@@ -23,9 +23,9 @@ on:
 
 env:
   OPERATOR_NAME: "nifi-operator"
-  RUST_NIGHTLY_TOOLCHAIN_VERSION: "nightly-2025-10-23"
-  NIX_PKG_MANAGER_VERSION: "2.30.0"
-  RUST_TOOLCHAIN_VERSION: "1.89.0"
+  RUST_NIGHTLY_TOOLCHAIN_VERSION: "nightly-2026-02-24"
+  NIX_PKG_MANAGER_VERSION: "2.33.3"
+  RUST_TOOLCHAIN_VERSION: "1.93.0"
   HADOLINT_VERSION: "v2.14.0"
   PYTHON_VERSION: "3.14"
   CARGO_TERM_COLOR: always
@@ -139,7 +139,7 @@ jobs:
           set -euo pipefail
           [ -n "$GITHUB_DEBUG" ] && set -x
 
-          CURRENT_VERSION=$(cargo metadata --format-version 1 --no-deps | jq -r '.packages[0].version')
+          CURRENT_VERSION=$(cargo metadata --format-version 1 --no-deps | jq -r '.packages[] | select(.name == "stackable-nifi-operator") | .version')
 
           if [ "$GITHUB_EVENT_NAME" == 'pull_request' ]; then
             # Include a PR suffix if this workflow is triggered by a PR
diff --git a/.github/workflows/pr_pre-commit.yaml b/.github/workflows/pr_pre-commit.yaml
index acbc963..b45e2da 100644
--- a/.github/workflows/pr_pre-commit.yaml
+++ b/.github/workflows/pr_pre-commit.yaml
@@ -7,11 +7,11 @@ on:
 
 env:
   CARGO_TERM_COLOR: always
-  NIX_PKG_MANAGER_VERSION: "2.30.0"
-  RUST_TOOLCHAIN_VERSION: "nightly-2025-10-23"
+  NIX_PKG_MANAGER_VERSION: "2.33.3"
+  RUST_TOOLCHAIN_VERSION: "nightly-2026-02-24"
   HADOLINT_VERSION: "v2.14.0"
   PYTHON_VERSION: "3.14"
-  JINJA2_CLI_VERSION: "0.8.2"
+  JINJA2_CLI_VERSION: "1.0.0"
 
 jobs:
   pre-commit:
diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml
index e338a62..91fc091 100644
--- a/.pre-commit-config.yaml
+++ b/.pre-commit-config.yaml
@@ -105,7 +105,7 @@ repos:
       - id: cargo-rustfmt
         name: cargo-rustfmt
         language: system
-        entry: cargo +nightly-2025-10-23 fmt --all -- --check
+        entry: cargo +nightly-2026-02-24 fmt --all -- --check
         stages: [pre-commit, pre-merge-commit]
         pass_filenames: false
         files: \.rs$
diff --git a/.vscode/settings.json b/.vscode/settings.json
index b3b3af8..b59f2a5 100644
--- a/.vscode/settings.json
+++ b/.vscode/settings.json
@@ -1,7 +1,7 @@
 {
     "rust-analyzer.rustfmt.overrideCommand": [
         "rustfmt",
-        "+nightly-2025-10-23",
+        "+nightly-2026-02-24",
         "--edition",
         "2024",
         "--"
diff --git a/Cargo.nix b/Cargo.nix
index 66281d6..4921e82 100644
--- a/Cargo.nix
+++ b/Cargo.nix
@@ -1,5 +1,5 @@
 
-# This file was @generated by crate2nix 0.14.1 with the command:
+# This file was @generated by crate2nix 0.15.0 with the command:
 #   "generate"
 # See https://github.com/kolloch/crate2nix for more info.
 
@@ -19,6 +19,11 @@
   # (separated by `,`, prefixed with `+`).
   # Used for conditional compilation based on CPU feature detection.
 , targetFeatures ? []
+  # Additional target attributes for conditional dependencies.
+  # Use this for custom cfg flags that are passed via rustcflags but need to
+  # be known at Nix evaluation time for dependency resolution.
+  # Example: { tracing_unstable = true; } for crates using cfg(tracing_unstable).
+, extraTargetFlags ? {}
   # Whether to perform release builds: longer compile times, faster binaries.
 , release ? true
   # Additional crate2nix configuration if it exists.
@@ -14527,7 +14532,7 @@ rec {
     endian = if platform.parsed.cpu.significantByte.name == "littleEndian" then "little" else "big";
     pointer_width = toString platform.parsed.cpu.bits;
     debug_assertions = false;
-  };
+  } // extraTargetFlags;
 
   registryUrl =
     { registries
@@ -14690,7 +14695,7 @@ rec {
       in
       pkgs.runCommand "${crate.name}-linked"
         {
-          inherit (crate) outputs crateName;
+          inherit (crate) outputs crateName meta;
           passthru = (crate.passthru or { }) // {
             inherit test;
           };
@@ -14902,7 +14907,7 @@ rec {
             crateConfig
             // {
               src =
-                crateConfig.src or (pkgs.fetchurl rec {
+                crateConfig.src or (fetchurl rec {
                   name = "${crateConfig.crateName}-${crateConfig.version}.tar.gz";
                   # https://www.pietroalbini.org/blog/downloading-crates-io/
                   # Not rate-limited, CDN URL.
diff --git a/docker/Dockerfile b/docker/Dockerfile
index 90b9e44..53e2ba9 100644
--- a/docker/Dockerfile
+++ b/docker/Dockerfile
@@ -13,12 +13,12 @@
 
 # We want to automatically use the latest. We also don't tag our images with a version.
 # hadolint ignore=DL3007
-FROM oci.stackable.tech/sdp/ubi9-rust-builder:latest AS builder
+FROM oci.stackable.tech/sdp/ubi10-rust-builder:latest AS builder
 
 
 # We want to automatically use the latest.
 # hadolint ignore=DL3007
-FROM registry.access.redhat.com/ubi9/ubi-minimal:latest AS operator
+FROM registry.access.redhat.com/ubi10/ubi-minimal:latest AS operator
 
 ARG VERSION
 # NOTE (@Techassi): This is required for OpenShift/Red Hat certification
@@ -74,7 +74,7 @@ LABEL org.opencontainers.image.description="Deploy and manage Apache NiFi cluste
 
 # https://docs.openshift.com/container-platform/4.16/openshift_images/create-images.html#defining-image-metadata
 # https://github.com/projectatomic/ContainerApplicationGenericLabels/blob/master/vendor/redhat/labels.md
-LABEL io.openshift.tags="ubi9,stackable,sdp,nifi"
+LABEL io.openshift.tags="ubi10,stackable,sdp,nifi"
 LABEL io.k8s.description="Deploy and manage Apache NiFi clusters."
 LABEL io.k8s.display-name="Stackable Operator for Apache NiFi"
 
diff --git a/nix/sources.json b/nix/sources.json
index f79c2cf..10cce14 100644
--- a/nix/sources.json
+++ b/nix/sources.json
@@ -17,10 +17,10 @@
         "homepage": "",
         "owner": "kolloch",
         "repo": "crate2nix",
-        "rev": "be31feae9a82c225c0fd1bdf978565dc452a483a",
-        "sha256": "14d0ymlrwk7dynv35qcw4xn0dylfpwjmf6f8znflbk2l6fk23l12",
+        "rev": "26b698e804dd32dc5bb1995028fef00cc87d603a",
+        "sha256": "13jgy25yjd1m42xam6zri8vwx0n2qbwvpad2cmkhkrlx913n79ni",
         "type": "tarball",
-        "url": "https://github.com/kolloch/crate2nix/archive/be31feae9a82c225c0fd1bdf978565dc452a483a.tar.gz",
+        "url": "https://github.com/kolloch/crate2nix/archive/26b698e804dd32dc5bb1995028fef00cc87d603a.tar.gz",
         "url_template": "https://github.com/<owner>/<repo>/archive/<rev>.tar.gz"
     },
     "nixpkgs": {
@@ -29,10 +29,10 @@
         "homepage": "",
         "owner": "NixOS",
         "repo": "nixpkgs",
-        "rev": "a7fc11be66bdfb5cdde611ee5ce381c183da8386",
-        "sha256": "0h3gvjbrlkvxhbxpy01n603ixv0pjy19n9kf73rdkchdvqcn70j2",
+        "rev": "26eaeac4e409d7b5a6bf6f90a2a2dc223c78d915",
+        "sha256": "1knl8dcr5ip70a2vbky3q844212crwrvybyw2nhfmgm1mvqry963",
         "type": "tarball",
-        "url": "https://github.com/NixOS/nixpkgs/archive/a7fc11be66bdfb5cdde611ee5ce381c183da8386.tar.gz",
+        "url": "https://github.com/NixOS/nixpkgs/archive/26eaeac4e409d7b5a6bf6f90a2a2dc223c78d915.tar.gz",
         "url_template": "https://github.com/<owner>/<repo>/archive/<rev>.tar.gz"
     }
 }
diff --git a/rust-toolchain.toml b/rust-toolchain.toml
index d8582fd..eecd346 100644
--- a/rust-toolchain.toml
+++ b/rust-toolchain.toml
@@ -1,4 +1,4 @@
 # DO NOT EDIT, this file is generated by operator-templating
 [toolchain]
-channel = "1.89.0"
+channel = "1.93.0"
 profile = "default"
docker build -t nifi-local -f docker/Dockerfile .
Details
[+] Building 105.7s (21/21) FINISHED                                                                                                                                                                                  docker:default
 => [internal] load build definition from Dockerfile                                                                                                                                                                            0.1s
 => => transferring dockerfile: 8.89kB                                                                                                                                                                                          0.0s
 => resolve image config for docker-image://docker.io/docker/dockerfile:1.16.0@sha256:e2dd261f92e4b763d789984f6eab84be66ab4f5f08052316d8eb8f173593acf7                                                                          1.1s
 => CACHED docker-image://docker.io/docker/dockerfile:1.16.0@sha256:e2dd261f92e4b763d789984f6eab84be66ab4f5f08052316d8eb8f173593acf7                                                                                            0.0s
 => [internal] load metadata for registry.access.redhat.com/ubi10/ubi-minimal:latest                                                                                                                                            0.4s
 => [internal] load metadata for oci.stackable.tech/sdp/ubi10-rust-builder:latest                                                                                                                                               0.0s
 => [internal] load .dockerignore                                                                                                                                                                                               0.0s
 => => transferring context: 371B                                                                                                                                                                                               0.0s
 => [internal] load build context                                                                                                                                                                                               0.2s
 => => transferring context: 8.06MB                                                                                                                                                                                             0.2s
 => [internal] preparing inline document                                                                                                                                                                                        0.0s
 => [builder 1/1] FROM oci.stackable.tech/sdp/ubi10-rust-builder:latest                                                                                                                                                         0.0s
 => [operator 1/7] FROM registry.access.redhat.com/ubi10/ubi-minimal:latest@sha256:a74a7a92d3069bfac09c6882087771fc7db59fa9d8e16f14f4e012fe7288554c                                                                             0.0s
 => [internal] preparing inline document                                                                                                                                                                                        0.1s
 => CACHED [operator 2/7] COPY <<EOF /etc/dnf/dnf.conf                                                                                                                                                                          0.0s
 => CACHED [operator 3/7] RUN <<EOF (# Update image and install kerberos client libraries as well as some other utilities...)                                                                                                   0.0s
 => [operator 4/7] COPY <<EOF /README.md                                                                                                                                                                                        0.1s
 => [operator 5/7] COPY LICENSE /licenses/LICENSE                                                                                                                                                                               0.1s
 => CACHED [builder 2/4] ONBUILD WORKDIR /src                                                                                                                                                                                   0.0s
 => [builder 3/4] ONBUILD COPY . /src                                                                                                                                                                                           0.1s
 => [builder 4/4] ONBUILD RUN <<EOF (. "$HOME/.cargo/env"...)                                                                                                                                                                 102.1s
 => [operator 6/7] COPY --from=builder --chown=782252253:0 /app/* /usr/local/bin/                                                                                                                                               0.1s
 => [operator 7/7] COPY deploy/config-spec/properties.yaml /etc/stackable/nifi-operator/config-spec/properties.yaml                                                                                                             0.1s
 => exporting to image                                                                                                                                                                                                          0.2s
 => => exporting layers                                                                                                                                                                                                         0.2s
 => => writing image sha256:6f426552db9aeb83dca19d509a26932297d8e856003bef6d2da717605afccad9                                                                                                                                    0.0s
 => => naming to docker.io/library/nifi-local     
stackablectl operator install commons=0.0.0-dev secret=0.0.0-dev listener=0.0.0-dev
make run-dev

Note

The error has been seen before, and seems benign. We would like to fix this properly, but it falls outside of this PR.
See slack thread.

Details
nifi-operato… │ 2026-02-27T09:30:04.173199Z  INFO handle_certificate_rotation{options=WebhookServerOptions { socket_addr: 0.0.0.0:8443, webhook_namespace: "stackable-operators", webhook_service_name: "nifi-operator" }}:reconcile_crd{options=WebhookServerOptions { socket_addr: 0.0.0.0:8443, webhook_namespace: "stackable-operators", webhook_service_name: "nifi-operator" } name="nificlusters.nifi.stackable.tech" kind="NifiCluster"}: stackable_webhook::webhooks::conversion_webhook: reconciling custom resource definition k8s.crd.kind="NifiCluster" k8s.crd.name="nificlusters.nifi.stackable.tech"
nifi-operato… │ 2026-02-27T09:30:04.375361Z  WARN kube_client::client: Unsuccessful data error parse: 404 page not found
nifi-operato… │ 
nifi-operato… │ 2026-02-27T09:30:04.375665Z ERROR stackable_operator::logging::controller: Failed to reconcile object controller.name="nificluster.nifi.stackable.tech" error=event queue error error.sources=[failed to perform initial object list: ApiError: "404 page not found\n": Failed to parse error data (ErrorResponse { status: "404 Not Found", message: "\"404 page not found\\n\"", reason: "Failed to parse error data", code: 404 }), ApiError: "404 page not found\n": Failed to parse error data (ErrorResponse { status: "404 Not Found", message: "\"404 page not found\\n\"", reason: "Failed to parse error data", code: 404 }), "404 page not found\n": Failed to parse error data]

Copy link
Member

@NickLarsenNZ NickLarsenNZ left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, tested with nifi-operator

@lfrancke lfrancke merged commit dc62e95 into main Feb 27, 2026
1 check passed
@lfrancke lfrancke deleted the chore/sdp-26.3.0 branch February 27, 2026 09:50
@sbernauer sbernauer moved this from Development: In Review to Development: Done in Stackable Engineering Mar 2, 2026
@lfrancke lfrancke moved this from Development: Done to Done in Stackable Engineering Mar 9, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

Development

Successfully merging this pull request may close these issues.

3 participants