Hello my fellow SIG Network folks!
As many of you know, with the Gateway API project, we pioneered a path for building effectively "official" extension APIs using CRDs that are hosted and supported upstream, but remain optional and not part of core.
The Gateway API has demonstrated the benefits of this approach, and since then, other projects like Network Policy have followed suit, using it as a model for their own APIs. Recently, the Multi-Network project has also decided to move out-of-tree and adopt a similar strategy.
While it's possible that APIs developed this way could eventually be integrated back into core, it's clear that a trend is emerging. Given this trend, I believe it is crucial to consider the impact on users: at a minimum, we should create a standardized method for developing, delivering, and using these kinds of APIs to ensure a consistent user experience.
Therefore, I propose that we develop either an official standard or a guide, drawing from the work already established by the Gateway API and Network Policy projects. This could potentially include a template repository with "start here" documentation for new projects. However, I think it's more important to align on the "what" and "why" before diving into the "how."
If you agree with the following:
Please show your support! If you have concerns or do not agree, please share your thoughts.
I recognize that this initiative may extend beyond just SIG Network, but I am starting here. If there is general support, my intention is to draft a KEP which covers the "how" and share it broadly across the organization for further feedback.
Looking forward to your feedback!
Shane
--
You received this message because you are subscribed to the Google Groups "kubernetes-sig-network" group.
To unsubscribe from this group and stop receiving emails from it, send an email to kubernetes-sig-ne...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/kubernetes-sig-network/8bfe76a7-44a3-4dcc-a593-2ba76dbd1aa4n%40googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/kubernetes-sig-network/4f76540b-a103-46e6-a4aa-50df04407569n%40googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/kubernetes-sig-network/4f76540b-a103-46e6-a4aa-50df04407569n%40googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/kubernetes-sig-network/CAOZRXm-V0qBmVVXQ-jkLj6g4Jq-%3DZkgwWa1SaUtMgU1-cUazhQ%40mail.gmail.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/kubernetes-sig-network/CANbFp%3DazSMSjbms8Mmz%2BQ9LdC48b96bWSV3%3D2JN8XNh%2BWBNgnA%40mail.gmail.com.
--
To view this discussion on the web visit https://groups.google.com/d/msgid/kubernetes-sig-network/CAB6P0CCNxEmUp7dOsDSzUk912_texUoxr2TLM5L5SiH%3DyZYcoQ%40mail.gmail.com.
My question is, if an organization has already created many CRDs in their infrastructure and those CRDs have the same names as the ones you've defined, what would happen? What are the implications if defining CRDs becomes a widespread practice?
Best Regards,
Jen
> My question is, if an organization has already created many CRDs in their infrastructure and those CRDs have the same names as the ones you've defined, what would happen? What are the implications if defining CRDs becomes a widespread practice?
This is definitely a question to add to any groups todo list.
The current state is that every CRD has to have a separate API group as well as Kind and Resource, and the combination of those must be distinct, or the CRD won't be able to be applied to the cluster. If two CRDs use the same Kind, then users will need to disambiguate using the API group as well (so, something like `gateway.networking.k8s.io` instead of `Gateway` for example).
Definitely a big gotcha and something that folks need to be careful about!
Nick
To view this discussion on the web visit https://groups.google.com/d/msgid/kubernetes-sig-network/a74162b1-e1ec-4e9c-a459-7e49cb86ad64n%40googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/kubernetes-sig-network/CACVCA%3DfYkN9SC4nPcMMgUZVY41GUYhd_9c_D%2BzGTUXcPx2qfng%40mail.gmail.com.
Costin said:> I think Gateway is solving this by only testing the 'core' APIs - which are required, and vendors can implement any mix of optional APIs they want> and document it somewhere. Some core APIs also have optional fields - and it is not unreasonable - just the magnitude is different.This is incorrect. Gateway API has three levels of API or field - Core, Extended, and Implementation-Specific.Core is required of all implementations, with behavior enforced with conformance tests.Extended is optional, but has behavior enforced with conformance tests.
--
To view this discussion on the web visit https://groups.google.com/d/msgid/kubernetes-sig-network/cf32d4a1-8477-43b9-92fc-211b1d25bf60n%40googlegroups.com.