Skip to content

Commit d26b445

Browse files
stlazaramase
authored andcommitted
move Ensure Secret-Pulled Images feature to beta
Signed-off-by: Stanislav Láznička <[email protected]> Signed-off-by: Anish Ramasekar <[email protected]>
1 parent 805eb88 commit d26b445

File tree

9 files changed

+153
-137
lines changed

9 files changed

+153
-137
lines changed

pkg/features/kube_features.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1417,6 +1417,7 @@ var defaultVersionedKubernetesFeatureGates = map[featuregate.Feature]featuregate
14171417

14181418
KubeletEnsureSecretPulledImages: {
14191419
{Version: version.MustParse("1.33"), Default: false, PreRelease: featuregate.Alpha},
1420+
{Version: version.MustParse("1.35"), Default: true, PreRelease: featuregate.Beta},
14201421
},
14211422

14221423
KubeletFineGrainedAuthz: {

pkg/kubelet/apis/config/fuzzer/fuzzer.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,7 @@ func Funcs(codecs runtimeserializer.CodecFactory) []interface{} {
6464
obj.ImageMaximumGCAge = metav1.Duration{}
6565
obj.ImageGCHighThresholdPercent = 85
6666
obj.ImageGCLowThresholdPercent = 80
67+
obj.ImagePullCredentialsVerificationPolicy = string(kubeletconfig.NeverVerifyPreloadedImages)
6768
obj.KernelMemcgNotification = false
6869
obj.MaxOpenFiles = 1000000
6970
obj.MaxPods = 110

pkg/kubelet/apis/config/scheme/testdata/KubeletConfiguration/after/v1beta1.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@ imageGCHighThresholdPercent: 85
5050
imageGCLowThresholdPercent: 80
5151
imageMaximumGCAge: 0s
5252
imageMinimumGCAge: 2m0s
53+
imagePullCredentialsVerificationPolicy: NeverVerifyPreloadedImages
5354
iptablesDropBit: 15
5455
iptablesMasqueradeBit: 14
5556
kind: KubeletConfiguration

pkg/kubelet/apis/config/scheme/testdata/KubeletConfiguration/roundtrip/default/v1beta1.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@ imageGCHighThresholdPercent: 85
5050
imageGCLowThresholdPercent: 80
5151
imageMaximumGCAge: 0s
5252
imageMinimumGCAge: 2m0s
53+
imagePullCredentialsVerificationPolicy: NeverVerifyPreloadedImages
5354
iptablesDropBit: 15
5455
iptablesMasqueradeBit: 14
5556
kind: KubeletConfiguration

pkg/kubelet/apis/config/v1beta1/defaults_test.go

Lines changed: 106 additions & 100 deletions
Large diffs are not rendered by default.

pkg/kubelet/apis/config/validation/validation_test.go

Lines changed: 34 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -36,39 +36,40 @@ import (
3636

3737
var (
3838
successConfig = kubeletconfig.KubeletConfiguration{
39-
CgroupsPerQOS: cgroupsPerQOS,
40-
EnforceNodeAllocatable: enforceNodeAllocatable,
41-
SystemReservedCgroup: "/system.slice",
42-
KubeReservedCgroup: "/kubelet.service",
43-
PodLogsDir: "/logs",
44-
SystemCgroups: "",
45-
CgroupRoot: "",
46-
EventBurst: 10,
47-
EventRecordQPS: 5,
48-
HealthzPort: 10248,
49-
ImageGCHighThresholdPercent: 85,
50-
ImageGCLowThresholdPercent: 80,
51-
IPTablesDropBit: 15,
52-
IPTablesMasqueradeBit: 14,
53-
KubeAPIBurst: 10,
54-
KubeAPIQPS: 5,
55-
MaxOpenFiles: 1000000,
56-
MaxPods: 110,
57-
OOMScoreAdj: -999,
58-
PodsPerCore: 100,
59-
Port: 65535,
60-
ReadOnlyPort: 0,
61-
RegistryBurst: 10,
62-
RegistryPullQPS: 5,
63-
MaxParallelImagePulls: nil,
64-
HairpinMode: kubeletconfig.PromiscuousBridge,
65-
NodeLeaseDurationSeconds: 1,
66-
CPUCFSQuotaPeriod: metav1.Duration{Duration: 25 * time.Millisecond},
67-
TopologyManagerScope: kubeletconfig.PodTopologyManagerScope,
68-
TopologyManagerPolicy: kubeletconfig.SingleNumaNodeTopologyManagerPolicy,
69-
ShutdownGracePeriod: metav1.Duration{Duration: 30 * time.Second},
70-
ShutdownGracePeriodCriticalPods: metav1.Duration{Duration: 10 * time.Second},
71-
MemoryThrottlingFactor: ptr.To(0.9),
39+
CgroupsPerQOS: cgroupsPerQOS,
40+
EnforceNodeAllocatable: enforceNodeAllocatable,
41+
SystemReservedCgroup: "/system.slice",
42+
KubeReservedCgroup: "/kubelet.service",
43+
PodLogsDir: "/logs",
44+
SystemCgroups: "",
45+
CgroupRoot: "",
46+
EventBurst: 10,
47+
EventRecordQPS: 5,
48+
HealthzPort: 10248,
49+
ImageGCHighThresholdPercent: 85,
50+
ImageGCLowThresholdPercent: 80,
51+
ImagePullCredentialsVerificationPolicy: "NeverVerifyPreloadedImages",
52+
IPTablesDropBit: 15,
53+
IPTablesMasqueradeBit: 14,
54+
KubeAPIBurst: 10,
55+
KubeAPIQPS: 5,
56+
MaxOpenFiles: 1000000,
57+
MaxPods: 110,
58+
OOMScoreAdj: -999,
59+
PodsPerCore: 100,
60+
Port: 65535,
61+
ReadOnlyPort: 0,
62+
RegistryBurst: 10,
63+
RegistryPullQPS: 5,
64+
MaxParallelImagePulls: nil,
65+
HairpinMode: kubeletconfig.PromiscuousBridge,
66+
NodeLeaseDurationSeconds: 1,
67+
CPUCFSQuotaPeriod: metav1.Duration{Duration: 25 * time.Millisecond},
68+
TopologyManagerScope: kubeletconfig.PodTopologyManagerScope,
69+
TopologyManagerPolicy: kubeletconfig.SingleNumaNodeTopologyManagerPolicy,
70+
ShutdownGracePeriod: metav1.Duration{Duration: 30 * time.Second},
71+
ShutdownGracePeriodCriticalPods: metav1.Duration{Duration: 10 * time.Second},
72+
MemoryThrottlingFactor: ptr.To(0.9),
7273
FeatureGates: map[string]bool{
7374
"CustomCPUCFSQuotaPeriod": true,
7475
"GracefulNodeShutdown": true,

pkg/kubelet/images/image_manager_test.go

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1284,7 +1284,7 @@ func TestParallelPodPullingTimeRecorderWithErr(t *testing.T) {
12841284
for i := 0; i < 2; i++ {
12851285
wg.Add(1)
12861286
go func(i int) {
1287-
_, _, err := puller.EnsureImageExists(ctx, nil, pods[i], container.Image, testCase.pullSecrets, nil, "", container.ImagePullPolicy)
1287+
_, _, err := puller.EnsureImageExists(ctx, nil, pods[i], container.Image, testCase.pullSecrets, podSandboxes[i], "", container.ImagePullPolicy)
12881288
assert.NoError(t, err)
12891289
wg.Done()
12901290
}(i)
@@ -1489,9 +1489,7 @@ func TestEnsureImageExistsWithServiceAccountCoordinates(t *testing.T) {
14891489

14901490
for _, tc := range cases {
14911491
t.Run(tc.name, func(t *testing.T) {
1492-
if tc.enableEnsureSecretImages {
1493-
featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.KubeletEnsureSecretPulledImages, true)
1494-
}
1492+
featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.KubeletEnsureSecretPulledImages, tc.enableEnsureSecretImages)
14951493

14961494
ctx := context.Background()
14971495
fakeClock := testingclock.NewFakeClock(time.Now())

pkg/kubelet/kubelet_test.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3269,6 +3269,7 @@ func TestNewMainKubeletStandAlone(t *testing.T) {
32693269
ConfigMapAndSecretChangeDetectionStrategy: kubeletconfiginternal.WatchChangeDetectionStrategy,
32703270
ContainerLogMaxSize: "10Mi",
32713271
ContainerLogMaxFiles: 5,
3272+
ImagePullCredentialsVerificationPolicy: "NeverVerifyPreloadedImages",
32723273
MemoryThrottlingFactor: ptr.To[float64](0),
32733274
CrashLoopBackOff: kubeletconfiginternal.CrashLoopBackOffConfig{
32743275
MaxContainerRestartPeriod: &metav1.Duration{Duration: 5 * time.Minute},
@@ -3395,6 +3396,8 @@ func TestSyncPodSpans(t *testing.T) {
33953396
ContainerLogMaxSize: "10Mi",
33963397
ContainerLogMaxFiles: 5,
33973398
MemoryThrottlingFactor: ptr.To[float64](0),
3399+
MaxPods: 110,
3400+
MaxParallelImagePulls: ptr.To[int32](5),
33983401
}
33993402

34003403
exp := tracetest.NewInMemoryExporter()

test/compatibility_lifecycle/reference/versioned_feature_list.yaml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -861,6 +861,10 @@
861861
lockToDefault: false
862862
preRelease: Alpha
863863
version: "1.33"
864+
- default: true
865+
lockToDefault: false
866+
preRelease: Beta
867+
version: "1.35"
864868
- name: KubeletFineGrainedAuthz
865869
versionedSpecs:
866870
- default: false

0 commit comments

Comments
 (0)