bundles/bind: add node-dns-auto-generator
This commit is contained in:
parent
6602e684c0
commit
44a6e8292a
11 changed files with 141 additions and 31 deletions
|
@ -31,3 +31,42 @@ def port_checks(metadata):
|
|||
},
|
||||
},
|
||||
}
|
||||
|
||||
@metadata_reactor
|
||||
def generate_dns_entries_for_nodes(metadata):
|
||||
results = set()
|
||||
|
||||
for rnode in repo.nodes:
|
||||
node_name_split = rnode.name.split('.')
|
||||
node_name_split.reverse()
|
||||
dns_name = '.'.join(node_name_split)
|
||||
ip4 = None
|
||||
ip6 = None
|
||||
|
||||
# We only need this for GCE, because machines over there don't
|
||||
# have a public ipv4 address.
|
||||
if rnode.metadata.get('external_ipv4', None):
|
||||
ip4 = rnode.metadata.get('external_ipv4')
|
||||
|
||||
for iface, config in sorted(rnode.metadata.get('interfaces', {}).items()):
|
||||
if not ip4 and 'ipv4' in config:
|
||||
ip4 = sorted(config['ipv4'])[0]
|
||||
|
||||
if not ip6 and 'ipv6' in config:
|
||||
ip6 = sorted(config['ipv6'])[0]
|
||||
|
||||
if ip4:
|
||||
results.add('{} IN A {}'.format(dns_name, ip4))
|
||||
|
||||
if ip6:
|
||||
results.add('{} IN AAAA {}'.format(dns_name, ip6))
|
||||
|
||||
return {
|
||||
'bind': {
|
||||
'zones_primary': {
|
||||
'kunbox.net': {
|
||||
'records': results,
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue