RunningQuantumV2Api
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
- Create a localrc file in your devstack repo that contains the following:
disable_service n-net enable_service q-svc enable_service q-agt enable_service q-dhcp Q_PLUGIN=openvswitch ADMIN_PASSWORD=password MYSQL_PASSWORD=password RABBIT_PASSWORD=password SERVICE_PASSWORD=password SERVICE_TOKEN=tokentoken SCHEDULER=nova.scheduler.simple.SimpleScheduler LIBVIRT_FIREWALL_DRIVER=nova.virt.firewall.NoopFirewallDriver NOVA_USE_QUANTUM_API=v2
- 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 Created 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 +----------------+--------------------------------------+-------+--------+--------------------------------------+----------------------------------+ | 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:
$ quantum subnet-create --ip_version 4 --gateway 10.2.2.1 c329c96f-a9e2-4035-9947-c2fd51b3224c 10.2.2.0/24 Created a new 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