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/

Reply via email to