@@ -462,6 +462,73 @@ func TestReconcileBucketClaimCreatesWorkload(t *testing.T) {
462462 }
463463}
464464
465+ func TestReconcileBucketClaim_BucketClassLabelPropagated (t * testing.T ) {
466+ s := newTestScheme ()
467+
468+ monitor := & cozyv1alpha1.WorkloadMonitor {
469+ ObjectMeta : metav1.ObjectMeta {
470+ Name : "my-bucket" ,
471+ Namespace : "tenant-demo" ,
472+ },
473+ Spec : cozyv1alpha1.WorkloadMonitorSpec {
474+ Kind : "bucket" ,
475+ Type : "s3" ,
476+ Selector : map [string ]string {
477+ "app.kubernetes.io/instance" : "my-bucket" ,
478+ },
479+ },
480+ }
481+
482+ bc := & cosiv1alpha1.BucketClaim {
483+ ObjectMeta : metav1.ObjectMeta {
484+ Name : "my-bucket" ,
485+ Namespace : "tenant-demo" ,
486+ Labels : map [string ]string {
487+ "app.kubernetes.io/instance" : "my-bucket" ,
488+ },
489+ },
490+ Spec : cosiv1alpha1.BucketClaimSpec {
491+ BucketClassName : "seaweedfs-encrypted" ,
492+ Protocols : []cosiv1alpha1.Protocol {cosiv1alpha1 .ProtocolS3 },
493+ },
494+ Status : cosiv1alpha1.BucketClaimStatus {
495+ BucketReady : true ,
496+ BucketName : "cosi-abc123" ,
497+ },
498+ }
499+
500+ fakeClient := fake .NewClientBuilder ().
501+ WithScheme (s ).
502+ WithObjects (monitor , bc ).
503+ WithStatusSubresource (monitor ).
504+ Build ()
505+
506+ reconciler := & WorkloadMonitorReconciler {Client : fakeClient , Scheme : s }
507+ req := reconcile.Request {NamespacedName : types.NamespacedName {
508+ Name : "my-bucket" ,
509+ Namespace : "tenant-demo" ,
510+ }}
511+
512+ _ , err := reconciler .Reconcile (context .TODO (), req )
513+ if err != nil {
514+ t .Fatalf ("Reconcile returned error: %v" , err )
515+ }
516+
517+ workload := & cozyv1alpha1.Workload {}
518+ err = fakeClient .Get (context .TODO (), types.NamespacedName {
519+ Name : "bucket-my-bucket" ,
520+ Namespace : "tenant-demo" ,
521+ }, workload )
522+ if err != nil {
523+ t .Fatalf ("expected Workload to be created, got error: %v" , err )
524+ }
525+
526+ got := workload .Labels ["workloads.cozystack.io/bucket-class" ]
527+ if got != "seaweedfs-encrypted" {
528+ t .Errorf ("expected workloads.cozystack.io/bucket-class=%q, got %q" , "seaweedfs-encrypted" , got )
529+ }
530+ }
531+
465532func TestReconcileBucketClaimNotReady (t * testing.T ) {
466533 s := newTestScheme ()
467534
0 commit comments