understood, again, great idea On Tue, Oct 29, 2024 at 11:50 AM Wido den Hollander <w...@widodh.nl> wrote:
> > > Op 29/10/2024 om 11:11 schreef Daan Hoogland: > > 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) > > My idea is that the Admin adds a DNS provider and the credentials. The > Admin/Owner set it's credentials there, not the ones of the end-user. > > In my current idea you would select one driver to be active at the same > time. DNS management usually doesn't require multiple providers to be > active at the same time. > > CloudStack keeps track of which DNS zone was created by which users and > allows you to manage that zone. > > > ttl; is there a maximum configurable as well? > > Yes. It should be a range. The minimum is often a restriction you see > much more. > > > record types; do we make this an allow-list or a set of feature switches? > > I would say that the provider/driver has a static list or a > functionality to dynamically provide which types are supported. We could > also add a 'deny-list' where you as an admin can override certain > records. You might not want people to modify the SOA and NS records for > example. > > > and kicking in an open door, is there a minimum set of record types a > > driver must support (a, cname, mx, ...). > > > > I'd say so: A, AAAA, CNAME, TXT and MX are the bare minimum. > > The DNS provider will probably pre-set a few records when you create a > zone: > > - NS > - SOA > > Most providers will probably not allow you to modify these records as it > can break the DNS zone. > > Hope my overall idea is clear. This obviously needs to go into a > functional spec and then needs development. Both which will be time > consuming. > > Wido > > > 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