Skip to content
Branch: master
Find file Copy path
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
189 lines (121 sloc) 5.64 KB

Getting Started with OpenContrail Development

This brief note would serve as a reference for a developer looking to start-up on the OpenContrail development envrionment.

A new developer can refer the OpenContrail Architecture document from

To get information about latest releases and schedule, please refer to:

#1. Registration and User Creation

a. A new developer should register on OpenContrail development/user forums and slack on this link:

b. In order to submit blueprints for a new feature or to raise bugs on existing features, create a user-id on Launchpad:

c. Create a GitHub account by Signing up on if not already registered

d. Register for an account at for gerrit review

#2. Ubuntu installation and configuration

Install Ubuntu version 16.04 trusty for the OpenContrail stable installation.

##2.1 Relevant packages for the OpenContrail installation.

sudo apt-get update
sudo apt-get install git
sudo apt-get install git-core
sudo apt-get install ant
sudo apt-get install aptitude
sudo aptitude install build-essential
sudo apt-get install libev4 libev-dev

##2.2 Generate SSH key and add it to local SSH-agent


ssh-keygen -t rsa -b 4096 -C "<>"
eval $(ssh-agent -s)
ssh-add ~/.ssh/id_rsa
sudo apt-get install xclip
xclip -sel clip < ~/.ssh/

##2.3 Add SSH key to GitHub account

a. Go to profile and select settings

b. Choose SSH and GPG keys -> New SSH key

c. Give a title for the key

d. Paste the key generated above ( xclip command will copy the key from .pub file to your clipboard)

e. Add SSH key.

#3. Opencontrail + Devstack setup


##3.1 Clone Contrail-installer and devstack Repositories

git clone
git clone -b stable/newton

##3.2 Setup Opencontrail

a. Copy the localrc file from samples to the current directory and edit it as required.

cd contrail-installer
cp samples/localrc-all localrc

change eth interface: default is eth0
#CONTRAIL_BRANCH=R3.2   //Commented means code will be checked out from Trunk.
                        //Else specify the branch and uncomment it.

b. Execute


##3.3 Setup DevStack

a. Copy the opencontrail plugin to devstack neutron_plugins directory

cp ../contrail-installer/devstack/lib/neutron_plugins/opencontrail lib/neutron_plugins/

b. Prepare localrc for devstack:

cp ../contrail-installer/devstack/samples/localrc-all localrc

Update "PHYSICAL_INTERFACE" as applicable.

Add following to localrc file:


c. Run


d. The installation shall fail once. Once it fails, do the following change

Edit the file "/usr/local/lib/python2.7/dist-packages/openstack/" at line 29 and replace "openstack.version" with "openstack"

Line 29: DEFAULT_USER_AGENT = "openstacksdk/%s" % openstack

e. Now do a restack. For this Opencontrail needs to be restarted as well, i.e.

cd ../contrail_installer
./ restart
cd -

##3.4. Accessing Openstack and Opencontrail GUIs

Openstack and contrail GUIs can be accessed as follows:-

a. Openstack GUI: http://localhost/dashboard/

b. Opencontrail GUI: http://localhost:8080/

#4. Setting up Gerrit for committing code-changes for review


##4.1 Setup SSH access

a. Login to your account at

b. Goto Top-right corner -> settings

c. Left panel -> SSH public keys -> Add key

d. Follow the instruction under heading "How to generate an SSH key"

e. Test the SSH access

$ ssh -p 29418

****    Welcome to Gerrit Code Review    ****

Hi John Doe, you have successfully connected over SSH.

Unfortunately, interactive shells are disabled.
To clone a hosted Git repository, use:

git clone ssh://

Connection to hostname closed.

##4.2 Pushing code-changes for review

a. Install git-review

sudo apt-get install git-review

b. Configure Gerrit

git config --global
gitdir=$(git rev-parse --git-dir);
scp -p -P 29418 ${gitdir}/hooks/

c. Clone the repo where changes need to be committed

git clone ssh://

d. Commit the changes

git commit -m "<commit-note>"

Note: please ensure that any change being committed should have a corresponding
launch-pad bug-id mentioned in the commit message, i.e. "Bug #1679466"

e. Push the locally committed changes up for review

git push ssh:// \
HEAD:refs/for/<branch>%topic=<few-words-describing-the-change>, \,
You can’t perform that action at this time.