Skip to content

Commit 96bae53

Browse files
committed
Promote SELinuxChangePolicy and SELinuxMount to beta
SELinuxMount stays off by default, because it changes the default kubelet behavior. SELinuxChangePolicy is on by default and notifies users on Pods that could get broken by SELinuxMount feature gate.
1 parent a5dda5d commit 96bae53

File tree

6 files changed

+91
-4
lines changed

6 files changed

+91
-4
lines changed

pkg/api/pod/util_test.go

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4396,8 +4396,12 @@ func TestDropSELinuxChangePolicy(t *testing.T) {
43964396
for _, tc := range tests {
43974397
t.Run(tc.name, func(t *testing.T) {
43984398

4399-
for _, gate := range tc.gates {
4400-
featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, gate, true)
4399+
// Set feature gates for the test. *Disable* those that are not in tc.gates.
4400+
allGates := []featuregate.Feature{features.SELinuxChangePolicy, features.SELinuxMount}
4401+
enabledGates := sets.New(tc.gates...)
4402+
for _, gate := range allGates {
4403+
enable := enabledGates.Has(gate)
4404+
featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, gate, enable)
44014405
}
44024406

44034407
oldPod := tc.oldPod.DeepCopy()

pkg/features/versioned_kube_features.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -651,10 +651,12 @@ var defaultVersionedKubernetesFeatureGates = map[featuregate.Feature]featuregate
651651

652652
SELinuxChangePolicy: {
653653
{Version: version.MustParse("1.32"), Default: false, PreRelease: featuregate.Alpha},
654+
{Version: version.MustParse("1.33"), Default: true, PreRelease: featuregate.Beta},
654655
},
655656

656657
SELinuxMount: {
657658
{Version: version.MustParse("1.30"), Default: false, PreRelease: featuregate.Alpha},
659+
{Version: version.MustParse("1.33"), Default: false, PreRelease: featuregate.Beta},
658660
},
659661

660662
SELinuxMountReadWriteOncePod: {

pkg/volume/util/selinux_test.go

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ import (
2020
"testing"
2121

2222
v1 "k8s.io/api/core/v1"
23+
"k8s.io/apimachinery/pkg/util/sets"
2324
utilfeature "k8s.io/apiserver/pkg/util/feature"
2425
"k8s.io/component-base/featuregate"
2526
featuregatetesting "k8s.io/component-base/featuregate/testing"
@@ -303,8 +304,12 @@ func TestGetMountSELinuxLabel(t *testing.T) {
303304
for _, tt := range tests {
304305
t.Run(tt.name, func(t *testing.T) {
305306
// Arrange
306-
for _, fg := range tt.featureGates {
307-
featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, fg, true)
307+
// Set feature gates for the test. *Disable* those that are not in tt.featureGates.
308+
allGates := []featuregate.Feature{features.SELinuxChangePolicy, features.SELinuxMount}
309+
enabledGates := sets.New(tt.featureGates...)
310+
for _, fg := range allGates {
311+
enable := enabledGates.Has(fg)
312+
featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, fg, enable)
308313
}
309314
seLinuxTranslator := NewFakeSELinuxLabelTranslator()
310315
pluginMgr, plugin := volumetesting.GetTestKubeletVolumePluginMgr(t)

plugin/pkg/auth/authorizer/rbac/bootstrappolicy/testdata/controller-role-bindings.yaml

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -459,6 +459,23 @@ items:
459459
- kind: ServiceAccount
460460
name: route-controller
461461
namespace: kube-system
462+
- apiVersion: rbac.authorization.k8s.io/v1
463+
kind: ClusterRoleBinding
464+
metadata:
465+
annotations:
466+
rbac.authorization.kubernetes.io/autoupdate: "true"
467+
creationTimestamp: null
468+
labels:
469+
kubernetes.io/bootstrapping: rbac-defaults
470+
name: system:controller:selinux-warning-controller
471+
roleRef:
472+
apiGroup: rbac.authorization.k8s.io
473+
kind: ClusterRole
474+
name: system:controller:selinux-warning-controller
475+
subjects:
476+
- kind: ServiceAccount
477+
name: selinux-warning-controller
478+
namespace: kube-system
462479
- apiVersion: rbac.authorization.k8s.io/v1
463480
kind: ClusterRoleBinding
464481
metadata:

plugin/pkg/auth/authorizer/rbac/bootstrappolicy/testdata/controller-roles.yaml

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1314,6 +1314,57 @@ items:
13141314
- create
13151315
- patch
13161316
- update
1317+
- apiVersion: rbac.authorization.k8s.io/v1
1318+
kind: ClusterRole
1319+
metadata:
1320+
annotations:
1321+
rbac.authorization.kubernetes.io/autoupdate: "true"
1322+
creationTimestamp: null
1323+
labels:
1324+
kubernetes.io/bootstrapping: rbac-defaults
1325+
name: system:controller:selinux-warning-controller
1326+
rules:
1327+
- apiGroups:
1328+
- ""
1329+
- events.k8s.io
1330+
resources:
1331+
- events
1332+
verbs:
1333+
- create
1334+
- patch
1335+
- update
1336+
- apiGroups:
1337+
- ""
1338+
resources:
1339+
- persistentvolumes
1340+
verbs:
1341+
- get
1342+
- list
1343+
- watch
1344+
- apiGroups:
1345+
- ""
1346+
resources:
1347+
- persistentvolumeclaims
1348+
verbs:
1349+
- get
1350+
- list
1351+
- watch
1352+
- apiGroups:
1353+
- ""
1354+
resources:
1355+
- pods
1356+
verbs:
1357+
- get
1358+
- list
1359+
- watch
1360+
- apiGroups:
1361+
- storage.k8s.io
1362+
resources:
1363+
- csidrivers
1364+
verbs:
1365+
- get
1366+
- list
1367+
- watch
13171368
- apiVersion: rbac.authorization.k8s.io/v1
13181369
kind: ClusterRole
13191370
metadata:

test/featuregates_linter/test_data/versioned_feature_list.yaml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1118,12 +1118,20 @@
11181118
lockToDefault: false
11191119
preRelease: Alpha
11201120
version: "1.32"
1121+
- default: true
1122+
lockToDefault: false
1123+
preRelease: Beta
1124+
version: "1.33"
11211125
- name: SELinuxMount
11221126
versionedSpecs:
11231127
- default: false
11241128
lockToDefault: false
11251129
preRelease: Alpha
11261130
version: "1.30"
1131+
- default: false
1132+
lockToDefault: false
1133+
preRelease: Beta
1134+
version: "1.33"
11271135
- name: SELinuxMountReadWriteOncePod
11281136
versionedSpecs:
11291137
- default: false

0 commit comments

Comments
 (0)