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  }