From 6a654e5be0c78eb516e3a6caf9f91ab7ffb3e686 Mon Sep 17 00:00:00 2001 From: Lalit Chauhan Date: Tue, 27 May 2025 23:36:24 +0000 Subject: [PATCH] Deprecate StreamingConnectionIdleTimeout field, that is not being used for a long time --- pkg/generated/openapi/zz_generated.openapi.go | 2 +- pkg/kubelet/apis/config/types.go | 1 + pkg/kubelet/kubelet.go | 97 +++++++++---------- .../k8s.io/kubelet/config/v1beta1/types.go | 1 + 4 files changed, 49 insertions(+), 52 deletions(-) diff --git a/pkg/generated/openapi/zz_generated.openapi.go b/pkg/generated/openapi/zz_generated.openapi.go index 9301771e966..5d3d25b552b 100644 --- a/pkg/generated/openapi/zz_generated.openapi.go +++ b/pkg/generated/openapi/zz_generated.openapi.go @@ -66463,7 +66463,7 @@ func schema_k8sio_kubelet_config_v1beta1_KubeletConfiguration(ref common.Referen }, "streamingConnectionIdleTimeout": { SchemaProps: spec.SchemaProps{ - Description: "streamingConnectionIdleTimeout is the maximum time a streaming connection can be idle before the connection is automatically closed. Default: \"4h\"", + Description: "streamingConnectionIdleTimeout is the maximum time a streaming connection can be idle before the connection is automatically closed. Deprecated: no longer has any effect. Default: \"4h\"", Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Duration"), }, }, diff --git a/pkg/kubelet/apis/config/types.go b/pkg/kubelet/apis/config/types.go index be441e5c8cd..6afd30c7d4f 100644 --- a/pkg/kubelet/apis/config/types.go +++ b/pkg/kubelet/apis/config/types.go @@ -203,6 +203,7 @@ type KubeletConfiguration struct { ClusterDNS []string // streamingConnectionIdleTimeout is the maximum time a streaming connection // can be idle before the connection is automatically closed. + // Deprecated: no longer has any effect. StreamingConnectionIdleTimeout metav1.Duration // nodeStatusUpdateFrequency is the frequency that kubelet computes node // status. If node lease feature is not enabled, it is also the frequency that diff --git a/pkg/kubelet/kubelet.go b/pkg/kubelet/kubelet.go index dbd9d2b1715..026a2f554c7 100644 --- a/pkg/kubelet/kubelet.go +++ b/pkg/kubelet/kubelet.go @@ -593,53 +593,52 @@ func NewMainKubelet(kubeCfg *kubeletconfiginternal.KubeletConfiguration, tracer := kubeDeps.TracerProvider.Tracer(instrumentationScope) klet := &Kubelet{ - hostname: hostname, - nodeName: nodeName, - kubeClient: kubeDeps.KubeClient, - heartbeatClient: kubeDeps.HeartbeatClient, - onRepeatedHeartbeatFailure: kubeDeps.OnHeartbeatFailure, - rootDirectory: filepath.Clean(rootDirectory), - podLogsDirectory: podLogsDirectory, - resyncInterval: kubeCfg.SyncFrequency.Duration, - sourcesReady: config.NewSourcesReady(kubeDeps.PodConfig.SeenAllSources), - registerNode: registerNode, - registerWithTaints: registerWithTaints, - dnsConfigurer: dns.NewConfigurer(kubeDeps.Recorder, nodeRef, nodeIPs, clusterDNS, kubeCfg.ClusterDomain, kubeCfg.ResolverConfig), - serviceLister: serviceLister, - serviceHasSynced: serviceHasSynced, - nodeLister: nodeLister, - nodeHasSynced: nodeHasSynced, - streamingConnectionIdleTimeout: kubeCfg.StreamingConnectionIdleTimeout.Duration, - recorder: kubeDeps.Recorder, - cadvisor: kubeDeps.CAdvisorInterface, - externalCloudProvider: cloudprovider.IsExternal(cloudProvider), - providerID: providerID, - nodeRef: nodeRef, - nodeLabels: nodeLabels, - nodeStatusUpdateFrequency: kubeCfg.NodeStatusUpdateFrequency.Duration, - nodeStatusReportFrequency: kubeCfg.NodeStatusReportFrequency.Duration, - os: kubeDeps.OSInterface, - oomWatcher: oomWatcher, - cgroupsPerQOS: kubeCfg.CgroupsPerQOS, - cgroupRoot: kubeCfg.CgroupRoot, - mounter: kubeDeps.Mounter, - hostutil: kubeDeps.HostUtil, - subpather: kubeDeps.Subpather, - maxPods: int(kubeCfg.MaxPods), - podsPerCore: int(kubeCfg.PodsPerCore), - syncLoopMonitor: atomic.Value{}, - daemonEndpoints: daemonEndpoints, - containerManager: kubeDeps.ContainerManager, - nodeIPs: nodeIPs, - nodeIPValidator: validateNodeIP, - clock: clock.RealClock{}, - enableControllerAttachDetach: kubeCfg.EnableControllerAttachDetach, - makeIPTablesUtilChains: kubeCfg.MakeIPTablesUtilChains, - nodeStatusMaxImages: nodeStatusMaxImages, - tracer: tracer, - nodeStartupLatencyTracker: kubeDeps.NodeStartupLatencyTracker, - healthChecker: kubeDeps.HealthChecker, - flagz: kubeDeps.Flagz, + hostname: hostname, + nodeName: nodeName, + kubeClient: kubeDeps.KubeClient, + heartbeatClient: kubeDeps.HeartbeatClient, + onRepeatedHeartbeatFailure: kubeDeps.OnHeartbeatFailure, + rootDirectory: filepath.Clean(rootDirectory), + podLogsDirectory: podLogsDirectory, + resyncInterval: kubeCfg.SyncFrequency.Duration, + sourcesReady: config.NewSourcesReady(kubeDeps.PodConfig.SeenAllSources), + registerNode: registerNode, + registerWithTaints: registerWithTaints, + dnsConfigurer: dns.NewConfigurer(kubeDeps.Recorder, nodeRef, nodeIPs, clusterDNS, kubeCfg.ClusterDomain, kubeCfg.ResolverConfig), + serviceLister: serviceLister, + serviceHasSynced: serviceHasSynced, + nodeLister: nodeLister, + nodeHasSynced: nodeHasSynced, + recorder: kubeDeps.Recorder, + cadvisor: kubeDeps.CAdvisorInterface, + externalCloudProvider: cloudprovider.IsExternal(cloudProvider), + providerID: providerID, + nodeRef: nodeRef, + nodeLabels: nodeLabels, + nodeStatusUpdateFrequency: kubeCfg.NodeStatusUpdateFrequency.Duration, + nodeStatusReportFrequency: kubeCfg.NodeStatusReportFrequency.Duration, + os: kubeDeps.OSInterface, + oomWatcher: oomWatcher, + cgroupsPerQOS: kubeCfg.CgroupsPerQOS, + cgroupRoot: kubeCfg.CgroupRoot, + mounter: kubeDeps.Mounter, + hostutil: kubeDeps.HostUtil, + subpather: kubeDeps.Subpather, + maxPods: int(kubeCfg.MaxPods), + podsPerCore: int(kubeCfg.PodsPerCore), + syncLoopMonitor: atomic.Value{}, + daemonEndpoints: daemonEndpoints, + containerManager: kubeDeps.ContainerManager, + nodeIPs: nodeIPs, + nodeIPValidator: validateNodeIP, + clock: clock.RealClock{}, + enableControllerAttachDetach: kubeCfg.EnableControllerAttachDetach, + makeIPTablesUtilChains: kubeCfg.MakeIPTablesUtilChains, + nodeStatusMaxImages: nodeStatusMaxImages, + tracer: tracer, + nodeStartupLatencyTracker: kubeDeps.NodeStartupLatencyTracker, + healthChecker: kubeDeps.HealthChecker, + flagz: kubeDeps.Flagz, } var secretManager secret.Manager @@ -1213,10 +1212,6 @@ type Kubelet struct { readinessManager proberesults.Manager startupManager proberesults.Manager - // How long to keep idle streaming command execution/port forwarding - // connections open before terminating them - streamingConnectionIdleTimeout time.Duration - // The EventRecorder to use recorder record.EventRecorder diff --git a/staging/src/k8s.io/kubelet/config/v1beta1/types.go b/staging/src/k8s.io/kubelet/config/v1beta1/types.go index eb79f7146e1..a7117c8e685 100644 --- a/staging/src/k8s.io/kubelet/config/v1beta1/types.go +++ b/staging/src/k8s.io/kubelet/config/v1beta1/types.go @@ -301,6 +301,7 @@ type KubeletConfiguration struct { ClusterDNS []string `json:"clusterDNS,omitempty"` // streamingConnectionIdleTimeout is the maximum time a streaming connection // can be idle before the connection is automatically closed. + // Deprecated: no longer has any effect. // Default: "4h" // +optional StreamingConnectionIdleTimeout metav1.Duration `json:"streamingConnectionIdleTimeout,omitempty"`