diff --git a/controllers/gslb_controller_test.go b/controllers/gslb_controller_test.go index e29b256092..9e80d8ff9c 100644 --- a/controllers/gslb_controller_test.go +++ b/controllers/gslb_controller_test.go @@ -395,14 +395,18 @@ func TestLocalDNSRecordsHasSpecialAnnotation(t *testing.T) { // act createHealthyService(t, &settings, serviceName) + // delete DNSEndpoint so we can pretend it wasn't annotated before + deleteDNSEndpoint(t, &settings) + createDNSEndpoint(t, &settings) defer deleteHealthyService(t, &settings, serviceName) + defer deleteDNSEndpoint(t, &settings) reconcileAndUpdateGslb(t, settings) err = settings.client.Get(context.TODO(), settings.request.NamespacedName, dnsEndpoint) require.NoError(t, err, "Failed to load DNS endpoint") got := dnsEndpoint.Annotations["k8gb.absa.oss/dnstype"] // assert - assert.Equal(t, got, want, "got:\n %q annotation value,\n\n want:\n %q", got, want, got, want) + assert.Equal(t, want, got, "got:\n %q annotation value,\n\n want:\n %q", got, want) } func TestCanGetExternalTargetsFromK8gbInAnotherLocation(t *testing.T) { @@ -1081,6 +1085,33 @@ func deleteUnhealthyService(t *testing.T, s *testSettings, serviceName string) { } } +func createDNSEndpoint(t *testing.T, s *testSettings) { + t.Helper() + dnsEndpoint := &externaldns.DNSEndpoint{ + ObjectMeta: metav1.ObjectMeta{ + Name: s.gslb.Name, + Namespace: s.gslb.Namespace, + }, + } + err := s.client.Create(context.TODO(), dnsEndpoint) + if err != nil { + t.Fatalf("Failed to create testing DNSEndpoint: (%v)", err) + } +} + +func deleteDNSEndpoint(t *testing.T, s *testSettings) { + t.Helper() + endpoint := &externaldns.DNSEndpoint{ + ObjectMeta: metav1.ObjectMeta{ + Name: s.gslb.Name, + Namespace: s.gslb.Namespace, + }, + } + err := s.client.Delete(context.TODO(), endpoint) + if err != nil { + t.Fatalf("Failed to delete testing DNSEndpoint: (%v)", err) + } +} func reconcileAndUpdateGslb(t *testing.T, s testSettings) { t.Helper() diff --git a/controllers/providers/assistant/gslb.go b/controllers/providers/assistant/gslb.go index 26b2eb6ba4..999f8c1527 100644 --- a/controllers/providers/assistant/gslb.go +++ b/controllers/providers/assistant/gslb.go @@ -149,8 +149,10 @@ func (r *GslbLoggerAssistant) SaveDNSEndpoint(namespace string, i *externaldns.D return err } - // Update existing object with new spec + // Update existing object with new spec, labels and annotations found.Spec = i.Spec + found.ObjectMeta.Annotations = i.ObjectMeta.Annotations + found.ObjectMeta.Labels = i.ObjectMeta.Labels err = r.client.Update(context.TODO(), found) if err != nil {