Update BIND nameserver zone with Docker hosts via DNS Updates.
Project description
Update BIND nameserver zone with Docker hosts via DNS Updates.
Usage
Docker HostDNS can be run by docker-hostdns wrapper script or directly with python -m docker_hostdns.
usage: docker-hostdns [-h] [--zone ZONE] [--dns-server DNS_SERVER]
[--dns-key-secret DNS_KEY_SECRET]
[--dns-key-name DNS_KEY_NAME] [--daemonize PIDFILE]
[--verbose] [--syslog]
Update BIND nameserver zone with Docker hosts via DNS Updates.
optional arguments:
-h, --help show this help message and exit
--zone ZONE Dns zone to update, defaults to "docker".
--dns-server DNS_SERVER
Address of DNS server which will be updated, defaults
to 127.0.0.1.
--dns-key-secret DNS_KEY_SECRET
DNS Server key secret for use when updating zone. Use
'-' to read from stdin.
--dns-key-name DNS_KEY_NAME
DNS Server key name for use when updating zone.
--daemonize PIDFILE, -d PIDFILE
Daemonize after start and store PID at given path.
--verbose, -v Give more output. Option is additive, and can be used
up to 3 times.
--syslog Enable logging to syslog.
The --daemonize options is only available when you have installed python-daemon3 package.
Example named.conf zone configuration with key auth:
include "/etc/bind/docker.key";
zone "docker" in {
type master;
file "/var/bind/dyn/docker.zone";
allow-update {
key "docker-key";
};
};
docker.key can be generated by:
rndc-confgen -a -c docker.key -k docker-key
And then:
echo 'my base64 key secret' | docker-hostdns --dns-key-name docker-key --dns-key-secret -
Host names
Host name is created by using container name and slugifying & trimming it. So /example2::docker will result with example2-docker. In case of name duplication a “-<number>” will be appended, resulting with eg. example2-docker-1
Following dns records are created for each container, given example hostname and docker zone:
IPv4: example.docker
IPv4: *.example.docker
IPv6: example.docker
IPv6: *.example.docker
TXT: _container.docker with container name as value
TXT record is used for keeping track of added hosts so when app is stopped or resumed it keeps its state.
Custom host names
You can set custom host name by using container label pl.glorpen.hostname, its content will be used as container name.
1.0.4
host names are now allowed to have dots in them
1.0.3
added tests
added proper domain names coversion
added a way to keep track of hosts when adding & removing containers
1.0.2
fixed error when handling disconnection event without earlier connect one
added app exception logging
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for docker_hostdns-1.0.4-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2fa0a47d90e8634dff6be14b485001fb86198dd88be8e3e07f155cfc0e98aa4b |
|
MD5 | 36f9334949d3e7982b85e6b6eca63d55 |
|
BLAKE2b-256 | 51e2c7e8fd7572be3d2f66007a8f6db28b1f05b740932255ff1d0b9ab74d6d98 |