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 }