github.com/AliyunContainerService/cli@v0.0.0-20181009023821-814ced4b30d0/kubernetes/client/clientset/scheme/register.go (about) 1 package scheme 2 3 import ( 4 composev1beta1 "github.com/docker/cli/kubernetes/compose/v1beta1" 5 composev1beta2 "github.com/docker/cli/kubernetes/compose/v1beta2" 6 "k8s.io/apimachinery/pkg/apis/meta/v1" 7 "k8s.io/apimachinery/pkg/runtime" 8 "k8s.io/apimachinery/pkg/runtime/schema" 9 "k8s.io/apimachinery/pkg/runtime/serializer" 10 ) 11 12 // Variables required for registration 13 var ( 14 Scheme = runtime.NewScheme() 15 Codecs = serializer.NewCodecFactory(Scheme) 16 ParameterCodec = runtime.NewParameterCodec(Scheme) 17 ) 18 19 func init() { 20 v1.AddToGroupVersion(Scheme, schema.GroupVersion{Version: "v1"}) 21 AddToScheme(Scheme) 22 } 23 24 // AddToScheme adds all types of this clientset into the given scheme. This allows composition 25 // of clientsets, like in: 26 // 27 // import ( 28 // "k8s.io/client-go/kubernetes" 29 // clientsetscheme "k8s.io/client-go/kuberentes/scheme" 30 // aggregatorclientsetscheme "k8s.io/kube-aggregator/pkg/client/clientset_generated/clientset/scheme" 31 // ) 32 // 33 // kclientset, _ := kubernetes.NewForConfig(c) 34 // aggregatorclientsetscheme.AddToScheme(clientsetscheme.Scheme) 35 // 36 // After this, RawExtensions in Kubernetes types will serialize kube-aggregator types 37 // correctly. 38 func AddToScheme(scheme *runtime.Scheme) { 39 composev1beta2.AddToScheme(scheme) 40 composev1beta1.AddToScheme(scheme) 41 }