Files
NetDomainManager/coredns_bridge.js
T
2026-05-14 14:55:25 -04:00

38 lines
1010 B
JavaScript

const { Etcd3 } = require("etcd3");
const client = new Etcd3({
hosts: 'http://127.0.0.1:2379',
});
function DomainToCoreDNS(domain) {
const prefix = "/skydns/";
const parts = domain.split(".");
if (parts.length < 2) return false;
const path = parts.reverse().join("/");
return prefix + path;
}
async function GetAllRecords(domain) {
console.log(`GetAllRecords for ${domain}`);
const prefix = DomainToCoreDNS(domain);
if (!prefix) throw new Error("Invalid domain");
console.log(`Prefix is ${prefix}`);
const kvs = await client.getAll().prefix(prefix).strings();
console.log(`KVs are ${JSON.stringify(kvs)}`);
return kvs;
}
async function RegisterNewDomain(domain) {
const prefix = DomainToCoreDNS(domain);
if (!prefix) throw new Error("Invalid domain");
const key = `${prefix}`;
const value = JSON.stringify({ host: '10.66.66.1' });
await client.put(key).value(value);
}
module.exports = {
GetAllRecords,
RegisterNewDomain
}