Add *.main and *.ceph wildcard certificates for haproxy #484

Merged
benvin merged 2 commits from benvin/haproxy-wildcard-certs into main 2026-09-26 16:38:31 +10:00
Member

The haproxy edge terminates TLS for hosts under main.unkin.net and ceph.unkin.net, which the single *.unkin.net wildcard does not cover.

  • Add cert-manager Certificates for both wildcards from the letsencrypt ClusterIssuer.
  • Reflect the minted secrets into the haproxy namespace.

Needs these records in the public unkin.net zone first:
_acme-challenge.main.unkin.net. CNAME _acme-challenge.main.acme.unkin.net.
_acme-challenge.ceph.unkin.net. CNAME _acme-challenge.ceph.acme.unkin.net.

The haproxy edge terminates TLS for hosts under `main.unkin.net` and `ceph.unkin.net`, which the single `*.unkin.net` wildcard does not cover. - Add cert-manager Certificates for both wildcards from the `letsencrypt` ClusterIssuer. - Reflect the minted secrets into the `haproxy` namespace. Needs these records in the public unkin.net zone first: `_acme-challenge.main.unkin.net. CNAME _acme-challenge.main.acme.unkin.net.` `_acme-challenge.ceph.unkin.net. CNAME _acme-challenge.ceph.acme.unkin.net.`
unkin-agent added 1 commit 2026-09-26 14:10:17 +10:00
add *.main.unkin.net and *.ceph.unkin.net wildcard certificates
ci/woodpecker/pr/vector-test Pipeline was successful
ci/woodpecker/pr/pre-commit Pipeline was successful
ci/woodpecker/pr/kubeconform Pipeline was successful
ae3edd9db5
Author
Member

apps/base/cert-manager/certificate_wildcard-main-unkin-net.yaml:4, certificate_wildcard-ceph-unkin-net.yaml:4 — "CNAME in the public unkin.net zone" underspecifies the prerequisite: the rfc2136 solver resolves the CNAME via 8.8.8.8 and then runs its SOA zone lookup against the rfc2136 nameserver 198.18.199.53, which is allow-query any but authoritative only for acme.unkin.net (apps/base/bind-external/zones.yaml:13). A CNAME pointing anywhere other than inside acme.unkin.net fails with "could not determine the zone", CNAME present or not → state the required targets (e.g. _acme-challenge.{main,ceph}.acme.unkin.net) in the comment.

apps/base/cert-manager/certificate_wildcard-main-unkin-net.yaml:15-17, certificate_wildcard-ceph-unkin-net.yaml:15-17, certificate_wildcard-unkin-net.yaml:17,19 — the haproxy namespace exists neither in this repo (no apps/base/haproxy, no overlay) nor in the cluster (kubectl get ns haproxy → NotFound), so all three secrets reflect nowhere; and if the edge stays an LXD guest, reflection into a k8s namespace never reaches it at all → land the namespace/consumer in this PR, or drop the annotations until it does.

nit: apps/base/cert-manager/certificate_wildcard-ceph-unkin-net.yaml:21 — dashboard.ceph.unkin.net is currently served a separate LE leaf (CN=dashboard.ceph.unkin.net, notAfter 2026-11-06) from an issuance path outside this repo → retire it at cutover so the host is not renewed twice.

apps/base/cert-manager/certificate_wildcard-main-unkin-net.yaml:4, certificate_wildcard-ceph-unkin-net.yaml:4 — "CNAME in the public unkin.net zone" underspecifies the prerequisite: the rfc2136 solver resolves the CNAME via 8.8.8.8 and then runs its SOA zone lookup against the rfc2136 nameserver 198.18.199.53, which is `allow-query any` but authoritative only for `acme.unkin.net` (apps/base/bind-external/zones.yaml:13). A CNAME pointing anywhere other than inside `acme.unkin.net` fails with "could not determine the zone", CNAME present or not → state the required targets (e.g. `_acme-challenge.{main,ceph}.acme.unkin.net`) in the comment. apps/base/cert-manager/certificate_wildcard-main-unkin-net.yaml:15-17, certificate_wildcard-ceph-unkin-net.yaml:15-17, certificate_wildcard-unkin-net.yaml:17,19 — the `haproxy` namespace exists neither in this repo (no `apps/base/haproxy`, no overlay) nor in the cluster (`kubectl get ns haproxy` → NotFound), so all three secrets reflect nowhere; and if the edge stays an LXD guest, reflection into a k8s namespace never reaches it at all → land the namespace/consumer in this PR, or drop the annotations until it does. nit: apps/base/cert-manager/certificate_wildcard-ceph-unkin-net.yaml:21 — `dashboard.ceph.unkin.net` is currently served a separate LE leaf (CN=dashboard.ceph.unkin.net, notAfter 2026-11-06) from an issuance path outside this repo → retire it at cutover so the host is not renewed twice.
unkin-agent added 1 commit 2026-09-26 14:32:20 +10:00
name the acme.unkin.net CNAME targets in the wildcard cert comments
ci/woodpecker/pr/vector-test Pipeline was successful
ci/woodpecker/pr/pre-commit Pipeline was successful
ci/woodpecker/pr/kubeconform Pipeline was successful
4cf3b59308
benvin merged commit f37749523d into main 2026-09-26 16:38:31 +10:00
benvin deleted branch benvin/haproxy-wildcard-certs 2026-09-26 16:38:32 +10:00
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: unkin/argocd-apps#484