You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: keps/sig-node/3619-supplemental-groups-policy/README.md
+24-24Lines changed: 24 additions & 24 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -18,11 +18,11 @@ tags, and then generate with `hack/update-toc.sh`.
18
18
-[Kubernetes API](#kubernetes-api)
19
19
-[SupplementalGroupsPolicy in PodSecurityContext](#supplementalgroupspolicy-in-podsecuritycontext)
20
20
-[User in ContainerStatus](#user-in-containerstatus)
21
-
-[RuntimeFeatures in NodeStatus which contains SupplementalGroupsPolicy field](#runtimefeatures-in-nodestatus-which-contains-supplementalgroupspolicy-field)
21
+
-[NodeFeatures in NodeStatus which contains SupplementalGroupsPolicy field](#nodefeatures-in-nodestatus-which-contains-supplementalgroupspolicy-field)
22
22
-[CRI](#cri)
23
23
-[SupplementalGroupsPolicy in SecurityContext](#supplementalgroupspolicy-in-securitycontext)
24
24
-[user in ContainerStatus](#user-in-containerstatus-1)
25
-
-[runtime_features in StatusResponse which contains supplemental_groups_policy field](#runtime_features-in-statusresponse-which-contains-supplemental_groups_policy-field)
25
+
-[features in StatusResponse which contains supplemental_groups_policy field](#features-in-statusresponse-which-contains-supplemental_groups_policy-field)
-[Story 1: Deploy a Security Policy to enforce <code>SupplementalGroupsPolicy</code> field](#story-1-deploy-a-security-policy-to-enforce-supplementalgroupspolicy-field)
@@ -31,11 +31,11 @@ tags, and then generate with `hack/update-toc.sh`.
31
31
-[Kubernetes API](#kubernetes-api-1)
32
32
-[SupplementalGroupsPolicy in PodSecurityContext](#supplementalgroupspolicy-in-podsecuritycontext-1)
33
33
-[User in ContainerStatus](#user-in-containerstatus-2)
34
-
-[RuntimeFeatures in NodeStatus which contains SupplementalGroupsPolicy field](#runtimefeatures-in-nodestatus-which-contains-supplementalgroupspolicy-field-1)
34
+
-[NodeFeatures in NodeStatus which contains SupplementalGroupsPolicy field](#nodefeatures-in-nodestatus-which-contains-supplementalgroupspolicy-field-1)
35
35
-[CRI](#cri-1)
36
36
-[SupplementalGroupsPolicy in SecurityContext](#supplementalgroupspolicy-in-securitycontext-1)
37
37
-[user in ContainerStatus](#user-in-containerstatus-3)
38
-
-[runtime_features in StatusResponse which contains supplemental_groups_policy field](#runtime_features-in-statusresponse-which-contains-supplemental_groups_policy-field-1)
38
+
-[features in StatusResponse which contains supplemental_groups_policy field](#features-in-statusresponse-which-contains-supplemental_groups_policy-field-1)
@@ -205,24 +205,24 @@ Note that both policies diverge from the semantics of [`config.User` OCI image c
205
205
206
206
To provide users/administrators to know which identities are actually attached to the container process, it proposes to introduce new `User` field in `ContainerStatus`. `User` is an object which consists of `Uid`, `Gid`, `SupplementalGroups` fields for linux containers. This will help users to identify unexpected identities. This field is derived by CRI response (See [user in ContainerStatus](#user-in-containerstatus-1) section).
207
207
208
-
#### RuntimeFeatures in NodeStatus which contains SupplementalGroupsPolicy field
208
+
#### NodeFeatures in NodeStatus which contains SupplementalGroupsPolicy field
209
209
210
-
Because the actual control(calculation) of supplementary groups to be attached to the first container process will happen inside of CRI implementations (container runtimes), It proposes to add `RuntimeFeatures` field in `NodeStatus` which contains the `SupplementalGroupsPolicy` feature field in side of it like below so that kubernetes can correctly understand whether underlying CRI implementation implements the feature ot not. The field is assumed drived by CRI response.
210
+
Because the actual control(calculation) of supplementary groups to be attached to the first container process will happen inside of CRI implementations (container runtimes), It proposes to add `NodeFeatures` field in `NodeStatus` which contains the `SupplementalGroupsPolicy` feature field in side of it like below so that kubernetes can correctly understand whether underlying CRI implementation implements the feature ot not. The field is assumed drived by CRI response.
211
211
212
212
```golang
213
213
typeNodeStatusstruct {
214
-
//RuntimeFeatures describes the set of implemented features implemented by the CRI implementation(NodeRuntime).
215
-
RuntimeFeatures *NodeRuntimeFeatures
214
+
//Features describes the set of implemented features implemented by the CRI implementation.
215
+
Features *NodeFeatures
216
216
}
217
-
typeNodeRuntimeFeaturesstruct {
217
+
typeNodeFeaturesstruct {
218
218
// SupplementalGroupsPolicy is set to true if the runtime supports SupplementalGroupsPolicy and ContainerUser.
219
219
SupplementalGroupsPolicy *bool
220
220
}
221
221
```
222
222
223
-
Recently [KEP-3857: Recursive Read-only (RRO) mounts](https://kep.k8s.io/3857) introduced `RuntimeHandlers[].Features`. But this does not fit to use for this KEP because RRO mounts should require to inspect [the OCI runtime spec's Feature](https://github.com/opencontainers/runtime-spec/blob/main/features.md) to understand low-level OCI runtime supports RRO or not. However, for this KEP(SupplementalGroupsPolicy), it does not need to inspect [the OCI runtime spec's Feature](https://github.com/opencontainers/runtime-spec/blob/main/features.md) because this KEP only affects to [`Process.User.additionalGid`](https://github.com/opencontainers/runtime-spec/blob/main/config.md#user) and this does not depend on [the OCI runtime spec's Feature](https://github.com/opencontainers/runtime-spec/blob/main/features.md). So, introducing new `RuntimeFeatures` in `NodeStatus` does not make any confusion with `RuntimeHandlerFeatures` because we can clearly define how to use them as below:
223
+
Recently [KEP-3857: Recursive Read-only (RRO) mounts](https://kep.k8s.io/3857) introduced `RuntimeHandlers[].Features`. But this does not fit to use for this KEP because RRO mounts should require to inspect [the OCI runtime spec's Feature](https://github.com/opencontainers/runtime-spec/blob/main/features.md) to understand low-level OCI runtime supports RRO or not. However, for this KEP(SupplementalGroupsPolicy), it does not need to inspect [the OCI runtime spec's Feature](https://github.com/opencontainers/runtime-spec/blob/main/features.md) because this KEP only affects to [`Process.User.additionalGid`](https://github.com/opencontainers/runtime-spec/blob/main/config.md#user) and this does not depend on [the OCI runtime spec's Feature](https://github.com/opencontainers/runtime-spec/blob/main/features.md). So, introducing new `NodeFeatures` in `NodeStatus` does not make any confusion with `RuntimeHandlerFeatures` because we can clearly define how to use them as below:
224
224
225
-
-`RuntimeFeatures`(added in this KEP):
225
+
-`NodeFeatures`(added in this KEP):
226
226
- focses on features that depend only on cri implementation, be independent on runtime handlers(low-level container runtimes), (i.e. it should not require to inspect to any information from oci runtime-spec's features).
227
227
-`RuntimeHandlerFeature` (introduced in KEP-3857):
228
228
- focuses features that depend on the runtime handlers, (i.e. dependent to the information exposed by oci runtime-spec's features).
@@ -260,9 +260,9 @@ message ContainerUser {
260
260
}
261
261
```
262
262
263
-
#### runtime_features in StatusResponse which contains supplemental_groups_policy field
263
+
#### features in StatusResponse which contains supplemental_groups_policy field
264
264
265
-
To propagate whether the runtime supports fine-grained supplemental group control to `NodeRuntimeFeatures.SupplementalGroupsPolicy`, it proposes to add a corresponding field`runtime_features` in `StatusResponse`.
265
+
To propagate whether the runtime supports fine-grained supplemental group control to `NodeFeatures.SupplementalGroupsPolicy`, it proposes to add a corresponding field`features` in `StatusResponse`.
266
266
267
267
```proto
268
268
// service RuntimeService {
@@ -271,8 +271,8 @@ To propagate whether the runtime supports fine-grained supplemental group contro
271
271
// }
272
272
message StatusResponse {
273
273
...
274
-
// runtime_features describes the set of features implemented by the CRI implementation.
275
-
RuntimeFeatures runtime_features = ?;
274
+
// features describes the set of features implemented by the CRI implementation.
275
+
RuntimeFeatures features = ?;
276
276
}
277
277
message RuntimeFeatures {
278
278
// supplemental_groups_policy is set to true if the runtime supports SupplementalGroupsPolicy and ContainerUser.
@@ -407,25 +407,25 @@ type LinuxContainerUser struct {
407
407
// }
408
408
```
409
409
410
-
#### RuntimeFeatures in NodeStatus which contains SupplementalGroupsPolicy field
410
+
#### NodeFeatures in NodeStatus which contains SupplementalGroupsPolicy field
411
411
412
412
```golang
413
413
typeNodeStatusstruct {
414
-
//RuntimeFeatures describes the set of implemented features implemented by the CRI implementation(NodeRuntime).
414
+
//Features describes the set of implemented features implemented by the CRI implementation.
415
415
// +featureGate=SupplementalGroupsPolicy
416
416
// +optional
417
-
RuntimeFeatures *NodeRuntimeFeatures
417
+
Features *NodeFeatures
418
418
419
419
// The available runtime handlers.
420
420
// +featureGate=RecursiveReadOnlyMounts
421
421
// +optional
422
422
RuntimeHandlers []RuntimeHandlers
423
423
}
424
424
425
-
//RuntimeFeatures describes the set of implemented features implemented by the CRI implementation(NodeRuntime).
426
-
// THE FEATURES CONTAINED IN THE NodeRuntimeFeatures SHOULD DEPEND ON ONLY CRI IMPLEMENTATION, BE INDEPENDENT ON RUNTIME HANDLERS,
425
+
//NodeFeatures describes the set of implemented features implemented by the CRI implementation.
426
+
// THE FEATURES CONTAINED IN THE NodeFeatures SHOULD DEPEND ON ONLY CRI IMPLEMENTATION, BE INDEPENDENT ON RUNTIME HANDLERS,
427
427
// (I.E. IT SHOULD NOT REQUIRE TO INSPECT TO ANY INFORMATION FROM OCI RUNTIME-SPEC'S FEATURES).
428
-
typeNodeRuntimeFeatures {
428
+
typeNodeFeatures {
429
429
// SupplementalGroupsPolicy is set to true if the runtime supports SupplementalGroupsPolicy and ContainerUser.
430
430
// +optional
431
431
SupplementalGroupsPolicy *bool
@@ -512,7 +512,7 @@ message LinuxContainerUser {
512
512
// }
513
513
```
514
514
515
-
#### runtime_features in StatusResponse which contains supplemental_groups_policy field
515
+
#### features in StatusResponse which contains supplemental_groups_policy field
516
516
517
517
```proto
518
518
// service RuntimeService {
@@ -524,8 +524,8 @@ message StatusResponse {
524
524
// Runtime handlers.
525
525
repeated RuntimeHandler runtime_handlers = 3;
526
526
527
-
// runtime_features describes the set of features implemented by the CRI implementation.
528
-
RuntimeFeatures runtime_features = ?;
527
+
// features describes the set of features implemented by the CRI implementation.
528
+
RuntimeFeatures features = ?;
529
529
}
530
530
531
531
// RuntimeFeatures describes the set of features implemented by the CRI implementation.
0 commit comments