InstanceAndFloatingIPDNSForNova
- Launchpad Entry: NovaSpec:public-and-private-dns
- Created:
- Contributors: Ryan Lane
Summary
Add functionality to nova to automatically manage DNS entries for instances ("private" DNS), and manage DNS entries associated with floating IPs ("public" DNS), with a driver based system to handle different DNS servers.
Release Note
Users will be able to specify drivers for public and private DNS to associate DNS entries with instances and floating IP addresses.
Rationale
Nova already automates a number of work intensive activities. Managing DNS is just one more step in that direction.
User stories
Assumptions
Design
Nova configuration will provide the following options:
- public_dns_manager
- public_dns_zones
- private_dns_manager
- private_dns_zone
On instance creation, nova will add a DNS entry for the instance name, using the private DNS driver and zone. On instance deletion, nova will remove the DNS entry.
When a user adds a DNS entry for a specified zone to a floating IP, nova will add a DNS entry using the public DNS driver. User's can get a list of available DNS zones via an API call. When a floating IP is deallocated, its DNS entry will automatically be deleted.
Implementation
Private DNS will be added as an option step for instance management. Public DNS will be added as an API extension.
All DNS drivers must be useable for both public and private DNS. Drivers will expose the following functions:
- get_zones()
- create_entry(name, address, type, zone)
- delete_entry(address, zone="")
- rename_entry(address, name, zone)
- modify_address(name, address, zone)
- get_entries_by_address(address, zone="")
- get_entries_by_name(name, zone="")
The public DNS API extension will expose the above functionality.