Change:
Solution: I will add one.
/cc
xref
Thanks for sending a PR so quickly!
[MILESTONENOTIFIER] Milestone Issue Needs Attention Action required: During code slush, issues in the milestone should be in progress. If this issue is not being actively worked on, please remove it from the milestone. If it is being worked on, please add the label so it can be tracked with other in-flight issues. Note: If this issue is not resolved or labeled as by Wed, Nov 22 it will be moved out of the v1.9 milestone. <details<summaryIssue Labels</summary- : Issue will be escalated to these SIGs if needed. : Escalate to the issue owners and SIG owner; move out of milestone after several unsuccessful escalation attempts. : Fixes a bug discovered during the current release. </details<details<summaryHelp</summary<ul<li<a href=""Additional instructions</a</li<li<a href=""Commands for setting labels</a</li</ul</details

Discussion:
name = "all-srcs", srcs = [ ":package-srcs", <ins> "//pkg/kubelet/apis/kubeletconfig/fuzzer:all-srcs", </ins> "//pkg/kubelet/apis/kubeletconfig/scheme:all-srcs", "//pkg/kubelet/apis/kubeletconfig/v1alpha1:all-srcs", "//pkg/kubelet/apis/kubeletconfig/validation:all-srcs",

<ins> load("@io_bazel_rules_go//go:def.bzl", "go_library") go_library( name = "go_default_library", srcs = ["fuzzer.go"], importpath = "k8s.io/kubernetes/pkg/kubelet/apis/kubeletconfig/fuzzer", visibility = ["//visibility:public"], deps = [ "//pkg/kubelet/apis/kubeletconfig:go_default_library", "//pkg/kubelet/apis/kubeletconfig/v1alpha1:go_default_library", "//pkg/kubelet/qos:go_default_library", "//pkg/kubelet/types:go_default_library", "//pkg/master/ports:go_default_library", "//vendor/github.com/google/gofuzz:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/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"], visibility = ["//visibility:public"], ) </ins>

<ins> /* Copyright 2017 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 fuzzer import ( "time" "github.com/google/gofuzz" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" runtimeserializer "k8s.io/apimachinery/pkg/runtime/serializer" "k8s.io/kubernetes/pkg/kubelet/apis/kubeletconfig" "k8s.io/kubernetes/pkg/kubelet/apis/kubeletconfig/v1alpha1" "k8s.io/kubernetes/pkg/kubelet/qos" kubetypes "k8s.io/kubernetes/pkg/kubelet/types" "k8s.io/kubernetes/pkg/master/ports" ) // Funcs returns the fuzzer functions for the kubeletconfig apis. func Funcs(codecs runtimeserializer.CodecFactory) []interface{} { return []interface{}{ // provide non-empty values for fields with defaults, so the defaulter doesn't change values during round-trip func(obj *kubeletconfig.KubeletConfiguration, c fuzz.Continue) { c.FuzzNoCustom(obj) obj.ConfigTrialDuration = &metav1.Duration{Duration: 10 * time.Minute} obj.Authentication.Anonymous.Enabled = true obj.Authentication.Webhook.Enabled = false obj.Authentication.Webhook.CacheTTL = metav1.Duration{Duration: 2 * time.Minute} obj.Authorization.Mode = kubeletconfig.KubeletAuthorizationModeAlwaysAllow obj.Authorization.Webhook.CacheAuthorizedTTL = metav1.Duration{Duration: 5 * time.Minute} obj.Authorization.Webhook.CacheUnauthorizedTTL = metav1.Duration{Duration: 30 * time.Second} obj.Address = "0.0.0.0" obj.CAdvisorPort = 4194 obj.VolumeStatsAggPeriod = metav1.Duration{Duration: time.Minute} obj.RuntimeRequestTimeout = metav1.Duration{Duration: 2 * time.Minute} obj.CPUCFSQuota = true obj.EventBurst = 10 obj.EventRecordQPS = 5 obj.EnableControllerAttachDetach = true obj.EnableDebuggingHandlers = true obj.EnableServer = true obj.FileCheckFrequency = metav1.Duration{Duration: 20 * time.Second} obj.HealthzBindAddress = "127.0.0.1" obj.HealthzPort = 10248 obj.HostNetworkSources = []string{kubetypes.AllSource} obj.HostPIDSources = []string{kubetypes.AllSource} obj.HostIPCSources = []string{kubetypes.AllSource} obj.HTTPCheckFrequency = metav1.Duration{Duration: 20 * time.Second} obj.ImageMinimumGCAge = metav1.Duration{Duration: 2 * time.Minute} obj.ImageGCHighThresholdPercent = 85 obj.ImageGCLowThresholdPercent = 80 obj.MaxOpenFiles = 1000000 obj.MaxPods = 110 obj.NodeStatusUpdateFrequency = metav1.Duration{Duration: 10 * time.Second} obj.CPUManagerPolicy = "none" obj.CPUManagerReconcilePeriod = obj.NodeStatusUpdateFrequency obj.OOMScoreAdj = int32(qos.KubeletOOMScoreAdj) obj.Port = ports.KubeletPort obj.ReadOnlyPort = ports.KubeletReadOnlyPort obj.RegistryBurst = 10 obj.RegistryPullQPS = 5 obj.ResolverConfig = kubetypes.ResolvConfDefault obj.SerializeImagePulls = true obj.StreamingConnectionIdleTimeout = metav1.Duration{Duration: 4 * time.Hour} obj.SyncFrequency = metav1.Duration{Duration: 1 * time.Minute} obj.ContentType = "application/vnd.kubernetes.protobuf" obj.KubeAPIQPS = 5 obj.KubeAPIBurst = 10 obj.HairpinMode = v1alpha1.PromiscuousBridge obj.EvictionHard = map[string]string{ "memory.available":  "100Mi", "nodefs.available":  "10%", "nodefs.inodesFree": "5%", "imagefs.available": "15%", } obj.EvictionPressureTransitionPeriod = metav1.Duration{Duration: 5 * time.Minute} obj.MakeIPTablesUtilChains = true obj.IPTablesMasqueradeBit = v1alpha1.DefaultIPTablesMasqueradeBit obj.IPTablesDropBit = v1alpha1.DefaultIPTablesDropBit obj.CgroupsPerQOS = true obj.CgroupDriver = "cgroupfs" obj.EnforceNodeAllocatable = v1alpha1.DefaultNodeAllocatableEnforcement obj.ManifestURLHeader = make(map[string][]string) }, } } </ins>

<del> load("@io_bazel_rules_go//go:def.bzl", "go_library") </del> <ins> load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test") </ins> go_library( name = "go_default_library",

tags = ["automanaged"], visibility = ["//visibility:public"], ) <ins> go_test( name = "go_default_test", srcs = ["scheme_test.go"], importpath = "k8s.io/kubernetes/pkg/kubelet/apis/kubeletconfig/scheme", library = ":go_default_library", deps = [ "//pkg/kubelet/apis/kubeletconfig/fuzzer:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/testing/roundtrip:go_default_library", ], ) </ins>

<ins> /* Copyright 2017 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 ( "testing" "k8s.io/apimachinery/pkg/api/testing/roundtrip" "k8s.io/kubernetes/pkg/kubelet/apis/kubeletconfig/fuzzer" ) func TestRoundTripTypes(t *testing.T) { scheme, _, err := NewSchemeAndCodecs() if err != nil { t.Fatalf("unexpected error: %v", err) } roundtrip.RoundTripTestForScheme(t, scheme, fuzzer.Funcs) } </ins>

// More details here: https://github.com/kubernetes/kubernetes/issues/50986 AutoDetectCloudProvider = "auto-detect" <del> defaultIPTablesMasqueradeBit = 14 defaultIPTablesDropBit       = 15 </del> <ins> DefaultIPTablesMasqueradeBit = 14 DefaultIPTablesDropBit       = 15 </ins> ) var ( zeroDuration = metav1.Duration{} // Refer to [Node Allocatable](https://git.k8s.io/community/contributors/design-proposals/node/node-allocatable.md) doc for more information. <del> defaultNodeAllocatableEnforcement = []string{"pods"} </del> <ins> DefaultNodeAllocatableEnforcement = []string{"pods"} </ins> ) func addDefaultingFuncs(scheme *kruntime.Scheme) error {

obj.MakeIPTablesUtilChains = boolVar(true) } if obj.IPTablesMasqueradeBit == nil { <del> temp := int32(defaultIPTablesMasqueradeBit) </del> <ins> temp := int32(DefaultIPTablesMasqueradeBit) </ins> obj.IPTablesMasqueradeBit = &temp } if obj.IPTablesDropBit == nil { <del> temp := int32(defaultIPTablesDropBit) </del> <ins> temp := int32(DefaultIPTablesDropBit) </ins> obj.IPTablesDropBit = &temp } if obj.CgroupsPerQOS == nil {

obj.CgroupDriver = "cgroupfs" } if obj.EnforceNodeAllocatable == nil { <del> obj.EnforceNodeAllocatable = defaultNodeAllocatableEnforcement </del> <ins> obj.EnforceNodeAllocatable = DefaultNodeAllocatableEnforcement </ins> } }