* feat(aws): support hostnames as endpoint targets
* docs: describe how to run ExternalDNS on AWS
* docs: update changelog with CNAME feature
* docs: update changelog to include AWS documentation
* fix(aws): test that updating records removes the old value
* feat(google): add CNAME support to Google provider
* fix(source): sanitize source and target hostnames
* docs: update changelog to include latest changes
* docs(aws): mention that ExternalDNS takes full ownership of a hosted zone
* fix(aws): switch route53 tests to use endpoint pointers
* docs: add TODO to remove record filtering once ownership is in place
* docs: elaborate the docs, add a faq section
* docs: fix a messed up command
* docs: update docs to reference v0.1 release
* docs(faq): fix stray whitespace
* docs: restructure docs for a leaner README
* docs: move first run section back to main readme
* docs: fix references to packages
* docs: fix reference to gke tutorial
* docs: fix missing source flag in examples
* docs: fix missing provider flag in examples
* docs: mention ingress support in main readme
Types that we want to work using apimachinery typically go into
pkg/apis/X, and the validation goes into pkg/apis/X/validation. We then
add versions into e.g. pkg/apis/X/v1alpha1, but this feels premature at
the moment.
Changing this later is annoyingly difficult, especially in terms of
validation and dependencies.
We will want the apimachinery, so that we can configure from a
configuration file that is versioned. Hopefully dns-controller won't
end up so complicated that we will require it, but I think there is also
value in following the "standard" patterns for controllers that are
emerging from e.g. ingress.
For a fairly simple example of an API, please consult
https://github.com/kubernetes/kubernetes/tree/master/pkg/apis/certificates
Kops includes a dns-controller, and this document describes the existing
annotations and their behaviour. This document is intended to allow us
to see the use-cases identified by kops dns-controller, to ensure the
same annotations can be recognized (perhaps with a `--compatibilty`
flag), and to ensure that we have comparable functionality.