Jump to: navigation, search

Blueprint-ipam-extensions-for-neutron

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