Skip to content

Commit 953e38d

Browse files
cnvergencegman0
authored andcommitted
UPSTREAM: <carry>: Add kube feature gate for global service account
TODO: this commit may be dropped once kcp-dev/kcp#3274 and related issues are done Signed-off-by: Karol Szwaj <[email protected]> On-behalf-of: @SAP [email protected]
1 parent 48a9626 commit 953e38d

File tree

3 files changed

+15
-1
lines changed

3 files changed

+15
-1
lines changed

pkg/features/kube_features.go

+7
Original file line numberDiff line numberDiff line change
@@ -875,6 +875,13 @@ const (
875875
//
876876
// Enables specifying resources at pod-level.
877877
PodLevelResources featuregate.Feature = "PodLevelResources"
878+
879+
// TODO(cnvergence): Remove when not applicable
880+
// owner: @cnvergence
881+
// alpha: v1.31
882+
//
883+
// GlobalServiceAccount is a feature gate that enables the cross-workspace service accounts feature.
884+
GlobalServiceAccount featuregate.Feature = "GlobalServiceAccount"
878885
)
879886

880887
func init() {

pkg/features/versioned_kube_features.go

+4
Original file line numberDiff line numberDiff line change
@@ -838,4 +838,8 @@ var defaultVersionedKubernetesFeatureGates = map[featuregate.Feature]featuregate
838838
zpagesfeatures.ComponentStatusz: {
839839
{Version: version.MustParse("1.32"), Default: false, PreRelease: featuregate.Alpha},
840840
},
841+
842+
GlobalServiceAccount: {
843+
{Version: version.MustParse("1.31"), Default: false, PreRelease: featuregate.Alpha},
844+
},
841845
}

pkg/registry/rbac/validation/kcp.go

+4-1
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@ import (
1212
authserviceaccount "k8s.io/apiserver/pkg/authentication/serviceaccount"
1313
"k8s.io/apiserver/pkg/authentication/user"
1414
genericapirequest "k8s.io/apiserver/pkg/endpoints/request"
15+
utilfeature "k8s.io/apiserver/pkg/util/feature"
16+
"k8s.io/kubernetes/pkg/features"
1517
)
1618

1719
const (
@@ -88,6 +90,7 @@ func EffectiveUsers(clusterName logicalcluster.Name, u user.Info) []user.Info {
8890

8991
var wantAuthenticated bool
9092
var wantUnauthenticated bool
93+
globalsa := utilfeature.DefaultFeatureGate.Enabled(features.GlobalServiceAccount)
9194

9295
var recursive func(u user.Info)
9396
recursive = func(u user.Info) {
@@ -105,7 +108,7 @@ func EffectiveUsers(clusterName logicalcluster.Name, u user.Info) []user.Info {
105108
wantUnauthenticated = wantUnauthenticated || !found
106109
}
107110

108-
if IsServiceAccount(u) {
111+
if IsServiceAccount(u) && globalsa {
109112
if clusters := u.GetExtra()[authserviceaccount.ClusterNameKey]; len(clusters) == 1 {
110113
nsNameSuffix := strings.TrimPrefix(u.GetName(), "system:serviceaccount:")
111114
rewritten := &user.DefaultInfo{

0 commit comments

Comments
 (0)