• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

kubernetes-sigs / external-dns / 35502662850
82%

Build:
DEFAULT BRANCH: master
Ran 20 Sep 2026 09:39AM UTC
Jobs 2
Files 158
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

20 Sep 2026 09:33AM UTC coverage: 81.948% (+0.01%) from 81.937%
35502662850

push

github

web-flow
fix(mx): keep null MX and strip trailing dot (#6661)

* fix(mx): keep null MX and strip trailing dot on cloudflare

NewEndpointWithTTL trimmed the trailing dot off the whole MX target, turning
the null MX "0 ." (RFC 7505) into "0 ", which no longer parses as an MX record.

On cloudflare, the CRD source exempts MX from its target format check while the
API never returns a trailing dot, so "10 mail.example.com." diffed on every
reconcile and getRecordID could not resolve the record to delete.

* fix(crd): normalize MX targets instead of passing them through

Trailing dots reached every provider, not just cloudflare. Unparseable
targets and the null MX are left as-is.

* comment review

* fix(mx): canonicalize MX targets for every provider

Render MX targets as "<preference> <host>" in NewEndpointWithTTL and the
CRD source, replacing the Cloudflare-only normalization: a single space,
no leading zeros on the preference, no trailing dot on the host, with
unparseable targets and the null MX "0 ." left alone.

PowerDNS rejects a non-canonical target server-side, so the whole zone
patch fails rather than merely diffing on every reconcile. Doing this in
endpoint covers pdns, google and both Azure providers as well.

* fix(mx): drop the redundant MX host trim on cloudflare

NormalizeMXTarget already renders MX targets undotted before they reach
newCloudFlareChange, so the extra trim there did nothing. Revert the
helper to its original name and scope: only SRV keeps a trailing dot
this far down the write path.

15671 of 19123 relevant lines covered (81.95%)

1438.99 hits per line

Coverage Regressions

Lines Coverage ∆ File
8
96.26
0.0% cloudflare/cloudflare_batch.go
4
88.06
0.18% crd.go
Jobs
ID Job ID Ran Files Coverage
1 run-ubuntu-latest - 35502662850.1 20 Sep 2026 09:40AM UTC 158
81.95
GitHub Action Run
2 run-macos-latest - 35502662850.2 20 Sep 2026 09:39AM UTC 158
81.95
GitHub Action Run
Source Files on build 35502662850
  • Tree
  • List 158
  • Changed 3
  • Source Changed 0
  • Coverage Changed 3
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #35502662850
  • 79830e6c on github
  • Prev Build on master (#35497123802)
  • Next Build on master (#35574836257)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc