github.com/docker/compose-on-kubernetes@v0.5.0/api/client/clientset/scheme/register.go (about)

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