From ad3a13e014fa50db12884451fc4f55a405c43528 Mon Sep 17 00:00:00 2001 From: HirazawaUi <695097494plus@gmail.com> Date: Tue, 27 May 2025 21:38:30 +0800 Subject: [PATCH] Graduate NodeLocalCRISocket to beta --- cmd/kubeadm/app/features/features.go | 4 ++-- cmd/kubeadm/app/util/config/cluster.go | 31 ++++++++------------------ 2 files changed, 11 insertions(+), 24 deletions(-) diff --git a/cmd/kubeadm/app/features/features.go b/cmd/kubeadm/app/features/features.go index 2895ade883c..3912882950a 100644 --- a/cmd/kubeadm/app/features/features.go +++ b/cmd/kubeadm/app/features/features.go @@ -38,7 +38,7 @@ const ( WaitForAllControlPlaneComponents = "WaitForAllControlPlaneComponents" // ControlPlaneKubeletLocalMode is expected to be in alpha in v1.31, beta in v1.33 ControlPlaneKubeletLocalMode = "ControlPlaneKubeletLocalMode" - // NodeLocalCRISocket is expected to be in alpha in v1.32, beta in v1.33, ga in v1.35 + // NodeLocalCRISocket is expected to be in alpha in v1.32, beta in v1.34, ga in v1.36 NodeLocalCRISocket = "NodeLocalCRISocket" ) @@ -55,7 +55,7 @@ var InitFeatureGates = FeatureList{ }, WaitForAllControlPlaneComponents: {FeatureSpec: featuregate.FeatureSpec{Default: true, PreRelease: featuregate.Beta}}, ControlPlaneKubeletLocalMode: {FeatureSpec: featuregate.FeatureSpec{Default: true, PreRelease: featuregate.Beta}}, - NodeLocalCRISocket: {FeatureSpec: featuregate.FeatureSpec{Default: false, PreRelease: featuregate.Alpha}}, + NodeLocalCRISocket: {FeatureSpec: featuregate.FeatureSpec{Default: true, PreRelease: featuregate.Beta}}, } // Feature represents a feature being gated diff --git a/cmd/kubeadm/app/util/config/cluster.go b/cmd/kubeadm/app/util/config/cluster.go index 4219b6b71ae..06942d48cae 100644 --- a/cmd/kubeadm/app/util/config/cluster.go +++ b/cmd/kubeadm/app/util/config/cluster.go @@ -46,7 +46,6 @@ import ( kubeadmapiv1 "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta4" "k8s.io/kubernetes/cmd/kubeadm/app/componentconfigs" "k8s.io/kubernetes/cmd/kubeadm/app/constants" - "k8s.io/kubernetes/cmd/kubeadm/app/features" "k8s.io/kubernetes/cmd/kubeadm/app/util/apiclient" "k8s.io/kubernetes/cmd/kubeadm/app/util/config/strict" "k8s.io/kubernetes/cmd/kubeadm/app/util/kubeconfig" @@ -176,30 +175,18 @@ func GetNodeRegistration(kubeconfigFile string, client clientset.Interface, node return errors.Wrap(err, "failed to get corresponding node") } - var ( - criSocket string - ok bool - missingAnnotationError = errors.Errorf("node %s doesn't have %s annotation", nodeName, constants.AnnotationKubeadmCRISocket) - ) - if features.Enabled(clusterCfg.FeatureGates, features.NodeLocalCRISocket) { - _, err = os.Stat(filepath.Join(constants.KubeletRunDirectory, constants.KubeletInstanceConfigurationFileName)) + criSocket, ok := node.Annotations[constants.AnnotationKubeadmCRISocket] + if !ok { + configFilePath := filepath.Join(constants.KubeletRunDirectory, constants.KubeletInstanceConfigurationFileName) + _, err := os.Stat(configFilePath) if os.IsNotExist(err) { - criSocket, ok = node.ObjectMeta.Annotations[constants.AnnotationKubeadmCRISocket] - if !ok { - return missingAnnotationError - } - } else { - kubeletConfig, err := readKubeletConfig(constants.KubeletRunDirectory, constants.KubeletInstanceConfigurationFileName) - if err != nil { - return errors.Wrapf(err, "node %q does not have a kubelet instance configuration", nodeName) - } - criSocket = kubeletConfig.ContainerRuntimeEndpoint + return errors.Errorf("node %s doesn't have %s annotation, or kubelet instance config %s", nodeName, constants.AnnotationKubeadmCRISocket, configFilePath) } - } else { - criSocket, ok = node.ObjectMeta.Annotations[constants.AnnotationKubeadmCRISocket] - if !ok { - return missingAnnotationError + kubeletConfig, err := readKubeletConfig(constants.KubeletRunDirectory, constants.KubeletInstanceConfigurationFileName) + if err != nil { + return errors.Wrapf(err, "could not read kubelet instance configuration on node %q", nodeName) } + criSocket = kubeletConfig.ContainerRuntimeEndpoint } // returns the nodeRegistration attributes