-
Notifications
You must be signed in to change notification settings - Fork 113
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
[BETA API] Provide a solution to automatically create TLS secret and inject caBundle #1344
Comments
Cert-manager is attractive since it handles a lot of challenges managing TLS automatically. It has wide adoption amongst the Kubernetes community. The only downside is that it adds a second project dependency to Shipwright - are we okay with that? |
I was also looking at this this evening. Options I see:
tbh, I tend to do (3) because it is not really complicated logic. |
cert-manager has the advantage to addresse easily both secret creation(providing the certificate and key pair for the webhook) and ca-bundle injection in the crd conversion spec. I like the fact that with this solution, we dont add any code (as far as i understand), so it happens at deployment time, which means systems like openshift who provide mecanism to provide certificate and key pair, to services, we can override easily the use of cert-manager logic (3) is somehow similar to use knative certificate controller https://github.com/knative/pkg/blob/main/webhook/certificates/controller.go with the advantage to let the certificate controller handle the certificate expiration, rather than implementing our own controller |
Discussed in community meeting today:
We look for providing (1) and (2). Meaning those who use cert-manager gain from its convenience. Users who don't (want to) use cert-manager would have to manually manage the certificate, for example using the script that we provide. |
I had started to look into (1) last week. Did not completely get it done, but the route is stony anyway. It is not as easy to just put an annotation on the Webhook or CRD. And, CSR support in cert-manager is experimental. https://cert-manager.io/docs/usage/kube-csr/ |
For the Beta API, #1104 implements a conversion webhook. For a webhook to properly work, we need to create a certificate and let Kubernetes sign it, store it as a Kubernetes Secret, and inject the certificate authority in the caBundle of the conversion webhook section in the CRDs.
We need to investigate an approach that we can still deliver a simple YAML file and the certificate setup magically happens.
Prior art:
The text was updated successfully, but these errors were encountered: