What changes? Hardly anything.
The stuff you spent time getting right stays right. The list of things to touch is short.
Stays the same
- Your Corefile
- Same syntax, same meaning. If CoreDNS 1.15 takes it, so does Pharos, and it turns down the same broken ones.
- Your plugins
- All 62 built-in plugins keep their names and their options.
- Your probes
- Same ports, same
/healthand/readyanswers. Your liveness checks won’t notice. - Your metrics
- Same names, labels and histogram buckets. Only the prefix moves.
Changes
- The image
- ghcr.io/itsmeyaw/pharos:1.0.0
- Flag spelling
- POSIX style, so
-confbecomes--conf. Old flags tell you their new name. - Metric prefix
pharos_instead ofcoredns_.- RFC corner cases
- Where CoreDNS breaks an RFC MUST and real setups don’t rely on it, Pharos follows the RFC. Each case is written down.
Switch in three steps.
Try it on a staging cluster first if you like. Rolling back is the same diff, the other way round.
Ask Pharos about your Corefile
pharos checkloads your config without serving anything and lists every known difference that applies to it.$ docker run --rm \-v "$PWD/Corefile:/etc/pharos/pharos.conf:ro" \ghcr.io/itsmeyaw/pharos:1.0.0 checkSwap the image
Point your Deployment at Pharos and fix the one flag. Ports, volumes and probes stay exactly as they are.
containers: - name: coredns-image: registry.k8s.io/coredns/coredns:v1.15.0+ image: ghcr.io/itsmeyaw/pharos:1.0.0-args: [ "-conf", "/etc/coredns/Corefile" ]+ args: [ "--conf", "/etc/coredns/Corefile" ]Rename your dashboards
A find-and-replace on the prefix in your Grafana panels and alert rules, and the graphs pick up where they left off.
-coredns_dns_requests_total+ pharos_dns_requests_total-coredns_cache_hits_total+ pharos_cache_hits_total
Want every detail? Read the migration guide and the compatibility notes.