Skip to content

Commit 3b9362e

Browse files
authored
fix: Bump stackable-operator for delayed controller functionality (#1013)
* fix: Bump stackable-operator for delayed controller functionality * chore: Update changelog * chore: Use delayed controller * chore: Update changelog * chore: Use delayed controller * chore(nix): Update crate hashes * fix(helm/roles): Move crd/get permission outside the maintenance gate
1 parent 48e8d2c commit 3b9362e

File tree

7 files changed

+78
-54
lines changed

7 files changed

+78
-54
lines changed

CHANGELOG.md

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,13 @@ All notable changes to this project will be documented in this file.
1414

1515
### Changed
1616

17-
- Bump stackable-operator to 0.106.2, snafu to 0.9, strum to 0.28 ([#1011]).
17+
- Bump stackable-operator to 0.108.0, snafu to 0.9, strum to 0.28 ([#1011], [#1013]).
1818
- Gracefully shutdown all concurrent tasks by forwarding the SIGTERM signal ([#1004]).
1919

20+
### Fixed
21+
22+
- Fix "404 page not found" error for the initial object list ([#1013]).
23+
2024
### Removed
2125

2226
- Remove support for ZooKeeper 3.9.3 ([#1001]).
@@ -28,6 +32,7 @@ All notable changes to this project will be documented in this file.
2832
[#1004]: https://github.com/stackabletech/zookeeper-operator/pull/1004
2933
[#1007]: https://github.com/stackabletech/zookeeper-operator/pull/1007
3034
[#1011]: https://github.com/stackabletech/zookeeper-operator/pull/1011
35+
[#1013]: https://github.com/stackabletech/zookeeper-operator/pull/1013
3136

3237
## [25.11.0] - 2025-11-07
3338

Cargo.lock

Lines changed: 11 additions & 11 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.nix

Lines changed: 27 additions & 28 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ repository = "https://github.com/stackabletech/zookeeper-operator"
1111

1212
[workspace.dependencies]
1313
product-config = { git = "https://github.com/stackabletech/product-config.git", tag = "0.8.0" }
14-
stackable-operator = { git = "https://github.com/stackabletech/operator-rs.git", tag = "stackable-operator-0.106.2", features = ["telemetry", "versioned", "webhook"] }
14+
stackable-operator = { git = "https://github.com/stackabletech/operator-rs.git", tag = "stackable-operator-0.108.0", features = ["webhook"] }
1515

1616
anyhow = "1.0"
1717
built = { version = "0.8", features = ["chrono", "git2"] }

crate-hashes.json

Lines changed: 9 additions & 9 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

deploy/helm/zookeeper-operator/templates/roles.yaml

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -98,13 +98,16 @@ rules:
9898
resources:
9999
- customresourcedefinitions
100100
verbs:
101+
- get
101102
# Required to maintain the CRD. The operator needs to do this, as it needs to enter e.g. it's
102103
# generated certificate in the conversion webhook.
103104
{{- if .Values.maintenance.customResourceDefinitions.maintain }}
104105
- create
105106
- patch
107+
# Required for startup condition
108+
- list
109+
- watch
106110
{{- end }}
107-
- get
108111
- apiGroups:
109112
- authentication.stackable.tech
110113
resources:

rust/operator-binary/src/main.rs

Lines changed: 20 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ use stackable_operator::{
1919
core::v1::{ConfigMap, Service},
2020
},
2121
kube::{
22-
Resource,
22+
CustomResourceExt as _, Resource,
2323
core::DeserializeGuard,
2424
runtime::{
2525
Controller,
@@ -31,7 +31,7 @@ use stackable_operator::{
3131
logging::controller::report_controller_reconciled,
3232
shared::yaml::SerializeOptions,
3333
telemetry::Tracing,
34-
utils::signal::SignalWatcher,
34+
utils::signal::{self, SignalWatcher},
3535
};
3636

3737
use crate::{
@@ -245,8 +245,25 @@ async fn main() -> anyhow::Result<()> {
245245
)
246246
.map(anyhow::Ok);
247247

248+
let delayed_zk_controller = async {
249+
signal::crd_established(&client, v1alpha1::ZookeeperCluster::crd_name(), None)
250+
.await?;
251+
zk_controller.await
252+
};
253+
254+
let delayed_znode_controller = async {
255+
signal::crd_established(&client, v1alpha1::ZookeeperZnode::crd_name(), None)
256+
.await?;
257+
znode_controller.await
258+
};
259+
248260
// kube-runtime's Controller will tokio::spawn each reconciliation, so this only concerns the internal watch machinery
249-
futures::try_join!(zk_controller, znode_controller, eos_checker, webhook_server)?;
261+
futures::try_join!(
262+
delayed_zk_controller,
263+
delayed_znode_controller,
264+
eos_checker,
265+
webhook_server
266+
)?;
250267
}
251268
}
252269

0 commit comments

Comments
 (0)