131b4e1695
We self-delegate `_acme-challenge.unkin.net` into an `acme.unkin.net` zone we serve ourselves, so cert-manager can solve Let's Encrypt DNS-01 over RFC2136/TSIG. That needs a publicly-reachable authoritative BIND, separate from the internal estate. - Add app `bind-external` (base + au-syd1 overlay); register it in the platform ApplicationSet and AppProject destinations (bind-operator already watches all namespaces). - Add BindCluster `bind-external`: authoritative-only, recursion off, no forwarding, transfers denied except the keyed catalog/zone AXFR; 2 replicas; primaryService is a dmz-pinned PureLB LoadBalancer at `198.18.199.53`. - Add BindZone `acme.unkin.net` (primary, dynamicUpdate) and BindTSIGKey `certmanager` (hmac-sha256), whose Secret `certmanager-tsig` reflects into the `cert-manager` namespace for the rfc2136 solver. Pairs with argocd-apps #327 (the ClusterIssuers) and a one-time Google Cloud DNS delegation + NAT of the public IP :53 to `198.18.199.53`. --------- Co-authored-by: Ben Vincent <neotheo@gmail.com> Reviewed-on: #329 Co-authored-by: Ben Vincent <ben@unkin.net> Co-committed-by: Ben Vincent <ben@unkin.net>
21 lines
900 B
YAML
21 lines
900 B
YAML
---
|
|
# TSIG key cert-manager uses to send RFC2136 dynamic updates (the DNS-01 TXT
|
|
# records) to the primary, and that the secondary reuses for AXFR. The operator
|
|
# generates the material into Secret certmanager-tsig in this namespace;
|
|
# secretTemplate stamps emberstack reflector hints so the Secret is mirrored into
|
|
# the cert-manager namespace, where the rfc2136 solver reads its "secret" key.
|
|
apiVersion: bind.unkin.net/v1alpha1
|
|
kind: BindTSIGKey
|
|
metadata:
|
|
name: certmanager
|
|
namespace: bind-external
|
|
spec:
|
|
clusterRef: bind-external
|
|
algorithm: hmac-sha256
|
|
secretTemplate:
|
|
annotations:
|
|
reflector.v1.k8s.emberstack.com/reflection-allowed: "true"
|
|
reflector.v1.k8s.emberstack.com/reflection-allowed-namespaces: "cert-manager"
|
|
reflector.v1.k8s.emberstack.com/reflection-auto-enabled: "true"
|
|
reflector.v1.k8s.emberstack.com/reflection-auto-namespaces: "cert-manager"
|