…
|
||
---|---|---|
.. | ||
pdns-backend-rgw.py | ||
README.md | ||
rgw-pdns.conf.in |
PowerDNS RADOS Gateway backend
A backend for PowerDNS to direct RADOS Gateway bucket traffic to the correct regions.
For example, two regions exist, US and EU.
EU: o.myobjects.eu
US: o.myobjects.us
A global domain o.myobjects.com exists.
Bucket 'foo' exists in the region EU and 'bar' in US.
foo.o.myobjects.com will return a CNAME to foo.o.myobjects.eu
bar.o.myobjects.com will return a CNAME to foo.o.myobjects.us
The HTTP Remote Backend from PowerDNS is used in this case: http://doc.powerdns.com/html/remotebackend.html
PowerDNS must be compiled with Remote HTTP backend support enabled, this is not default.
For more information visit the Blueprint
Configuration
PowerDNS
launch=remote
remote-connection-string=http:url=http://localhost:6780/dns
PowerDNS backend
Usage for this backend is showed by invoking with --help. See rgw-pdns.conf.in for a configuration example
The ACCESS and SECRET key pair requires the caps "metadata=read"
Testing
$ curl -X GET http://localhost:6780/dns/lookup/foo.o.myobjects.com/ANY
Should return something like:
{
"result": [
{
"content": "foo.o.myobjects.eu",
"qtype": "CNAME",
"qname": "foo.o.myobjects.com",
"ttl": 60
}
]
}
WSGI
You can run this backend directly behind an Apache server with mod_wsgi
WSGIScriptAlias / /var/www/pdns-backend-rgw.py
Placing that in your virtualhost should be sufficient.
Afterwards point PowerDNS to localhost on port 80:
launch=remote
remote-connection-string=http:url=http://localhost/dns