Skip to content

Commit 4057754

Browse files
committed
Merge remote-tracking branch 'origin/main' into chore/bumps-2026-06-17
2 parents ddd9d47 + a321c41 commit 4057754

38 files changed

Lines changed: 5420 additions & 205 deletions

Cargo.lock

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

Cargo.toml

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ insta = { version = "1.48.0", features = ["glob"] }
4040
hyper = { version = "1.4.1", features = ["full"] }
4141
hyper-util = "0.1.8"
4242
itertools = "0.15.0"
43+
java-properties = "2.0"
4344
json-patch = "4.0.0"
4445
k8s-openapi = { version = "0.28.0", default-features = false, features = ["schemars", "v1_36"] }
4546
# We use rustls instead of openssl for easier portability, e.g. so that we can build stackablectl without the need to vendor (build from source) openssl
@@ -94,9 +95,11 @@ tracing-opentelemetry = "0.33.0"
9495
tracing-subscriber = { version = "0.3.18", features = ["env-filter", "json"] }
9596
trybuild = "1.0.99"
9697
url = { version = "2.5.2", features = ["serde"] }
98+
uuid = "1.23"
9799
winnow = "1.0.3"
98100
x509-cert = { version = "0.2.5", features = ["builder"] }
99-
zeroize = "1.9.0"
101+
xml = "1.3"
102+
zeroize = "1.9"
100103

101104
[workspace.lints.clippy]
102105
# Enable all pedantic lints (with lower priority so individual lints can override)

crates/stackable-operator/CHANGELOG.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,14 @@ All notable changes to this project will be documented in this file.
44

55
## [Unreleased]
66

7+
## [0.112.0] - 2026-06-22
8+
79
### Added
810

911
- Add `Client::{get_feature_gates,get_enabled_feature_gates,get_disabled_feature_gates}` associated
1012
functions to retrieve all, enabled, or disabled feature gates from the Kubernetes apiserver ([#1207], [#1208]).
13+
- Add a new `v2` module that provides more type-safe variants of the existing functions ([#1225]).
14+
- Add documentation for the `roleGroups` field, which now shows up as a description in the generated CRDs ([#1227]).
1115

1216
### Changed
1317

@@ -18,6 +22,8 @@ All notable changes to this project will be documented in this file.
1822
[#1207]: https://github.com/stackabletech/operator-rs/pull/1207
1923
[#1208]: https://github.com/stackabletech/operator-rs/pull/1208
2024
[#1224]: https://github.com/stackabletech/operator-rs/pull/1224
25+
[#1225]: https://github.com/stackabletech/operator-rs/pull/1225
26+
[#1227]: https://github.com/stackabletech/operator-rs/pull/1227
2127

2228
## [0.111.1] - 2026-04-28
2329

crates/stackable-operator/Cargo.toml

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,20 @@
11
[package]
22
name = "stackable-operator"
33
description = "Stackable Operator Framework"
4-
version = "0.111.1"
4+
version = "0.112.0"
55
authors.workspace = true
66
license.workspace = true
77
edition.workspace = true
88
repository.workspace = true
99

1010
[features]
1111
default = ["crds"]
12-
full = ["client-feature-gates", "crds", "certs", "time", "webhook", "kube-ws"]
12+
full = ["client-feature-gates", "crds", "certs", "test-support", "time", "webhook", "kube-ws"]
1313

1414
client-feature-gates = ["dep:winnow"]
1515
crds = ["dep:stackable-versioned"]
1616
certs = ["dep:stackable-certs"]
17+
test-support = []
1718
time = ["stackable-shared/time"]
1819
webhook = ["dep:stackable-webhook"]
1920
kube-ws = ["kube/ws"]
@@ -36,8 +37,9 @@ educe.workspace = true
3637
futures.workspace = true
3738
http.workspace = true
3839
indexmap.workspace = true
40+
java-properties.workspace = true
3941
jiff.workspace = true
40-
json-patch.workspace = true
42+
json-patch = { workspace = true, features = ["schemars"] }
4143
k8s-openapi.workspace = true
4244
kube.workspace = true
4345
product-config.workspace = true
@@ -48,14 +50,17 @@ semver.workspace = true
4850
serde_json.workspace = true
4951
serde_yaml.workspace = true
5052
serde.workspace = true
53+
sha2.workspace = true
5154
snafu.workspace = true
5255
strum.workspace = true
5356
tokio.workspace = true
5457
tracing.workspace = true
5558
tracing-appender.workspace = true
5659
tracing-subscriber.workspace = true
5760
url.workspace = true
61+
uuid.workspace = true
5862
winnow = { workspace = true, optional = true }
63+
xml.workspace = true
5964

6065
[dev-dependencies]
6166
indoc.workspace = true

crates/stackable-operator/crds/DummyCluster.yaml

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1751,6 +1751,21 @@ spec:
17511751
nullable: true
17521752
type: integer
17531753
type: object
1754+
description: |-
1755+
The set of role groups for this role, keyed by their name.
1756+
1757+
A role group is a subset of the replicas of a role that share the same configuration,
1758+
allowing finer-grained control than the role level. This is useful to e.g. schedule groups
1759+
onto different classes of nodes or into different regions, or to run them with different
1760+
settings. Configuration set on a role group is merged on top of the role-level `config`,
1761+
with the more specific role group values taking precedence.
1762+
1763+
Every role needs at least one role group. A role with a single role group conventionally
1764+
names it `default`.
1765+
1766+
Read the
1767+
[roles and role groups concept documentation](https://docs.stackable.tech/home/nightly/concepts/roles-and-role-groups)
1768+
for more details.
17541769
type: object
17551770
required:
17561771
- roleGroups

crates/stackable-operator/crds/Scaler.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,8 +33,8 @@ spec:
3333
3434
Upstream issues:
3535
36-
- https://github.com/kubernetes/kubernetes/issues/105533
37-
- https://github.com/Arnavion/k8s-openapi/issues/136
36+
- <https://github.com/kubernetes/kubernetes/issues/105533>
37+
- <https://github.com/Arnavion/k8s-openapi/issues/136>
3838
format: uint16
3939
maximum: 65535.0
4040
minimum: 0.0

crates/stackable-operator/src/crd/scaler/mod.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,8 @@ pub mod versioned {
3131
///
3232
/// Upstream issues:
3333
///
34-
/// - https://github.com/kubernetes/kubernetes/issues/105533
35-
/// - https://github.com/Arnavion/k8s-openapi/issues/136
34+
/// - <https://github.com/kubernetes/kubernetes/issues/105533>
35+
/// - <https://github.com/Arnavion/k8s-openapi/issues/136>
3636
pub replicas: u16,
3737
}
3838
}

crates/stackable-operator/src/lib.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ pub mod role_utils;
3333
pub mod status;
3434
pub mod test_utils;
3535
pub mod utils;
36+
pub mod v2;
3637
pub mod validation;
3738

3839
// External re-exports

crates/stackable-operator/src/role_utils.rs

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -327,6 +327,20 @@ pub struct Role<
327327
#[serde(default)]
328328
pub role_config: RoleConfig,
329329

330+
/// The set of role groups for this role, keyed by their name.
331+
///
332+
/// A role group is a subset of the replicas of a role that share the same configuration,
333+
/// allowing finer-grained control than the role level. This is useful to e.g. schedule groups
334+
/// onto different classes of nodes or into different regions, or to run them with different
335+
/// settings. Configuration set on a role group is merged on top of the role-level `config`,
336+
/// with the more specific role group values taking precedence.
337+
///
338+
/// Every role needs at least one role group. A role with a single role group conventionally
339+
/// names it `default`.
340+
///
341+
/// Read the
342+
/// [roles and role groups concept documentation](DOCS_BASE_URL_PLACEHOLDER/concepts/roles-and-role-groups)
343+
/// for more details.
330344
pub role_groups: HashMap<String, RoleGroup<Config, CommonConfig, ConfigOverrides>>,
331345
}
332346

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
pub mod meta;
2+
pub mod pdb;
3+
pub mod pod;
4+
pub mod service;
5+
pub mod statefulset;

0 commit comments

Comments
 (0)