diff --git a/internal/controller/bmc_controller.go b/internal/controller/bmc_controller.go index 4e6ba52..db9cb9d 100644 --- a/internal/controller/bmc_controller.go +++ b/internal/controller/bmc_controller.go @@ -12,6 +12,7 @@ import ( "github.com/go-logr/logr" "github.com/ironcore-dev/controller-utils/clientutils" + "github.com/ironcore-dev/controller-utils/metautils" metalv1alpha1 "github.com/ironcore-dev/metal-operator/api/v1alpha1" "github.com/ironcore-dev/metal-operator/bmc" "github.com/ironcore-dev/metal-operator/internal/bmcutils" @@ -164,6 +165,7 @@ func (r *BMCReconciler) discoverServers(ctx context.Context, log logr.Logger, bm server.Name = bmcutils.GetServerNameFromBMCandIndex(i, bmcObj) opResult, err := controllerutil.CreateOrPatch(ctx, r.Client, server, func() error { + metautils.SetLabels(server, bmcObj.Labels) server.Spec.UUID = strings.ToLower(s.UUID) server.Spec.SystemUUID = strings.ToLower(s.UUID) server.Spec.BMCRef = &v1.LocalObjectReference{Name: bmcObj.Name} diff --git a/internal/controller/bmc_controller_test.go b/internal/controller/bmc_controller_test.go index 75b40bc..92d5e1f 100644 --- a/internal/controller/bmc_controller_test.go +++ b/internal/controller/bmc_controller_test.go @@ -105,10 +105,15 @@ var _ = Describe("BMC Controller", func() { Expect(k8sClient.Create(ctx, bmcSecret)).To(Succeed()) DeferCleanup(k8sClient.Delete, bmcSecret) + bmcLabels := map[string]string{ + "foo": "bar", + } + By("Creating a BMC resource") bmc := &metalv1alpha1.BMC{ ObjectMeta: metav1.ObjectMeta{ GenerateName: "test-", + Labels: bmcLabels, }, Spec: metalv1alpha1.BMCSpec{ Endpoint: &metalv1alpha1.InlineEndpoint{ @@ -151,6 +156,7 @@ var _ = Describe("BMC Controller", func() { Controller: ptr.To(true), BlockOwnerDeletion: ptr.To(true), })), + HaveField("ObjectMeta.Labels", bmcLabels), HaveField("Spec.UUID", "38947555-7742-3448-3784-823347823834"), HaveField("Spec.SystemUUID", "38947555-7742-3448-3784-823347823834"), HaveField("Spec.BMCRef.Name", bmc.Name),