Rewrite in Go, IPv4-Support und Release-Pipeline #1
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "feature/go-rewrite"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Macht aus dem privaten Shell-Skript ein Projekt, das jeder gegen eigene Domains laufen lassen kann.
Was neu ist
DDNS_RECORDS=zone:name[:typ], keine Domain mehr im Quelltextset_recordsscheitert an einem RRset, das es noch nicht gibtcheck,healthcheck,version; Health-Endpunkte;DDNS_ONESHOTfuer cronBehobene Fehler des Shell-Skripts
curl -sfverwarf den Response-Body bei HTTP >= 400 — die Fehlerausgabe war ausgerechnet im Fehlerfall leererror.code/error.messagewerden geparst und um einen Hinweis ergaenzt/tmp/last_ipohne Volume: jeder Neustart schrieb alle Records neuread_onlyohne VolumeRetry-Afterbeachtet, 4xx niestderrlandete in der Variablen, aus der der HTTP-Status gelesen wurdeZONESin der Compose-Datei war tote, abweichende KonfigurationDDNS_RECORDSgrep -v temporaryals Heuristik fuer IPv6-Privacy-Adressen/proc/net/if_inet6; keiniproute2mehr noetigSIGTERMwurde imsleepignoriertSicherheit
gcr.io/distroless/static:nonroot: keine Shell, kein Paketmanager, Nicht-Rootgo.sumscripts/check-domains.sherzwingt, dass nur RFC-2606-Platzhalter im Baum und in der Historie vorkommen. Positivliste, faengt also auch Domains, an die heute niemand denkt. Erster Schritt der Pipeline.Pipeline
Uebernimmt die Anordnung, die auf dieser Instanz nachweislich funktioniert: schlichtes
docker buildohne BuildKit ueber den Podman-Socket-Proxy, Actions per voller URL, jeder Push durch Zurueckziehen des Tags verifiziert. Gebaut wird auf jedem Branch, gepusht nur vonmainund nur:latest.Noch zu tun (ausserhalb dieses PRs)
REGISTRY_TOKENsetzen (Forgejo-Token mitwrite:package). Ohne ihn baut die Pipeline nur und pusht nicht — sie bleibt also gruen.Getestet
make lint test-racegruen, 0 Lint-Issuescheckgegenexample.com: IPv4 stimmte mit einem unabhaengigen Echo-Dienst ueberein, IPv6 mit der globalen Adresse aufeth0, das 401 kam mit lesbarer Fehlermeldung und Hinweis