Skip to content
Utility to adopt AWS route53 entries (record sets) so the external-dns can track and update them based on Kubernetes ingresses
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
cmd/external-dns-aws-migrator
docker/dev
hack/scripts
pkg
vendor
.gitignore
.travis.yml
CHANGELOG
Gopkg.lock
Gopkg.toml
LICENSE
Makefile
Readme.md

Readme.md

external-dns-aws-migrator

Utility that helps migrating old (not managed by external-dns) route53 resource record sets from a hosted zone to being managed by external-dns and let update based on the kubernetes ingress address (set by other ingress controllers)

Motivation

Sometimes you add external-dns to your clusters and the new flow doesn't have your old host entries from route53 but you want these entries being tracked and managed by external-dns, to do this you would need to create a txt entry for each one, this tool helps doing this migration all at once, filtered by hosts, with multiple external-dns...

When should I use this?

You are using Kubernetes, AWS, you already have dns entries in route53 (manually or managed by another tool) and you want to start using external-dns to automate ingress loadbalancer addresses in route53.

Usage

external-dns-aws-migrator reads hosts from the stdin (one per line) and tries to adopt the entries so the external-dns starts managing the entries.

Example:

Get all ingress hosts from a cluster.

kubectl get ingress \
    --all-namespaces  \
    -o jsonpath='{.items[*].spec.rules[*].host}' \
    | sed "s/ /\n/g" > /tmp/ingresses.txt

Now adopt in dry run mode(only print the ones that will be applied) all slok.xyz hosts with the external-dns instance identifier slok-xyz:

external-dns-aws-migrator \
    -filter ".*\.slok\.xyz$" \
    --txt-owner-id "slok-xyz" \
    --dry-run < /tmp/ingresses.txt 
You can’t perform that action at this time.