Add "primary IP" attribute to instance

Registered by Glen Campbell

In a hybrid environment, the *public* IP address of an instance may not be controlled by Nova. Instead, the primary IP address may be part of the dedicated hardware; for example, a router/NAT device. In this case, the Nova-provided IP address cannot actually be used to access the instance (from outside the local LAN).

Rackspace has this situation with our hybrid customers, but I do not believe that this is a Rackspace-specific issue, and will arise when anyone is using Nova in a hybrid network environment. The proposed Network as a Service (NaaS) might address this issue in the long-term, but the functionality is needed before NaaS becomes available, and this specific situation (integrating with an external router/NAT device) may still occur.

The data stored for an instance is expanded to include a single attribute, PrimaryIP (ok, perhaps two attributes, for V4 and V6), that can be set by the user during instance creation or afterwards. This is *different* than the Public IP or Private IP normally assigned. Unfortunately, we can't use simple metadata for this, since external tools (for example, CloudKick) need to use this IP address to access an instance if it's set, and thus it needs to be part of the API contract and supported.

The field should always be set; by default to the Public IP address of the server, but can be overwritten by the user.

If there are quibbles over the name, some alternatives are "External Management IP" or "External Access IP."

Blueprint information

Status:
Complete
Approver:
None
Priority:
Undefined
Drafter:
Glen Campbell
Direction:
Needs approval
Assignee:
None
Definition:
New
Series goal:
Accepted for diablo
Implementation:
Implemented
Milestone target:
None
Started by
Vish Ishaya
Completed by
Vish Ishaya

Related branches

Sprints

Whiteboard

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.