Jump to: navigation, search

Difference between revisions of "Blueprint-ipam-extensions-for-neutron"

(Created page with "===IPAM Resource=== 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 alloc...")
 
(IPAM Resource)
 
(20 intermediate revisions by the same user not shown)
Line 1: Line 1:
===IPAM Resource===
+
== <span>IPAM Overview </span>==
 
Information common to a set of subnets on a network will be present in this resource. Following information will be stored in the resource:
 
Information common to a set of subnets on a network will be present in this resource. Following information will be stored in the resource:
  
Line 6: Line 6:
 
*CIDR to be used by the network (in which all subnet definitions should belong)
 
*CIDR to be used by the network (in which all subnet definitions should belong)
 
*List of DHCP option, value tuples
 
*List of DHCP option, value tuples
 +
 +
== <span>IPAM Resource </span>==
 +
 
 +
{| class="wikitable"
 +
|-
 +
! 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==
 +
<pre><nowiki>
 +
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.
 +
</nowiki></pre>
 +
 +
== REST APIs==
 +
=== IPAM REST APIs===
 +
<pre><nowiki>
 +
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
 +
</nowiki></pre>
 +
 +
===IpamCreate===
 +
====JSON Request====
 +
<pre><nowiki>
 +
{
 +
  "ipam": {
 +
          "tenant_id": "310df60f-2a10-4ee5-9554-98393092194c",
 +
          "name": "test_ipam",
 +
          }
 +
}
 +
</nowiki></pre>
 +
 +
====JSON Response====
 +
<pre><nowiki>
 +
{
 +
  "ipam": {
 +
          "id": "02b1fef7-16f5-4917-bf19-c40a9af805ed",
 +
          "tenant-id": "310df60f-2a10-4ee5-9554-98393092194c",
 +
          "name": "test_ipam",
 +
          }
 +
}
 +
</nowiki></pre>
 +
 +
== IPAM Workflow==
 +
* IPAM create with relevant DHCP, DNS and CIDR
 +
* Neutron Network APIs to attach one or more IPAMS

Latest revision as of 17:50, 8 October 2013

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