@@ -28,6 +28,7 @@ import (
28
28
"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
29
29
"k8s.io/apimachinery/pkg/runtime"
30
30
"k8s.io/apimachinery/pkg/runtime/schema"
31
+ cbor "k8s.io/apimachinery/pkg/runtime/serializer/cbor/direct"
31
32
"k8s.io/apimachinery/pkg/util/diff"
32
33
"k8s.io/apimachinery/pkg/util/errors"
33
34
"k8s.io/apimachinery/pkg/util/sets"
@@ -678,7 +679,10 @@ func JSONToUnstructured(stub, namespace string, mapping *meta.RESTMapping, dynam
678
679
return dynamicClient .Resource (mapping .Resource ).Namespace (namespace ), & unstructured.Unstructured {Object : typeMetaAdder }, nil
679
680
}
680
681
681
- var protoEncodingPrefix = []byte {0x6b , 0x38 , 0x73 , 0x00 }
682
+ var (
683
+ protoEncodingPrefix = []byte {0x6b , 0x38 , 0x73 , 0x00 }
684
+ cborPrefix = []byte {0xd9 , 0xd9 , 0xf7 }
685
+ )
682
686
683
687
func getFromEtcd (kv etcdv3.KV , path string ) (* metaObject , error ) {
684
688
response , err := kv .Get (context .Background (), "/" + path )
@@ -712,6 +716,10 @@ func getFromEtcd(kv etcdv3.KV, path string) (*metaObject, error) {
712
716
if err := json .Unmarshal (value , metaObj ); err != nil {
713
717
return nil , err
714
718
}
719
+ case bytes .HasPrefix (value , cborPrefix ):
720
+ if err := cbor .Unmarshal (value , metaObj ); err != nil {
721
+ return nil , err
722
+ }
715
723
default :
716
724
// TODO handle encrypted data
717
725
return nil , fmt .Errorf ("unknown data format at path /%s: %s" , path , string (value ))
0 commit comments