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
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 | list[string] | no | CRU | None | N/A | list of dns server address or name |
dhcp_options | list[string-string] | no | CRU | None | list or key-val pairs | list of dhcp 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
IpamCreate
JSON Request
{ "ipam": { "tenant_id": "310df60f-2a10-4ee5-9554-98393092194c", "name": "test_ipam", } }
JSON Response
{ "ipam": { "id": "02b1fef7-16f5-4917-bf19-c40a9af805ed", "tenant-id": "310df60f-2a10-4ee5-9554-98393092194c", "name": "test_ipam", } }
IPAM Workflow
- IPAM create with relevant DHCP, DNS and CIDR
- Neutron Network APIs to attach one or more IPAMS