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/