RunningQuantumV2Api
Quantum v2 API
Current Limitations
- Quantum DHCP code is still in review. With the current master branch, VMs need to have a their IPs configured manually using VNC access to the VM.
To use DHCP, please see the section Quantum DHCP in this document.
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
- Apply the following patch to your devstack repo: https://review.openstack.org/#/c/9161 .
- Create a localrc file in your devstack repo that contains the following:
ENABLED_SERVICES="g-api,g-reg,key,n-api,n-cpu,n-sch,n-vnc,horizon,mysql,rabbit,openstackx,q-svc,quantum,q-agt" 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
export SERVICE_ENDPOINT=http://localhost:35357/v2.0 export SERVICE_TOKEN=tokentoken
- Determine the tenant-id:
$ keystone tenant-list +----------------------------------+--------------------+---------+ | id | name | enabled | +----------------------------------+--------------------+---------+ | 0331b94a864a46f9b5ce7e188c115c29 | invisible_to_admin | True | | 118c80482f8e4bbc83661399e93ab020 | service | True | | 7c46d68545ca49e4b52e5bc0be9e2a2a | admin | True | | 9b234056142543949c95601d7bb77b9b | demo | True | +----------------------------------+--------------------+---------+
- Using the id for the demo user create a network:
$quantumv2 --os-token ADMIN --os-url http://localhost:9696/ create_net --tenant-id 9b234056142543949c95601d7bb77b9b mynet Created a new network: +----------------+--------------------------------------+ | Field | Value | +----------------+--------------------------------------+ | admin_state_up | True | | id | 335b9d39-f803-4e38-9236-cc7fd047baab | | name | mynet | | status | ACTIVE | | subnets | | | tenant_id | 9b234056142543949c95601d7bb77b9b | +----------------+--------------------------------------+
- Associate a subnet with this network:
$quantumv2 --os-token ADMIN --os-url http://localhost:9696/ create_subnet --tenant-id 9b234056142543949c95601d7bb77b9b --ip-version 4 --gateway 10.2.2.1 335b9d39-f803-4e38-9236-cc7fd047baab 10.2.2.0/24 Created a new subnet: +------------+--------------------------------------+ | Field | Value | +------------+--------------------------------------+ | cidr | 10.2.2.0/24 | | gateway_ip | 10.2.2.1 | | id | badb639d-8191-47d2-a6fa-6bc81beae97f | | ip_version | 4 | | network_id | 335b9d39-f803-4e38-9236-cc7fd047baab | +------------+--------------------------------------+
- Boot a VM using this network (the VM will get a NIC for each network owned by that tenant. The --nic option is not yet support):
$IMG_ID=`nova image-list | grep cirros | grep -v kernel | grep -v ram | awk -F "|" '{print $2}'` $ nova boot --image $IMG_ID --flavor 1 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 | 4X6a5z55WFxT | | config_drive | | | created | 2012-06-30T02:25:12Z | | flavor | m1.tiny | | hostId | | | id | 7ee202a1-f6e6-4e68-b6c3-dc7489ddb433 | | image | cirros-0.3.0-x86_64-uec | | key_name | | | metadata | {} | | name | test1 | | progress | 0 | | status | BUILD | | tenant_id | 9b234056142543949c95601d7bb77b9b | | updated | 2012-06-30T02:25:12Z | | user_id | 0c23bf7f644a404896d1387e2bb97540 | +------------------------+--------------------------------------+ $ nova list +--------------------------------------+-------+--------+----------------+ | ID | Name | Status | Networks | +--------------------------------------+-------+--------+----------------+ | 7ee202a1-f6e6-4e68-b6c3-dc7489ddb433 | test1 | ACTIVE | mynet=10.2.2.2 | +--------------------------------------+-------+--------+----------------+
Quantum DHCP
Quantum DHCP code is still in review. By default, VMs need to have a their IPs configured manually using VNC access to the VM.
To use DHCP, checkout the code for this review: https://review.openstack.org/#/c/9064/
Devstack is supported by adding the patch https://review.openstack.org/#/c/9362/ to you devstack repo. This requires adding "q-dhcp" to the "ENABLED_SERVICES". This will run the Quantum DHCP agent in a separate screen.
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