From 916622105daa9813ea2377becfa32d701624eb2b Mon Sep 17 00:00:00 2001 From: "Dr. Stefan Schimanski" Date: Thu, 22 Feb 2018 11:12:56 +0100 Subject: [PATCH] apimachinery: normal conversion code path for Unstructured in ConvertToVersion --- .../pkg/runtime/serializer/versioning/versioning.go | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/staging/src/k8s.io/apimachinery/pkg/runtime/serializer/versioning/versioning.go b/staging/src/k8s.io/apimachinery/pkg/runtime/serializer/versioning/versioning.go index b717fe8fe6c..a9b13d21f6d 100644 --- a/staging/src/k8s.io/apimachinery/pkg/runtime/serializer/versioning/versioning.go +++ b/staging/src/k8s.io/apimachinery/pkg/runtime/serializer/versioning/versioning.go @@ -167,10 +167,14 @@ func (c *codec) Decode(data []byte, defaultGVK *schema.GroupVersionKind, into ru // conversion if necessary. Unversioned objects (according to the ObjectTyper) are output as is. func (c *codec) Encode(obj runtime.Object, w io.Writer) error { switch obj.(type) { - case *runtime.Unknown, runtime.Unstructured: + case *runtime.Unknown: return c.encoder.Encode(obj, w) } + // Note: for runtime.Unstructured, the typer will return the GVK in the object and we will do conversion as normal below. + // For the normal runtime.Scheme converter the conversion will be a no-op for Unstructured. For CustomResources + // the conversion will actually do something. + gvks, isUnversioned, err := c.typer.ObjectKinds(obj) if err != nil { return err