dns: point rohana at the private path from inside the cluster (#0088)

rohana.axion1337.de resolves publicly to a Hetzner address, while the host
is reachable over the private network at 10.0.0.3 - and serves a valid
Let's Encrypt certificate for that very name there, measured with full
verification. Without an internal pointer every access from the cluster
leaves it for no reason and needs an outbound exception.

A dedicated zone rather than a second hosts block: the Corefile already
runs hosts /etc/coredns/NodeHosts in the main block, so a second one there
would collide. The .server import at the end of the Corefile takes a zone
of its own, and the reload plugin picks the change up without a restart.

The price is in the file, not in a commit message nobody rereads: two paths
become one. If 10.0.0.3 is down, rohana is unreachable from the cluster
although the public route would work, and the failure looks like "Gitea is
gone" rather than "the private path is gone". The comment says where to
look first.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01F2Q4Ri8NGwyTZzScvKnWFM
This commit is contained in:
Thore Cimbal
2026-08-21 12:00:00 +00:00
co-authored by Claude Opus 5
parent 3fbc268e84
commit 69c9ef13a1
2 changed files with 37 additions and 0 deletions
+36
View File
@@ -0,0 +1,36 @@
# Interner Zeiger auf rohana (#0088).
#
# rohana.axion1337.de loest oeffentlich auf 188.245.193.243 auf. Der Host ist
# aber ueber das private Netz unter 10.0.0.3 erreichbar UND traegt dort ein
# gueltiges Let's-Encrypt-Zertifikat fuer genau diesen Namen - am 2026-08-21
# mit voller Zertifikatspruefung nachgemessen. Ohne diesen Zeiger verlaesst
# jeder Zugriff aus dem Cluster (Gitea-Push der TURN-Rotation, git-storage von
# Wiki.js) unnoetig den Cluster und braucht eine Egress-Ausnahme nach draussen.
#
# Warum eine eigene Zone und kein zweiter `hosts`-Block: Die Corefile fuehrt
# bereits `hosts /etc/coredns/NodeHosts` im Hauptblock. Ein zweiter dort waere
# ein Konflikt, deshalb ein `.server`-Import mit eigener Zone (Corefile,
# letzte Zeile). `reload` im Hauptblock zieht Aenderungen selbsttaetig nach -
# ein Neustart von CoreDNS ist nicht noetig.
#
# ⚠️ PREIS: Aus zwei Wegen wird einer. Faellt 10.0.0.3 aus, ist rohana aus dem
# Cluster nicht mehr erreichbar, obwohl der oeffentliche Weg funktionieren
# wuerde - und der Fehler sieht aus wie "Gitea ist weg", nicht wie "der private
# Pfad ist weg". Wer hier sucht: erst `nslookup rohana.axion1337.de` aus einem
# Pod, dann diese ConfigMap.
apiVersion: v1
kind: ConfigMap
metadata:
name: coredns-custom
namespace: kube-system
data:
# Dateiname MUSS auf .server enden - nur die werden am Ende der Corefile
# importiert. `.override` liefe im Hauptblock und damit in den Konflikt oben.
rohana.server: |
rohana.axion1337.de:53 {
hosts {
10.0.0.3 rohana.axion1337.de
fallthrough
}
forward . /etc/resolv.conf
}
+1
View File
@@ -1,6 +1,7 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- coredns-custom.yaml
- ns-cert-manager.yaml
- ns-matrix.yaml
- cert-manager-repo.yaml