diff --git a/pkg/kubelet/kubeletconfig/util/codec/BUILD b/pkg/kubelet/kubeletconfig/util/codec/BUILD index 62fe4f7dfeb..e27dc027a87 100644 --- a/pkg/kubelet/kubeletconfig/util/codec/BUILD +++ b/pkg/kubelet/kubeletconfig/util/codec/BUILD @@ -18,6 +18,7 @@ go_library( "//staging/src/k8s.io/apimachinery/pkg/runtime:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/runtime/serializer:go_default_library", + "//staging/src/k8s.io/component-base/codec:go_default_library", "//vendor/github.com/pkg/errors:go_default_library", "//vendor/k8s.io/klog:go_default_library", ], diff --git a/pkg/kubelet/kubeletconfig/util/codec/codec.go b/pkg/kubelet/kubeletconfig/util/codec/codec.go index 361bb91faf2..887355801e8 100644 --- a/pkg/kubelet/kubeletconfig/util/codec/codec.go +++ b/pkg/kubelet/kubeletconfig/util/codec/codec.go @@ -28,6 +28,7 @@ import ( "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/apimachinery/pkg/runtime/serializer" + "k8s.io/component-base/codec" "k8s.io/kubernetes/pkg/api/legacyscheme" kubeletconfig "k8s.io/kubernetes/pkg/kubelet/apis/config" "k8s.io/kubernetes/pkg/kubelet/apis/config/scheme" @@ -80,20 +81,6 @@ func NewYAMLEncoder(groupName string) (runtime.Encoder, error) { return legacyscheme.Codecs.EncoderForVersion(info.Serializer, versions[0]), nil } -// newLenientSchemeAndCodecs returns a scheme that has only v1beta1 registered into -// it and a CodecFactory with strict decoding disabled. -func newLenientSchemeAndCodecs() (*runtime.Scheme, *serializer.CodecFactory, error) { - lenientScheme := runtime.NewScheme() - if err := kubeletconfig.AddToScheme(lenientScheme); err != nil { - return nil, nil, fmt.Errorf("failed to add internal kubelet config API to lenient scheme: %v", err) - } - if err := kubeletconfigv1beta1.AddToScheme(lenientScheme); err != nil { - return nil, nil, fmt.Errorf("failed to add kubelet config v1beta1 API to lenient scheme: %v", err) - } - lenientCodecs := serializer.NewCodecFactory(lenientScheme, serializer.DisableStrict) - return lenientScheme, &lenientCodecs, nil -} - // DecodeKubeletConfiguration decodes a serialized KubeletConfiguration to the internal type. func DecodeKubeletConfiguration(kubeletCodecs *serializer.CodecFactory, data []byte) (*kubeletconfig.KubeletConfiguration, error) { var ( @@ -112,7 +99,11 @@ func DecodeKubeletConfiguration(kubeletCodecs *serializer.CodecFactory, data []b } var lenientErr error - _, lenientCodecs, lenientErr := newLenientSchemeAndCodecs() + _, lenientCodecs, lenientErr := codec.NewLenientSchemeAndCodecs( + kubeletconfig.AddToScheme, + kubeletconfigv1beta1.AddToScheme, + ) + if lenientErr != nil { return nil, lenientErr }