@@ -28,6 +28,7 @@ import (
2828 "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
2929 "k8s.io/apimachinery/pkg/runtime"
3030 "k8s.io/apimachinery/pkg/runtime/schema"
31+ cbor "k8s.io/apimachinery/pkg/runtime/serializer/cbor/direct"
3132 "k8s.io/apimachinery/pkg/util/diff"
3233 "k8s.io/apimachinery/pkg/util/errors"
3334 "k8s.io/apimachinery/pkg/util/sets"
@@ -678,7 +679,10 @@ func JSONToUnstructured(stub, namespace string, mapping *meta.RESTMapping, dynam
678679 return dynamicClient .Resource (mapping .Resource ).Namespace (namespace ), & unstructured.Unstructured {Object : typeMetaAdder }, nil
679680}
680681
681- var protoEncodingPrefix = []byte {0x6b , 0x38 , 0x73 , 0x00 }
682+ var (
683+ protoEncodingPrefix = []byte {0x6b , 0x38 , 0x73 , 0x00 }
684+ cborPrefix = []byte {0xd9 , 0xd9 , 0xf7 }
685+ )
682686
683687func getFromEtcd (kv etcdv3.KV , path string ) (* metaObject , error ) {
684688 response , err := kv .Get (context .Background (), "/" + path )
@@ -712,6 +716,10 @@ func getFromEtcd(kv etcdv3.KV, path string) (*metaObject, error) {
712716 if err := json .Unmarshal (value , metaObj ); err != nil {
713717 return nil , err
714718 }
719+ case bytes .HasPrefix (value , cborPrefix ):
720+ if err := cbor .Unmarshal (value , metaObj ); err != nil {
721+ return nil , err
722+ }
715723 default :
716724 // TODO handle encrypted data
717725 return nil , fmt .Errorf ("unknown data format at path /%s: %s" , path , string (value ))
0 commit comments