The AWS is here #742
Why
Separate from AWS as it moved to a new SDK version. The rest of the providers did not change much in external-dns. And we also changed them minimally.
What
Take the external-dns code and update dependencies. Then apply our changes:
GCP:
- Add a
logger (logr.Logger) to the GoogleProvider struct, add context to the constructor (to init logger with context) and replace the old logger with the new one.
- Make the constructor consume the config (or ditch the config struct and pass params directly)
- Split NewGoogleProvider() into NewGoogleProvider() and NewGoogleProviderWithService()
- Get rid of the instrumented client we have it in the caller
- Add resourceREcordSetFromEndpoint() - needed for geo/weighted stuff that
external-dns is missing
- The
SoftError type. We will need to adjust accordingly.
Azure:
- Same logger stuff as above
- Export a bunch of stuff:
AzureChangeMap, MapChanges(), RecordSetNameForZone(), NewRecordSet() and so on
- Add NewAzureProviderFromConfig(ctx, Config) - the
external-dns seems to have it joined.
- Add TrafficManager client fields (will need to add this factory).
- Add CleanAzureError()
- Add provider.EnsureTrailingDot(target) for NS record targets
- The same
SoftError decision as above.
- We use yaml.Unmarshal() for error
- We have more stuff in the config instead of passing them one by one to the constructor. Also simplyfies the
getConfig() signature
- Use transporter from here.
- The
external-dns added ResourceManagerAudience, ResourceManagerEndpoint for AzureStack to getCouldConfig() - decide whether to keep.
Inmemory:
- The same logger stuff
- Export stuff (like
InMemoryClient)
- Add to InMemoryClient struct. Add RLock/RUnlock to read methods, Lock/Unlock to write methods
- Add DeleteZonne(), GetZone() and InMemoryWithClient()
- Add TXT validation
- Replace im.filter.Zones() with im.domain.Match() or update their filter
- Change domainFilter to interface version. They seemed to move to interface, but I can't see how that affects us.
- Use deep equal for targets in validateChangeBatch
- Ignore the "alreadyExists" error in InMemoryInitZones()
The AWS is here #742
Why
Separate from AWS as it moved to a new SDK version. The rest of the providers did not change much in
external-dns. And we also changed them minimally.What
Take the
external-dnscode and update dependencies. Then apply our changes:GCP:
logger(logr.Logger) to theGoogleProviderstruct, add context to the constructor (to init logger with context) and replace the old logger with the new one.external-dnsis missingSoftErrortype. We will need to adjust accordingly.Azure:
AzureChangeMap,MapChanges(),RecordSetNameForZone(),NewRecordSet()and so onexternal-dnsseems to have it joined.SoftErrordecision as above.getConfig()signatureexternal-dnsadded ResourceManagerAudience, ResourceManagerEndpoint for AzureStack to getCouldConfig() - decide whether to keep.Inmemory:
InMemoryClient)