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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

Status: Development: In Review

Development

Successfully merging this pull request may close these issues.

3 participants