Files
k8s-manifests/cloudflare-ddns/deployment-cloudflare-ddns.yaml
T
chemavxandClaude Opus 4.8 af162bf34d cloudflare-ddns: desactiva IPv6, que era el 100% de los errores
Todos los fallos del log eran el mismo: cada ciclo de 5 min intentaba detectar
la IP v6 contra api.cloudflare.com/cdn-cgi/trace, agotaba los 5s de
DETECTION_TIMEOUT y terminaba en "No valid IPv6 addresses were detected".
34 de 34 errores en las últimas 400 líneas; ni uno solo de IPv4.

Aquí no hay IPv6: la única dirección v6 global de los nodos es la ULA de
Tailscale (fd7a:115c:a1e0::/48) y no hay ruta a internet por v6. IP6_PROVIDER
no estaba puesto y cae por defecto en cloudflare.trace, así que lo intentaba
igual. Ahora va explícito a "none".

No se pierde ningún registro: no hay AAAA de origen que mantener. Los AAAA que
publica theexclusionzone.com son de Cloudflare (2606:4700::/32), sintetizados
por ser proxied, y el DDNS nunca los tocó.

Importa más de lo que parece: ese ruido constante es lo que haría invisible un
fallo de verdad en el servicio del que dependen los tres dominios.

De paso, fuera del fichero dos anotaciones que no son configuración deseada
sino estado del controlador: last-applied-configuration (además describía la
config de una sola zona, anterior al alta de los dos blogs) y
deployment.kubernetes.io/revision, que el fichero fijaba en 1 cuando la viva
iba por la 8.

Verificado con kubectl diff antes de aplicar (único cambio: +IP6_PROVIDER), y
después: el arranque ya no anuncia proveedor IPv6, comprueba los 7 registros A
y lleva 0 errores.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-22 08:33:56 +00:00

73 lines
2.2 KiB
YAML

apiVersion: apps/v1
kind: Deployment
metadata:
name: cloudflare-ddns
namespace: cloudflare-ddns
spec:
progressDeadlineSeconds: 600
replicas: 1
revisionHistoryLimit: 10
selector:
matchLabels:
app: cloudflare-ddns
strategy:
rollingUpdate:
maxSurge: 25%
maxUnavailable: 25%
type: RollingUpdate
template:
metadata:
labels:
app: cloudflare-ddns
spec:
containers:
- env:
- name: CF_API_TOKEN
valueFrom:
secretKeyRef:
key: CF_API_TOKEN
name: cloudflare-ddns-secret-infisical
- name: DOMAINS
value: chemavx.xyz,*.chemavx.xyz,zonadeexclusion.com,*.zonadeexclusion.com,theexclusionzone.com,www.theexclusionzone.com,*.theexclusionzone.com
- name: PROXIED
value: is(theexclusionzone.com,www.theexclusionzone.com)
- name: UPDATE_CRON
value: '@every 5m'
- name: IP4_PROVIDER
value: cloudflare.trace
# Aquí no hay IPv6: la única dirección IPv6 global de los nodos es la ULA
# de Tailscale (fd7a:115c:a1e0::/48) y no hay ruta a internet por v6. Sin
# esto, IP6_PROVIDER cae por defecto en cloudflare.trace y cada ciclo de
# 5 min gastaba los 5s de DETECTION_TIMEOUT para acabar en error. No se
# pierde ningún registro: no hay AAAA de origen que mantener (los AAAA de
# theexclusionzone.com los sintetiza Cloudflare por ser proxied).
- name: IP6_PROVIDER
value: none
image: favonia/cloudflare-ddns:1.16.2
imagePullPolicy: Always
name: cloudflare-ddns
resources:
limits:
cpu: 50m
memory: 64Mi
requests:
cpu: 10m
memory: 32Mi
securityContext:
allowPrivilegeEscalation: false
capabilities:
drop:
- ALL
readOnlyRootFilesystem: true
runAsGroup: 1000
runAsNonRoot: true
runAsUser: 1000
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
dnsPolicy: ClusterFirst
restartPolicy: Always
schedulerName: default-scheduler
securityContext: {}
terminationGracePeriodSeconds: 30