fix(dns): pin external-dns annotationPrefix to the alpha prefix
external-dns v0.22 changed its default annotation prefix to external-dns.kubernetes.io/ with no fallback. Renovate #129 moved the chart to 1.23.0 (app v0.23.0), and at 12:13Z it ignored every alpha-prefixed annotation in this repo: the Gateway target (public names went to A 192.168.2.20), controller: none (jackett, pihole and semaphore got published), and the L4 Service hostnames (unifi and crafty-mc were deleted). Set annotationPrefix: external-dns.alpha.kubernetes.io/ to restore the v0.21 reading. Floor the chart at 1.23.0, because the flag needs app >= 0.22. Co-Authored-By: Claude Opus 5.5 <[email protected]>
This commit is contained in:
1 parent
d1994b16e8
commit
267446c68f
2 files changed
+126
-1
No files matched your search
@@ -11,7 +11,10 @@ spec:
|
||||
chart:
|
||||
spec:
|
||||
chart: external-dns
|
||||
version: "<1.24.0" # k8s-1.36 catch-up (app v0.21; policy already set). Renovate maintains
|
||||
# chart 1.23.x = app v0.23.0. Floor >=1.23.0 because `annotationPrefix` below needs app >=0.22.
|
||||
# Renovate maintains — but READ THE APP RELEASE NOTES on every 0.x minor: 0.22 changed the
|
||||
# annotation prefix with no fallback and silently re-published every internal name (2026-11-07).
|
||||
version: ">=1.23.0 <1.24.0"
|
||||
sourceRef:
|
||||
kind: HelmRepository
|
||||
name: external-dns
|
||||
@@ -25,6 +28,29 @@ spec:
|
||||
values:
|
||||
provider:
|
||||
name: cloudflare
|
||||
# ---------------------------------------------------------------------------------------------
|
||||
# ANNOTATION PREFIX — PINNED TO THE LEGACY `alpha` PREFIX (2026-11-07). Do not remove.
|
||||
#
|
||||
# external-dns v0.22.0 (#6424) changed the default annotation prefix from
|
||||
# `external-dns.alpha.kubernetes.io/` to `external-dns.kubernetes.io/` "with no fallback".
|
||||
# EVERY external-dns annotation in this repo uses the alpha prefix: the Gateway's `target`
|
||||
# (platform/gateway/gateway.yaml), the renderer's `controller: none` on `internal` routes
|
||||
# (catalog/render.py -> apps/wave-*), and the L4 Services' `hostname` (crafty-mc, unifi).
|
||||
# Renovate PR #129 moved the chart range to `<1.24.0` (app v0.21.0 -> v0.23.0) and on the first
|
||||
# reconcile (2026-11-07T12:13Z) v0.23.0, reading only the GA prefix, saw none of them:
|
||||
# * `target` ignored -> every public name flipped CNAME wan.<base> -> A 192.168.2.20 (RFC1918)
|
||||
# * `controller: none` ignored -> internal jackett, pihole, semaphore PUBLISHED (R-DNS-03 broken)
|
||||
# * `hostname` ignored -> unifi and crafty-mc A records DELETED
|
||||
# Logged as `action=CREATE ... type=A` / `action=DELETE ... type=CNAME` for every name at once.
|
||||
#
|
||||
# The chart's `annotationPrefix` renders `--annotation-prefix=`, which v0.23.0 applies to every
|
||||
# key it reads (source/annotations/annotations.go SetAnnotationPrefix: target, controller,
|
||||
# hostname, ttl, ...), restoring exactly the v0.21 behaviour. Chosen over
|
||||
# `--enable-legacy-annotation-prefix` (a dual-read migration aid upstream says will be removed)
|
||||
# and over migrating the annotations (renderer + goldens + conformance = sensitive paths, and a
|
||||
# flag-day across ~20 objects). Migrating to the GA prefix is the follow-up: change every
|
||||
# annotation AND this value in ONE commit, never one without the other.
|
||||
annotationPrefix: "external-dns.alpha.kubernetes.io/"
|
||||
# Watch Gateway API routes (Cilium Gateway) + Services. docs/09: records rendered from intent.
|
||||
#
|
||||
# BOTH SOURCES ARE UNFILTERED HERE, AND THAT IS DELIBERATE — see the WHICH RESOURCES block
|
||||
|
||||
Reference in new issue
Block a user