kubelet: Add validation for EnableNodeLogQuery

This commit is contained in:
Aravindh Puthiyaparambil 2023-03-06 16:19:16 -08:00
parent aadad09410
commit 26279a5282
No known key found for this signature in database
GPG Key ID: 2281DA6B582F6AA6
2 changed files with 26 additions and 0 deletions

View File

@ -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)
}

View File

@ -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 {