Skip to content

Commit 764259f

Browse files
committed
chore: Bump stackable-operator to 0.93.0 and bump deps
Bump stackable-operator to 0.93.0 which versions common CRD structs.
1 parent 0d5d567 commit 764259f

File tree

9 files changed

+750
-581
lines changed

9 files changed

+750
-581
lines changed

Cargo.lock

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

Cargo.nix

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

Cargo.toml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,10 @@ edition = "2021"
1010
repository = "https://github.com/stackabletech/listener-operator"
1111

1212
[workspace.dependencies]
13-
stackable-operator = { git = "https://github.com/stackabletech/operator-rs.git", features = ["telemetry", "versioned"], tag = "stackable-operator-0.92.0" }
13+
stackable-operator = { git = "https://github.com/stackabletech/operator-rs.git", features = ["telemetry", "versioned"], tag = "stackable-operator-0.93.0" }
1414

1515
anyhow = "1.0"
16-
built = { version = "0.7", features = ["chrono", "git2"] }
16+
built = { version = "0.8", features = ["chrono", "git2"] }
1717
clap = "4.5"
1818
const_format = "0.2"
1919
futures = { version = "0.3" }
@@ -30,9 +30,9 @@ strum = { version = "0.27", features = ["derive"] }
3030
socket2 = { version = "0.5", features = ["all"] }
3131
tokio = { version = "1.40", features = ["full"] }
3232
tokio-stream = { version = "0.1", features = ["net"] }
33-
tonic = "0.12"
34-
tonic-build = "0.12"
35-
tonic-reflection = "0.12"
33+
tonic = "0.13"
34+
tonic-build = "0.13"
35+
tonic-reflection = "0.13"
3636
tracing = "0.1.40"
3737
walkdir = "2.5.0"
3838

crate-hashes.json

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

rust/operator-binary/src/csi_server/controller.rs

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ use csi_grpc as csi;
22
use serde::{Deserialize, de::IntoDeserializer};
33
use snafu::{OptionExt, ResultExt, Snafu};
44
use stackable_operator::{
5-
commons::listener::{Listener, ListenerClass, ServiceType},
5+
crd::listener,
66
k8s_openapi::api::core::v1::PersistentVolumeClaim,
77
kube::{core::DynamicObject, runtime::reflector::ObjectRef},
88
};
@@ -36,7 +36,9 @@ enum CreateVolumeError {
3636
#[snafu(display("failed to decode volume context"))]
3737
DecodeVolumeContext { source: serde::de::value::Error },
3838
#[snafu(display("{listener} does not specify a listener class"))]
39-
NoListenerClass { listener: ObjectRef<Listener> },
39+
NoListenerClass {
40+
listener: ObjectRef<listener::v1alpha1::Listener>,
41+
},
4042
}
4143

4244
impl From<CreateVolumeError> for Status {
@@ -99,10 +101,10 @@ impl csi::v1::controller_server::Controller for ListenerOperatorController {
99101
ListenerSelector::Listener(listener_name) => {
100102
let listener = self
101103
.client
102-
.get::<Listener>(&listener_name, &ns)
104+
.get::<listener::v1alpha1::Listener>(&listener_name, &ns)
103105
.await
104106
.with_context(|_| GetObjectSnafu {
105-
obj: ObjectRef::<Listener>::new(&listener_name)
107+
obj: ObjectRef::<listener::v1alpha1::Listener>::new(&listener_name)
106108
.within(&ns)
107109
.erase(),
108110
})?;
@@ -118,10 +120,10 @@ impl csi::v1::controller_server::Controller for ListenerOperatorController {
118120
};
119121
let listener_class = self
120122
.client
121-
.get::<ListenerClass>(&listener_class_name, &())
123+
.get::<listener::v1alpha1::ListenerClass>(&listener_class_name, &())
122124
.await
123125
.with_context(|_| GetObjectSnafu {
124-
obj: ObjectRef::<ListenerClass>::new(&listener_class_name)
126+
obj: ObjectRef::<listener::v1alpha1::ListenerClass>::new(&listener_class_name)
125127
.within(&ns)
126128
.erase(),
127129
})?;
@@ -134,15 +136,16 @@ impl csi::v1::controller_server::Controller for ListenerOperatorController {
134136
accessible_topology: match listener_class.spec.service_type {
135137
// Pick the top node (as selected by the CSI client) and "stick" to that
136138
// Since we want clients to have a stable address to connect to
137-
ServiceType::NodePort => request
139+
listener::v1alpha1::ServiceType::NodePort => request
138140
.accessibility_requirements
139141
.unwrap_or_default()
140142
.preferred
141143
.into_iter()
142144
.take(1)
143145
.collect(),
144146
// Load balancers and services of type ClusterIP have no relationship to any particular node, so don't try to be sticky
145-
ServiceType::LoadBalancer | ServiceType::ClusterIP => Vec::new(),
147+
listener::v1alpha1::ServiceType::LoadBalancer
148+
| listener::v1alpha1::ServiceType::ClusterIP => Vec::new(),
146149
},
147150
}),
148151
}))

rust/operator-binary/src/csi_server/node.rs

Lines changed: 47 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,7 @@ use serde::{Deserialize, de::IntoDeserializer};
55
use snafu::{OptionExt, ResultExt, Snafu};
66
use stackable_operator::{
77
builder::meta::OwnerReferenceBuilder,
8-
commons::listener::{
9-
Listener, ListenerClass, ListenerIngress, ListenerPort, ListenerSpec, PodListener,
10-
PodListenerScope, PodListeners, PodListenersSpec,
11-
},
8+
crd::listener,
129
k8s_openapi::api::core::v1::{Node, PersistentVolume, PersistentVolumeClaim, Pod, Volume},
1310
kube::{
1411
core::{DynamicObject, ObjectMeta},
@@ -63,17 +60,19 @@ enum PublishVolumeError {
6360
#[snafu(display("failed to generate {listener}'s PersistentVolume selector"))]
6461
ListenerPvReference {
6562
source: ListenerPersistentVolumeLabelError,
66-
listener: ObjectRef<Listener>,
63+
listener: ObjectRef<listener::v1alpha1::Listener>,
6764
},
6865

6966
#[snafu(display("failed to generate {listener}'s pod selector"))]
7067
ListenerPodSelector {
7168
source: ListenerMountedPodLabelError,
72-
listener: ObjectRef<Listener>,
69+
listener: ObjectRef<listener::v1alpha1::Listener>,
7370
},
7471

7572
#[snafu(display("{listener} has no associated ListenerClass"))]
76-
ListenerHasNoClass { listener: ObjectRef<Listener> },
73+
ListenerHasNoClass {
74+
listener: ObjectRef<listener::v1alpha1::Listener>,
75+
},
7776

7877
#[snafu(display("{pod} has not been scheduled to a node yet"))]
7978
PodHasNoNode { pod: ObjectRef<Pod> },
@@ -86,7 +85,7 @@ enum PublishVolumeError {
8685
#[snafu(display("failed to apply {listener}"))]
8786
ApplyListener {
8887
source: stackable_operator::client::Error,
89-
listener: ObjectRef<Listener>,
88+
listener: ObjectRef<listener::v1alpha1::Listener>,
9089
},
9190

9291
#[snafu(display("failed to add listener label to {pv}"))]
@@ -114,7 +113,7 @@ enum PublishVolumeError {
114113
WritePodListeners {
115114
source: stackable_operator::client::Error,
116115
create_error: stackable_operator::client::Error,
117-
pod_listeners: ObjectRef<PodListeners>,
116+
pod_listeners: ObjectRef<listener::v1alpha1::PodListeners>,
118117
},
119118

120119
#[snafu(display("failed to find Pod volume corresponding for {pvc}"))]
@@ -244,17 +243,17 @@ impl csi::v1::node_server::Node for ListenerOperatorNode {
244243
let listener = match listener_selector {
245244
ListenerSelector::Listener(listener_name) => self
246245
.client
247-
.get::<Listener>(&listener_name, &ns)
246+
.get::<listener::v1alpha1::Listener>(&listener_name, &ns)
248247
.await
249248
.with_context(|_| GetObjectSnafu {
250249
obj: {
251-
ObjectRef::<Listener>::new(&listener_name)
250+
ObjectRef::<listener::v1alpha1::Listener>::new(&listener_name)
252251
.within(&ns)
253252
.erase()
254253
},
255254
})?,
256255
ListenerSelector::ListenerClass(listener_class_name) => {
257-
let listener = Listener {
256+
let listener = listener::v1alpha1::Listener {
258257
metadata: ObjectMeta {
259258
namespace: Some(ns.clone()),
260259
name: Some(pvc_name.to_string()),
@@ -269,15 +268,15 @@ impl csi::v1::node_server::Node for ListenerOperatorNode {
269268
labels: pvc.metadata.labels,
270269
..Default::default()
271270
},
272-
spec: ListenerSpec {
271+
spec: listener::v1alpha1::ListenerSpec {
273272
class_name: Some(listener_class_name),
274273
ports: Some(
275274
pod.spec
276275
.iter()
277276
.flat_map(|ps| &ps.containers)
278277
.flat_map(|ctr| &ctr.ports)
279278
.flatten()
280-
.map(|port| ListenerPort {
279+
.map(|port| listener::v1alpha1::ListenerPort {
281280
name: port
282281
.name
283282
.clone()
@@ -420,9 +419,9 @@ impl csi::v1::node_server::Node for ListenerOperatorNode {
420419
/// (and so can't be found in `Endpoints`).
421420
async fn local_listener_addresses_for_pod(
422421
client: &stackable_operator::client::Client,
423-
listener: &Listener,
422+
listener: &listener::v1alpha1::Listener,
424423
pod: &Pod,
425-
) -> Result<Vec<ListenerIngress>, PublishVolumeError> {
424+
) -> Result<Vec<listener::v1alpha1::ListenerIngress>, PublishVolumeError> {
426425
use publish_volume_error::*;
427426

428427
if let Some(node_ports) = listener
@@ -452,20 +451,23 @@ async fn local_listener_addresses_for_pod(
452451
listener: ObjectRef::from_obj(listener),
453452
})?;
454453
let listener_class = client
455-
.get::<ListenerClass>(listener_class_name, &())
454+
.get::<listener::v1alpha1::ListenerClass>(listener_class_name, &())
456455
.await
457456
.with_context(|_| GetObjectSnafu {
458-
obj: ObjectRef::<ListenerClass>::new(listener_class_name).erase(),
457+
obj: ObjectRef::<listener::v1alpha1::ListenerClass>::new(listener_class_name)
458+
.erase(),
459459
})?;
460460

461461
Ok(node_primary_addresses(&node)
462462
.pick(listener_class.spec.resolve_preferred_address_type())
463-
.map(|(address, address_type)| ListenerIngress {
464-
// nodes: Some(vec![node_name.to_string()]),
465-
address: address.to_string(),
466-
address_type,
467-
ports: node_ports,
468-
})
463+
.map(
464+
|(address, address_type)| listener::v1alpha1::ListenerIngress {
465+
// nodes: Some(vec![node_name.to_string()]),
466+
address: address.to_string(),
467+
address_type,
468+
ports: node_ports,
469+
},
470+
)
469471
.into_iter()
470472
.collect())
471473
} else {
@@ -484,8 +486,8 @@ async fn publish_pod_listener(
484486
pod: &Pod,
485487
pod_name: &str,
486488
pvc_name: &str,
487-
listener: &Listener,
488-
listener_addresses: &[ListenerIngress],
489+
listener: &listener::v1alpha1::Listener,
490+
listener_addresses: &[listener::v1alpha1::ListenerIngress],
489491
) -> Result<(), PublishVolumeError> {
490492
use publish_volume_error::*;
491493
let listener_pod_volume = pod
@@ -508,7 +510,7 @@ async fn publish_pod_listener(
508510
.with_context(|| FindPodVolumeForPvcSnafu {
509511
pvc: ObjectRef::<PersistentVolumeClaim>::new(pvc_name),
510512
})?;
511-
let pod_listeners = PodListeners {
513+
let pod_listeners = listener::v1alpha1::PodListeners {
512514
metadata: ObjectMeta {
513515
name: pod.metadata.uid.as_deref().map(|uid| format!("pod-{uid}")),
514516
namespace: pod.metadata.namespace.clone(),
@@ -520,20 +522,23 @@ async fn publish_pod_listener(
520522
]),
521523
..Default::default()
522524
},
523-
spec: PodListenersSpec {
524-
listeners: [(listener_pod_volume.name.clone(), PodListener {
525-
scope: if listener
526-
.status
527-
.as_ref()
528-
.and_then(|s| s.node_ports.as_ref())
529-
.is_some()
530-
{
531-
PodListenerScope::Node
532-
} else {
533-
PodListenerScope::Cluster
525+
spec: listener::v1alpha1::PodListenersSpec {
526+
listeners: [(
527+
listener_pod_volume.name.clone(),
528+
listener::v1alpha1::PodListener {
529+
scope: if listener
530+
.status
531+
.as_ref()
532+
.and_then(|s| s.node_ports.as_ref())
533+
.is_some()
534+
{
535+
listener::v1alpha1::PodListenerScope::Node
536+
} else {
537+
listener::v1alpha1::PodListenerScope::Cluster
538+
},
539+
ingress_addresses: Some(listener_addresses.to_vec()),
534540
},
535-
ingress_addresses: Some(listener_addresses.to_vec()),
536-
})]
541+
)]
537542
.into(),
538543
},
539544
};
@@ -556,7 +561,7 @@ mod pod_dir {
556561
use std::path::Path;
557562

558563
use snafu::{OptionExt, ResultExt, Snafu};
559-
use stackable_operator::commons::listener::ListenerIngress;
564+
use stackable_operator::crd::listener;
560565

561566
#[derive(Snafu, Debug)]
562567
pub enum Error {
@@ -570,7 +575,7 @@ mod pod_dir {
570575

571576
pub async fn write_listener_info_to_pod_dir(
572577
target_path: &Path,
573-
listener_addrs: &[ListenerIngress],
578+
listener_addrs: &[listener::v1alpha1::ListenerIngress],
574579
) -> Result<(), Error> {
575580
let addrs_path = target_path.join("addresses");
576581
tokio::fs::create_dir_all(&addrs_path).await?;

0 commit comments

Comments
 (0)