Skip to content

Commit 027d4bf

Browse files
deads2kliggitt
authored andcommitted
add /spec access for node
1 parent bd58a25 commit 027d4bf

File tree

4 files changed

+10
-3
lines changed

4 files changed

+10
-3
lines changed

pkg/authorization/api/synthetic.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ const (
99

1010
NodeMetricsResource = "nodes/metrics"
1111
NodeStatsResource = "nodes/stats"
12+
NodeSpecResource = "nodes/spec"
1213
NodeLogResource = "nodes/log"
1314

1415
RestrictedEndpointsResource = "endpoints/restricted"

pkg/cmd/server/bootstrappolicy/policy.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -154,7 +154,7 @@ func GetBootstrapClusterRoles() []authorizationapi.ClusterRole {
154154
"selfsubjectrulesreviews", "subjectaccessreviews").RuleOrDie(),
155155
authorizationapi.NewRule("create").Groups("authentication.k8s.io").Resources("tokenreviews").RuleOrDie(),
156156
// Allow read access to node metrics
157-
authorizationapi.NewRule("get").Groups(kapiGroup).Resources(authorizationapi.NodeMetricsResource).RuleOrDie(),
157+
authorizationapi.NewRule("get").Groups(kapiGroup).Resources(authorizationapi.NodeMetricsResource, authorizationapi.NodeSpecResource).RuleOrDie(),
158158
// Allow read access to stats
159159
// Node stats requests are submitted as POSTs. These creates are non-mutating
160160
authorizationapi.NewRule("get", "create").Groups(kapiGroup).Resources(authorizationapi.NodeStatsResource).RuleOrDie(),
@@ -547,7 +547,7 @@ func GetBootstrapClusterRoles() []authorizationapi.ClusterRole {
547547
authorizationapi.NewRule(read...).Groups(kapiGroup).Resources("nodes").RuleOrDie(),
548548
// Allow all API calls to the nodes
549549
authorizationapi.NewRule("proxy").Groups(kapiGroup).Resources("nodes").RuleOrDie(),
550-
authorizationapi.NewRule("*").Groups(kapiGroup).Resources("nodes/proxy", authorizationapi.NodeMetricsResource, authorizationapi.NodeStatsResource, authorizationapi.NodeLogResource).RuleOrDie(),
550+
authorizationapi.NewRule("*").Groups(kapiGroup).Resources("nodes/proxy", authorizationapi.NodeMetricsResource, authorizationapi.NodeSpecResource, authorizationapi.NodeStatsResource, authorizationapi.NodeLogResource).RuleOrDie(),
551551
},
552552
},
553553
{
@@ -558,7 +558,7 @@ func GetBootstrapClusterRoles() []authorizationapi.ClusterRole {
558558
// Allow read-only access to the API objects
559559
authorizationapi.NewRule(read...).Groups(kapiGroup).Resources("nodes").RuleOrDie(),
560560
// Allow read access to node metrics
561-
authorizationapi.NewRule("get").Groups(kapiGroup).Resources(authorizationapi.NodeMetricsResource).RuleOrDie(),
561+
authorizationapi.NewRule("get").Groups(kapiGroup).Resources(authorizationapi.NodeMetricsResource, authorizationapi.NodeSpecResource).RuleOrDie(),
562562
// Allow read access to stats
563563
// Node stats requests are submitted as POSTs. These creates are non-mutating
564564
authorizationapi.NewRule("get", "create").Groups(kapiGroup).Resources(authorizationapi.NodeStatsResource).RuleOrDie(),

pkg/cmd/server/kubernetes/node_auth.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -125,6 +125,9 @@ func (n NodeAuthorizerAttributesGetter) GetRequestAttributes(u user.Info, r *htt
125125
// Override verb/resource for specific paths
126126
// Updates to these rules require updating NodeAdminRole and NodeReaderRole in bootstrap policy
127127
switch {
128+
case isSubpath(r, "/spec"):
129+
attrs.Verb = apiVerb
130+
attrs.Resource = authorizationapi.NodeSpecResource
128131
case isSubpath(r, "/stats"):
129132
attrs.Verb = apiVerb
130133
attrs.Resource = authorizationapi.NodeStatsResource

test/testdata/bootstrappolicy/bootstrap_cluster_roles.yaml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -294,6 +294,7 @@ items:
294294
attributeRestrictions: null
295295
resources:
296296
- nodes/metrics
297+
- nodes/spec
297298
verbs:
298299
- get
299300
- apiGroups:
@@ -1801,6 +1802,7 @@ items:
18011802
- nodes/log
18021803
- nodes/metrics
18031804
- nodes/proxy
1805+
- nodes/spec
18041806
- nodes/stats
18051807
verbs:
18061808
- '*'
@@ -1824,6 +1826,7 @@ items:
18241826
attributeRestrictions: null
18251827
resources:
18261828
- nodes/metrics
1829+
- nodes/spec
18271830
verbs:
18281831
- get
18291832
- apiGroups:

0 commit comments

Comments
 (0)