-
Notifications
You must be signed in to change notification settings - Fork 40.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
KEP-3619: Add NodeStatus.Features.SupplementalGroupsPolicy API and e2e #125470
KEP-3619: Add NodeStatus.Features.SupplementalGroupsPolicy API and e2e #125470
Conversation
Skipping CI for Draft Pull Request. |
This comment was marked as off-topic.
This comment was marked as off-topic.
This comment has been minimized.
This comment has been minimized.
This comment was marked as outdated.
This comment was marked as outdated.
pkg/apis/core/types.go
Outdated
@@ -4914,6 +4916,15 @@ type NodeRuntimeHandler struct { | |||
Features *NodeRuntimeHandlerFeatures | |||
} | |||
|
|||
// NodeFeatures describes the set of features implemented by the CRI implementation. | |||
// The features contained in the NodeFeatures should depend on only cri implementation, be independent of runtime handlers, | |||
// (i.e. it should not require inspecting any information from the OCI runtime-spec's features). |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Same as my previous comment in the API description.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
pkg/kubelet/container/runtime.go
Outdated
@@ -556,6 +556,8 @@ type RuntimeStatus struct { | |||
Conditions []RuntimeCondition | |||
// Handlers is an array of current available handlers | |||
Handlers []RuntimeHandler | |||
// Features is the set of features implmented by the runtime |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
typo: implemented
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks! Fixed in f46ecf5
pkg/kubelet/container/runtime.go
Outdated
SupplementalGroupsPolicy bool | ||
} | ||
|
||
// String formats the runtime condition into human readable string. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
into a human
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
fixed in f46ecf5
// NodeRuntimeHandlerFeatures is a set of runtime features. | ||
// NodeRuntimeHandlerFeatures is a set of features implemented by the runtime handler. | ||
// The features contained in the NodeRuntimeHandlerFeatures should depend on the runtime handlers, | ||
// (i.e. dependent to the information exposed by the OCI runtime-spec's features). |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Same comment as above.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@@ -5891,6 +5893,15 @@ type NodeRuntimeHandler struct { | |||
Features *NodeRuntimeHandlerFeatures `json:"features,omitempty" protobuf:"bytes,2,opt,name=features"` | |||
} | |||
|
|||
// NodeFeatures describes the set of features implemented by the CRI implementation. | |||
// The features contained in the NodeFeatures should depend on only cri implementation, be independent of runtime handlers, | |||
// (i.e. it should not require inspecting any information from the OCI runtime-spec's features). |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Same comment as above.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
b4006ce
to
775f05d
Compare
…Response KEP-3619: don't capitalize comment in CRI KEP-3619: fix typos and grammatical ones in CRI KEP-3619: rephrase RuntimeFeatures, RuntimeHandlerFeatures comment in CRI
KEP-3619: don't capitalize comment in K8S API KEP-3619: fix typos and grammatical ones in K8s API KEP-3619: rephrase NodeFeatures, NodeHandlerFeatures in K8s API
…) to NodeFeatures.SupplementalGroupsPolicy(API) KEP-3619: fix typos in pkg/kubelet/container/runtime.go
…ropDisabledFields for node
775f05d
to
1663223
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@mrunalp Thanks for your review! I addressed all your comments. And, I cleaned up my commits and rebased to the latest master.
PTAL🙇
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
/lgtm
LGTM label has been added. Git tree hash: f26619eb4b2ebf9f17cbb87ffb35410f12d81053
|
/approve |
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: everpeace, mrunalp, thockin The full list of commands accepted by this bot can be found here. The pull request process is described here
Needs approval from an approver in each of these files:
Approvers can indicate their approval by writing |
Depended by:
What this PR does / why we need it:
KEP: kubernetes/enhancements#3619
KEP PR for the API changes: kubernetes/enhancements#4728
NodeFeatures.SupplementGroupsPolicy
in kubernetes apiRuntimeFeatures.SupplementalGroupsPolicy
in cri-apiNode.Status.Features.SupplementalGroupsPolicy
Special notes for your reviewer:
#117842 implemented API/CRI and k/k logics for this KEP. But, it didn't include E2E test. Moreover, I also realized cri-tools's my working PR(kubernetes-sigs/cri-tools#1438) is difficult to merge because critest's CI depends on containerd's previous versions.
Because the core logic for this KEP is implemented in container runtimes, E2E should detect whether the feature is supported or not at CRI level so that we can implement safe E2E which can gracefully skip it when the runtime does not support this feature. To do this, this PR added feature fields in RuntimeHandlerFeature both in CRI and kubernetes API.
Once the container runtime in E2E gets bumped and it supports this feature, the E2E for this KEP will be automatically activated.
Does this PR introduce a user-facing change?
Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.: