node_e2e: fix kubelet configuration setup

This commit is contained in:
Paco Xu
2025-09-11 14:14:01 +08:00
parent 4a843fca6f
commit 455a437674
4 changed files with 39 additions and 16 deletions

View File

@@ -67,7 +67,10 @@ var _ = SIGDescribe("Container Restart", feature.CriProxy, framework.WithSerial(
tempSetCurrentKubeletConfig(f, func(ctx context.Context, initialConfig *kubeletconfig.KubeletConfiguration) {
initialConfig.CrashLoopBackOff.MaxContainerRestartPeriod = &metav1.Duration{Duration: time.Duration(30 * time.Second)}
initialConfig.FeatureGates = map[string]bool{"KubeletCrashLoopBackOffMax": true}
if initialConfig.FeatureGates == nil {
initialConfig.FeatureGates = map[string]bool{}
}
initialConfig.FeatureGates["KubeletCrashLoopBackOffMax"] = true
})
ginkgo.BeforeEach(func() {
@@ -88,7 +91,10 @@ var _ = SIGDescribe("Container Restart", feature.CriProxy, framework.WithSerial(
ginkgo.Context("Reduced default container restart backs off as expected", func() {
tempSetCurrentKubeletConfig(f, func(ctx context.Context, initialConfig *kubeletconfig.KubeletConfiguration) {
initialConfig.FeatureGates = map[string]bool{"ReduceDefaultCrashLoopBackOffDecay": true}
if initialConfig.FeatureGates == nil {
initialConfig.FeatureGates = map[string]bool{}
}
initialConfig.FeatureGates["ReduceDefaultCrashLoopBackOffDecay"] = true
})
ginkgo.BeforeEach(func() {
@@ -111,9 +117,12 @@ var _ = SIGDescribe("Container Restart", feature.CriProxy, framework.WithSerial(
ginkgo.Context("Lower node config container restart takes precedence", func() {
tempSetCurrentKubeletConfig(f, func(ctx context.Context, initialConfig *kubeletconfig.KubeletConfiguration) {
initialConfig.FeatureGates = map[string]bool{"ReduceDefaultCrashLoopBackOffDecay": true}
initialConfig.CrashLoopBackOff.MaxContainerRestartPeriod = &metav1.Duration{Duration: time.Duration(1 * time.Second)}
initialConfig.FeatureGates = map[string]bool{"KubeletCrashLoopBackOffMax": true}
if initialConfig.FeatureGates == nil {
initialConfig.FeatureGates = map[string]bool{}
}
initialConfig.FeatureGates["ReduceDefaultCrashLoopBackOffDecay"] = true
initialConfig.FeatureGates["KubeletCrashLoopBackOffMax"] = true
})
ginkgo.BeforeEach(func() {

View File

@@ -20,6 +20,7 @@ import (
"context"
"os"
"path/filepath"
"strconv"
"time"
"github.com/onsi/ginkgo/v2"
@@ -28,6 +29,7 @@ import (
kubeletconfig "k8s.io/kubernetes/pkg/kubelet/apis/config"
"k8s.io/kubernetes/test/e2e/feature"
"k8s.io/kubernetes/test/e2e/framework"
"k8s.io/utils/cpuset"
)
var _ = SIGDescribe("Kubelet Config", framework.WithSlow(), framework.WithSerial(), framework.WithDisruptive(), feature.KubeletConfigDropInDir, func() {
@@ -138,6 +140,12 @@ featureGates:
if initialConfig.SystemReserved == nil {
initialConfig.SystemReserved = map[string]string{}
}
if initialConfig.ReservedSystemCPUs != "" {
reservedCPUSet, err := cpuset.Parse(initialConfig.ReservedSystemCPUs)
if err == nil {
initialConfig.SystemReserved["cpu"] = strconv.Itoa(reservedCPUSet.Size())
}
}
initialConfig.SystemReserved["memory"] = "2Gi"
initialConfig.ClusterDNS = []string{"192.168.1.1", "192.168.1.5", "192.168.1.8"} // overridden by slice in second file.
// This value was explicitly set in the drop-in, make sure it is retained

View File

@@ -93,10 +93,11 @@ var _ = SIGDescribe("GracefulNodeShutdown", framework.WithSerial(), feature.Grac
)
tempSetCurrentKubeletConfig(f, func(ctx context.Context, initialConfig *kubeletconfig.KubeletConfiguration) {
initialConfig.FeatureGates = map[string]bool{
string(features.GracefulNodeShutdown): true,
string(features.GracefulNodeShutdownBasedOnPodPriority): false,
if initialConfig.FeatureGates == nil {
initialConfig.FeatureGates = map[string]bool{}
}
initialConfig.FeatureGates[string(features.GracefulNodeShutdown)] = true
initialConfig.FeatureGates[string(features.GracefulNodeShutdownBasedOnPodPriority)] = false
initialConfig.ShutdownGracePeriod = metav1.Duration{Duration: nodeShutdownGracePeriod}
})
@@ -195,11 +196,13 @@ var _ = SIGDescribe("GracefulNodeShutdown", framework.WithSerial(), feature.Grac
)
tempSetCurrentKubeletConfig(f, func(ctx context.Context, initialConfig *kubeletconfig.KubeletConfiguration) {
initialConfig.FeatureGates = map[string]bool{
string(features.GracefulNodeShutdown): true,
string(features.GracefulNodeShutdownBasedOnPodPriority): false,
string(features.PodReadyToStartContainersCondition): true,
if initialConfig.FeatureGates == nil {
initialConfig.FeatureGates = map[string]bool{}
}
initialConfig.FeatureGates[string(features.GracefulNodeShutdown)] = true
initialConfig.FeatureGates[string(features.GracefulNodeShutdownBasedOnPodPriority)] = false
initialConfig.FeatureGates[string(features.PodReadyToStartContainersCondition)] = true
initialConfig.ShutdownGracePeriod = metav1.Duration{Duration: nodeShutdownGracePeriod}
initialConfig.ShutdownGracePeriodCriticalPods = metav1.Duration{Duration: nodeShutdownGracePeriodCriticalPods}
})
@@ -390,10 +393,12 @@ var _ = SIGDescribe("GracefulNodeShutdown", framework.WithSerial(), feature.Grac
)
tempSetCurrentKubeletConfig(f, func(ctx context.Context, initialConfig *kubeletconfig.KubeletConfiguration) {
initialConfig.FeatureGates = map[string]bool{
string(features.GracefulNodeShutdown): true,
string(features.GracefulNodeShutdownBasedOnPodPriority): true,
if initialConfig.FeatureGates == nil {
initialConfig.FeatureGates = map[string]bool{}
}
initialConfig.FeatureGates[string(features.GracefulNodeShutdown)] = true
initialConfig.FeatureGates[string(features.GracefulNodeShutdownBasedOnPodPriority)] = true
initialConfig.ShutdownGracePeriodByPodPriority = []kubeletconfig.ShutdownGracePeriodByPodPriority{
{
Priority: scheduling.SystemCriticalPriority,

View File

@@ -50,9 +50,10 @@ var _ = SIGDescribe("Pod conditions managed by Kubelet", func() {
f.Context("including PodReadyToStartContainers condition", f.WithSerial(), feature.PodReadyToStartContainersCondition, func() {
tempSetCurrentKubeletConfig(f, func(ctx context.Context, initialConfig *kubeletconfig.KubeletConfiguration) {
initialConfig.FeatureGates = map[string]bool{
string(features.PodReadyToStartContainersCondition): true,
if initialConfig.FeatureGates == nil {
initialConfig.FeatureGates = map[string]bool{}
}
initialConfig.FeatureGates[string(features.PodReadyToStartContainersCondition)] = true
})
ginkgo.It("a pod without init containers should report all conditions set in expected order after the pod is up", runPodReadyConditionsTest(f, false, true))
ginkgo.It("a pod with init containers should report all conditions set in expected order after the pod is up", runPodReadyConditionsTest(f, true, true))