-
Notifications
You must be signed in to change notification settings - Fork 3k
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
Including CRD client into client-go repo #247
Comments
Some background here: kubernetes/kubernetes#46702 @sttts still plan to create a "create an authoritative client in client-go"? Something we can help out with? |
Plan of record is
https://github.com/kubernetes/community/blob/master/contributors/design-proposals/csi-client-structure-proposal.md
…On Mon, Jul 17, 2017 at 11:58 AM, Eric Chiang ***@***.***> wrote:
Some background here: kubernetes/kubernetes#46702
<kubernetes/kubernetes#46702>
@sttts <https://github.com/sttts> still plan to create a "create an
authoritative client in client-go"? Something we can help out with?
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
<#247 (comment)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/AAngltfGaUj_q7p99hOLDKtsEsN-QWjTks5sO67KgaJpZM4OaXMX>
.
|
Right now both apiextensions-apiserver and client-go are maintained, tested and exported from the same repo (k8s.io/kube). So for the moment the integration argument does't exist. Now with the upcoming 1.8 we could move the types into k8s.io/api and the client into client-go, if we want to centralize everything there. /cc @deads2k @caesarxuchao @lavalamp the document is outdated because it doesn't mention the role of k8s.io/api, isn't it? |
I don't think we want to do that. The plan has been to have a core library that all clients share and then various clients can use it to have a common set of machinery for interoperability while maintaining logical separation. The technique appears to be working (the clients play together in e2e tests). I think we should maintain the logical separation. |
Where is the plan? Any docs? |
Thanks for sharing. |
People usually use CRD together with other core API. I think it makes sense to let people access both API from one clientset. We still plan to split client-go to core-go and base-go, but CRD doesn't have to live outside of core-go. |
the hoop jumping that's involved in managing tpr clients is awkward, any simplification here is great |
I was bit by this today. I think the README needs to be adjusted because |
|
@deads2k do you still feel strongly that the CRD type definition should remain in k8s.io/apiextension-apiserver, rather than in k8s.io/api? If so, we need to spend some time making the example clearer, or even adapting the clientset interface for easier integration. |
I don't think this is the right solution. But I agree that we have to improve the experience. We cannot import k8s.io/apiextension-apiserver here because it creates an import cycle. We could place a very simple |
It's a really bad UX, whose design is befuddling to most outside observers. I honestly don't know if someone new to the community would make any sense of what is there and why. +1 for move into client-go /cc @jbeda |
As new API servers (like service catalog) are added, this will be normal operating procedure. You need the shared client library and the different clients you want to use layered on top. We should devote our effort to making that as easy an obvious as possible, because client-go will not grow to contain everything. As @sttts noted, we can help with clear examples and documentation, but patching in a fix in here doesn't serve the community in the mid to long term. |
@deads2k are you against moving CRD creation client in client-go ? Why or am i misunderstanding this ? |
I am against it. As our type ecosystem grows, we'll have more and more clients that must build on top of client-go. As it stands now, we have a clean logical separation of this type and its related server. Rather than take the "easy" path that combines unrelated API groups together (this isn't related to For instance, consider service-catalog or openshift/client-go. Their types will never be included in k8s.io/api, but many people would like to use both clients. The broader community needs to have an easy way to use multiple discrete client libraries and we need to be eating our own dog food or the story may never improve. |
Issues go stale after 90d 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. |
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. |
Currently CRD client and api all sits in https://github.com/kubernetes/apiextensions-apiserver.
Eventually, CRD client would be better to live in client-go as well. It would be easier for users if client-go can manage dependencies, manage backward compatibility, and testing all in one place.
The text was updated successfully, but these errors were encountered: