| /* |
| 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" |
| "k8s.io/apimachinery/pkg/runtime" |
| "k8s.io/apimachinery/pkg/runtime/schema" |
| "k8s.io/apimachinery/pkg/runtime/serializer" |
| utilruntime "k8s.io/apimachinery/pkg/util/runtime" |
| "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm" |
| "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1alpha3" |
| "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta1" |
| ) |
| |
| // Scheme is the runtime.Scheme to which all kubeadm api types are registered. |
| var Scheme = runtime.NewScheme() |
| |
| // Codecs provides access to encoding and decoding for the scheme. |
| var Codecs = serializer.NewCodecFactory(Scheme) |
| |
| func init() { |
| metav1.AddToGroupVersion(Scheme, schema.GroupVersion{Version: "v1"}) |
| AddToScheme(Scheme) |
| } |
| |
| // AddToScheme builds the kubeadm scheme using all known versions of the kubeadm api. |
| func AddToScheme(scheme *runtime.Scheme) { |
| utilruntime.Must(kubeadm.AddToScheme(scheme)) |
| utilruntime.Must(v1alpha3.AddToScheme(scheme)) |
| utilruntime.Must(v1beta1.AddToScheme(scheme)) |
| utilruntime.Must(scheme.SetVersionPriority(v1beta1.SchemeGroupVersion)) |
| } |