Replies: 2 comments 10 replies
-
In spirit I'm in favor. As Gateway API becomes more and more ubiquitous and as platforms want to do obvious things like provide their own default implementations while also supporting third party implementations, it is inevitable that those platforms are going to go ahead and implement life-cycle management for the CRDs (and something several of us in the community have been talking about for a while, cc @kflynn @JoelSpeed @mikemorris), and in fact we've already seen it. In practice however, I don't think this is cut and dry. CRDs were not quite ready for the use case where something deployed via CRD is ubiquitous and used by multiple implementations. There are problems like "dead fields" and other things that need to be worked through.
It's not clear to me that we're going to be able to get away with saying it's "required for platforms" unless we wanna go ahead and start talking in-tree again (which personally I think we're just dancing around that). In any case though what I do think we should be doing is:
I think these are all things that will help create a more consistent user (and implementer) experience, and then the Kubernetes platforms of today (and tomorrow) will be better able to supply that. As far as making it required for platforms to supply that? Maybe in time? |
Beta Was this translation helpful? Give feedback.
-
Obviously its hard for anyone to say "no" to "should our software be forced to be installed everywhere by default" -- great for us -- more of a discussion for the people we are forcing it onto, though. But there is one big risk here, and that is the flexibility. I think the intention of what you are saying is aligned with what i would want here, but I would want to make sure we codify it. Something like:
This has a lot of questions though. What happens if the cluster upgrades, and the user-installed CRD is tool old? Any mixed ownership stuff is wonky... what happens if the user deletes the CRD? |
Beta Was this translation helpful? Give feedback.
-
@shaneutt's earlier discussion about whether this project should move in-tree led to lots of great discussion. Although the idea was controversial, it hit on an important pain point for adoption of this API - it's not included by default in Kubernetes, and managing these CRDs on your own can become rather onerous.
In this discussion I'd like to explore another possible solution to that core problem: Requiring Kubernetes distributions to include Gateway API CRDs by default to be considered conformant. Instead of a tight coupling between Gateway API and Kubernetes versions, we'd aim for a slightly looser connection. Each Kubernetes release would have a corresponding requirement that a minimum version of Gateway API standard channel CRDs were included. Given our ongoing commitment of limiting standard channel to stable APIs with fully-backwards compatible changes, these upgrades would always be safe for Kubernetes distributions to support.
The rationale for this would be that:
If this proposal gains traction, there are a couple related problems we'd need to solve first:
Beta Was this translation helpful? Give feedback.
All reactions