@@ -11,6 +11,7 @@ use k8s_openapi::{
11
11
use snafu:: { OptionExt , ResultExt , Snafu } ;
12
12
use tracing:: warn;
13
13
14
+ use crate :: kvp:: Labels ;
14
15
use crate :: {
15
16
builder:: meta:: ObjectMetaBuilder ,
16
17
commons:: {
@@ -285,29 +286,27 @@ impl PodBuilder {
285
286
/// ```
286
287
/// # use stackable_operator::builder::pod::PodBuilder;
287
288
/// # use stackable_operator::builder::pod::container::ContainerBuilder;
288
- /// # use stackable_operator::builder::pod::resources::ResourceRequirementsBuilder ;
289
+ /// # use stackable_operator::kvp::Labels ;
289
290
/// # use k8s_openapi::{
290
- /// api::core:: v1::ResourceRequirements ,
291
- /// apimachinery::pkg::api::resource::Quantity
292
- /// } ;
291
+ /// # apimachinery::pkg::apis::meta:: v1::ObjectMeta ,
292
+ /// # };
293
+ /// # use std::collections::BTreeMap ;
293
294
///
294
- /// let resources = ResourceRequirementsBuilder::new()
295
- /// .with_cpu_request("1")
296
- /// .with_cpu_limit("1")
297
- /// .with_memory_request("128Mi")
298
- /// .with_memory_limit("128Mi")
299
- /// .build();
295
+ /// let labels: Labels = Labels::try_from(
296
+ /// BTreeMap::from([("app.kubernetes.io/component", "test-role"),
297
+ /// ("app.kubernetes.io/instance", "test"),
298
+ /// ("app.kubernetes.io/name", "test")]))
299
+ /// .unwrap();
300
300
///
301
301
/// let pod = PodBuilder::new()
302
302
/// .metadata_default()
303
303
/// .add_container(
304
304
/// ContainerBuilder::new("container")
305
305
/// .unwrap()
306
306
/// .add_volume_mount("listener", "/path/to/volume")
307
- /// .resources(resources)
308
307
/// .build(),
309
308
/// )
310
- /// .add_listener_volume_by_listener_class("listener", "nodeport")
309
+ /// .add_listener_volume_by_listener_class("listener", "nodeport", &labels )
311
310
/// .unwrap()
312
311
/// .build()
313
312
/// .unwrap();
@@ -320,13 +319,6 @@ impl PodBuilder {
320
319
/// affinity: {}
321
320
/// containers:
322
321
/// - name: container
323
- /// resources:
324
- /// limits:
325
- /// cpu: '1'
326
- /// memory: 128Mi
327
- /// requests:
328
- /// cpu: '1'
329
- /// memory: 128Mi
330
322
/// volumeMounts:
331
323
/// - mountPath: /path/to/volume
332
324
/// name: listener
@@ -337,6 +329,10 @@ impl PodBuilder {
337
329
/// metadata:
338
330
/// annotations:
339
331
/// listeners.stackable.tech/listener-class: nodeport
332
+ /// labels:
333
+ /// app.kubernetes.io/component: test-role
334
+ /// app.kubernetes.io/instance: test
335
+ /// app.kubernetes.io/name: test
340
336
/// spec:
341
337
/// accessModes:
342
338
/// - ReadWriteMany
@@ -351,9 +347,11 @@ impl PodBuilder {
351
347
& mut self ,
352
348
volume_name : & str ,
353
349
listener_class : & str ,
350
+ labels : & Labels ,
354
351
) -> Result < & mut Self > {
355
352
let listener_reference = ListenerReference :: ListenerClass ( listener_class. to_string ( ) ) ;
356
- let volume = ListenerOperatorVolumeSourceBuilder :: new ( & listener_reference)
353
+ let volume = ListenerOperatorVolumeSourceBuilder :: new ( & listener_reference, labels)
354
+ . context ( ListenerVolumeSnafu { name : volume_name } ) ?
357
355
. build_ephemeral ( )
358
356
. context ( ListenerVolumeSnafu { name : volume_name } ) ?;
359
357
@@ -374,29 +372,27 @@ impl PodBuilder {
374
372
/// ```
375
373
/// # use stackable_operator::builder::pod::PodBuilder;
376
374
/// # use stackable_operator::builder::pod::container::ContainerBuilder;
377
- /// # use stackable_operator::builder::pod::resources::ResourceRequirementsBuilder ;
375
+ /// # use stackable_operator::kvp::Labels ;
378
376
/// # use k8s_openapi::{
379
- /// api::core:: v1::ResourceRequirements ,
380
- /// apimachinery::pkg::api::resource::Quantity
381
- /// } ;
377
+ /// # apimachinery::pkg::apis::meta:: v1::ObjectMeta ,
378
+ /// # };
379
+ /// # use std::collections::BTreeMap ;
382
380
///
383
- /// let resources = ResourceRequirementsBuilder::new()
384
- /// .with_cpu_request("1")
385
- /// .with_cpu_limit("1")
386
- /// .with_memory_request("128Mi")
387
- /// .with_memory_limit("128Mi")
388
- /// .build();
381
+ /// let labels: Labels = Labels::try_from(
382
+ /// BTreeMap::from([("app.kubernetes.io/component", "test-role"),
383
+ /// ("app.kubernetes.io/instance", "test"),
384
+ /// ("app.kubernetes.io/name", "test")]))
385
+ /// .unwrap();
389
386
///
390
387
/// let pod = PodBuilder::new()
391
388
/// .metadata_default()
392
389
/// .add_container(
393
390
/// ContainerBuilder::new("container")
394
391
/// .unwrap()
395
392
/// .add_volume_mount("listener", "/path/to/volume")
396
- /// .resources(resources)
397
393
/// .build(),
398
394
/// )
399
- /// .add_listener_volume_by_listener_name("listener", "preprovisioned-listener")
395
+ /// .add_listener_volume_by_listener_name("listener", "preprovisioned-listener", &labels )
400
396
/// .unwrap()
401
397
/// .build()
402
398
/// .unwrap();
@@ -409,13 +405,6 @@ impl PodBuilder {
409
405
/// affinity: {}
410
406
/// containers:
411
407
/// - name: container
412
- /// resources:
413
- /// limits:
414
- /// cpu: '1'
415
- /// memory: 128Mi
416
- /// requests:
417
- /// cpu: '1'
418
- /// memory: 128Mi
419
408
/// volumeMounts:
420
409
/// - mountPath: /path/to/volume
421
410
/// name: listener
@@ -426,6 +415,10 @@ impl PodBuilder {
426
415
/// metadata:
427
416
/// annotations:
428
417
/// listeners.stackable.tech/listener-name: preprovisioned-listener
418
+ /// labels:
419
+ /// app.kubernetes.io/component: test-role
420
+ /// app.kubernetes.io/instance: test
421
+ /// app.kubernetes.io/name: test
429
422
/// spec:
430
423
/// accessModes:
431
424
/// - ReadWriteMany
@@ -440,9 +433,11 @@ impl PodBuilder {
440
433
& mut self ,
441
434
volume_name : & str ,
442
435
listener_name : & str ,
436
+ labels : & Labels ,
443
437
) -> Result < & mut Self > {
444
438
let listener_reference = ListenerReference :: ListenerName ( listener_name. to_string ( ) ) ;
445
- let volume = ListenerOperatorVolumeSourceBuilder :: new ( & listener_reference)
439
+ let volume = ListenerOperatorVolumeSourceBuilder :: new ( & listener_reference, labels)
440
+ . context ( ListenerVolumeSnafu { name : volume_name } ) ?
446
441
. build_ephemeral ( )
447
442
. context ( ListenerVolumeSnafu { name : volume_name } ) ?;
448
443
@@ -579,19 +574,21 @@ impl PodBuilder {
579
574
580
575
#[ cfg( test) ]
581
576
mod tests {
582
- use super :: * ;
577
+ use k8s_openapi:: {
578
+ api:: core:: v1:: { LocalObjectReference , PodAffinity , PodAffinityTerm } ,
579
+ apimachinery:: pkg:: apis:: meta:: v1:: { LabelSelector , LabelSelectorRequirement } ,
580
+ } ;
581
+ use rstest:: * ;
582
+
583
583
use crate :: builder:: {
584
584
meta:: ObjectMetaBuilder ,
585
585
pod:: {
586
586
container:: ContainerBuilder , resources:: ResourceRequirementsBuilder ,
587
587
volume:: VolumeBuilder ,
588
588
} ,
589
589
} ;
590
- use k8s_openapi:: {
591
- api:: core:: v1:: { LocalObjectReference , PodAffinity , PodAffinityTerm } ,
592
- apimachinery:: pkg:: apis:: meta:: v1:: { LabelSelector , LabelSelectorRequirement } ,
593
- } ;
594
- use rstest:: * ;
590
+
591
+ use super :: * ;
595
592
596
593
// A simple [`Container`] with a name and image.
597
594
#[ fixture]
0 commit comments