Skip to content

feat: add Custom Domain Certificates documentation - #540

Merged
yesterdaysrebel merged 4 commits into
mainfrom
docs/custom-domain-certificates
Aug 6, 2026
Merged

feat: add Custom Domain Certificates documentation#540
yesterdaysrebel merged 4 commits into
mainfrom
docs/custom-domain-certificates

Conversation

@yesterdaysrebel

Copy link
Copy Markdown
Contributor

Summary

New Custom Domain Certificates section under Developers (ref: internal-GlueOps/issues#387) covering TLS for customer-owned domains, using only capabilities the platform already ships:

  • Overview — decision table (automated vs manual), plus the facts that apply everywhere: wildcards require DNS-01, CAA prechecks, SAN planning, and a "coming soon" note on Let's Encrypt DNS-PERSIST-01 (cert-manager tracker: DNS-PERSIST-01 challenge support (planned for late Q1 2026) cert-manager/cert-manager#8373).
  • Automated Certificates with cert-manager (Route53) — fully self-serve via a namespaced Issuer + Certificate through the app chart's customResourcesMap; scoped IAM policy in the customer's AWS account; secret key via OpenBao/ExternalSecret at a dedicated vault path. Verification and troubleshooting are written for the Argo CD UI flow (sync → watch Certificate/Challenge in the resource tree → curl).
  • Manual Certificates with certbot — multi-domain wildcard issuance, vault upload (tls_crt/tls_key), kubernetes.io/tls ExternalSecret, ingress wiring, renewal caveats (incl. LE's move to 45-day lifetimes in 2026).

Per review feedback already applied: kubectl commands replaced with the Argo CD UI flow; WAF/CDN page removed.

Notes for reviewers

  • The certbot page's vault steps were written from the platform's ExternalSecret conventions — please cross-check against the internal wiki's existing notes on loading certs into Vault.
  • Vault paths used in examples: secret/<app>-route53-dns01 and secret/<app>-tls (dedicated paths, kept separate from app env-var paths so key material can't leak into pod environments).
  • The webhook-DNS-provider carve-out on the Route53 page links to https://www.glueops.dev/contact-us — swap if there's a preferred support channel.

Testing

  • npm run build passes with onBrokenLinks: "throw" (the two broken-anchor warnings in the log are pre-existing on unrelated admin pages).
  • All internal links verified against frontmatter IDs.

🤖 Generated with Claude Code

yesterdaysrebel and others added 2 commits July 30, 2026 06:20
Four new pages under Developers covering TLS for customer-owned domains
(issue internal-GlueOps/issues#387):

- Overview with decision table (wildcards need DNS-01, CAA, SAN planning,
  multi-CA coexistence) and a DNS-PERSIST-01 'coming soon' note
- Automated certificates with cert-manager via a namespaced Issuer and
  customResourcesMap (Route53 example, scoped IAM, creds from OpenBao)
- Manual certificates with certbot (multi-domain wildcard, vault upload,
  kubernetes.io/tls ExternalSecret)
- WAF/CDN overview (edge certs coexist with platform certs)

Site builds clean with onBrokenLinks: throw.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Per review feedback: replace kubectl verification/troubleshooting steps
with the Argo CD UI flow (sync, watch the Certificate/Challenge resources
in the resource tree, then curl the domain), and remove the WAF/CDN page.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Per review feedback: apps typically already pull env vars via an
externalSecret entry with dataFrom — show that the route53-dns01 entry
coexists with it rather than replacing it.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@yesterdaysrebel yesterdaysrebel changed the title docs: add Custom Domain Certificates section feat: add Custom Domain Certificates documentation Aug 6, 2026
Add Prerequisites (base-values with whoami image) and deployment/service
to the envs values examples so each guide is a complete deployable app,
matching the pattern used by the traefik ingress pages. Show the app env
secret and the cert/ssl secret as separate externalSecret entries.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@yesterdaysrebel
yesterdaysrebel enabled auto-merge (squash) August 6, 2026 06:46
@yesterdaysrebel
yesterdaysrebel merged commit bf35c2b into main Aug 6, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant