Skip to content

Refactor DDNS updater code#2599

Merged
yorickdowne merged 1 commit into
ethstaker:mainfrom
yorickdowne:cname-refactor
Jun 5, 2026
Merged

Refactor DDNS updater code#2599
yorickdowne merged 1 commit into
ethstaker:mainfrom
yorickdowne:cname-refactor

Conversation

@yorickdowne

@yorickdowne yorickdowne commented May 6, 2026

Copy link
Copy Markdown
Collaborator

What I did

Refactor the DDNS updater so it can use multiple providers. Add the CloudFlare provider. Add a test harness for the new code, so it can be tested end-to-end

CF_ZONE_API_TOKEN is gone, this split is no longer needed: A scoped DNS Edit token now suffices for CloudFlare to be able to get the zone ID from a domain name.

This refactor heavily relied on opencode's "Big Pickle" model, with human review and revision

@yorickdowne yorickdowne marked this pull request as draft May 6, 2026 12:17
@yorickdowne

yorickdowne commented May 6, 2026

Copy link
Copy Markdown
Collaborator Author

Route 53 test results

--- Test: Route53 basic update cycle (wait 20s) ---
✓ AWS identity verified (validate() succeeded)
✓ Auth via environment variables
✓ A record was updated
✓ AAAA record was updated
✓ CNAME record was updated

--- Test: Route53 missing credentials (expected failure) ---
✓ Gracefully rejected missing credentials

--- Test: Unknown provider (expected failure) ---
✓ Gracefully rejected unknown provider

All requested tests complete.

@yorickdowne yorickdowne force-pushed the cname-refactor branch 8 times, most recently from 699c235 to 53dd193 Compare May 7, 2026 10:42
@yorickdowne yorickdowne force-pushed the cname-refactor branch 3 times, most recently from 0b2edd2 to 7ca608c Compare June 4, 2026 10:28
@yorickdowne

Copy link
Copy Markdown
Collaborator Author

CloudFlare test results

--- Test: Cloudflare basic update cycle (wait 20s) ---
✓ Cloudflare validation passed
✓ A record is already up-to-date (no change needed)
✓ AAAA record already up-to-date (no change needed)
✓ CNAME record already up-to-date (no change needed)

--- Test: Cloudflare invalid token (expected failure) ---
✓ Gracefully rejected invalid token

All requested tests complete.

@yorickdowne yorickdowne requested a review from pietjepuk2 June 4, 2026 10:32
@yorickdowne yorickdowne marked this pull request as ready for review June 4, 2026 10:32
Comment thread traefik-utils/app/route53_provider.py
Comment thread traefik-utils/app/updater.py
@pietjepuk2 pietjepuk2 self-requested a review June 5, 2026 08:25
@yorickdowne yorickdowne merged commit ba60589 into ethstaker:main Jun 5, 2026
7 checks passed
@yorickdowne yorickdowne deleted the cname-refactor branch June 5, 2026 08:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants