1
1
use k8s_openapi:: {
2
2
api:: core:: v1:: {
3
3
CSIVolumeSource , ConfigMapVolumeSource , DownwardAPIVolumeSource , EmptyDirVolumeSource ,
4
- EphemeralVolumeSource , HostPathVolumeSource , PersistentVolumeClaimSpec ,
5
- PersistentVolumeClaimTemplate , PersistentVolumeClaimVolumeSource , ProjectedVolumeSource ,
6
- ResourceRequirements , SecretVolumeSource , Volume , VolumeMount ,
4
+ EphemeralVolumeSource , HostPathVolumeSource , PersistentVolumeClaim ,
5
+ PersistentVolumeClaimSpec , PersistentVolumeClaimTemplate ,
6
+ PersistentVolumeClaimVolumeSource , ProjectedVolumeSource , ResourceRequirements ,
7
+ SecretVolumeSource , Volume , VolumeMount ,
7
8
} ,
8
9
apimachinery:: pkg:: api:: resource:: Quantity ,
9
10
} ;
@@ -461,8 +462,27 @@ impl ListenerOperatorVolumeSourceBuilder {
461
462
}
462
463
}
463
464
464
- /// Build an [`EphemeralVolumeSource`] from the builder
465
+ fn build_spec ( & self ) -> PersistentVolumeClaimSpec {
466
+ PersistentVolumeClaimSpec {
467
+ storage_class_name : Some ( "listeners.stackable.tech" . to_string ( ) ) ,
468
+ resources : Some ( ResourceRequirements {
469
+ requests : Some ( [ ( "storage" . to_string ( ) , Quantity ( "1" . to_string ( ) ) ) ] . into ( ) ) ,
470
+ ..ResourceRequirements :: default ( )
471
+ } ) ,
472
+ access_modes : Some ( vec ! [ "ReadWriteMany" . to_string( ) ] ) ,
473
+ ..PersistentVolumeClaimSpec :: default ( )
474
+ }
475
+ }
476
+
477
+ #[ deprecated( note = "renamed to `build_ephemeral`" , since = "0.61.1" ) ]
465
478
pub fn build ( & self ) -> Result < EphemeralVolumeSource , ListenerOperatorVolumeSourceBuilderError > {
479
+ self . build_ephemeral ( )
480
+ }
481
+
482
+ /// Build an [`EphemeralVolumeSource`] from the builder.
483
+ pub fn build_ephemeral (
484
+ & self ,
485
+ ) -> Result < EphemeralVolumeSource , ListenerOperatorVolumeSourceBuilderError > {
466
486
let listener_reference_annotation = self
467
487
. listener_reference
468
488
. to_annotation ( )
@@ -475,18 +495,30 @@ impl ListenerOperatorVolumeSourceBuilder {
475
495
. with_annotation ( listener_reference_annotation)
476
496
. build ( ) ,
477
497
) ,
478
- spec : PersistentVolumeClaimSpec {
479
- storage_class_name : Some ( "listeners.stackable.tech" . to_string ( ) ) ,
480
- resources : Some ( ResourceRequirements {
481
- requests : Some ( [ ( "storage" . to_string ( ) , Quantity ( "1" . to_string ( ) ) ) ] . into ( ) ) ,
482
- ..ResourceRequirements :: default ( )
483
- } ) ,
484
- access_modes : Some ( vec ! [ "ReadWriteMany" . to_string( ) ] ) ,
485
- ..PersistentVolumeClaimSpec :: default ( )
486
- } ,
498
+ spec : self . build_spec ( ) ,
487
499
} ) ,
488
500
} )
489
501
}
502
+
503
+ /// Build a [`PersistentVolumeClaim`] from the builder.
504
+ pub fn build_pvc (
505
+ & self ,
506
+ name : impl Into < String > ,
507
+ ) -> Result < PersistentVolumeClaim , ListenerOperatorVolumeSourceBuilderError > {
508
+ let listener_reference_annotation = self
509
+ . listener_reference
510
+ . to_annotation ( )
511
+ . context ( ListenerReferenceAnnotationSnafu ) ?;
512
+
513
+ Ok ( PersistentVolumeClaim {
514
+ metadata : ObjectMetaBuilder :: new ( )
515
+ . name ( name)
516
+ . with_annotation ( listener_reference_annotation)
517
+ . build ( ) ,
518
+ spec : Some ( self . build_spec ( ) ) ,
519
+ ..Default :: default ( )
520
+ } )
521
+ }
490
522
}
491
523
492
524
#[ cfg( test) ]
@@ -556,7 +588,7 @@ mod tests {
556
588
"public" . into ( ) ,
557
589
) ) ;
558
590
559
- let volume_source = builder. build ( ) . unwrap ( ) ;
591
+ let volume_source = builder. build_ephemeral ( ) . unwrap ( ) ;
560
592
561
593
let volume_claim_template = volume_source. volume_claim_template ;
562
594
let annotations = volume_claim_template
0 commit comments