This moves `domain_filter.go` to the `endpoint` package to make it
possible to filter and exclude record names in
`plan.filterRecordsForPlan()` so it does not have to be implemented in
every single provider.
Because some providers access `DomainFilter.filters` directly it had to
be exported.
The controller will retrieve all the endpoints at the beginning of its
loop. When changes need to be applied, the provider may need to query
the endpoints again. Allow the provider to skip the queries if its data was
cached.
* Endpoint.Target is now Endpoint.Targets. This is its own type representing mutliple targets for a single DNS name while adding some convenience for sorting and comparing
* Made everything compile and tests run through with the new Endpoint.Targets
* The ingress source can now properly handle multiple target ips per host
* Added custom conflict resolver, to better understand how conflict resolution has to work for me
* My custom conflict resolver behaves a bit different than the PerResource resolver, therefore I needed to modify the expected test result
Removed unnecessary FIXME
* The ingress source now creates CNAME endpoints with multiple targets to let the DNS provider decide how to handle multiple CNAME targets. This could be interesting for weighted targets etc.
* Adopted the expected results to the new way we create endpoints for CNAMEs
* Removed Add method from Targets since manipulating the slice through here is unnecessary complicated and doesn't deliver enough convenience
* Reverted ConflictResolver to the original one. There is some discussing to do what the best way is to handle conflicts
* Added missing documenting comment to IsLess of Targets
* Added documenting comments to Targets,Targets.Same and NewTargets to clarify their intention and usage
* Service source now also generates endpoints with multiple targets
* Service and Ingress source now sort all Targets for every Endpoint to make order of Targets predictable
* Endpoints generated by the Google Cloud DNS provider now also have sorted Targets to make order of Targets predictable
* Modified provider dyn to be able to compile with multi target changes
* Fixed small nitpicks, so my code is acceptable
* Fixed merge method after updating to new Targets. Replacing '!=' with .Same of course needs a boolean negation
* Tests for dyn provider now also use the new Targets instead of Target
* Simplified extractServiceIps as implied by linki to make it more readable
* ref: change service ClusterIP retrieval again
* Added entry to CHANGELOG.md describing the new features contained in this PR
* DigitalOcean creates entries with host in them twice
* Unit test
* DigitalOcean creates entries with host in them twice (#459)
* docs: cleanup changelog a little
* #228 Simplify DNS provider requirements by extracting common
* #228 Simplify DNS provider requirements by extracting common
* Missing boilerplate added
* rename recordtypefilter, fail fast statements
* rework zone finder, update deps
* chore: drop namespace from cloudflare method name
* Support for multiple domains within --domain-filter
The parameter accepts a comma separated list of domains with or without trailing dot. Example: --domain-filter="example.org, company.test.,staging.com". Closes#247 and #229
* Add boilerplate header
* Add documentation for methods and structs
* use StringsVar for the domain-filter flag
* go fmt
* Remove camel case from tests
* Revert changes in README.md
* Move DomainFilter to provider package
* Make a new slice and copy elements to it
* Update CHANGELOG.md
* docs: change minor spelling mistake
* CloudFlare Provider
* updating glide
* gofmt cloudflare_test.go
* Unset envs to test NewCloudFlareProvider
* More tests
* fix(cloudflare): fix compiler errors resulting from merge
* Typo
* Undo vendor changes
* decrease api calls, fix some nits
* Cloudflare iteration (#2)
* reduce the number of API calls
* match by type and name for record id
* improve coverage and fix the bug with suitable zone
* tests failed due to wrong formatting
* add cloudflare integration to the main
* vendor cloudflare deps
* fix cloudflare zone detection + tests
* fix conflicting test function names
* Initial Digital Ocean as a new provider
* chore: vendor dependencies
* Remove zone parameter from ApplyChanges and Records
* fix(digitalocean): fix correct imports, unshadow a variable
* fix(digitalocean): respect domain-filter if provided
* add changes to digital ocean provider from PR review (#3)
* fix tests and bugs in find suitable zones for digital ocean (#5)
* tests failed due to wrong formatting
* add digitalocean integration to the main and more tests
* fix suitable zone for digital ocean