@@ -5,10 +5,7 @@ use serde::{Deserialize, de::IntoDeserializer};
55use snafu:: { OptionExt , ResultExt , Snafu } ;
66use 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`).
421420async 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