-
Notifications
You must be signed in to change notification settings - Fork 498
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
Document Self Service TLS Certificate Approaches #763
Comments
Following up from a thread with @tsaarni and @youngnick here. This is something that we discussed in more detail in community meetings as well as #749 (comment). Although we are interested in providing a self service approach here, we believed that the method provided in v1alpha1 was not the right one, and introduced far too many potential conflicts and points of confusion. What we have added in v1alpha2 is the ability for Gateways to reference TLS certs in different namespaces. This is important as it does allow for an app developer to provide a cert, just with some level of coordination with the Gateway admin. I think the best self-service story involves taking this one step further and building some kind of controller/automation around attaching certs from different namespaces to a Gateway. After all, that's all that the cert ref on HTTPRoute did - it was a shortcut for attaching a cert ref to a listener. That shortcut was likely not the best one, but a controller could likely provide a better experience here as far as automating this attachment. |
For ease of access for the above mentioned thread between myself and @youngnick , I'm copying it from that linked slow-loading-PR to here as well
|
The Kubernetes project currently lacks enough contributors to adequately respond to all issues and PRs. This bot triages issues and PRs according to the following rules:
You can:
Please send feedback to sig-contributor-experience at kubernetes/community. /lifecycle stale |
/lifecycle frozen |
Despite this issue being quite old, we the maintainers are still pretty convinced that we want to have this functionality in a future release. We are marking this |
#1430 may provide a path forward for implementing this functionality. |
The Kubernetes project currently lacks enough contributors to adequately respond to all issues. This bot triages un-triaged issues according to the following rules:
You can:
Please send feedback to sig-contributor-experience at kubernetes/community. /lifecycle stale |
This topic has come up again more recently, and I think we need to revisit it. As we've shown in #2668, the API validation actually accidentally to achieve this goal. We're working to revert that strict validation, but without clear examples of how this could work, we could risk doing the same thing again. I think this issue should really be expanded to cover "TLS Certs that are not configured directly by the Gateway Owner." That would include both of the following: 1. Automatically generated TLS certs that are added after the fact Note that this is actually fairly similar to how Cert Manager works today, but that requires Gateway owners to reference a Kubernetes Secret that it will then populate. If we didn't require CertRefs or TLS to be populated, this would not be necessary. 2. Certs that are specified by some other persona, likely an app owner Both of these share the same characteristics:
If these general patterns make sense, it would be worth documenting them somewhere so we don't lose track of them. /kind documentation |
I think both of these are very interesting use-cases. I personally have more experience with the latter. I do think there are some important questions to be asked in the case of both of these approaches though, specifically when it comes to statuses and how the user will understand the state of the system with the addition of new intermediate states. Both of these can take advantage of the
This one seems a bit easier because missing the secret would render the listener invalid without invalidating the whole Gateway, so I think the existing statuses would cover this use case.
This one is a bit more interesting, and is an option that is available today in gloo-edge. However it's very important to note that it is much easier in that API because hostnames MUST be unique and therefore certs can be specified per host without fear of overlap. This has been a popular feature for gloo-edge users and we would love to be able to offer it with our new Gateway API option. I completely agree with @robscott about In the short-term I think this can be accomplished with an option on the Listener: |
I'm really worried about using If we're going to do this, I think we need to mandate some things like (not sure if this can be done in CEL or not, but it should be in the spec regardless):
|
What would you like to be added:
As a follow up to the discussion in #749 (comment), it would be good to clarify exactly how the API can be used to allow app owners to provide their own TLS certs.
Why this is needed:
This is a common request, and the existing guidance in GEP #746 is pretty broad and may not scale as much as needed.
The text was updated successfully, but these errors were encountered: