From cda2805fa6cc84ef0bca7e9f2485b5dce98a313f Mon Sep 17 00:00:00 2001 From: Jose Valdes Date: Sat, 7 Mar 2026 22:59:10 -0500 Subject: [PATCH] test: adjust NodeLogQuery feature enabled by default --- .../apis/config/validation/validation_test.go | 23 ++++++++++++++++--- .../reference/feature_list.md | 2 +- .../reference/versioned_feature_list.yaml | 4 ++++ test/e2e/feature/feature.go | 5 +++- 4 files changed, 29 insertions(+), 5 deletions(-) diff --git a/pkg/kubelet/apis/config/validation/validation_test.go b/pkg/kubelet/apis/config/validation/validation_test.go index b6b2e3f947a..0f6b7a5503a 100644 --- a/pkg/kubelet/apis/config/validation/validation_test.go +++ b/pkg/kubelet/apis/config/validation/validation_test.go @@ -610,21 +610,38 @@ func TestValidateKubeletConfiguration(t *testing.T) { }, errMsg: "invalid configuration: Specifying shutdownGracePeriodByPodPriority requires feature gate GracefulNodeShutdownBasedOnPodPriority", }, { - name: "enableSystemLogQuery is enabled without NodeLogQuery feature gate", + name: "enableSystemLogQuery is enabled with explicit default NodeLogQuery feature gate enabled", configure: func(conf *kubeletconfig.KubeletConfiguration) *kubeletconfig.KubeletConfiguration { + conf.FeatureGates = map[string]bool{"NodeLogQuery": true} + conf.EnableSystemLogHandler = true conf.EnableSystemLogQuery = true return conf }, - errMsg: "invalid configuration: NodeLogQuery feature gate is required for enableSystemLogQuery", + errMsg: "", + }, { + name: "enableSystemLogQuery is enabled without NodeLogQuery feature gate", + configure: func(conf *kubeletconfig.KubeletConfiguration) *kubeletconfig.KubeletConfiguration { + conf.FeatureGates = map[string]bool{"NodeLogQuery": false} + conf.EnableSystemLogQuery = true + return conf + }, + errMsg: "cannot set feature gate NodeLogQuery to false, feature is locked to true", }, { name: "enableSystemLogQuery is enabled without enableSystemLogHandler", configure: func(conf *kubeletconfig.KubeletConfiguration) *kubeletconfig.KubeletConfiguration { - conf.FeatureGates = map[string]bool{"NodeLogQuery": true} conf.EnableSystemLogHandler = false conf.EnableSystemLogQuery = true return conf }, errMsg: "invalid configuration: enableSystemLogHandler is required for enableSystemLogQuery", + }, { + name: "enableSystemLogQuery is enabled with enableSystemLogHandler", + configure: func(conf *kubeletconfig.KubeletConfiguration) *kubeletconfig.KubeletConfiguration { + conf.EnableSystemLogHandler = true + conf.EnableSystemLogQuery = true + return conf + }, + errMsg: "", }, { name: "imageMaximumGCAge should not be negative", configure: func(conf *kubeletconfig.KubeletConfiguration) *kubeletconfig.KubeletConfiguration { diff --git a/test/compatibility_lifecycle/reference/feature_list.md b/test/compatibility_lifecycle/reference/feature_list.md index 3eee52ce13e..d3f0e5ba412 100644 --- a/test/compatibility_lifecycle/reference/feature_list.md +++ b/test/compatibility_lifecycle/reference/feature_list.md @@ -129,7 +129,7 @@ | NFTablesProxyMode | :ballot_box_with_check: 1.31+ | :closed_lock_with_key: 1.33+ | 1.29–1.30 | 1.31–1.32 | 1.33– | | | [code](https://cs.k8s.io/?q=%5CbNFTablesProxyMode%5Cb&i=nope&files=&excludeFiles=CHANGELOG&repos=kubernetes/kubernetes) [KEPs](https://cs.k8s.io/?q=%5CbNFTablesProxyMode%5Cb&i=nope&files=&excludeFiles=CHANGELOG&repos=kubernetes/enhancements) | | NodeDeclaredFeatures | :ballot_box_with_check: 1.36+ | | 1.35 | 1.36– | | | | [code](https://cs.k8s.io/?q=%5CbNodeDeclaredFeatures%5Cb&i=nope&files=&excludeFiles=CHANGELOG&repos=kubernetes/kubernetes) [KEPs](https://cs.k8s.io/?q=%5CbNodeDeclaredFeatures%5Cb&i=nope&files=&excludeFiles=CHANGELOG&repos=kubernetes/enhancements) | | NodeInclusionPolicyInPodTopologySpread | :ballot_box_with_check: 1.26+ | :closed_lock_with_key: 1.33+ | 1.25 | 1.26–1.32 | 1.33– | | | [code](https://cs.k8s.io/?q=%5CbNodeInclusionPolicyInPodTopologySpread%5Cb&i=nope&files=&excludeFiles=CHANGELOG&repos=kubernetes/kubernetes) [KEPs](https://cs.k8s.io/?q=%5CbNodeInclusionPolicyInPodTopologySpread%5Cb&i=nope&files=&excludeFiles=CHANGELOG&repos=kubernetes/enhancements) | -| NodeLogQuery | | | 1.27–1.29 | 1.30– | | | | [code](https://cs.k8s.io/?q=%5CbNodeLogQuery%5Cb&i=nope&files=&excludeFiles=CHANGELOG&repos=kubernetes/kubernetes) [KEPs](https://cs.k8s.io/?q=%5CbNodeLogQuery%5Cb&i=nope&files=&excludeFiles=CHANGELOG&repos=kubernetes/enhancements) | +| NodeLogQuery | :ballot_box_with_check: 1.36+ | :closed_lock_with_key: 1.36+ | 1.27–1.29 | 1.30–1.35 | 1.36– | | | [code](https://cs.k8s.io/?q=%5CbNodeLogQuery%5Cb&i=nope&files=&excludeFiles=CHANGELOG&repos=kubernetes/kubernetes) [KEPs](https://cs.k8s.io/?q=%5CbNodeLogQuery%5Cb&i=nope&files=&excludeFiles=CHANGELOG&repos=kubernetes/enhancements) | | NodeSwap | :ballot_box_with_check: 1.30+ | :closed_lock_with_key: 1.34+ | 1.22–1.27 | 1.28–1.33 | 1.34– | | | [code](https://cs.k8s.io/?q=%5CbNodeSwap%5Cb&i=nope&files=&excludeFiles=CHANGELOG&repos=kubernetes/kubernetes) [KEPs](https://cs.k8s.io/?q=%5CbNodeSwap%5Cb&i=nope&files=&excludeFiles=CHANGELOG&repos=kubernetes/enhancements) | | NominatedNodeNameForExpectation | :ballot_box_with_check: 1.35+ | | 1.34 | 1.35– | | | | [code](https://cs.k8s.io/?q=%5CbNominatedNodeNameForExpectation%5Cb&i=nope&files=&excludeFiles=CHANGELOG&repos=kubernetes/kubernetes) [KEPs](https://cs.k8s.io/?q=%5CbNominatedNodeNameForExpectation%5Cb&i=nope&files=&excludeFiles=CHANGELOG&repos=kubernetes/enhancements) | | OpenAPIEnums | :ballot_box_with_check: 1.24+ | | 1.23 | 1.24– | | | | [code](https://cs.k8s.io/?q=%5CbOpenAPIEnums%5Cb&i=nope&files=&excludeFiles=CHANGELOG&repos=kubernetes/kubernetes) [KEPs](https://cs.k8s.io/?q=%5CbOpenAPIEnums%5Cb&i=nope&files=&excludeFiles=CHANGELOG&repos=kubernetes/enhancements) | diff --git a/test/compatibility_lifecycle/reference/versioned_feature_list.yaml b/test/compatibility_lifecycle/reference/versioned_feature_list.yaml index 3657e0b8fce..8b2bbef3e31 100644 --- a/test/compatibility_lifecycle/reference/versioned_feature_list.yaml +++ b/test/compatibility_lifecycle/reference/versioned_feature_list.yaml @@ -1267,6 +1267,10 @@ lockToDefault: false preRelease: Beta version: "1.30" + - default: true + lockToDefault: true + preRelease: GA + version: "1.36" - name: NodeSwap versionedSpecs: - default: false diff --git a/test/e2e/feature/feature.go b/test/e2e/feature/feature.go index 0fe79f69b4f..e1f1d5d4e67 100644 --- a/test/e2e/feature/feature.go +++ b/test/e2e/feature/feature.go @@ -311,7 +311,10 @@ var ( // TODO: document the feature (owning SIG, when to use this feature for a test) NodeAuthorizer = framework.WithFeature(framework.ValidFeatures.Add("NodeAuthorizer")) - // TODO: document the feature (owning SIG, when to use this feature for a test) + // Owner: sig-windows, sig-node + // kep: https://kep.k8s.io/2271 + // Marks tests that require the kubelet to have enableSystemLogQuery set to true + // in the kubelet configuration. This handler is off by default. NodeLogQuery = framework.WithFeature(framework.ValidFeatures.Add("NodeLogQuery")) // Owner: sig-node