RunningQuantumV2Api
Contents
Quantum v2 API
In order to run Quantum using the v2 api the following steps are need:
- First download a copy of devstack.
git clone git://github.com/openstack-dev/devstack.git
- Add the following line to devstack/files/apt/general. It is a dependency bug in Ubuntu 12.04.
python-pyparsing
- See QuantumDevstack for information about configuring devstack to use Quantum
- run stack.sh as normal to download code and get things running.
Create a network using Quantumv2
- Set envvars for quantum client.
$ . openrc $ env | grep OS_ OS_PASSWORD=password OS_AUTH_URL=http://192.168.122.248:5000/v2.0 OS_USERNAME=demo OS_TENANT_NAME=demo
- Creating a network named mynet.
$ quantum net-create mynet # Creates a new network +----------------+--------------------------------------+ | Field | Value | +----------------+--------------------------------------+ | admin_state_up | True | | id | c329c96f-a9e2-4035-9947-c2fd51b3224c | | name | mynet | | status | ACTIVE | | subnets | | | tenant_id | ce829a76691c445db483b56a18e38ca0 | +----------------+--------------------------------------+ $ quantum net-list # Network shows up in list +----------------+--------------------------------------+-------+--------+--------------------------------------+----------------------------------+ | admin_state_up | id | name | status | subnets | tenant_id | +----------------+--------------------------------------+-------+--------+--------------------------------------+----------------------------------+ | True | 17af5b57-bebc-4556-8c83-ea40f842488f | net1 | ACTIVE | 0f6c205c-1420-4724-a133-b0ca8b2117ff | ce829a76691c445db483b56a18e38ca0 | | True | c329c96f-a9e2-4035-9947-c2fd51b3224c | mynet | ACTIVE | | ce829a76691c445db483b56a18e38ca0 | +----------------+--------------------------------------+-------+--------+--------------------------------------+----------------------------------+
- Associate a subnet with this network (you can do this 0 or more times, but *beware* that some hypervisor drivers do not yet support networks with 0 IPv4 subnets - https://bugs.launchpad.net/nova/+bug/1039665):
$ quantum subnet-create c329c96f-a9e2-4035-9947-c2fd51b3224c 10.2.2.0/24 # Creates a subnet +------------------+--------------------------------------------+ | Field | Value | +------------------+--------------------------------------------+ | allocation_pools | {"start": "10.2.2.2", "end": "10.2.2.254"} | | cidr | 10.2.2.0/24 | | gateway_ip | 10.2.2.1 | | id | 032b9a1a-6a01-4ff1-88f1-3ec61b460ddd | | ip_version | 4 | | name | | | network_id | c329c96f-a9e2-4035-9947-c2fd51b3224c | | tenant_id | ce829a76691c445db483b56a18e38ca0 | +------------------+--------------------------------------------+ $ quantum net-list +----------------+--------------------------------------+-------+--------+--------------------------------------+----------------------------------+ | admin_state_up | id | name | status | subnets | tenant_id | +----------------+--------------------------------------+-------+--------+--------------------------------------+----------------------------------+ | True | 17af5b57-bebc-4556-8c83-ea40f842488f | net1 | ACTIVE | 0f6c205c-1420-4724-a133-b0ca8b2117ff | ce829a76691c445db483b56a18e38ca0 | | True | c329c96f-a9e2-4035-9947-c2fd51b3224c | mynet | ACTIVE | 032b9a1a-6a01-4ff1-88f1-3ec61b460ddd | ce829a76691c445db483b56a18e38ca0 | +----------------+--------------------------------------+-------+--------+--------------------------------------+----------------------------------+
- Boot a VM using this network (the VM will get a NIC for each network owned by that tenant. The --nic option is already supported):
$ IMG_ID=`nova image-list | grep cirros | grep -v kernel | grep -v ram | awk -F "|" '{print $2}'` $ nova boot --image $IMG_ID --flavor 1 --nic net-id=c329c96f-a9e2-4035-9947-c2fd51b3224c test1 +------------------------+--------------------------------------+ | Property | Value | +------------------------+--------------------------------------+ | OS-DCF:diskConfig | MANUAL | | OS-EXT-STS:power_state | 0 | | OS-EXT-STS:task_state | scheduling | | OS-EXT-STS:vm_state | building | | accessIPv4 | | | accessIPv6 | | | adminPass | KHZ9r9CHTQMw | | config_drive | | | created | 2012-08-01T13:49:09Z | | flavor | m1.tiny | | hostId | | | id | 21a7f742-288f-4796-8e5f-d9c8741d4b75 | | image | cirros-0.3.0-x86_64-uec | | key_name | None | | metadata | {} | | name | test1 | | progress | 0 | | status | BUILD | | tenant_id | ce829a76691c445db483b56a18e38ca0 | | updated | 2012-08-01T13:49:10Z | | user_id | 037c166e4363491fb25e4f669fa18e45 | +------------------------+--------------------------------------+ $ nova list +--------------------------------------+-------+--------+----------------+ | ID | Name | Status | Networks | +--------------------------------------+-------+--------+----------------+ | 21a7f742-288f-4796-8e5f-d9c8741d4b75 | test1 | ACTIVE | mynet=10.2.2.2 | +--------------------------------------+-------+--------+----------------+
Limitations
- Note: with v2, Quantum no longer uses the L3 + NAT logic from nova-network. Quantum will not have the equivalent functionality until F-3, so you won't be able to ping the VMs from the nova controller host.
Advanced Setups
- In order to deploy Quantum using the v2 API with multiple nodes follow the Multi-Node Setup outlined here: http://wiki.openstack.org/QuantumDevstack