• Benjamin Pineau's avatar
    aws: cache zones list · 837d1ea2
    Benjamin Pineau authored
    When it syncs AWS DNS with k8s cluster content (at `--interval`), external-dns submits two distinct Route53 API calls:
    * to fetch available zones (eg. for tag based zones discovery, or when zones are created after exernal-dns started),
    * to fetch relevant zones' resource records.
    
    Each call taxes the Route53 APIs calls budget (5 API calls per second per AWS account/region hard limit), increasing the probability of being throttled.
    Changing synchronization interval would mitigate those calls' impact, but at the cost of keeping stale records for a longer time.
    
    For most practical uses cases, zones list aren't expected to change frequently.
    Even less so when external-dns is provided an explicit, static zones set (`--zone-id-filter` rather than `--aws-zone-tags`).
    
    Using a zones list cache halves the number of Route53 read API calls.
    837d1ea2