mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-08-05 02:09:56 +00:00
Merge pull request #130138 from rata/userns-enabled-by-default
features: Enable user namespaces by default
This commit is contained in:
commit
761f5646be
@ -808,6 +808,7 @@ var defaultVersionedKubernetesFeatureGates = map[featuregate.Feature]featuregate
|
|||||||
UserNamespacesSupport: {
|
UserNamespacesSupport: {
|
||||||
{Version: version.MustParse("1.25"), Default: false, PreRelease: featuregate.Alpha},
|
{Version: version.MustParse("1.25"), Default: false, PreRelease: featuregate.Alpha},
|
||||||
{Version: version.MustParse("1.30"), Default: false, PreRelease: featuregate.Beta},
|
{Version: version.MustParse("1.30"), Default: false, PreRelease: featuregate.Beta},
|
||||||
|
{Version: version.MustParse("1.33"), Default: true, PreRelease: featuregate.Beta},
|
||||||
},
|
},
|
||||||
|
|
||||||
VolumeAttributesClass: {
|
VolumeAttributesClass: {
|
||||||
|
@ -97,6 +97,7 @@ import (
|
|||||||
"k8s.io/kubernetes/pkg/kubelet/sysctl"
|
"k8s.io/kubernetes/pkg/kubelet/sysctl"
|
||||||
"k8s.io/kubernetes/pkg/kubelet/token"
|
"k8s.io/kubernetes/pkg/kubelet/token"
|
||||||
kubetypes "k8s.io/kubernetes/pkg/kubelet/types"
|
kubetypes "k8s.io/kubernetes/pkg/kubelet/types"
|
||||||
|
"k8s.io/kubernetes/pkg/kubelet/userns"
|
||||||
kubeletutil "k8s.io/kubernetes/pkg/kubelet/util"
|
kubeletutil "k8s.io/kubernetes/pkg/kubelet/util"
|
||||||
"k8s.io/kubernetes/pkg/kubelet/util/queue"
|
"k8s.io/kubernetes/pkg/kubelet/util/queue"
|
||||||
kubeletvolume "k8s.io/kubernetes/pkg/kubelet/volumemanager"
|
kubeletvolume "k8s.io/kubernetes/pkg/kubelet/volumemanager"
|
||||||
@ -371,6 +372,10 @@ func newTestKubeletWithImageList(
|
|||||||
ShutdownGracePeriodCriticalPods: 0,
|
ShutdownGracePeriodCriticalPods: 0,
|
||||||
})
|
})
|
||||||
kubelet.shutdownManager = shutdownManager
|
kubelet.shutdownManager = shutdownManager
|
||||||
|
kubelet.usernsManager, err = userns.MakeUserNsManager(kubelet)
|
||||||
|
if err != nil {
|
||||||
|
t.Fatalf("Failed to create UserNsManager: %v", err)
|
||||||
|
}
|
||||||
kubelet.admitHandlers.AddPodAdmitHandler(shutdownManager)
|
kubelet.admitHandlers.AddPodAdmitHandler(shutdownManager)
|
||||||
|
|
||||||
// Add this as cleanup predicate pod admitter
|
// Add this as cleanup predicate pod admitter
|
||||||
|
@ -41,7 +41,7 @@ var _ = SIGDescribe("DefaultProcMount [LinuxOnly]", framework.WithNodeConformanc
|
|||||||
f.NamespacePodSecurityLevel = admissionapi.LevelBaseline
|
f.NamespacePodSecurityLevel = admissionapi.LevelBaseline
|
||||||
|
|
||||||
ginkgo.It("will mask proc mounts by default", func(ctx context.Context) {
|
ginkgo.It("will mask proc mounts by default", func(ctx context.Context) {
|
||||||
testProcMount(ctx, f, v1.DefaultProcMount, gomega.BeNumerically(">", 1), gomega.BeNumerically(">", 0))
|
testProcMount(ctx, f, v1.DefaultProcMount, true, gomega.BeNumerically(">", 1), gomega.BeNumerically(">", 0))
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
@ -85,11 +85,11 @@ var _ = SIGDescribe("ProcMount [LinuxOnly]", feature.ProcMountType, feature.User
|
|||||||
if !supportsUserNS(ctx, f) {
|
if !supportsUserNS(ctx, f) {
|
||||||
e2eskipper.Skipf("runtime does not support user namespaces")
|
e2eskipper.Skipf("runtime does not support user namespaces")
|
||||||
}
|
}
|
||||||
testProcMount(ctx, f, v1.UnmaskedProcMount, gomega.Equal(1), gomega.BeZero())
|
testProcMount(ctx, f, v1.UnmaskedProcMount, false, gomega.Equal(1), gomega.BeZero())
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
func testProcMount(ctx context.Context, f *framework.Framework, pmt v1.ProcMountType, expectedLines gomegatypes.GomegaMatcher, expectedReadOnly gomegatypes.GomegaMatcher) {
|
func testProcMount(ctx context.Context, f *framework.Framework, pmt v1.ProcMountType, hostUsers bool, expectedLines gomegatypes.GomegaMatcher, expectedReadOnly gomegatypes.GomegaMatcher) {
|
||||||
ginkgo.By("creating a target pod")
|
ginkgo.By("creating a target pod")
|
||||||
podClient := e2epod.NewPodClient(f)
|
podClient := e2epod.NewPodClient(f)
|
||||||
pod := podClient.CreateSync(ctx, &v1.Pod{
|
pod := podClient.CreateSync(ctx, &v1.Pod{
|
||||||
@ -106,7 +106,7 @@ func testProcMount(ctx context.Context, f *framework.Framework, pmt v1.ProcMount
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
HostUsers: &falseVar,
|
HostUsers: &hostUsers,
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
|
@ -1520,6 +1520,10 @@
|
|||||||
lockToDefault: false
|
lockToDefault: false
|
||||||
preRelease: Beta
|
preRelease: Beta
|
||||||
version: "1.30"
|
version: "1.30"
|
||||||
|
- default: true
|
||||||
|
lockToDefault: false
|
||||||
|
preRelease: Beta
|
||||||
|
version: "1.33"
|
||||||
- name: VolumeAttributesClass
|
- name: VolumeAttributesClass
|
||||||
versionedSpecs:
|
versionedSpecs:
|
||||||
- default: false
|
- default: false
|
||||||
|
Loading…
Reference in New Issue
Block a user