-
Notifications
You must be signed in to change notification settings - Fork 40k
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
Find home for shared k8s-specific libraries #50475
Comments
@kubernetes/sig-architecture-proposals |
@monopole Thanks for working through these details. Why shouldn't k8s.io/kubernetes/pkg/client/retry move to client-go or another repo in kubernetes-client? I'd like other functionality that's applicable to arbitrary K8s-compatible resources to go into kubernetes-client repos/libraries, also. (Ref #7311) The functionality corresponding to specific Kubernetes APIs, such as k8s.io/kubernetes/pkg/controller/deployment/util, will eventually need to be separated into layers along with other functionality, but starting with kubernetes/common is fine by me. Any time we're ready to do this, email kubernetes-dev according to the incubator process, under the moving-code-out-of-k/k clause. |
https://github.com/kubernetes/common now exists common-admins has admin privilege. Please also create common-maintainers (write) and common-reviewers (read). |
The client code should live somewhere in API machinery though. |
Issues go stale after 90d of inactivity. Prevent issues from auto-closing with an If this issue is safe to close now please do so with Send feedback to sig-testing, kubernetes/test-infra and/or |
Stale issues rot after 30d of inactivity. If this issue is safe to close now please do so with Send feedback to sig-testing, kubernetes/test-infra and/or fejta. |
Rotten issues close after 30d of inactivity. Send feedback to sig-testing, kubernetes/test-infra and/or fejta. |
Has there been any update on this project? I am looking for the feature removed in client-go mentioned in kubernetes/client-go#290 |
As the core repo splits into multiple repos, shared packages need a home, as the core isn't intended for vendoring.
Proposal #48209 established the utils repository, specifically defining it as a repository with no k8s dependence. The utils repo may be viewed as supplementing https://golang.org/pkg, and be of interest to non-k8s projects.
The discussion left open the question of where to put shared packages specific to k8s . E.g.
Even if these particular examples don’t end up in a common repo, some shared k8s code will exist. Some options to deal with it are:
This proposal opens the road for the last option.
Proposed
README
for the new repo:Common
Go libraries shared by various Kubernetes repositories. See also utils, which has the same purpose but different commit criteria.
Purpose
As Kubernetes grows and spins functionality out of its core and into cooperating repositories (apiserver, kubectl, kubeadm, etc.) that communicate with each other via known API types, the need arises for leaf repositories to house shared code.
This repository is intended to hold shared utilities specific to Kubernetes, e.g. code that depends on Kubernetes API types. The utils repository, a sibling to this repository, holds shared utilities that have no Kubernetes dependence.
Criteria for committing code here
Used by multiple Kubernetes repositories.
Full unit test coverage.
Go tools compliant (
go get
,go test
, etc.).Complex enough to be worth vendoring, rather than copying.
Stable, or backward compatible, API.
With respect to Kubernetes repositories, this common repository may only depend on repositories intended for external use, e.g. api and utils are OK, core is not OK.
The text was updated successfully, but these errors were encountered: