dns/dynamic/virtual.js
Simon Marsh 693079113d
All checks were successful
continuous-integration/drone/push Build is passing
major refactor
2025-01-16 09:34:11 +00:00

210 lines
5.2 KiB
JavaScript

//////////////////////////////////////////////////////////////////////////
var virtual = [ ]
//////////////////////////////////////////////////////////////////////////
// add name/addr pairs to an array
function vgroup(name, index, ident, nodes)
{
nodes.forEach(function(node) {
var ix = node_map[node] + 32
var ipv6
switch(index) {
case 0:
ipv6 = 'fd42:4242:2601:' + ix.toString(16) + ':' + ident
fullname = name + '.' + node
break
case 1:
ipv6 = 'fd42:4242:2601:' + ix.toString(16) + ':' + ident
fullname = name + '.tier1.' + node
break
case 2:
ipv6 = 'fd42:4242:2601:' + ix.toString(16) + '02:' + ident
fullname = name + '.tier2.' + node
break
default:
console.log("vgroup unknown index: " + index)
}
virtual.push([fullname, ipv6])
})
}
//////////////////////////////////////////////////////////////////////////
// public services
// acme
vgroup('acme', 2, '4285:15ff:feee:d66c', [
'uk-lon1',
'fr-par1',
'de-fra1',
'fr-rbx1'
])
// peerfinder
vgroup('peerfinder', 0, '7283:bfff:fe29:d7e4', [
'uk-lon1',
'de-fra1',
'fr-par1',
'fr-rbx1',
'se-sto1',
'us-nyc1',
'us-lax1',
'ca-bhs1',
'us-ash1'
])
virtual.push(
// voip
[ 'dialup.tier2.fr-par1', 'fd42:4242:2601:3602:216:3eff:fe0b:d2b1' ],
[ 'voip-svcs.fr-par1', 'fd42:4242:2601:36:216:3eff:fe1b:9ad5' ],
// misc
[ 'pingotron.tier1.de-fra1', 'fd42:4242:2601:31:721d:15ff:feb3:cab6' ],
[ 'git.de-fra2', 'fd42:4242:2601:2b:3246:4eff:fe04:fd8b' ],
// dn42 infrastructure and services
// dns master
[ 'dns-master.ca-bhs1', 'fd42:4242:2601:2c:216:3eff:fe97:45a4' ],
// collector
[ 'collector.fr-par1', 'fd42:4242:2601:36:62e4:b9ff:fe9a:33d1' ]
)
//////////////////////////////////////////////////////////////////////////
// traefik
// public tier1
var traefik_v2 = [ 'fr-rbx1', 'uk-lon1', 'de-fra1', 'se-sto1' ]
vgroup('traefik-v2', 1, '72e5:84ff:fee8:897c', traefik_v2)
vgroup('traefik-v2', 2, '4290:5fff:fecd:eeb8', traefik_v2)
// internal tier2
vgroup('traefik-tier2', 2, 'c2f9:1fff:fe7d:ee8c', [
'fr-rbx1',
'de-fra2'
])
// containerd and runtimes
vgroup('containerd', 2, 'e227:c2ff:fe6e:1548', [
'fr-rbx1',
'se-sto1',
'uk-lon1',
'de-fra1',
'de-fra2'
])
virtual.push(
[ 'dockerd.tier2.fr-rbx1', 'fd42:4242:2601:2602:92bb:c9ff:fe53:c957' ],
[ 'containerd-dev.tier2.fr-gra1', 'fd42:4242:2601:3f02:92ea:d7ff:fe27:e94e' ],
[ 'containerd-host.tier2.se-sto1', 'fd42:4242:2601:2d02:f2da:93ff:fee0:97fa' ]
)
// legacy vault
vgroup('vault', 2, 'b267:51ff:feed:503f', [
'uk-lon1',
'de-fra2',
'fr-par1'
])
// dns
vgroup('dns-secondary', 0, '9293:33ff:fe69:c7f2', [
'uk-lon1',
'de-fra1',
'us-lax1',
'us-nyc1'
])
vgroup('dns-recursor', 2, '62b5:41ff:fe65:8e3', [
'uk-lon1',
'de-fra1',
'us-lax1',
'us-nyc1'
])
vgroup('dns-edge', 0, 'd2f4:8ff:fec6:c157', [
'uk-lon1', 'uk-lon3', 'uk-lon4', 'uk-lon6',
'fr-par1', 'fr-par2', 'fr-rbx1', 'fr-gra1',
'de-fra1', 'de-fra2', 'de-fra3',
'nl-ams1', 'nl-ams3',
'no-trd1', 'se-sto1', 'ch-zur1',
'us-nyc1', 'us-nyc2', 'us-nyc3',
'us-lax1', 'us-lax2',
'ca-bhs1', 'us-ash1'
])
vgroup('dns-dns64', 0, '42ef:47ff:feb6:6c44', [
'uk-lon1',
'de-fra1',
'de-fra2',
'fr-par1',
'fr-rbx1',
'no-trd1',
'se-sto1',
'us-nyc1',
'us-lax1',
'ca-bhs1',
'us-ash1'
])
virtual.push(
[ 'dns-primary.tier2.de-fra2', 'fd42:4242:2601:2b02:12b0:ff:fe69:edbe' ]
)
// ldap
vgroup('ldap-slave', 0, '7222:61ff:fec9:5bd0', [
'us-nyc2',
'us-lax1',
'fr-par1'
])
virtual.push(
[ 'ldap-master.tier2.de-fra1', 'fd42:4242:2601:3102:2203:43ff:feae:28bb' ]
)
// reflectors
vgroup('mesh-reflector', 2, 'f22c:89ff:fef5:ef7', [
'fr-rbx1',
'ca-bhs1'
])
// other misc services
virtual.push(
// management
[ 'incus-repo.tier2.se-sto1', 'fd42:4242:2601:2d02:325d:13ff:fe42:2b1f' ],
[ 'deploy.tier2.fr-gra1', 'fd42:4242:2601:3f02:225a:14ff:fe55:f4df' ],
[ 'deploy.tier2.uk-lon3', 'fd42:4242:2601:3002:216:3eff:fe79:bfee' ],
[ 'deploy.tier2.nl-ams1', 'fd42:4242:2601:3202:216:3eff:fe79:bfee' ],
[ 'registry-review.tier2.fr-gra1', 'fd42:4242:2601:3f02:b236:14ff:fe60:f63c' ],
[ 'registry.tier2.uk-lon3', 'fd42:4242:2601:3002:216:3eff:febc:57b5' ],
[ 'registry.tier2.nl-ams1', 'fd42:4242:2601:3202:216:3eff:fe40:b5f1' ],
[ 'shell.tier2.uk-lon3', 'fd42:4242:2601:3002:216:3eff:fe08:6d2a' ],
[ 'shell.tier2.nl-ams1', 'fd42:4242:2601:3202:216:3eff:fe08:6d2a' ],
[ 'shell.tier2.us-lax1', 'fd42:4242:2601:2a02:216:3eff:fec7:b8ac' ],
[ 'certman.tier2.de-fra2', 'fd42:4242:2601:2b02:5274:9eff:fe81:4c8a' ],
[ 'webdev.tier2.fr-gra1', 'fd42:4242:2601:3f02:f284:99ff:fe61:f5f4' ],
[ 'wdev.tier2.uk-lon3', 'fd42:4242:2601:3002:216:3eff:fed3:dda4' ],
// misc
[ 'styx.tier2.us-nyc3', 'fd42:4242:2601:3a02:216:3eff:fe87:3e3a' ],
[ 'mail.tier2.uk-lon1', 'fd42:4242:2601:3502:216:3eff:fe68:6f6a' ]
)
//////////////////////////////////////////////////////////////////////////
// end of file