From 26279a5282c699e61e04c71091f69d77199e42b1 Mon Sep 17 00:00:00 2001 From: Aravindh Puthiyaparambil Date: Mon, 6 Mar 2023 16:19:16 -0800 Subject: [PATCH] kubelet: Add validation for EnableNodeLogQuery --- .../apis/config/validation/validation.go | 8 ++++++++ .../apis/config/validation/validation_test.go | 18 ++++++++++++++++++ 2 files changed, 26 insertions(+) diff --git a/pkg/kubelet/apis/config/validation/validation.go b/pkg/kubelet/apis/config/validation/validation.go index 80fa2f7abb1..81fdf241936 100644 --- a/pkg/kubelet/apis/config/validation/validation.go +++ b/pkg/kubelet/apis/config/validation/validation.go @@ -262,5 +262,13 @@ func ValidateKubeletConfiguration(kc *kubeletconfig.KubeletConfiguration, featur allErrors = append(allErrors, fmt.Errorf("invalid configuration: the containerRuntimeEndpoint was not specified or empty")) } + if kc.EnableSystemLogQuery && !localFeatureGate.Enabled(features.NodeLogQuery) { + allErrors = append(allErrors, fmt.Errorf("invalid configuration: NodeLogQuery feature gate is required for enableSystemLogHandler")) + } + if kc.EnableSystemLogQuery && !kc.EnableSystemLogHandler { + allErrors = append(allErrors, + fmt.Errorf("invalid configuration: enableSystemLogHandler is required for enableSystemLogQuery")) + } + return utilerrors.NewAggregate(allErrors) } diff --git a/pkg/kubelet/apis/config/validation/validation_test.go b/pkg/kubelet/apis/config/validation/validation_test.go index a4de1238b12..c1b049e059e 100644 --- a/pkg/kubelet/apis/config/validation/validation_test.go +++ b/pkg/kubelet/apis/config/validation/validation_test.go @@ -563,6 +563,24 @@ func TestValidateKubeletConfiguration(t *testing.T) { }, errMsg: "invalid configuration: Specifying shutdownGracePeriodByPodPriority requires feature gate GracefulNodeShutdownBasedOnPodPriority", }, + { + name: "enableSystemLogQuery is enabled without NodeLogQuery feature gate", + configure: func(conf *kubeletconfig.KubeletConfiguration) *kubeletconfig.KubeletConfiguration { + conf.EnableSystemLogQuery = true + return conf + }, + errMsg: "invalid configuration: NodeLogQuery feature gate is required for enableSystemLogHandler", + }, + { + 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", + }, } for _, tc := range cases {