Document the ingress-nginx default certificate override - #1328
Document the ingress-nginx default certificate override#1328rberrelleza wants to merge 4 commits into
Conversation
Setting `wildcardCertificate.create: false` alone does not make Okteto serve a cert-manager certificate. The `ingress-nginx` controller reads its default certificate from `ingress-nginx.controller.extraArgs.default-ssl-certificate`, which is not derived from `wildcardCertificate.name`, so it keeps serving its previous default certificate. cert-manager reports the certificate as Ready while browsers still show a warning. The community cert-manager guides already include both settings, but the cert-manager page itself linked out without showing them, and the Helm configuration reference documented `create` and `name` with no mention of the ingress-nginx argument. - Add a "Configure Okteto to use your certificate" section to the cert-manager page, matching the bring-your-own-certificate page. - Add a note under `wildcardCertificate` in the Helm configuration reference. Applied to both the next version and 1.47. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
✅ Deploy Preview for okteto-docs ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
wildcardCertificate.create: false also removes the self-signed secret that default-ssl-certificate points at, so the ingress controller falls back to its own built-in fake certificate rather than continuing to serve the previous one. Also note that hosts with a chart-rendered ingress still serve the real certificate over SNI, so only requests that match no ingress host show the warning. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
The page states a DNS01 solver is required but never showed one, leaving the Issuer entirely to the community guides. Those guides list an http01 solver before dns01, which cannot satisfy a wildcard. Adds a "Create the Issuer" section with a ClusterIssuer per provider (Google Cloud DNS, Route53, Azure DNS) in the Tabs style used elsewhere in the docs, plus a note that the solver must be dns01 and that cert-manager needs write access to the zone. The Google Cloud DNS variant is verified end to end against Let's Encrypt production. The Route53 and Azure blocks follow cert-manager's documented schema but have not been run. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
|
Added a Create the Issuer section. The page said a DNS01 solver was required but never showed one, so the Issuer was left entirely to the community guides — and those list an Three provider tabs (Google Cloud DNS, Route53, Azure DNS) using the Reviewer note: the Google Cloud DNS variant is verified end to end against Let's Encrypt production (issued a wildcard, served it, |
This reverts commit b7d880a.
|
Reverted the Issuer section — it's going into the community guides instead, so this PR is back to just the |
| - [Google Cloud DNS](https://community.okteto.com/t/how-do-i-configure-okteto-with-cert-manager-and-google-cloud-dns/274/2) | ||
| - [Azure Cloud DNS](https://community.okteto.com/t/how-do-i-configure-okteto-with-cert-manager-and-azure-cloud-dns/275/2) | ||
|
|
||
| ## Configure Okteto to use your certificate |
There was a problem hiding this comment.
In all the 3 guides above we already indicate the helm setting to be used to configure your certificate in Okteto. If we are guide them to those guides, and even the new section refers to them, why do we want to add it here too? Shouldn't we keep that information only in 1 place (community guides or public documentation)
There was a problem hiding this comment.
This has been a source of constant confusion for customers. I think it's better to be explicit and repetitive rather than require customers to dig through multiple documents, especially because this is a non-trivial configuration.
There was a problem hiding this comment.
But then we should consider to move all the documents. This is not solving the problem of making customers dig through multiple documents. They still need to go to those documents to know what they have to do based on the provider.
Duplicating the configuration will make that at some point, both sources could diverge, mainly because the source of them are different (they are not 2 pages within the same repository). That divergence would be more confusing that always sending them to the community post where steps and configuration are documented
There was a problem hiding this comment.
I think this helps in several ways:
-
For customers that know how to use cert-manager, they still need the okteto-specific configuration. This provides it. I think this is specific enough to live in our docs.
-
When using agents to configure, this is more effective as it reduces the hops.
-
The community guides are not maintained nor monitored by definition (it's a community resource, not a canonical source of info). in the scenario you describe I think we are more likely to update our docs vs an external resource.
I'll let you and Cody decide to merge or close.
There was a problem hiding this comment.
if we think this is better, I'm ok with it, but I wouldn't assume that someone has read the okteto-community guides, like using the name okteto-letsencrypt.
I would just say that if you already have created the certificate in the cluster in a secret, you have to use the following configuration, and use a placeholder.
pinging @codyjlandstrom explicitly for review
|
@ekline-ai Could you please give this a review? |
|
EkLine Docs Agent is working on this update. You can view the progress at EkLine Editor. |
|
EkLine Docs Agent review — this is in good shape. The change correctly documents that What holds up well
One thing worth tightening (non-blocking)
Minor / optional
Overall grade: A-. Accurate, consistent with existing patterns, links resolve. Only the hub-page link target above is worth a quick adjustment. Happy to push that one-line link fix if you'd like. |
|
I reviewed the PR and posted my feedback as a reply comment (no file changes, since the request was a review, not a change request). SummaryPR #1328 documents that switching Okteto to a cert-manager/Let's Encrypt certificate requires two settings together — My verdict: A-. The change is accurate and well-built:
One actionable nit I flagged: in Review comment: #1328 (comment) |
Problem
Setting
wildcardCertificate.create: falsealone is not enough to switch Okteto from its built-in self-signed wildcard certificate to a cert-manager / Let's Encrypt one.The
ingress-nginxcontroller reads its default certificate fromingress-nginx.controller.extraArgs.default-ssl-certificate, which is not derived fromwildcardCertificate.name. If you only setcreate: false, the controller keeps serving its previous default certificate. It fails silently: cert-manager reports the certificate asReady, but browsers still show a warning.What the docs said
The three community guides linked from the cert-manager page already include both settings, and so does the bring your own certificate page. Two gaps remained:
create("If set to false, Okteto will not create a self-signed wildcard certificate") andname, with no mention of the ingress-nginx argument. Anyone configuring from the reference alone hits the silent failure.Changes
wildcardCertificate+ingress-nginx.controller.extraArgspair, mirroring the bring-your-own-certificate page, plus a warning that both settings are required.wildcardCertificatein the Helm configuration reference.Applied to both the next version and 1.47.
Open questions for reviewers
Issuerlists anhttp01solver beforedns01, while this page says you must use DNS01 for a wildcard. Minor, but confusing.create: falseanddefault-ssl-certificatestill points at the self-signed secret would close this properly.🤖 Generated with Claude Code