Skip to content

Commit e9d3d48

Browse files
chore: Version CRD and KafkaClusterConfig (#826)
* chore: Remove separate CRD crate * chore: Version KafkaCluster * chore: Move KafkaCluster impl blocks * chore: Version KafkaClusterConfig * chore: make regenerate-nix * Apply suggestions from code review * chore: make regenerate-charts --------- Co-authored-by: Nick Larsen <[email protected]> Co-authored-by: Nick <[email protected]>
1 parent 0191244 commit e9d3d48

23 files changed

+1649
-465
lines changed

Cargo.lock

+278-47
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.nix

+1,148-210
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

+6-4
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
[workspace]
2-
members = ["rust/crd", "rust/operator-binary"]
2+
members = ["rust/operator-binary"]
33
resolver = "2"
44

55
[workspace.package]
@@ -10,20 +10,22 @@ edition = "2021"
1010
repository = "https://github.com/stackabletech/kafka-operator"
1111

1212
[workspace.dependencies]
13+
stackable-versioned = { git = "https://github.com/stackabletech/operator-rs.git", features = ["k8s"], tag = "stackable-versioned-0.5.0" }
14+
stackable-operator = { git = "https://github.com/stackabletech/operator-rs.git", tag = "stackable-operator-0.85.0" }
15+
product-config = { git = "https://github.com/stackabletech/product-config.git", tag = "0.7.0" }
16+
1317
anyhow = "1.0"
1418
built = { version = "0.7", features = ["chrono", "git2"] }
1519
clap = "4.5"
1620
const_format = "0.2"
17-
futures = { version = "0.3" }
21+
futures = "0.3"
1822
indoc = "2.0"
19-
product-config = { git = "https://github.com/stackabletech/product-config.git", tag = "0.7.0" }
2023
rstest = "0.24"
2124
semver = "1.0"
2225
serde = { version = "1.0", features = ["derive"] }
2326
serde_json = "1.0"
2427
serde_yaml = "0.9"
2528
snafu = "0.8"
26-
stackable-operator = { git = "https://github.com/stackabletech/operator-rs.git", tag = "stackable-operator-0.85.0" }
2729
strum = { version = "0.26", features = ["derive"] }
2830
tokio = { version = "1.40", features = ["full"] }
2931
tracing = "0.1"

crate-hashes.json

+3
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

deploy/helm/kafka-operator/crds/crds.yaml

+4-1
Original file line numberDiff line numberDiff line change
@@ -609,7 +609,10 @@ spec:
609609
- roleGroups
610610
type: object
611611
clusterConfig:
612-
description: Kafka settings that affect all roles and role groups. The settings in the `clusterConfig` are cluster wide settings that do not need to be configurable at role or role group level.
612+
description: |-
613+
Kafka settings that affect all roles and role groups.
614+
615+
The settings in the `clusterConfig` are cluster wide settings that do not need to be configurable at role or role group level.
613616
properties:
614617
authentication:
615618
default: []

rust/crd/Cargo.toml

-23
This file was deleted.

rust/operator-binary/Cargo.toml

+6-3
Original file line numberDiff line numberDiff line change
@@ -9,22 +9,25 @@ repository.workspace = true
99
publish = false
1010

1111
[dependencies]
12-
stackable-kafka-crd = { path = "../crd" }
12+
stackable-versioned.workspace = true
13+
stackable-operator.workspace = true
14+
product-config.workspace = true
15+
16+
indoc.workspace = true
1317
anyhow.workspace = true
1418
clap.workspace = true
1519
const_format.workspace = true
1620
futures.workspace = true
17-
product-config.workspace = true
1821
serde_json.workspace = true
1922
serde.workspace = true
2023
snafu.workspace = true
21-
stackable-operator.workspace = true
2224
strum.workspace = true
2325
tokio.workspace = true
2426
tracing.workspace = true
2527

2628
[dev-dependencies]
2729
serde_yaml.workspace = true
30+
rstest.workspace = true
2831

2932
[build-dependencies]
3033
built.workspace = true

rust/operator-binary/src/config/jvm.rs

+8-7
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,14 @@
11
use snafu::{OptionExt, ResultExt, Snafu};
2-
use stackable_kafka_crd::{
3-
KafkaConfig, KafkaConfigFragment, JVM_SECURITY_PROPERTIES_FILE, METRICS_PORT,
4-
STACKABLE_CONFIG_DIR,
5-
};
62
use stackable_operator::{
73
memory::{BinaryMultiple, MemoryQuantity},
84
role_utils::{self, GenericRoleConfig, JavaCommonConfig, JvmArgumentOverrides, Role},
95
};
106

7+
use crate::crd::{
8+
KafkaConfig, KafkaConfigFragment, JVM_SECURITY_PROPERTIES_FILE, METRICS_PORT,
9+
STACKABLE_CONFIG_DIR,
10+
};
11+
1112
const JAVA_HEAP_FACTOR: f32 = 0.8;
1213

1314
#[derive(Snafu, Debug)]
@@ -97,9 +98,8 @@ fn is_heap_jvm_argument(jvm_argument: &str) -> bool {
9798

9899
#[cfg(test)]
99100
mod tests {
100-
use stackable_kafka_crd::{KafkaCluster, KafkaRole};
101-
102101
use super::*;
102+
use crate::crd::{v1alpha1, KafkaRole};
103103

104104
#[test]
105105
fn test_construct_jvm_arguments_defaults() {
@@ -188,7 +188,8 @@ mod tests {
188188
Role<KafkaConfigFragment, GenericRoleConfig, JavaCommonConfig>,
189189
String,
190190
) {
191-
let kafka: KafkaCluster = serde_yaml::from_str(kafka_cluster).expect("illegal test input");
191+
let kafka: v1alpha1::KafkaCluster =
192+
serde_yaml::from_str(kafka_cluster).expect("illegal test input");
192193

193194
let kafka_role = KafkaRole::Broker;
194195
let rolegroup_ref = kafka.broker_rolegroup_ref("default");

rust/crd/src/affinity.rs rust/operator-binary/src/crd/affinity.rs

+4-3
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ use stackable_operator::{
33
k8s_openapi::api::core::v1::PodAntiAffinity,
44
};
55

6-
use crate::{KafkaRole, APP_NAME};
6+
use crate::crd::{KafkaRole, APP_NAME};
77

88
pub fn get_affinity(cluster_name: &str, role: &KafkaRole) -> StackableAffinityFragment {
99
StackableAffinityFragment {
@@ -33,7 +33,7 @@ mod tests {
3333
};
3434

3535
use super::*;
36-
use crate::KafkaCluster;
36+
use crate::crd::v1alpha1;
3737

3838
#[rstest]
3939
#[case(KafkaRole::Broker)]
@@ -54,7 +54,8 @@ mod tests {
5454
replicas: 1
5555
"#;
5656

57-
let kafka: KafkaCluster = serde_yaml::from_str(input).expect("illegal test input");
57+
let kafka: v1alpha1::KafkaCluster =
58+
serde_yaml::from_str(input).expect("illegal test input");
5859
let merged_config = kafka
5960
.merged_config(&role, &role.rolegroup_ref(&kafka, "default"))
6061
.unwrap();

rust/crd/src/authentication.rs rust/operator-binary/src/crd/authentication.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ use stackable_operator::{
66
schemars::{self, JsonSchema},
77
};
88

9-
use crate::ObjectRef;
9+
use crate::crd::ObjectRef;
1010

1111
pub const SUPPORTED_AUTHENTICATION_CLASS_PROVIDERS: [&str; 2] = ["TLS", "Kerberos"];
1212

File renamed without changes.

rust/crd/src/listener.rs rust/operator-binary/src/crd/listener.rs

+8-6
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ use snafu::{OptionExt, Snafu};
77
use stackable_operator::{kube::ResourceExt, utils::cluster_info::KubernetesClusterInfo};
88
use strum::{EnumDiscriminants, EnumString};
99

10-
use crate::{security::KafkaTlsSecurity, KafkaCluster, STACKABLE_LISTENER_BROKER_DIR};
10+
use crate::crd::{security::KafkaTlsSecurity, v1alpha1, STACKABLE_LISTENER_BROKER_DIR};
1111

1212
const LISTENER_LOCAL_ADDRESS: &str = "0.0.0.0";
1313

@@ -96,7 +96,7 @@ impl Display for KafkaListener {
9696
}
9797

9898
pub fn get_kafka_listener_config(
99-
kafka: &KafkaCluster,
99+
kafka: &v1alpha1::KafkaCluster,
100100
kafka_security: &KafkaTlsSecurity,
101101
object_name: &str,
102102
cluster_info: &KubernetesClusterInfo,
@@ -246,7 +246,7 @@ fn node_port_cmd(directory: &str, port_name: &str) -> String {
246246
}
247247

248248
pub fn pod_fqdn(
249-
kafka: &KafkaCluster,
249+
kafka: &v1alpha1::KafkaCluster,
250250
object_name: &str,
251251
cluster_info: &KubernetesClusterInfo,
252252
) -> Result<String, KafkaListenerError> {
@@ -273,7 +273,7 @@ mod tests {
273273
};
274274

275275
use super::*;
276-
use crate::authentication::ResolvedAuthenticationClasses;
276+
use crate::crd::authentication::ResolvedAuthenticationClasses;
277277

278278
fn default_cluster_info() -> KubernetesClusterInfo {
279279
KubernetesClusterInfo {
@@ -303,7 +303,8 @@ mod tests {
303303
serverSecretClass: tls
304304
zookeeperConfigMapName: xyz
305305
"#;
306-
let kafka: KafkaCluster = serde_yaml::from_str(kafka_cluster).expect("illegal test input");
306+
let kafka: v1alpha1::KafkaCluster =
307+
serde_yaml::from_str(kafka_cluster).expect("illegal test input");
307308
let kafka_security = KafkaTlsSecurity::new(
308309
ResolvedAuthenticationClasses::new(vec![AuthenticationClass {
309310
metadata: ObjectMetaBuilder::new().name("auth-class").build(),
@@ -479,7 +480,8 @@ mod tests {
479480
serverSecretClass: tls
480481
zookeeperConfigMapName: xyz
481482
"#;
482-
let kafka: KafkaCluster = serde_yaml::from_str(kafka_cluster).expect("illegal test input");
483+
let kafka: v1alpha1::KafkaCluster =
484+
serde_yaml::from_str(kafka_cluster).expect("illegal test input");
483485
let kafka_security = KafkaTlsSecurity::new(
484486
ResolvedAuthenticationClasses::new(vec![AuthenticationClass {
485487
metadata: ObjectMetaBuilder::new().name("auth-class").build(),

0 commit comments

Comments
 (0)