diff --git a/federation/pkg/federatedtypes/adapter.go b/federation/pkg/federatedtypes/adapter.go index c3ea3b2b635..4d6ab764c88 100644 --- a/federation/pkg/federatedtypes/adapter.go +++ b/federation/pkg/federatedtypes/adapter.go @@ -61,3 +61,12 @@ type FederatedTypeAdapter interface { // be registered with RegisterAdapterFactory to ensure the type // adapter is discoverable. type AdapterFactory func(client federationclientset.Interface) FederatedTypeAdapter + +// SetAnnotation sets the given key and value in the given object's ObjectMeta.Annotations map +func SetAnnotation(adapter FederatedTypeAdapter, obj pkgruntime.Object, key, value string) { + meta := adapter.ObjectMeta(obj) + if meta.Annotations == nil { + meta.Annotations = make(map[string]string) + } + meta.Annotations[key] = value +} diff --git a/federation/pkg/federatedtypes/crudtester/crudtester.go b/federation/pkg/federatedtypes/crudtester/crudtester.go index f8ca4ef17e6..8145d604398 100644 --- a/federation/pkg/federatedtypes/crudtester/crudtester.go +++ b/federation/pkg/federatedtypes/crudtester/crudtester.go @@ -193,11 +193,7 @@ func (c *FederatedTypeCRUDTester) waitForResource(client clientset.Interface, ob func (c *FederatedTypeCRUDTester) updateFedObject(obj pkgruntime.Object) (pkgruntime.Object, error) { err := wait.PollImmediate(c.waitInterval, wait.ForeverTestTimeout, func() (bool, error) { // Target the metadata for simplicity (it's type-agnostic) - meta := c.adapter.ObjectMeta(obj) - if meta.Annotations == nil { - meta.Annotations = make(map[string]string) - } - meta.Annotations[AnnotationTestFederationCRUDUpdate] = "updated" + federatedtypes.SetAnnotation(c.adapter, obj, AnnotationTestFederationCRUDUpdate, "updated") _, err := c.adapter.FedUpdate(obj) if errors.IsConflict(err) {