Contributors: TroyToman:
Summary
Melange will have an IP Management System that will provide the core IP services required for Nova in it's base incarnation. It will have a RESTful API and operate as a separate service.
The initial charter and requirements for Melange can be found at Melange
Release Note
The current plan is to incubate this effort within the Nova code base.
Rationale
User stories
# Ip Blocks
- Public, Private, v4 and v6 blocks Global and Tenant specific blocks Subnetting with validations like cidr overlaps in sibling blocks
# Ip Addresses
- Pluggable ipv6 allocation algo. Currently have ported nova's algos. Allocation by Block or by Network Allocation of specific Ips, if provided Delayed deallocation of Ips
- REST API exists for marking ips for deallocation Can restore ips marked for deallocation TBD: Batch Schedular to delete marked ips after a certain period of time
TBD:Instance/vif relationship to allocated ip
# Policy
- Range Rule : Disallow certain range of IPs from getting allocated.
e.g. for IpBlock 10.0.0.0/29, and Range rule with start=0 and length=2
- disallows 10.0.0.0, 10.0.0.1 to be allocated.
e.g. for IpBlock 10.0.0.0/16 and Octet rule with last octet=255 disallows
- all 10.0.*.255 from getting allocated.
# Natting
- tracking inside local and inside global ip relationships
# Api Extensions
- Ported Nova's extension framework.
# AuthN & AuthZ:
- Authorization for tenant and admin actions TBD: Authentication, looking to use keystone
# CLI Client
TBD features: # Packaging Melange
# Shared Ips
# Floating Ips
- (will use natting at some level, but will need more work for nova integration)
# Event Queue for pub hub sub type notfications