Jump to: navigation, search

Difference between revisions of "InstanceAndFloatingIPDNSForNova"

Line 19: Line 19:
 
Nova configuration will provide the following options:
 
Nova configuration will provide the following options:
  
* floating_dns_manager
+
* floating_ip_dns_manager
* floating_dns_zones
+
* floating_ip_dns_zones
 
* instance_dns_manager
 
* instance_dns_manager
 
* instance_dns_zone
 
* instance_dns_zone

Revision as of 17:30, 20 December 2011

  • Launchpad Entry: NovaSpec:public-and-private-dns
  • Created:
  • Contributors: Ryan Lane

Summary

Add functionality to nova to automatically manage DNS entries for instances, and DNS entries associated with floating IPs, 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:

  • floating_ip_dns_manager
  • floating_ip_dns_zones
  • instance_dns_manager
  • instance_dns_zone

On instance creation, nova will add a DNS entry for the instance name, using the instance 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 floating 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

Instance DNS will be added as an optional step for instance management. Floating DNS will be added as an API extension.

All DNS drivers must be useable for both instance and floating DNS. Drivers will expose the following functions:

  • get_zones()
  • create_entry(name, address, type, dnszone)
  • delete_entry(name, dnszone="")
  • rename_entry(address, name, dnszone)
  • modify_address(name, address, dnszone)
  • get_entries_by_address(address, dnszone="")
  • get_entries_by_name(name, dnszone="")

The floating DNS API extension will expose the above functionality.

Unresolved issues

BoF agenda and discussion