powerdns-consul is a utility written in Go that allows you to use the Consul key value store as a backend for PowerDNS through the Pipe backend.
Some of the PowerDNS-related code is inspired by mindreframer's work.
- Customize the
powerdns-consul.json.example
configuration - Execute
./powerdns-consul -config=/path/to/powerdns-consul.json
- Set
DEBUG=1
to make powerdns-consul print each request and response
powerdns-consul implements the PowerDNS pipe backend protocol. It can use various key-value stores to query for DNS records. Supported key-value store backends are:
You can organize the data in the key-value store in two different ways (schemas):
- Clone the repository in your
$GOPATH/src/github.com/Shark/powerdns-consul
- Run
go get ./...
- Run
make
- Go tests: run
make test
- End to end test
- Run
make end2end_test
. - Requires a working Docker setup.
- This test will build powerdns-consul and a Docker image with PowerDNS, Consul and powerdns-consul. It will then bootstrap the Consul key-value store and run some 'real world' tests against this setup using
dig
.
- Run
- Fork it!
- Create your feature branch:
git checkout -b my-new-feature
- Commit your changes:
git commit -am 'Add some feature'
- Push to the branch:
git push origin my-new-feature
- Submit a pull request! :)
- v0.0.1 (2016-04-20): initial version
- v0.0.2 (2016-11-05): use libkv and support Consul and etcd
This project is licensed under the MIT License. See LICENSE for details.