From ba69c28653b37fe0f5fe0dc21025862cdf6029b0 Mon Sep 17 00:00:00 2001 From: "Lubomir I. Ivanov" Date: Thu, 13 Jun 2024 09:41:07 +0300 Subject: [PATCH] kubeadm: fix a bug in v1beta3.JoinConfiguration.Discovery.Timeout After the introduction of v1beta4 if the user inputs the old v1beta3 discovery timeout the value is ignored. Fix that by introducing a conversion to v1beta4. Co-authored-by: penghez (GitHub handle) --- cmd/kubeadm/app/apis/kubeadm/fuzzer/fuzzer.go | 3 ++- cmd/kubeadm/app/apis/kubeadm/v1beta3/conversion.go | 4 ++++ cmd/kubeadm/app/apis/kubeadm/v1beta4/conversion.go | 1 + 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/cmd/kubeadm/app/apis/kubeadm/fuzzer/fuzzer.go b/cmd/kubeadm/app/apis/kubeadm/fuzzer/fuzzer.go index cbbf5d84834..05e13f97196 100644 --- a/cmd/kubeadm/app/apis/kubeadm/fuzzer/fuzzer.go +++ b/cmd/kubeadm/app/apis/kubeadm/fuzzer/fuzzer.go @@ -26,6 +26,7 @@ import ( bootstraptokenv1 "k8s.io/kubernetes/cmd/kubeadm/app/apis/bootstraptoken/v1" "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm" + "k8s.io/kubernetes/cmd/kubeadm/app/constants" ) // Funcs returns the fuzzer functions for the kubeadm apis. @@ -132,7 +133,7 @@ func fuzzJoinConfiguration(obj *kubeadm.JoinConfiguration, c fuzz.Continue) { obj.Discovery = kubeadm.Discovery{ BootstrapToken: &kubeadm.BootstrapTokenDiscovery{Token: "baz"}, TLSBootstrapToken: "qux", - Timeout: &metav1.Duration{}, + Timeout: &metav1.Duration{Duration: constants.DiscoveryTimeout}, } obj.SkipPhases = nil obj.NodeRegistration.ImagePullPolicy = corev1.PullIfNotPresent diff --git a/cmd/kubeadm/app/apis/kubeadm/v1beta3/conversion.go b/cmd/kubeadm/app/apis/kubeadm/v1beta3/conversion.go index b5c655d6099..cc5be983aa8 100644 --- a/cmd/kubeadm/app/apis/kubeadm/v1beta3/conversion.go +++ b/cmd/kubeadm/app/apis/kubeadm/v1beta3/conversion.go @@ -48,12 +48,16 @@ func Convert_v1beta3_InitConfiguration_To_kubeadm_InitConfiguration(in *InitConf // Convert_kubeadm_JoinConfiguration_To_v1beta3_JoinConfiguration converts a private JoinConfiguration to public JoinConfiguration. func Convert_kubeadm_JoinConfiguration_To_v1beta3_JoinConfiguration(in *kubeadm.JoinConfiguration, out *JoinConfiguration, s conversion.Scope) error { + // Migrate the discovery timeout. + out.Discovery.Timeout = in.Timeouts.Discovery.DeepCopy() return autoConvert_kubeadm_JoinConfiguration_To_v1beta3_JoinConfiguration(in, out, s) } // Convert_v1beta3_JoinConfiguration_To_kubeadm_JoinConfiguration converts a public JoinConfiguration to a private JoinConfiguration. func Convert_v1beta3_JoinConfiguration_To_kubeadm_JoinConfiguration(in *JoinConfiguration, out *kubeadm.JoinConfiguration, s conversion.Scope) error { kubeadm.SetDefaultTimeouts(&out.Timeouts) + // Migrate the discovery timeout. + out.Timeouts.Discovery = in.Discovery.Timeout.DeepCopy() return autoConvert_v1beta3_JoinConfiguration_To_kubeadm_JoinConfiguration(in, out, s) } diff --git a/cmd/kubeadm/app/apis/kubeadm/v1beta4/conversion.go b/cmd/kubeadm/app/apis/kubeadm/v1beta4/conversion.go index 36d1be31f28..97ce6008ffa 100644 --- a/cmd/kubeadm/app/apis/kubeadm/v1beta4/conversion.go +++ b/cmd/kubeadm/app/apis/kubeadm/v1beta4/conversion.go @@ -53,6 +53,7 @@ func Convert_v1beta4_ClusterConfiguration_To_kubeadm_ClusterConfiguration(in *Cl // Convert_v1beta4_JoinConfiguration_To_kubeadm_JoinConfiguration converts a public JoinConfiguration to a private JoinConfiguration. func Convert_v1beta4_JoinConfiguration_To_kubeadm_JoinConfiguration(in *JoinConfiguration, out *kubeadm.JoinConfiguration, s conversion.Scope) error { err := autoConvert_v1beta4_JoinConfiguration_To_kubeadm_JoinConfiguration(in, out, s) + out.Discovery.Timeout = in.Timeouts.Discovery.DeepCopy() return err }