-
Notifications
You must be signed in to change notification settings - Fork 1.5k
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-5040: Remove gitRepo volume driver. #5039
base: master
Are you sure you want to change the base?
Conversation
vinayakankugoyal
commented
Jan 14, 2025
•
edited
Loading
edited
- One-line PR description: Initial KEP to remove support for gitRepo volume driver.
- Issue link: Remove gitRepo volume driver #5040
- Other comments:
Can you open an enhancement issue? Are you planning to target Alpha in 1.33? |
#5040. Yeah we are planning to target Alpha in 1.33 |
a7dca39
to
faf4ffe
Compare
/ok-to-test |
faf4ffe
to
b39ccb0
Compare
/retest |
b39ccb0
to
430203c
Compare
430203c
to
07fa827
Compare
07fa827
to
a4b48b0
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.
I am LGTM on technicals - need th testing and release and PRR sections.
a4b48b0
to
34acb88
Compare
We propose removing support for the in-tree gitRepo volume driver. | ||
|
||
We acknowledge that this is highly unusual, but there are mitigating circumstances: | ||
* gitRepo volume types can be exploited to gain remote code execution as root on the nodes as shown in [CVE-2024-10220](https://nvd.nist.gov/vuln/detail/cve-2024-10220) | ||
* gitRepo has perfectly workable alternatives: | ||
* Using [git-sync](https://github.com/kubernetes/git-sync) | ||
* Using an initContainer. See https://kubernetes.io/docs/concepts/storage/volumes/#gitrepo for more details | ||
* gitRepo has been deprecated for a long time and is unmaintained | ||
* gitRepo has low usage (based on limited data) | ||
* there exists precedent for removing volume drivers which were unmaintained like [glusterfs](https://kubernetes.io/docs/concepts/storage/volumes/#glusterfs) | ||
|
||
Given this, we think kubernetes should EOL this feature with urgency. |
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.
💭 Who's “we“? KEPs are usually written in the persona of the Kubernetes project, or maybe of a lead SIG.
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.
We here and in other locations is meant to represent the author(s). Would you like me to say the following instead?
"Give this, Kubernetes thinks it should EOL this feature with urgency."
@saad-ali I support this change, but the KEP document is not not ready to merge as implementable. It needs work. |
fbbcb5d
to
c7efe3c
Compare
New changes are detected. LGTM label has been removed. |
42ef30b
to
bb72740
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.
[took a first pass as PRR Shadow]
Independently: personal +1 for this effort overall, thank you.
**For non-optional features moving to GA, the graduation criteria must include | ||
[conformance tests].** | ||
|
||
[conformance tests]: https://git.k8s.io/community/contributors/devel/sig-architecture/conformance-tests.md |
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.
Noting: We do not have a conformance test for this volume type: https://github.com/kubernetes/kubernetes/blob/master/test/conformance/testdata/conformance.yaml
node_e2e tests are not conformance tests, and I think for this "feature" it's reasonable to not have one.
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.
Hmm.. I see that the following test in node_e2e saying NodeConformance.
bb72740
to
1f51a71
Compare
|
||
### Validating Admission Policy | ||
|
||
Users can prevent workloads with gitRepo volumes from being admitted |
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.
Should we discuss creating a git repo to hold VAPs like this?
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.
Should we just put the VAP in the gitRepo volume documentation here?
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.
@thockin I think we should, and we should try to make that allow for a future, more rich way to manage add ons.
I know maybe WAGNI (we ain't gonna need it), but at least some demand is there.
Should we just put the VAP in the gitRepo volume documentation here?
No, partly because of kubernetes/website#42590 (the detailed list of volume types doesn't really belong in that page) and partly because I wouldn't put it there.
We could put the VAP in the removal announcement and make it evergreen; after we do that, other pages can hyperlink there. Hyperlinking to more detail is the right approach.
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.
We could put the VAP in the removal announcement and make it evergreen;
Fotr the less clueful, what does that mean concretely?
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.
[evergreen]
See https://kubernetes.io/docs/contribute/new-content/blogs-case-studies/#guidelines-and-expectations and kubernetes/website#31934
Also https://kubernetes.io/docs/contribute/new-content/blogs-case-studies/#technical-considerations-for-submitting-a-blog-post for what front matter you set.
@thockin I noted your encyclopedic knowledge on many things Kubernetes and inferred you'd know this detail. Sorry about that.
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.
Definitely arch, perhaps security given at least the first one we'd propose there?
I imagine cluster lifecycle would appreciate at least FYI as well, though that may steer things into the addon-management topic :+)
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.
[Also, this is not a blocker for the KEP, I think it's a good idea to publish a VAP, and we need to find an appropriate home, but I don't think the repo needs to be a hard requirement]
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.
I'd want to block off-by-default on having this in place. But not a merge of this PR.
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.
Yeah, I think we should plan to publish a VAP somewhere, and that should exist by off-by-default, but for alpha it can be a detail we're working out.
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.
Added that we plan to publish the VAPs to a public repository both in the VAP section and in the graduation criteria section.
8169ca0
to
e99c213
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.
Whose approvals do we need to secure to get this merged? PRR obviously, and @saad-ali has already approved - anyone else?
/approve
Recall that end users cannot usually observe component logs or access metrics. | ||
--> | ||
|
||
- [ ] Events |
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.
Should kubelet issue an event that it used an insecure volume?
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.
Is there precedent for doing that?
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.
I don't think so, but that doesn't make a bad idea out of hand :)
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.
Didn't mean to suggest that it was a bad idea, actually sounds like a good idea, I'm just not sure if its possible because I don't know enough about how those events are generated.
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.
I'm not saying it's a great idea either :) - it's an idea, please consider it and apply your context and wisdom.
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: saad-ali, thockin, vinayakankugoyal The full list of commands accepted by this bot can be found here.
Needs approval from an approver in each of these files:
Approvers can indicate their approval by writing |
e99c213
to
dd78b09
Compare
f89e04e
to
0ca41e9
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.
This is looking good to me as a PRR shadow, making some remaining minor non-blocking suggestions. Thanks!
53125eb
to
ba70c27
Compare
ba70c27
to
b4f2af2
Compare