////////////////////////////////////////////////////////////////////////// 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