@@ -5,10 +5,7 @@ use serde::{Deserialize, de::IntoDeserializer};
5
5
use snafu:: { OptionExt , ResultExt , Snafu } ;
6
6
use stackable_operator:: {
7
7
builder:: meta:: OwnerReferenceBuilder ,
8
- commons:: listener:: {
9
- Listener , ListenerClass , ListenerIngress , ListenerPort , ListenerSpec , PodListener ,
10
- PodListenerScope , PodListeners , PodListenersSpec ,
11
- } ,
8
+ crd:: listener,
12
9
k8s_openapi:: api:: core:: v1:: { Node , PersistentVolume , PersistentVolumeClaim , Pod , Volume } ,
13
10
kube:: {
14
11
core:: { DynamicObject , ObjectMeta } ,
@@ -63,17 +60,19 @@ enum PublishVolumeError {
63
60
#[ snafu( display( "failed to generate {listener}'s PersistentVolume selector" ) ) ]
64
61
ListenerPvReference {
65
62
source : ListenerPersistentVolumeLabelError ,
66
- listener : ObjectRef < Listener > ,
63
+ listener : ObjectRef < listener :: v1alpha1 :: Listener > ,
67
64
} ,
68
65
69
66
#[ snafu( display( "failed to generate {listener}'s pod selector" ) ) ]
70
67
ListenerPodSelector {
71
68
source : ListenerMountedPodLabelError ,
72
- listener : ObjectRef < Listener > ,
69
+ listener : ObjectRef < listener :: v1alpha1 :: Listener > ,
73
70
} ,
74
71
75
72
#[ snafu( display( "{listener} has no associated ListenerClass" ) ) ]
76
- ListenerHasNoClass { listener : ObjectRef < Listener > } ,
73
+ ListenerHasNoClass {
74
+ listener : ObjectRef < listener:: v1alpha1:: Listener > ,
75
+ } ,
77
76
78
77
#[ snafu( display( "{pod} has not been scheduled to a node yet" ) ) ]
79
78
PodHasNoNode { pod : ObjectRef < Pod > } ,
@@ -86,7 +85,7 @@ enum PublishVolumeError {
86
85
#[ snafu( display( "failed to apply {listener}" ) ) ]
87
86
ApplyListener {
88
87
source : stackable_operator:: client:: Error ,
89
- listener : ObjectRef < Listener > ,
88
+ listener : ObjectRef < listener :: v1alpha1 :: Listener > ,
90
89
} ,
91
90
92
91
#[ snafu( display( "failed to add listener label to {pv}" ) ) ]
@@ -114,7 +113,7 @@ enum PublishVolumeError {
114
113
WritePodListeners {
115
114
source : stackable_operator:: client:: Error ,
116
115
create_error : stackable_operator:: client:: Error ,
117
- pod_listeners : ObjectRef < PodListeners > ,
116
+ pod_listeners : ObjectRef < listener :: v1alpha1 :: PodListeners > ,
118
117
} ,
119
118
120
119
#[ snafu( display( "failed to find Pod volume corresponding for {pvc}" ) ) ]
@@ -244,17 +243,17 @@ impl csi::v1::node_server::Node for ListenerOperatorNode {
244
243
let listener = match listener_selector {
245
244
ListenerSelector :: Listener ( listener_name) => self
246
245
. client
247
- . get :: < Listener > ( & listener_name, & ns)
246
+ . get :: < listener :: v1alpha1 :: Listener > ( & listener_name, & ns)
248
247
. await
249
248
. with_context ( |_| GetObjectSnafu {
250
249
obj : {
251
- ObjectRef :: < Listener > :: new ( & listener_name)
250
+ ObjectRef :: < listener :: v1alpha1 :: Listener > :: new ( & listener_name)
252
251
. within ( & ns)
253
252
. erase ( )
254
253
} ,
255
254
} ) ?,
256
255
ListenerSelector :: ListenerClass ( listener_class_name) => {
257
- let listener = Listener {
256
+ let listener = listener :: v1alpha1 :: Listener {
258
257
metadata : ObjectMeta {
259
258
namespace : Some ( ns. clone ( ) ) ,
260
259
name : Some ( pvc_name. to_string ( ) ) ,
@@ -269,15 +268,15 @@ impl csi::v1::node_server::Node for ListenerOperatorNode {
269
268
labels : pvc. metadata . labels ,
270
269
..Default :: default ( )
271
270
} ,
272
- spec : ListenerSpec {
271
+ spec : listener :: v1alpha1 :: ListenerSpec {
273
272
class_name : Some ( listener_class_name) ,
274
273
ports : Some (
275
274
pod. spec
276
275
. iter ( )
277
276
. flat_map ( |ps| & ps. containers )
278
277
. flat_map ( |ctr| & ctr. ports )
279
278
. flatten ( )
280
- . map ( |port| ListenerPort {
279
+ . map ( |port| listener :: v1alpha1 :: ListenerPort {
281
280
name : port
282
281
. name
283
282
. clone ( )
@@ -420,9 +419,9 @@ impl csi::v1::node_server::Node for ListenerOperatorNode {
420
419
/// (and so can't be found in `Endpoints`).
421
420
async fn local_listener_addresses_for_pod (
422
421
client : & stackable_operator:: client:: Client ,
423
- listener : & Listener ,
422
+ listener : & listener :: v1alpha1 :: Listener ,
424
423
pod : & Pod ,
425
- ) -> Result < Vec < ListenerIngress > , PublishVolumeError > {
424
+ ) -> Result < Vec < listener :: v1alpha1 :: ListenerIngress > , PublishVolumeError > {
426
425
use publish_volume_error:: * ;
427
426
428
427
if let Some ( node_ports) = listener
@@ -452,20 +451,23 @@ async fn local_listener_addresses_for_pod(
452
451
listener : ObjectRef :: from_obj ( listener) ,
453
452
} ) ?;
454
453
let listener_class = client
455
- . get :: < ListenerClass > ( listener_class_name, & ( ) )
454
+ . get :: < listener :: v1alpha1 :: ListenerClass > ( listener_class_name, & ( ) )
456
455
. await
457
456
. with_context ( |_| GetObjectSnafu {
458
- obj : ObjectRef :: < ListenerClass > :: new ( listener_class_name) . erase ( ) ,
457
+ obj : ObjectRef :: < listener:: v1alpha1:: ListenerClass > :: new ( listener_class_name)
458
+ . erase ( ) ,
459
459
} ) ?;
460
460
461
461
Ok ( node_primary_addresses ( & node)
462
462
. 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
+ )
469
471
. into_iter ( )
470
472
. collect ( ) )
471
473
} else {
@@ -484,8 +486,8 @@ async fn publish_pod_listener(
484
486
pod : & Pod ,
485
487
pod_name : & str ,
486
488
pvc_name : & str ,
487
- listener : & Listener ,
488
- listener_addresses : & [ ListenerIngress ] ,
489
+ listener : & listener :: v1alpha1 :: Listener ,
490
+ listener_addresses : & [ listener :: v1alpha1 :: ListenerIngress ] ,
489
491
) -> Result < ( ) , PublishVolumeError > {
490
492
use publish_volume_error:: * ;
491
493
let listener_pod_volume = pod
@@ -508,7 +510,7 @@ async fn publish_pod_listener(
508
510
. with_context ( || FindPodVolumeForPvcSnafu {
509
511
pvc : ObjectRef :: < PersistentVolumeClaim > :: new ( pvc_name) ,
510
512
} ) ?;
511
- let pod_listeners = PodListeners {
513
+ let pod_listeners = listener :: v1alpha1 :: PodListeners {
512
514
metadata : ObjectMeta {
513
515
name : pod. metadata . uid . as_deref ( ) . map ( |uid| format ! ( "pod-{uid}" ) ) ,
514
516
namespace : pod. metadata . namespace . clone ( ) ,
@@ -520,20 +522,23 @@ async fn publish_pod_listener(
520
522
] ) ,
521
523
..Default :: default ( )
522
524
} ,
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 ( ) ) ,
534
540
} ,
535
- ingress_addresses : Some ( listener_addresses. to_vec ( ) ) ,
536
- } ) ]
541
+ ) ]
537
542
. into ( ) ,
538
543
} ,
539
544
} ;
@@ -556,7 +561,7 @@ mod pod_dir {
556
561
use std:: path:: Path ;
557
562
558
563
use snafu:: { OptionExt , ResultExt , Snafu } ;
559
- use stackable_operator:: commons :: listener:: ListenerIngress ;
564
+ use stackable_operator:: crd :: listener;
560
565
561
566
#[ derive( Snafu , Debug ) ]
562
567
pub enum Error {
@@ -570,7 +575,7 @@ mod pod_dir {
570
575
571
576
pub async fn write_listener_info_to_pod_dir (
572
577
target_path : & Path ,
573
- listener_addrs : & [ ListenerIngress ] ,
578
+ listener_addrs : & [ listener :: v1alpha1 :: ListenerIngress ] ,
574
579
) -> Result < ( ) , Error > {
575
580
let addrs_path = target_path. join ( "addresses" ) ;
576
581
tokio:: fs:: create_dir_all ( & addrs_path) . await ?;
0 commit comments