CodecFactory is started with EnableStrict that throws an error when deserializing a Kubelet component config that is malformed (e.g. unknown or duplicate keys). When strict decoding a v1beta1 config fails, non-strict decoding is used and a warning is emitted. For this, NewSchemeAndCodecs is now a variadic function that can take multiple arguments for augmenting the returned codec factory. Strict decoding is then explicitely enabled when decoding a kubelet config. Additionally, decoding a RemoteConfigSource needs to be non-strict to avoid an accidental error when it contains newer API fields that are not yet known to the Kubelet. DecodeKubeletConfiguration returns a wrapped error instead of a simple string so its type can be tested. Add unit tests for unhappy paths when loading a component config Add keys for test cases struct fields, remove nil field initialization Co-Authored-By: Jordan Liggitt <jordan@liggitt.net>
51 lines
1.6 KiB
Python
51 lines
1.6 KiB
Python
package(default_visibility = ["//visibility:public"])
|
|
|
|
load(
|
|
"@io_bazel_rules_go//go:def.bzl",
|
|
"go_library",
|
|
"go_test",
|
|
)
|
|
|
|
go_library(
|
|
name = "go_default_library",
|
|
srcs = ["configfiles.go"],
|
|
importpath = "k8s.io/kubernetes/pkg/kubelet/kubeletconfig/configfiles",
|
|
deps = [
|
|
"//pkg/kubelet/apis/config:go_default_library",
|
|
"//pkg/kubelet/apis/config/scheme:go_default_library",
|
|
"//pkg/kubelet/kubeletconfig/util/codec:go_default_library",
|
|
"//pkg/util/filesystem:go_default_library",
|
|
"//staging/src/k8s.io/apimachinery/pkg/runtime/serializer:go_default_library",
|
|
],
|
|
)
|
|
|
|
filegroup(
|
|
name = "package-srcs",
|
|
srcs = glob(["**"]),
|
|
tags = ["automanaged"],
|
|
visibility = ["//visibility:private"],
|
|
)
|
|
|
|
filegroup(
|
|
name = "all-srcs",
|
|
srcs = [":package-srcs"],
|
|
tags = ["automanaged"],
|
|
)
|
|
|
|
go_test(
|
|
name = "go_default_test",
|
|
srcs = ["configfiles_test.go"],
|
|
embed = [":go_default_library"],
|
|
deps = [
|
|
"//pkg/kubelet/apis/config:go_default_library",
|
|
"//pkg/kubelet/apis/config/scheme:go_default_library",
|
|
"//pkg/kubelet/kubeletconfig/util/files:go_default_library",
|
|
"//pkg/kubelet/kubeletconfig/util/test:go_default_library",
|
|
"//pkg/util/filesystem:go_default_library",
|
|
"//staging/src/k8s.io/apimachinery/pkg/api/equality:go_default_library",
|
|
"//staging/src/k8s.io/apimachinery/pkg/runtime:go_default_library",
|
|
"//staging/src/k8s.io/kubelet/config/v1beta1:go_default_library",
|
|
"//vendor/github.com/pkg/errors:go_default_library",
|
|
],
|
|
)
|