github kubernetes-sigs/external-dns v0.22.0

4 hours ago

General information

Action required before upgrade

  • ⚠️ The default annotation prefix is now external-dns.kubernetes.io/ with no fallback (#6424)

    • 🚨 This change can delete your DNS records.
    • ℹ️ You can either migrate your annotations or set --annotation-prefix=external-dns.alpha.kubernetes.io/.
    • ➡️ It's recommended to try this version with --dry-run=true & --policy=create-only.
  • ⚠️ To avoid any unwanted DNS records deletion from the annotation prefix change, --policy is now required with no default (#6508).

Important

  • ⚠️ CRD/API upgrades: Gateway API TLSRoute now uses v1, standard channel since Gateway API v1.5.0 (#6367). Ambassador Host now uses getambassador.io/v3alpha1 (#6482). Pi-hole v5 API is removed, v6+ only (#6406).
  • ℹ️ On AWS, ownership TXT records for A ALIAS now use the a- prefix (#6523). Migration is automatic and ownership is preserved
    • Leftover cname- records can be cleaned with scripts/aws-cleanup-legacy-txt-records.py --alias-cname-cleanup.
  • ℹ️ This release removes in-tree support for Akamai, Plural & Transip (#6485).
    • Users needing those providers can use a previous version of ExternalDNS or a webhook-based provider. Gandi is marked for removal (#6634).
  • ℹ️ New: crd registry as an alternative to TXT (#5372)
  • ℹ️ DNAME record support (#6553), and --rfc2136-axfr replacing the deprecated --rfc2136-tsig-axfr (#6598).

⚠️ Breaking Changes

🚀 Features

🐛 Bug fixes

  • [alibabacloud] fix TXT record value comparison during record updates by @jiangzm in #6487
  • [aws] incorrect behavior for non-aliasable record types by @u-kai in #6017
  • [awssd] use namespace-aware parsing for dotted service names by @am-ltk in #6365
  • [aws] unescape wildcard alias target on read by @ulascansenturk in #6471
  • [cloudflare] send SRV records as structured data by @tpaulus in #6560
  • [coredns] return AAAA for IPv6 targets by @mloiseleur in #6489
  • [coredns] unexpected delete when owner is activated by @farodin91 in #6206
  • [coredns] write PTR records without random prefix to etcd by @dongjiang1989 in #6478
  • create/update event generation for webhook provider by @tommasopozzetti in #6361
  • [dnsimple] read back all supported record types and fix record lookup by type by @Churi12 in #6517
  • [dynamodb] avoid nil region option panic by @vissieza in #6417
  • [events] encapsulate ObjectReference fields by @ivankatliarchuk in #6423
  • [mapper] prevent index out of bounds in ToEndpointName with multi-dot suffix by @carterpewpew in #6433
  • pin smartystreets/assertions. mark gandi provider for removal by @ivankatliarchuk in #6634
  • preserve equals signs in endpoint label values by @immanuwell in #6443
  • [provider/cloudflare] trim surrounding whitespace from API token by @gecube in #6533
  • [provider] normalize alias=A/AAAA to alias=true after AdjustEndpoints by @u-kai in #6454
  • [provider/rfc2136] use independent counters for AXFR and update nameserver rotation by @pujitha24 in #6591
  • [service] switch Endpoints() to indexer-based filtering by @ivankatliarchuk in #6344
  • [source/crd] allow SRV targets with trailing dot in DNSEndpoint by @SAY-5 in #6383
  • [source/fake.go] make fakeSource endpoint generation deterministic by @vflaux in #6411
  • [source] parse gloo-proxy aggregateListener virtual hosts by @pujitha24 in #6628
  • [source] preserve Skipper custom token file by @PragalvaXFREZ in #6583
  • [source] SingletonClientGenerator once-init errors by @carterpewpew in #6398
  • [source] use correct key when checking for existing alias in postProcessor by @u-kai in #6388
  • support ownership recognition of txt records by @HartmannVolker in #6435

📝 Documentation

📦 Docker Image

# This pull command only works when it's released
docker pull registry.k8s.io/external-dns/external-dns:v0.22.0

📦 Others

  • add fuzz tests for parsing and normalization functions by @Raffo in #6525
  • bump dependencies for update by @Raffo in #6643
  • bump k8s deps to v0.36.0 and remove deprecated scheme.Builder by @ivankatliarchuk in #6407
  • bump to go version 1.26.6 by @Raffo in #6635
  • [ci] [docs] use latest as alias by @mloiseleur in #6352
  • [ci] [e2e] use rollout status for etcd instead of kubectl wait by @u-kai in #6474
  • [ci] [github] pin github action by @ivankatliarchuk in #6428
  • [ci] replace GrantBirki/json-yaml-validate action with jq by @Raffo in #6318
  • [ci] replace pre-commit with a SHA-pinned file-hygiene script by @Raffo in #6374
  • [cobra] cleanup up leftover Cobra code by @vflaux in #6448
  • [deps] bump github.com/cloudflare/cloudflare-go from v5 to v7 by @bayazee in #6550
  • [deps] bump github.com/projectcontour/contour from 1.33.3 to 1.33.4 by @app/dependabot in #6395
  • [deps] bump gitpython from 3.1.50 to 3.1.52 in /docs/scripts by @app/dependabot in #6576
  • [deps] bump gitpython from 3.1.52 to 3.1.54 in /docs/scripts by @app/dependabot in #6585
  • [deps] bump gitpython from 3.1.54 to 3.1.57 in /docs/scripts by @app/dependabot in #6613
  • [deps] bump gitpython from 3.1.57 to 3.1.58 in /docs/scripts by @app/dependabot in #6621
  • [deps] bump mkdocs-git-revision-date-localized-plugin from 1.5.1 to 1.5.2 in /docs/scripts in the mkdocs-deps group by @app/dependabot in #6464
  • [deps] bump mkdocs-git-revision-date-localized-plugin from 1.5.2 to 1.5.3 in /docs/scripts in the mkdocs-deps group by @app/dependabot in #6532
  • [deps] bump mkdocs-material from 9.7.6 to 9.7.7 in /docs/scripts in the mkdocs-deps group across 1 directory by @app/dependabot in #6601
  • [deps] bump pymdown-extensions from 10.21.3 to 11.0 in /docs/scripts by @app/dependabot in #6584
  • [deps] bump pymdown-extensions from 11.0 to 11.0.1 in /docs/scripts by @app/dependabot in #6622
  • [deps] bump the dev-dependencies group across 1 directory with 20 updates by @app/dependabot in #6410
  • [deps] bump the dev-dependencies group with 10 updates by @app/dependabot in #6441
  • [deps] bump the dev-dependencies group with 12 updates by @app/dependabot in #6459
  • [deps] bump the dev-dependencies group with 22 updates by @app/dependabot in #6488
  • [deps] bump the dev-dependencies group with 3 updates by @app/dependabot in #6420
  • [deps] bump the dev-dependencies group with 4 updates by @app/dependabot in #6362
  • [deps] bump the dev-dependencies group with 4 updates by @app/dependabot in #6403
  • [deps] bump the dev-dependencies group with 5 updates by @app/dependabot in #6463
  • [deps] bump the dev-dependencies group with 6 updates by @app/dependabot in #6452
  • [deps] bump the dev-dependencies group with 9 updates by @app/dependabot in #6531
  • [deps] bump the dev-dependencies group with 9 updates by @app/dependabot in #6602
  • [deps] bump the mkdocs-deps group in /docs/scripts with 2 updates by @app/dependabot in #6404
  • [deps] [go] bump go from 1.26.1 -> 1.26.5 by @ivankatliarchuk in #6568
  • fix grpc vuln by upgrading lib by @Raffo in #6614
  • fix typos across codebase by @Raffo in #6385
  • fix x/text vulnerability by upgrading by @Raffo in #6615
  • follow the OpenSSF recommendations for github permissions by @Raffo in #6378
  • [refactor] [alibabacloud/test] optimize alidns unit tests by @jiangzm in #6506
  • [refactor] [controller] controller.Run to return error by @ivankatliarchuk in #6345
  • [refactor] [controller] replace custom SIGTERM handler with NotifyContext by @vflaux in #5821
  • [refactor] [endpoint] add WithAliasProperty and replace alias string literals by @u-kai in #6455
  • [refactor] [endpoint] export ProviderSpecificAlias and consolidate usage by @u-kai in #6342
  • [refactor] [endpoint] move MergeEndpoints from source to endpoint package by @ivankatliarchuk in #6413
  • [refactor] [events] use typed queue and revisit event controller by @ivankatliarchuk in #6346
  • [refactor] [exoscale] migrate provider to egoscale v3 and apex DNS record handling by @natalie-o-perret in #6371
  • [refactor] [pdns] replace unmaintained ffledgling/pdns-go with joeig/go-powerdns/v3 by @mloiseleur in #6486
  • [refactor] [registry/crd] build REST config from shared client package by @mloiseleur in #6514
  • [refactor] [source/gloo] migrate to indexers, add annotation/label/controller filters by @ivankatliarchuk in #6515
  • [refactor] [source] migrate AnnotationFilter from string to labels.Selector by @ivankatliarchuk in #6526
  • [refactor] use Set structs instead of map[]struct{} by @vflaux in #6360
  • [release] updates kustomize & docs with v0.21.0 by @mloiseleur in #6349
  • [release] updates kustomize & docs with v0.22.0 by @mloiseleur in #6645
  • [security] [github] added openssf github action by @ivankatliarchuk in #6245
  • [test] [crd] assert the generated CRDs are installable by @mloiseleur in #6619
  • [test] [e2e] retry downloads to survive transient network errors by @u-kai in #6603
  • [test] [gandi] extend coverage with mock adapters by @amarkdotdev in #6518
  • [test] [ingress] fix endpoint count and improve assertion output by @ivankatliarchuk in #6194
  • [test] [integration/crd] add SRV record scenario covering RFC 2782 trailing dot by @ivankatliarchuk in #6422
  • [test] [pkg/rfc2317] cover bare IPv6 and invalid-mask edge cases by @SAY-5 in #6437
  • [test] [registry/crd] expand unit test coverage by @FirasYousfi in #6522
  • [test] [source] assert RefObject via ValidateEndpoints opt-in by @mloiseleur in #6493
  • [test] [source] fix flaky unstructured source test by @mloiseleur in #6483
  • [test] [source] improve skipper routegroup coverage by @PragalvaXFREZ in #6580
  • [test] [source/ingress] two ingresses with same host, different IPs by @ivankatliarchuk in #6496
  • update CI workflows to pin pip packages and go packages by @Raffo in #6498
  • update maintainers by @mloiseleur in #6421
  • update reviewers by @mloiseleur in #6427
  • update security contacts by @Raffo in #6425

Don't miss a new external-dns release

NewReleases is sending notifications on new releases.