mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-19 09:52:49 +00:00
Flip SELinuxMountReadWriteOncePod to Beta
And enable all e2e tests by default. They're still behind `[Feature:SELinux]` tag to ensure the underlying OS supports SELinux.
This commit is contained in:
parent
c8f001d798
commit
a84dc2d5c5
@ -96,6 +96,10 @@ var Funcs = func(codecs runtimeserializer.CodecFactory) []interface{} {
|
|||||||
storage.VolumeLifecyclePersistent,
|
storage.VolumeLifecyclePersistent,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if obj.Spec.SELinuxMount == nil {
|
||||||
|
obj.Spec.SELinuxMount = new(bool)
|
||||||
|
*(obj.Spec.SELinuxMount) = false
|
||||||
|
}
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -858,6 +858,7 @@ const (
|
|||||||
// owner: @jsafrane
|
// owner: @jsafrane
|
||||||
// kep: https://kep.k8s.io/1710
|
// kep: https://kep.k8s.io/1710
|
||||||
// alpha: v1.25
|
// alpha: v1.25
|
||||||
|
// beta: v1.27
|
||||||
// Speed up container startup by mounting volumes with the correct SELinux label
|
// Speed up container startup by mounting volumes with the correct SELinux label
|
||||||
// instead of changing each file on the volumes recursively.
|
// instead of changing each file on the volumes recursively.
|
||||||
// Initial implementation focused on ReadWriteOncePod volumes.
|
// Initial implementation focused on ReadWriteOncePod volumes.
|
||||||
@ -1098,7 +1099,7 @@ var defaultKubernetesFeatureGates = map[featuregate.Feature]featuregate.FeatureS
|
|||||||
|
|
||||||
NodeInclusionPolicyInPodTopologySpread: {Default: true, PreRelease: featuregate.Beta},
|
NodeInclusionPolicyInPodTopologySpread: {Default: true, PreRelease: featuregate.Beta},
|
||||||
|
|
||||||
SELinuxMountReadWriteOncePod: {Default: false, PreRelease: featuregate.Alpha},
|
SELinuxMountReadWriteOncePod: {Default: true, PreRelease: featuregate.Beta},
|
||||||
|
|
||||||
InPlacePodVerticalScaling: {Default: false, PreRelease: featuregate.Alpha},
|
InPlacePodVerticalScaling: {Default: false, PreRelease: featuregate.Alpha},
|
||||||
|
|
||||||
|
@ -120,5 +120,6 @@ func (hu *FakeHostUtil) GetMode(pathname string) (os.FileMode, error) {
|
|||||||
// GetSELinuxMountContext returns value of -o context=XYZ mount option on
|
// GetSELinuxMountContext returns value of -o context=XYZ mount option on
|
||||||
// given mount point.
|
// given mount point.
|
||||||
func (hu *FakeHostUtil) GetSELinuxMountContext(pathname string) (string, error) {
|
func (hu *FakeHostUtil) GetSELinuxMountContext(pathname string) (string, error) {
|
||||||
return "", errors.New("not implemented")
|
// This pretends the OS does not support SELinux.
|
||||||
|
return "", nil
|
||||||
}
|
}
|
||||||
|
@ -45,7 +45,7 @@ var _ = utils.SIGDescribe("CSI Mock selinux on mount", func() {
|
|||||||
f.NamespacePodSecurityEnforceLevel = admissionapi.LevelPrivileged
|
f.NamespacePodSecurityEnforceLevel = admissionapi.LevelPrivileged
|
||||||
m := newMockDriverSetup(f)
|
m := newMockDriverSetup(f)
|
||||||
|
|
||||||
ginkgo.Context("SELinuxMount [LinuxOnly][Feature:SELinux][Feature:SELinuxMountReadWriteOncePod]", func() {
|
ginkgo.Context("SELinuxMount [LinuxOnly][Feature:SELinux]", func() {
|
||||||
// Make sure all options are set so system specific defaults are not used.
|
// Make sure all options are set so system specific defaults are not used.
|
||||||
seLinuxOpts1 := v1.SELinuxOptions{
|
seLinuxOpts1 := v1.SELinuxOptions{
|
||||||
User: "system_u",
|
User: "system_u",
|
||||||
|
@ -207,26 +207,26 @@ func (s *disruptiveTestSuite) DefineTests(driver storageframework.TestDriver, pa
|
|||||||
}
|
}
|
||||||
multiplePodTests := []multiplePodTest{
|
multiplePodTests := []multiplePodTest{
|
||||||
{
|
{
|
||||||
testItStmt: "Should test that pv used in a pod that is deleted while the kubelet is down is usable by a new pod when kubelet returns [Feature:SELinux][Feature:SELinuxMountReadWriteOncePod].",
|
testItStmt: "Should test that pv used in a pod that is deleted while the kubelet is down is usable by a new pod when kubelet returns [Feature:SELinux].",
|
||||||
runTestFile: func(ctx context.Context, c clientset.Interface, f *framework.Framework, pod1, pod2 *v1.Pod) {
|
runTestFile: func(ctx context.Context, c clientset.Interface, f *framework.Framework, pod1, pod2 *v1.Pod) {
|
||||||
storageutils.TestVolumeUnmountsFromDeletedPodWithForceOption(ctx, c, f, pod1, false, false, pod2, e2epod.VolumeMountPath1)
|
storageutils.TestVolumeUnmountsFromDeletedPodWithForceOption(ctx, c, f, pod1, false, false, pod2, e2epod.VolumeMountPath1)
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
testItStmt: "Should test that pv used in a pod that is force deleted while the kubelet is down is usable by a new pod when kubelet returns [Feature:SELinux][Feature:SELinuxMountReadWriteOncePod].",
|
testItStmt: "Should test that pv used in a pod that is force deleted while the kubelet is down is usable by a new pod when kubelet returns [Feature:SELinux].",
|
||||||
runTestFile: func(ctx context.Context, c clientset.Interface, f *framework.Framework, pod1, pod2 *v1.Pod) {
|
runTestFile: func(ctx context.Context, c clientset.Interface, f *framework.Framework, pod1, pod2 *v1.Pod) {
|
||||||
storageutils.TestVolumeUnmountsFromDeletedPodWithForceOption(ctx, c, f, pod1, true, false, pod2, e2epod.VolumeMountPath1)
|
storageutils.TestVolumeUnmountsFromDeletedPodWithForceOption(ctx, c, f, pod1, true, false, pod2, e2epod.VolumeMountPath1)
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
testItStmt: "Should test that pv used in a pod that is deleted while the kubelet is down is usable by a new pod with a different SELinux context when kubelet returns [Feature:SELinux][Feature:SELinuxMountReadWriteOncePod].",
|
testItStmt: "Should test that pv used in a pod that is deleted while the kubelet is down is usable by a new pod with a different SELinux context when kubelet returns [Feature:SELinux].",
|
||||||
changeSELinuxContexts: true,
|
changeSELinuxContexts: true,
|
||||||
runTestFile: func(ctx context.Context, c clientset.Interface, f *framework.Framework, pod1, pod2 *v1.Pod) {
|
runTestFile: func(ctx context.Context, c clientset.Interface, f *framework.Framework, pod1, pod2 *v1.Pod) {
|
||||||
storageutils.TestVolumeUnmountsFromDeletedPodWithForceOption(ctx, c, f, pod1, false, false, pod2, e2epod.VolumeMountPath1)
|
storageutils.TestVolumeUnmountsFromDeletedPodWithForceOption(ctx, c, f, pod1, false, false, pod2, e2epod.VolumeMountPath1)
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
testItStmt: "Should test that pv used in a pod that is force deleted while the kubelet is down is usable by a new pod with a different SELinux context when kubelet returns [Feature:SELinux][Feature:SELinuxMountReadWriteOncePod].",
|
testItStmt: "Should test that pv used in a pod that is force deleted while the kubelet is down is usable by a new pod with a different SELinux context when kubelet returns [Feature:SELinux].",
|
||||||
changeSELinuxContexts: true,
|
changeSELinuxContexts: true,
|
||||||
runTestFile: func(ctx context.Context, c clientset.Interface, f *framework.Framework, pod1, pod2 *v1.Pod) {
|
runTestFile: func(ctx context.Context, c clientset.Interface, f *framework.Framework, pod1, pod2 *v1.Pod) {
|
||||||
storageutils.TestVolumeUnmountsFromDeletedPodWithForceOption(ctx, c, f, pod1, true, false, pod2, e2epod.VolumeMountPath1)
|
storageutils.TestVolumeUnmountsFromDeletedPodWithForceOption(ctx, c, f, pod1, true, false, pod2, e2epod.VolumeMountPath1)
|
||||||
|
Loading…
Reference in New Issue
Block a user