You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
fix: correct SRV record creation and RFC 2782 trailing dot handling
SRV records were created with the record's own DNS name as the target
instead of the actual host from the endpoint target string. This caused
all SRV records to point at themselves rather than the intended hosts.
Additionally, Rackspace stores SRV target hosts without trailing dots,
but external-dns >= 0.21 requires RFC 2782 compliant absolute FQDNs
(trailing dot). Add trailing dot normalization in both the read path
(convertRecordToEndpoint) and adjustEndpoints so current and desired
records match consistently.
external-dns compatibility notes:
- Versions prior to 0.21 (including 0.18 and 0.20) do not include SRV
in the TXT registry's getSupportedTypes(), which prevents the registry
from matching srv- prefixed TXT ownership records to their SRV data
records. This causes all SRV records to appear unowned and external-dns
will not update or delete them. Upgrading to >= 0.21 is required.
- CRD-sourced SRV records are broken in external-dns v0.21.0 due to
contradictory validation in the CRD source and ValidateSRVRecord.
See kubernetes-sigs/external-dns#6357 and
the fix in kubernetes-sigs/external-dns#6383.
A patched external-dns build is required until that PR is merged.
Changes:
- Use parts[3] instead of fqdn when building SRV data for Rackspace API
- Strip trailing dot before sending to Rackspace (it doesn't use them)
- Append trailing dot to SRV targets returned by Records()
- Append trailing dot to SRV targets in adjustEndpoints as safety net
- Improve SRV test to use distinct target host and validate request body
3. **Permission Denied**: Check that your API key has DNS management permissions
202
202
4. **TTL Too Low**: The webhook enforces a minimum TTL of 300 seconds
203
203
204
+
### external-dns Compatibility (SRV Records)
205
+
206
+
SRV record support requires external-dns v0.21.0 or later:
207
+
208
+
- **Versions prior to 0.21** do not include SRV in the TXT registry's `getSupportedTypes()`. This prevents the registry from matching `srv-` prefixed TXT ownership records to their SRV data records, causing all SRV records to appear unowned. external-dns will not update or delete them.
209
+
210
+
- **Version 0.21.0** fixes the ownership matching but introduces contradictory SRV validation in the CRD source. The CRD validator rejects targets with a trailing dot, while `ValidateSRVRecord` requires one per RFC 2782. This makes it impossible to create SRV records via DNSEndpoint CRDs. See [kubernetes-sigs/external-dns#6357](https://github.com/kubernetes-sigs/external-dns/issues/6357) and the fix in [PR #6383](https://github.com/kubernetes-sigs/external-dns/pull/6383).
211
+
204
212
### Debug Mode
205
213
206
214
Enable debug logging by setting `LOG_LEVEL` in your values file:
0 commit comments