add kubelet validation for containerLogMaxFiles

This commit is contained in:
Kevin Hannon 2024-12-03 10:52:42 -05:00
parent 810e9e212e
commit a0b74011b2
2 changed files with 12 additions and 0 deletions

View File

@ -342,6 +342,10 @@ func ValidateKubeletConfiguration(kc *kubeletconfig.KubeletConfiguration, featur
allErrors = append(allErrors, fmt.Errorf("invalid configuration: containerLogMonitorInterval must be a positive time duration greater than or equal to 3s")) allErrors = append(allErrors, fmt.Errorf("invalid configuration: containerLogMonitorInterval must be a positive time duration greater than or equal to 3s"))
} }
if kc.ContainerLogMaxFiles <= 1 {
allErrors = append(allErrors, fmt.Errorf("invalid configuration: containerLogMaxFiles must be greater than 1"))
}
if kc.PodLogsDir == "" { if kc.PodLogsDir == "" {
allErrors = append(allErrors, fmt.Errorf("invalid configuration: podLogsDir was not specified")) allErrors = append(allErrors, fmt.Errorf("invalid configuration: podLogsDir was not specified"))
} }

View File

@ -79,6 +79,7 @@ var (
}, },
ContainerRuntimeEndpoint: "unix:///run/containerd/containerd.sock", ContainerRuntimeEndpoint: "unix:///run/containerd/containerd.sock",
ContainerLogMaxWorkers: 1, ContainerLogMaxWorkers: 1,
ContainerLogMaxFiles: 5,
ContainerLogMonitorInterval: metav1.Duration{Duration: 10 * time.Second}, ContainerLogMonitorInterval: metav1.Duration{Duration: 10 * time.Second},
SingleProcessOOMKill: ptr.To(!kubeletutil.IsCgroup2UnifiedMode()), SingleProcessOOMKill: ptr.To(!kubeletutil.IsCgroup2UnifiedMode()),
CrashLoopBackOff: kubeletconfig.CrashLoopBackOffConfig{ CrashLoopBackOff: kubeletconfig.CrashLoopBackOffConfig{
@ -700,6 +701,13 @@ func TestValidateKubeletConfiguration(t *testing.T) {
return config return config
}, },
errMsg: `invalid configuration: pod logs path "/🧪" mut contains ASCII characters only`, errMsg: `invalid configuration: pod logs path "/🧪" mut contains ASCII characters only`,
}, {
name: "invalid containerLogMaxFiles",
configure: func(conf *kubeletconfig.KubeletConfiguration) *kubeletconfig.KubeletConfiguration {
conf.ContainerLogMaxFiles = 1
return conf
},
errMsg: "invalid configuration: containerLogMaxFiles must be greater than 1",
}, { }, {
name: "invalid ContainerRuntimeEndpoint", name: "invalid ContainerRuntimeEndpoint",
configure: func(conf *kubeletconfig.KubeletConfiguration) *kubeletconfig.KubeletConfiguration { configure: func(conf *kubeletconfig.KubeletConfiguration) *kubeletconfig.KubeletConfiguration {