Jump to: navigation, search

Difference between revisions of "InstanceAndFloatingIPDNSForNova"

(talk)
 
Line 1: Line 1:
 
__NOTOC__
 
__NOTOC__
 +
<!-- ## page was renamed from PublicAndPrivateDNSForNova -->
 
* '''Launchpad Entry''': [[NovaSpec]]:public-and-private-dns
 
* '''Launchpad Entry''': [[NovaSpec]]:public-and-private-dns
 
* '''Created''':
 
* '''Created''':
Line 24: Line 25:
 
Nova configuration will provide the following options:
 
Nova configuration will provide the following options:
  
public_dns_manager
+
* public_dns_manager
public_dns_zones
+
* public_dns_zones
private_dns_manager
+
* private_dns_manager
private_dns_zone
+
* 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.
 
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 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 ==
 
== Implementation ==
Line 39: Line 40:
 
All DNS drivers must be useable for both public and private DNS. Drivers will expose the following functions:
 
All DNS drivers must be useable for both public and private DNS. Drivers will expose the following functions:
  
get_zones()
+
* get_zones()
create_entry(name, address, type, zone)
+
* create_entry(name, address, type, zone)
delete_entry(address, zone="")
+
* delete_entry(address, zone="")
rename_entry(address, name, zone)
+
* rename_entry(address, name, zone)
modify_address(name, address, zone)
+
* modify_address(name, address, zone)
get_entries_by_address(address, zone="")
+
* get_entries_by_address(address, zone="")
get_entries_by_name(name, zone="")
+
* get_entries_by_name(name, zone="")
  
 
The public DNS API extension will expose the above functionality.
 
The public DNS API extension will expose the above functionality.

Revision as of 19:54, 9 May 2011

  • 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.

Unresolved issues

BoF agenda and discussion