| /* |
| Copyright 2018 The Kubernetes Authors. |
| |
| Licensed under the Apache License, Version 2.0 (the "License"); |
| you may not use this file except in compliance with the License. |
| You may obtain a copy of the License at |
| |
| http://www.apache.org/licenses/LICENSE-2.0 |
| |
| Unless required by applicable law or agreed to in writing, software |
| distributed under the License is distributed on an "AS IS" BASIS, |
| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| See the License for the specific language governing permissions and |
| limitations under the License. |
| */ |
| |
| package scheme |
| |
| import ( |
| metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" |
| runtime "k8s.io/apimachinery/pkg/runtime" |
| schema "k8s.io/apimachinery/pkg/runtime/schema" |
| serializer "k8s.io/apimachinery/pkg/runtime/serializer" |
| cmint "k8s.io/metrics/pkg/apis/custom_metrics" |
| cmv1beta1 "k8s.io/metrics/pkg/apis/custom_metrics/v1beta1" |
| cmv1beta2 "k8s.io/metrics/pkg/apis/custom_metrics/v1beta2" |
| ) |
| |
| const GroupName = cmv1beta1.GroupName |
| |
| var SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: runtime.APIVersionInternal} |
| |
| var Scheme = runtime.NewScheme() |
| var Codecs = serializer.NewCodecFactory(Scheme) |
| var ParameterCodec = runtime.NewParameterCodec(Scheme) |
| |
| func init() { |
| metav1.AddToGroupVersion(Scheme, schema.GroupVersion{Version: "v1"}) |
| AddToScheme(Scheme) |
| } |
| |
| // AddToScheme adds all types of this clientset into the given scheme. This allows composition |
| // of clientsets, like in: |
| // |
| // import ( |
| // "k8s.io/client-go/kubernetes" |
| // clientsetscheme "k8s.io/client-go/kubernetes/scheme" |
| // aggregatorclientsetscheme "k8s.io/kube-aggregator/pkg/client/clientset_generated/clientset/scheme" |
| // ) |
| // |
| // kclientset, _ := kubernetes.NewForConfig(c) |
| // aggregatorclientsetscheme.AddToScheme(clientsetscheme.Scheme) |
| // |
| // After this, RawExtensions in Kubernetes types will serialize kube-aggregator types |
| // correctly. |
| func AddToScheme(scheme *runtime.Scheme) { |
| cmint.AddToScheme(scheme) |
| cmv1beta1.AddToScheme(scheme) |
| cmv1beta2.AddToScheme(scheme) |
| } |