diff --git a/CHANGELOG.md b/CHANGELOG.md index 4bfbf210..24c7e400 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -14,7 +14,7 @@ All notable changes to this project will be documented in this file. ### Changed -- Bump stackable-operator to 0.106.2 and strum to 0.28 ([#906]). +- Bump stackable-operator to 0.108.0 and strum to 0.28 ([#906], [#909]). - Gracefully shutdown all concurrent tasks by forwarding the SIGTERM signal ([#894]). - BREAKING: Reworked authorization config to closer match the Apache NiFi internal authorizer interfaces ([#884]). @@ -23,6 +23,7 @@ All notable changes to this project will be documented in this file. - Also listen on the loopback interface so that k8s port-forwards work ([#870]). - The operator now utilizes the `.spec.clusterConfig.authorization.opa.package` property instead of hard-coding the package name to `nifi` ([#881]). - An `initialAdminUser` can now be provided for file-based authorization (e.g. LDAP) ([#884]). +- Fix "404 page not found" error for the initial object list ([#909]). ### Removed @@ -37,6 +38,7 @@ All notable changes to this project will be documented in this file. [#894]: https://github.com/stackabletech/nifi-operator/pull/894 [#898]: https://github.com/stackabletech/nifi-operator/pull/898 [#906]: https://github.com/stackabletech/nifi-operator/pull/906 +[#909]: https://github.com/stackabletech/nifi-operator/pull/909 ## [25.11.0] - 2025-11-07 diff --git a/Cargo.lock b/Cargo.lock index d9bd3d8a..d0f5daba 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1568,7 +1568,7 @@ dependencies = [ [[package]] name = "k8s-version" version = "0.1.3" -source = "git+https://github.com/stackabletech/operator-rs.git?branch=kube-pre-3.1.0#1918877b52970998cdd717c57ab014970727e1cb" +source = "git+https://github.com/stackabletech/operator-rs.git?branch=kube-pre-3.1.0#a7db2da3a0a26939264290016a0a7aa6ef16fe1e" dependencies = [ "darling", "regex", @@ -2938,7 +2938,7 @@ checksum = "6ce2be8dc25455e1f91df71bfa12ad37d7af1092ae736f3a6cd0e37bc7810596" [[package]] name = "stackable-certs" version = "0.4.0" -source = "git+https://github.com/stackabletech/operator-rs.git?branch=kube-pre-3.1.0#1918877b52970998cdd717c57ab014970727e1cb" +source = "git+https://github.com/stackabletech/operator-rs.git?branch=kube-pre-3.1.0#a7db2da3a0a26939264290016a0a7aa6ef16fe1e" dependencies = [ "const-oid", "ecdsa", @@ -2988,8 +2988,8 @@ dependencies = [ [[package]] name = "stackable-operator" -version = "0.106.2" -source = "git+https://github.com/stackabletech/operator-rs.git?branch=kube-pre-3.1.0#1918877b52970998cdd717c57ab014970727e1cb" +version = "0.108.0" +source = "git+https://github.com/stackabletech/operator-rs.git?branch=kube-pre-3.1.0#a7db2da3a0a26939264290016a0a7aa6ef16fe1e" dependencies = [ "clap", "const_format", @@ -3028,7 +3028,7 @@ dependencies = [ [[package]] name = "stackable-operator-derive" version = "0.3.1" -source = "git+https://github.com/stackabletech/operator-rs.git?branch=kube-pre-3.1.0#1918877b52970998cdd717c57ab014970727e1cb" +source = "git+https://github.com/stackabletech/operator-rs.git?branch=kube-pre-3.1.0#a7db2da3a0a26939264290016a0a7aa6ef16fe1e" dependencies = [ "darling", "proc-macro2", @@ -3039,7 +3039,7 @@ dependencies = [ [[package]] name = "stackable-shared" version = "0.1.0" -source = "git+https://github.com/stackabletech/operator-rs.git?branch=kube-pre-3.1.0#1918877b52970998cdd717c57ab014970727e1cb" +source = "git+https://github.com/stackabletech/operator-rs.git?branch=kube-pre-3.1.0#a7db2da3a0a26939264290016a0a7aa6ef16fe1e" dependencies = [ "jiff", "k8s-openapi", @@ -3055,8 +3055,8 @@ dependencies = [ [[package]] name = "stackable-telemetry" -version = "0.6.1" -source = "git+https://github.com/stackabletech/operator-rs.git?branch=kube-pre-3.1.0#1918877b52970998cdd717c57ab014970727e1cb" +version = "0.6.2" +source = "git+https://github.com/stackabletech/operator-rs.git?branch=kube-pre-3.1.0#a7db2da3a0a26939264290016a0a7aa6ef16fe1e" dependencies = [ "axum", "clap", @@ -3080,7 +3080,7 @@ dependencies = [ [[package]] name = "stackable-versioned" version = "0.8.3" -source = "git+https://github.com/stackabletech/operator-rs.git?branch=kube-pre-3.1.0#1918877b52970998cdd717c57ab014970727e1cb" +source = "git+https://github.com/stackabletech/operator-rs.git?branch=kube-pre-3.1.0#a7db2da3a0a26939264290016a0a7aa6ef16fe1e" dependencies = [ "schemars", "serde", @@ -3093,7 +3093,7 @@ dependencies = [ [[package]] name = "stackable-versioned-macros" version = "0.8.3" -source = "git+https://github.com/stackabletech/operator-rs.git?branch=kube-pre-3.1.0#1918877b52970998cdd717c57ab014970727e1cb" +source = "git+https://github.com/stackabletech/operator-rs.git?branch=kube-pre-3.1.0#a7db2da3a0a26939264290016a0a7aa6ef16fe1e" dependencies = [ "convert_case", "convert_case_extras", @@ -3111,7 +3111,7 @@ dependencies = [ [[package]] name = "stackable-webhook" version = "0.9.0" -source = "git+https://github.com/stackabletech/operator-rs.git?branch=kube-pre-3.1.0#1918877b52970998cdd717c57ab014970727e1cb" +source = "git+https://github.com/stackabletech/operator-rs.git?branch=kube-pre-3.1.0#a7db2da3a0a26939264290016a0a7aa6ef16fe1e" dependencies = [ "arc-swap", "async-trait", diff --git a/Cargo.nix b/Cargo.nix index be86eacf..cc67e4af 100644 --- a/Cargo.nix +++ b/Cargo.nix @@ -5052,8 +5052,8 @@ rec { workspace_member = null; src = pkgs.fetchgit { url = "https://github.com/stackabletech/operator-rs.git"; - rev = "1918877b52970998cdd717c57ab014970727e1cb"; - sha256 = "15pn9nc1prv0fqp19iajy6rbifgzhhpbyk4yvx489yx5gx9n87kn"; + rev = "a7db2da3a0a26939264290016a0a7aa6ef16fe1e"; + sha256 = "1g6m1rhrvj7szgk6xybcbhn77njj599bldzipi0d50sd5z0m9x3i"; }; libName = "k8s_version"; authors = [ @@ -9762,8 +9762,8 @@ rec { workspace_member = null; src = pkgs.fetchgit { url = "https://github.com/stackabletech/operator-rs.git"; - rev = "1918877b52970998cdd717c57ab014970727e1cb"; - sha256 = "15pn9nc1prv0fqp19iajy6rbifgzhhpbyk4yvx489yx5gx9n87kn"; + rev = "a7db2da3a0a26939264290016a0a7aa6ef16fe1e"; + sha256 = "1g6m1rhrvj7szgk6xybcbhn77njj599bldzipi0d50sd5z0m9x3i"; }; libName = "stackable_certs"; authors = [ @@ -9931,7 +9931,7 @@ rec { { name = "stackable-operator"; packageId = "stackable-operator"; - features = [ "telemetry" "versioned" "webhook" ]; + features = [ "webhook" ]; } { name = "strum"; @@ -9973,13 +9973,13 @@ rec { }; "stackable-operator" = rec { crateName = "stackable-operator"; - version = "0.106.2"; + version = "0.108.0"; edition = "2024"; workspace_member = null; src = pkgs.fetchgit { url = "https://github.com/stackabletech/operator-rs.git"; - rev = "1918877b52970998cdd717c57ab014970727e1cb"; - sha256 = "15pn9nc1prv0fqp19iajy6rbifgzhhpbyk4yvx489yx5gx9n87kn"; + rev = "a7db2da3a0a26939264290016a0a7aa6ef16fe1e"; + sha256 = "1g6m1rhrvj7szgk6xybcbhn77njj599bldzipi0d50sd5z0m9x3i"; }; libName = "stackable_operator"; authors = [ @@ -10086,12 +10086,11 @@ rec { { name = "stackable-shared"; packageId = "stackable-shared"; - features = [ "time" "jiff" ]; + features = [ "jiff" ]; } { name = "stackable-telemetry"; packageId = "stackable-telemetry"; - optional = true; features = [ "clap" ]; } { @@ -10135,14 +10134,14 @@ rec { ]; features = { "certs" = [ "dep:stackable-certs" ]; - "default" = [ "telemetry" "versioned" "clap" ]; - "full" = [ "certs" "telemetry" "versioned" "time" "webhook" "clap" ]; - "telemetry" = [ "dep:stackable-telemetry" ]; + "crds" = [ "dep:stackable-versioned" ]; + "default" = [ "crds" ]; + "full" = [ "crds" "certs" "time" "webhook" "kube-ws" ]; + "kube-ws" = [ "kube/ws" ]; "time" = [ "stackable-shared/time" ]; - "versioned" = [ "dep:stackable-versioned" ]; "webhook" = [ "dep:stackable-webhook" ]; }; - resolvedDefaultFeatures = [ "clap" "default" "telemetry" "versioned" "webhook" ]; + resolvedDefaultFeatures = [ "crds" "default" "webhook" ]; }; "stackable-operator-derive" = rec { crateName = "stackable-operator-derive"; @@ -10151,8 +10150,8 @@ rec { workspace_member = null; src = pkgs.fetchgit { url = "https://github.com/stackabletech/operator-rs.git"; - rev = "1918877b52970998cdd717c57ab014970727e1cb"; - sha256 = "15pn9nc1prv0fqp19iajy6rbifgzhhpbyk4yvx489yx5gx9n87kn"; + rev = "a7db2da3a0a26939264290016a0a7aa6ef16fe1e"; + sha256 = "1g6m1rhrvj7szgk6xybcbhn77njj599bldzipi0d50sd5z0m9x3i"; }; procMacro = true; libName = "stackable_operator_derive"; @@ -10186,8 +10185,8 @@ rec { workspace_member = null; src = pkgs.fetchgit { url = "https://github.com/stackabletech/operator-rs.git"; - rev = "1918877b52970998cdd717c57ab014970727e1cb"; - sha256 = "15pn9nc1prv0fqp19iajy6rbifgzhhpbyk4yvx489yx5gx9n87kn"; + rev = "a7db2da3a0a26939264290016a0a7aa6ef16fe1e"; + sha256 = "1g6m1rhrvj7szgk6xybcbhn77njj599bldzipi0d50sd5z0m9x3i"; }; libName = "stackable_shared"; authors = [ @@ -10262,13 +10261,13 @@ rec { }; "stackable-telemetry" = rec { crateName = "stackable-telemetry"; - version = "0.6.1"; + version = "0.6.2"; edition = "2024"; workspace_member = null; src = pkgs.fetchgit { url = "https://github.com/stackabletech/operator-rs.git"; - rev = "1918877b52970998cdd717c57ab014970727e1cb"; - sha256 = "15pn9nc1prv0fqp19iajy6rbifgzhhpbyk4yvx489yx5gx9n87kn"; + rev = "a7db2da3a0a26939264290016a0a7aa6ef16fe1e"; + sha256 = "1g6m1rhrvj7szgk6xybcbhn77njj599bldzipi0d50sd5z0m9x3i"; }; libName = "stackable_telemetry"; authors = [ @@ -10377,8 +10376,8 @@ rec { workspace_member = null; src = pkgs.fetchgit { url = "https://github.com/stackabletech/operator-rs.git"; - rev = "1918877b52970998cdd717c57ab014970727e1cb"; - sha256 = "15pn9nc1prv0fqp19iajy6rbifgzhhpbyk4yvx489yx5gx9n87kn"; + rev = "a7db2da3a0a26939264290016a0a7aa6ef16fe1e"; + sha256 = "1g6m1rhrvj7szgk6xybcbhn77njj599bldzipi0d50sd5z0m9x3i"; }; libName = "stackable_versioned"; authors = [ @@ -10421,8 +10420,8 @@ rec { workspace_member = null; src = pkgs.fetchgit { url = "https://github.com/stackabletech/operator-rs.git"; - rev = "1918877b52970998cdd717c57ab014970727e1cb"; - sha256 = "15pn9nc1prv0fqp19iajy6rbifgzhhpbyk4yvx489yx5gx9n87kn"; + rev = "a7db2da3a0a26939264290016a0a7aa6ef16fe1e"; + sha256 = "1g6m1rhrvj7szgk6xybcbhn77njj599bldzipi0d50sd5z0m9x3i"; }; procMacro = true; libName = "stackable_versioned_macros"; @@ -10489,8 +10488,8 @@ rec { workspace_member = null; src = pkgs.fetchgit { url = "https://github.com/stackabletech/operator-rs.git"; - rev = "1918877b52970998cdd717c57ab014970727e1cb"; - sha256 = "15pn9nc1prv0fqp19iajy6rbifgzhhpbyk4yvx489yx5gx9n87kn"; + rev = "a7db2da3a0a26939264290016a0a7aa6ef16fe1e"; + sha256 = "1g6m1rhrvj7szgk6xybcbhn77njj599bldzipi0d50sd5z0m9x3i"; }; libName = "stackable_webhook"; authors = [ diff --git a/Cargo.toml b/Cargo.toml index 7311157e..4ab5c421 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -11,7 +11,7 @@ repository = "https://github.com/stackabletech/nifi-operator" [workspace.dependencies] product-config = { git = "https://github.com/stackabletech/product-config.git", tag = "0.8.0" } -stackable-operator = { git = "https://github.com/stackabletech/operator-rs.git", branch = "kube-pre-3.1.0", features = ["telemetry", "versioned", "webhook"] } +stackable-operator = { git = "https://github.com/stackabletech/operator-rs.git", branch = "kube-pre-3.1.0", features = ["webhook"] } anyhow = "1.0" built = { version = "0.8", features = ["chrono", "git2"] } diff --git a/crate-hashes.json b/crate-hashes.json index f2456142..2479c831 100644 --- a/crate-hashes.json +++ b/crate-hashes.json @@ -4,14 +4,14 @@ "git+https://github.com/kube-rs/kube-rs?rev=1320643f8ce7f8189e03496ff1329d678d76224c#kube-derive@3.0.1": "1h1d3rjnfmjk2kyd4iafr84a4kyjkzzns5f36w6w60y8ylr8fqmf", "git+https://github.com/kube-rs/kube-rs?rev=1320643f8ce7f8189e03496ff1329d678d76224c#kube-runtime@3.0.1": "1h1d3rjnfmjk2kyd4iafr84a4kyjkzzns5f36w6w60y8ylr8fqmf", "git+https://github.com/kube-rs/kube-rs?rev=1320643f8ce7f8189e03496ff1329d678d76224c#kube@3.0.1": "1h1d3rjnfmjk2kyd4iafr84a4kyjkzzns5f36w6w60y8ylr8fqmf", - "git+https://github.com/stackabletech/operator-rs.git?branch=kube-pre-3.1.0#k8s-version@0.1.3": "15pn9nc1prv0fqp19iajy6rbifgzhhpbyk4yvx489yx5gx9n87kn", - "git+https://github.com/stackabletech/operator-rs.git?branch=kube-pre-3.1.0#stackable-certs@0.4.0": "15pn9nc1prv0fqp19iajy6rbifgzhhpbyk4yvx489yx5gx9n87kn", - "git+https://github.com/stackabletech/operator-rs.git?branch=kube-pre-3.1.0#stackable-operator-derive@0.3.1": "15pn9nc1prv0fqp19iajy6rbifgzhhpbyk4yvx489yx5gx9n87kn", - "git+https://github.com/stackabletech/operator-rs.git?branch=kube-pre-3.1.0#stackable-operator@0.106.2": "15pn9nc1prv0fqp19iajy6rbifgzhhpbyk4yvx489yx5gx9n87kn", - "git+https://github.com/stackabletech/operator-rs.git?branch=kube-pre-3.1.0#stackable-shared@0.1.0": "15pn9nc1prv0fqp19iajy6rbifgzhhpbyk4yvx489yx5gx9n87kn", - "git+https://github.com/stackabletech/operator-rs.git?branch=kube-pre-3.1.0#stackable-telemetry@0.6.1": "15pn9nc1prv0fqp19iajy6rbifgzhhpbyk4yvx489yx5gx9n87kn", - "git+https://github.com/stackabletech/operator-rs.git?branch=kube-pre-3.1.0#stackable-versioned-macros@0.8.3": "15pn9nc1prv0fqp19iajy6rbifgzhhpbyk4yvx489yx5gx9n87kn", - "git+https://github.com/stackabletech/operator-rs.git?branch=kube-pre-3.1.0#stackable-versioned@0.8.3": "15pn9nc1prv0fqp19iajy6rbifgzhhpbyk4yvx489yx5gx9n87kn", - "git+https://github.com/stackabletech/operator-rs.git?branch=kube-pre-3.1.0#stackable-webhook@0.9.0": "15pn9nc1prv0fqp19iajy6rbifgzhhpbyk4yvx489yx5gx9n87kn", + "git+https://github.com/stackabletech/operator-rs.git?branch=kube-pre-3.1.0#k8s-version@0.1.3": "1g6m1rhrvj7szgk6xybcbhn77njj599bldzipi0d50sd5z0m9x3i", + "git+https://github.com/stackabletech/operator-rs.git?branch=kube-pre-3.1.0#stackable-certs@0.4.0": "1g6m1rhrvj7szgk6xybcbhn77njj599bldzipi0d50sd5z0m9x3i", + "git+https://github.com/stackabletech/operator-rs.git?branch=kube-pre-3.1.0#stackable-operator-derive@0.3.1": "1g6m1rhrvj7szgk6xybcbhn77njj599bldzipi0d50sd5z0m9x3i", + "git+https://github.com/stackabletech/operator-rs.git?branch=kube-pre-3.1.0#stackable-operator@0.108.0": "1g6m1rhrvj7szgk6xybcbhn77njj599bldzipi0d50sd5z0m9x3i", + "git+https://github.com/stackabletech/operator-rs.git?branch=kube-pre-3.1.0#stackable-shared@0.1.0": "1g6m1rhrvj7szgk6xybcbhn77njj599bldzipi0d50sd5z0m9x3i", + "git+https://github.com/stackabletech/operator-rs.git?branch=kube-pre-3.1.0#stackable-telemetry@0.6.2": "1g6m1rhrvj7szgk6xybcbhn77njj599bldzipi0d50sd5z0m9x3i", + "git+https://github.com/stackabletech/operator-rs.git?branch=kube-pre-3.1.0#stackable-versioned-macros@0.8.3": "1g6m1rhrvj7szgk6xybcbhn77njj599bldzipi0d50sd5z0m9x3i", + "git+https://github.com/stackabletech/operator-rs.git?branch=kube-pre-3.1.0#stackable-versioned@0.8.3": "1g6m1rhrvj7szgk6xybcbhn77njj599bldzipi0d50sd5z0m9x3i", + "git+https://github.com/stackabletech/operator-rs.git?branch=kube-pre-3.1.0#stackable-webhook@0.9.0": "1g6m1rhrvj7szgk6xybcbhn77njj599bldzipi0d50sd5z0m9x3i", "git+https://github.com/stackabletech/product-config.git?tag=0.8.0#product-config@0.8.0": "1dz70kapm2wdqcr7ndyjji0lhsl98bsq95gnb2lw487wf6yr7987" } \ No newline at end of file diff --git a/deploy/helm/nifi-operator/templates/roles.yaml b/deploy/helm/nifi-operator/templates/roles.yaml index 814e82f5..b90559d5 100644 --- a/deploy/helm/nifi-operator/templates/roles.yaml +++ b/deploy/helm/nifi-operator/templates/roles.yaml @@ -95,6 +95,9 @@ rules: {{- if .Values.maintenance.customResourceDefinitions.maintain }} - create - patch + # Required for startup condition + - list + - watch {{- end }} - apiGroups: - events.k8s.io diff --git a/rust/operator-binary/src/main.rs b/rust/operator-binary/src/main.rs index 46c79f62..0c739b7e 100644 --- a/rust/operator-binary/src/main.rs +++ b/rust/operator-binary/src/main.rs @@ -17,7 +17,7 @@ use stackable_operator::{ core::v1::{ConfigMap, Service}, }, kube::{ - ResourceExt, + CustomResourceExt as _, ResourceExt, core::DeserializeGuard, runtime::{ Controller, @@ -29,7 +29,7 @@ use stackable_operator::{ logging::controller::report_controller_reconciled, shared::yaml::SerializeOptions, telemetry::Tracing, - utils::signal::SignalWatcher, + utils::signal::{self, SignalWatcher}, }; use crate::{ @@ -203,7 +203,12 @@ async fn main() -> anyhow::Result<()> { ) .map(anyhow::Ok); - futures::try_join!(nifi_controller, eos_checker, webhook_server)?; + let delayed_nifi_controller = async { + signal::crd_established(&client, v1alpha1::NifiCluster::crd_name(), None).await?; + nifi_controller.await + }; + + futures::try_join!(delayed_nifi_controller, eos_checker, webhook_server)?; } }