Add "primary IP" attribute to instance
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