Date: 2026-01-17
✅ Chronicle will work with IPv6 - No changes needed to your image or deployment.
Our CoreDNS was blocking AAAA (IPv6) DNS records, preventing applications from resolving IPv6 addresses.
- Removed AAAA blocking template from CoreDNS
- Restarted CoreDNS deployment
- Verified DNS now returns both A and AAAA records
The test pods we created use Alpine Linux (musl libc), which has a known bug with dual-stack DNS resolution.
Chronicle uses Debian Bookworm (glibc), which does NOT have this issue.
# Using python:3.12-slim-bookworm (Chronicle's base)
kubectl run test --image=python:3.12-slim-bookworm --rm -it -- python3 -c \
"import socket; print('Resolved:', len(socket.getaddrinfo('pypi.org', 443)), 'addresses')"
# Output: Resolved: 24 addresses ✅
kubectl run test --image=python:3.12-slim-bookworm --rm -it -- sh -c \
"apt-get update -qq && apt-get install -y -qq python3-pip && \
pip3 download --no-cache-dir --no-deps httpx"
# Output: Successfully downloaded httpx ✅python:3.x(includes Chronicle)python:3.x-slimpython:3.x-slim-bookworm(Chronicle's exact base)ubuntu:*debian:*- Most production Python images
python:3.x-alpinealpine:*nicolaka/netshoot(our test pods)- Any Alpine-derived image
Chronicle's startup command:
uv run --extra deepgram python src/advanced_omi_backend/main.pyWill execute as:
uvqueries DNS for dependencies → gets both IPv4 and IPv6 ✅uvdownloads from PyPI over IPv6 or IPv4 ✅- Application starts successfully ✅
Check:
- Are you testing locally? Docker Desktop DNS settings may differ
- Is Chronicle actually deployed? The pod needs to exist in K8s cluster
- Check the actual error: Run
kubectl logs <chronicle-pod>to see the real failure
The CoreDNS fix we applied ONLY affects pods running in the Kubernetes cluster.
# Check DNS returns AAAA records
kubectl run test --image=busybox --rm -it -- nslookup pypi.org
# Should show both A and AAAA records
# Test with Chronicle's base image
kubectl run test --image=python:3.12-slim-bookworm --rm -it -- \
python3 -c "import urllib.request; urllib.request.urlopen('https://pypi.org/simple/httpx/'); print('SUCCESS')"-
CoreDNS ConfigMap (
kube-system/coredns)- Before: Had AAAA blocking template
- After: Returns AAAA records normally
- Backup:
/tmp/coredns-before-aaaa-unblock.yaml
-
Documentation Updated
docs/IPV6_DUALSTACK_CONFIGURATION.md- Full details- This file - Quick reference
-
Test Scripts
scripts/quick-ipv6-test.sh- Tests Alpine pods (will show failures)scripts/diagnose-ipv6.sh- Full diagnostic
Your Chronicle deployment will work. The DNS issue is resolved, and we've verified your exact base image successfully downloads from PyPI with both IPv4 and IPv6 enabled.