sounds good @Wido den Hollander <w...@widodh.nl> , several questions come to mind (most of them in the realm of 'details': credentials; can these be operator property or must these be user property (bring your own)? (or can we configure both setups) ttl; is there a maximum configurable as well? record types; do we make this an allow-list or a set of feature switches? and kicking in an open door, is there a minimum set of record types a driver must support (a, cname, mx, ...).
great idea!! On Tue, Oct 29, 2024 at 10:18 AM Wido den Hollander <w...@widodh.nl.invalid> wrote: > Hello, > > I got my inspiration for this proposal from the recently added object > storage [0] plugin in CloudStack. > > My idea is as follows: > > - A new framework is addedd: Authorative DNS > - This allows for admins and end-users to manage DNS zones > - Different providers implement different APIs, examples: > - PowerDNS through it's API [1] > - Public DNS providers like NS1 [2], rcodezero [3], Gandi [4], > CloudFlare [5], etc > - Your local DNS which applies to your environment > > These drivers will support various functionality and advertise their > capabilities or limitations: > > - Create and delete zones > - Manage records in these zones > - Advertise which record types are supported > - Limit the amount of records in a zone (if any) > - Set a limitation on how low the TTL can be > > Per account and domain we can then set limits: > > - Amount of zones to create > - Amount of creates per zone > > This would allow for a couple of things: > > - End-users can manage their DNS via the same API as they manage their > cloud resources > - End-users can manage DNS via the CloudStack UI > - We can directly create public DNS records for newly created instances > - You assign a DNS zone to a CloudStack zone > - Upon VM creation a record is created > i-xx-yy-vm.myzone.tld A 1.2.3.4 > i-xx-yy-vm.myzone.tld AAAA 2001:db8:af31::61 > - When the VM is removed the DNS records are removed > - Console Proxy and Secondary Storage VMs can point to a working > hostname instead of IP-address > - We can then also support IPv6 for the CP and SS > > Your feedback is welcome! > > Wido > > > [0]: > > https://cwiki.apache.org/confluence/display/CLOUDSTACK/CloudStack+Object+Store+Framework > [1]: https://doc.powerdns.com/authoritative/http-api/index.html > [2]: https://www.ibm.com/products/ns1-connect/api > [3]: https://my.rcodezero.at/openapi/ > [4]: https://api.gandi.net/docs/livedns/ > [5]: https://developers.cloudflare.com/api/ > -- Daan