diff --git a/exp/addons/internal/controllers/clusterresourceset_helpers.go b/exp/addons/internal/controllers/clusterresourceset_helpers.go index 5925c47e5178..2b25ceab3ef8 100644 --- a/exp/addons/internal/controllers/clusterresourceset_helpers.go +++ b/exp/addons/internal/controllers/clusterresourceset_helpers.go @@ -204,7 +204,7 @@ func normalizeData(resource *unstructured.Unstructured) ([][]byte, error) { keys := make([]string, 0) data, ok := resource.UnstructuredContent()["data"] if !ok { - return nil, errors.New("failed to get data field from the resource") + return nil, errors.Errorf("failed to get data field from resource %s", klog.KObj(resource)) } unstructuredData := data.(map[string]interface{}) @@ -216,8 +216,11 @@ func normalizeData(resource *unstructured.Unstructured) ([][]byte, error) { dataList := make([][]byte, 0) for _, key := range keys { val, ok, err := unstructured.NestedString(unstructuredData, key) - if !ok || err != nil { - return nil, errors.New("failed to get value field from the resource") + if err != nil { + return nil, errors.Wrapf(err, "getting value for field %s in data from resource %s", key, klog.KObj(resource)) + } + if !ok { + return nil, errors.Errorf("value for field %s not present in data from resource %s", key, klog.KObj(resource)) } byteArr := []byte(val) diff --git a/exp/addons/internal/controllers/clusterresourceset_scope.go b/exp/addons/internal/controllers/clusterresourceset_scope.go index e4af7ff3d2c5..a37e0bb5b1f9 100644 --- a/exp/addons/internal/controllers/clusterresourceset_scope.go +++ b/exp/addons/internal/controllers/clusterresourceset_scope.go @@ -140,10 +140,9 @@ func (r *reconcileStrategyScope) applyObj(ctx context.Context, c client.Client, if err = c.Patch(ctx, obj, patch); err != nil { return errors.Wrapf( err, - "patching object %s %s/%s", + "patching object %s %s", obj.GroupVersionKind(), - obj.GetNamespace(), - obj.GetName(), + klog.KObj(obj), ) } @@ -165,7 +164,7 @@ func (r *reconcileApplyOnceScope) apply(ctx context.Context, c client.Client) er func (r *reconcileApplyOnceScope) applyObj(ctx context.Context, c client.Client, obj *unstructured.Unstructured) error { // The create call is idempotent, so if the object already exists // then do not consider it to be an error. - if err := createUnstructured(ctx, c, obj); !apierrors.IsAlreadyExists(err) { + if err := createUnstructured(ctx, c, obj); err != nil && !apierrors.IsAlreadyExists(err) { return err } return nil