Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • introduce notion of 'EIP' pool that will be associated with a region
  • Admin be able to add, delete, list the entries/range in to the EIP pool
  • Users be able to acquire, release, associate, disassociate, transfer and list EIP's
  • Users be able to associate EIP with any VM in either basic or advanced zone
  • Support for NetScaler as EIP service provider is P1, VR is P2, but the design should be generic so any NAT provider can be enhanced to act of EIP service provider
  • When EIP is transferred from VM in a zone to VM in another zone, CloudStack will not be responsible for the actual router advertisements but will provide a ways (alert, event etc) on which admin can act up on
  • no support for the VPC

Detailed Design

User API

Current set of associateIpAddress, disassociateIpAddress API's used to acquire and release a public IP is restricted to zone level public IP. Also, associateIpAddress actually combines acquiring and associating the IP with a network. Once associated with a network, there is only disassociate operation available on public IP, so public IP association can not be changed from one network to another. Due to semantic differences its not best way to extend the existing set of API's dealing with public IP management to be extended to manage EIP pool of IP's. With this premise following set of API's shall be introduced.

...

  • id: elastic IP id. 

API Response:  ElasticIpAddressReponselist of ElasticIpAddressReponse objects

Admin API

Following administrator API shall be introduced to add/delete/list IP addresses in to/from EIP pool

createElasticIpRange

Request parameters:

  • region id
  • start ip
  • end ip

API Response: list of ElasticIpAddressReponse objects

deleteElasticIpRange

Request parameters:

  • region id
  • start ip
  • end ip

API response: will return 'SuccessResponse' on success

listElasticIpRange

Request parameters:

  • region id

 API Response: list of ElasticIpAddressReponse objects

Service Layer changes

Schema changes

Auditing

Action Events

Usage events

Upgrade

Risk/Open Issues