diff --git a/pkg/resources/virtual/virtual.go b/pkg/resources/virtual/virtual.go index da6a46f9..43cda9e7 100644 --- a/pkg/resources/virtual/virtual.go +++ b/pkg/resources/virtual/virtual.go @@ -95,10 +95,14 @@ func (t *TransformBuilder) GetTransformFunc(gvk schema.GroupVersionKind, columns } // Conversions are run in this loop: for _, f := range converters { - obj, err = f(obj) + transformed, err := f(obj) if err != nil { - return nil, err + // If we return an error here, the upstream k8s library will retry a transform, and we don't want that, + // as it's likely to loop forever and the server will hang. + // Instead, log this error and try the remaining transform functions + logrus.Errorf("error in transform: %v", err) } + obj = transformed } return obj, nil }