Blueprint-ipam-extensions-for-neutron
Contents
IPAM Overview
Information common to a set of subnets on a network will be present in this resource. Following information will be stored in the resource:
- Address allocation scheme (DHCP or unmanaged)
- DNS server information
- CIDR to be used by the network (in which all subnet definitions should belong)
- List of DHCP option, value tuples
IPAM Resource
Network policy is mechanism by which a declarative way is provided to the clients to decided how Neutron virtual networks are connected and what traffic is allowed over those connections. Clients do not have to worry about how exactly the connectivity is achieved and how/where the rules are applied. This is to simplify deployments of multitier applications
Attribute | Type | Required | CRUD | DefaultValue | Validation Constraint | Notes |
---|---|---|---|---|---|---|
id | uuid-str | N/A | R | generated | N/A | UUID for ipam object |
tenant_id | uuid-str | Yes | CR | None | valid tenant_id | UUID of the tenant for ipam |
name | string | no | CRU | None | N/A | name of the ipam resource |
fq_name | string | no | CRU | None | N/A | fully qualified name of the ipam object |
ipam_method | string | no | CRU | None | N/A | dhcp or fixed assignment |
ipam_dns_method | string | no | CRU | None | N/A | default, tenant or virtual dns server |
ipam_dns_addr | string | no | CRU | None | N/A | dns server address or name |
dhcp_options | list[string-string] | no | CRU | None | list or key-val pairs | list of dns key-value pairs |
cidr_block | list[string] | no | CRU | None | list of cidrs | list of cidr blocks |
CLI for IPAM
ipam-create Create an IPAM for a given tenant. ipam-delete Delete a given IPAM. ipam-list List IPAM information that belongs to a given tenant. ipam-show Show information of a given IPAM. ipam-update Update a given IPAM.
REST APIs
IPAM REST APIs
GET /v1.0/ipams/ GET /v1.0/ipams/ipam-id POST /v1.0/ipams UPDATE /v1.0/ipams/ipam-id DELETE /v1.0/ipams/ipam-id
PolicyCreate
JSON Request
{ "policy": { "tenant_id": "310df60f-2a10-4ee5-9554-98393092194c", "name": "test_policy", } }
JSON Response
{ "vpnservice": { "id": "02b1fef7-16f5-4917-bf19-c40a9af805ed", "tenant-id": "310df60f-2a10-4ee5-9554-98393092194c", "name": "test_policy", } }
IPAM Workflow
- IPAM create with relevant DHCP, DNS and CIDR
- Neutron Network APIs to attach one or more IPAMS