User Tools

Site Tools


Deploy JOID in your POD

(Help us to improve this page)

Example POD architecture drawings:

Link to Gliffy source for above drawing:

Get the joid code from gerritt

git clone

cd joid/ci

Automate JOID setup with Jenkins

Jenkins Job Naming Convention

- Based on scenario naming we can get joid options naming convention:


- With parameters:

      No odl_l3 today
      '_' list separated.
      Optional field - Not used today

Actual scenario list:

  1. 'os-nosdn-nofeature-noha':
    1. auto-trigger-name: 'brahmaputra-trigger-daily-disabled'
  2. 'os-nosdn-nofeature-ha':
    1. auto-trigger-name: 'brahmaputra-trigger-daily-disabled'
  3. 'os-odl_l2-nofeature-ha':
    1. auto-trigger-name: 'joid-{scenario}-{pod}-trigger'
  4. 'os-odl_l2-nofeature-noha':
    1. auto-trigger-name: 'brahmaputra-trigger-daily-disabled'
  5. 'os-onos-nofeature-ha':
    1. auto-trigger-name: 'brahmaputra-trigger-daily-disabled'
  6. 'os-onos-nofeature-noha':
    1. auto-trigger-name: 'brahmaputra-trigger-daily-disabled'

Enable MAAS

  • Create a directory in maas/<company name>/<pod number>/ for example

mkdir maas/intel/pod7/

  • copy files from pod5 to pod7

cp maas/intel/pod5/* maas/intel/pod7/*

4 files will get copied: deployment.yaml environments.yaml lxc-add-more-interfaces

deployment.yaml file


  1. Make sure Jump host node has been configured with bridges on each interface. So that appropriate MAAS and JUJU bootstrap VM can be created. For example if you have three network admin, data and public then I would suggest to give names like brAdm, brData and brPublic.
  2. You have information about the node MAC address and power management details (IPMI IP, username, password) of the nodes used for control and compute node.


This file has been used to configure your maas and bootstrap node in a VM. Comments in the file are self explanatory and we expect fill up the information according to match lab infrastructure information. Sample deployment.yaml can be found at;a=blob;f=ci/maas/intel/pod5/deployment.yaml file

This file will be used to configure your network interfaces on compute and control nodes deployed through MAAS.

I would suggest to list interface (brData, brPublic) you want to bring up after the deployment of the Operating System on bare metal. JUJU will implement the same using the charm attached to the JOID.

lxc-add-more-interfaces file

This File will be used as network template to create the network (eth1 and eth2 for data and Public) in containers.

MAAS Deployment

This section will guide you how to deploy maas and bootstrap node in a VM on a bare metal host.

Make sure you have ubuntu 14.04 install and all bridges configured on bare metal host server as mentioned in deployment.yaml file above. Then follow the section below.

modify 02-maasdeploy,sh

  • In case "$2" please add another section:

'intelpod7' )

      cp maas/intel/pod7/deployment.yaml ./deployment.yaml

install MAAS and add nodes in MAAS

  • run the following command from ~/joid/ci directory

./ intelpod7

   Above command will take around 30-45 minutes depends upon your network connection to install MAAS on VM as per name mentioned in the deployment.yaml and configure the interfaces accordingly.  
* Above maas installation will crate the environments.yaml file in ~/joid/ci folder

Configure juju integration

This section will guide you how to configure joid to your environment to deploy OPNFV platform.

  • Make sure you have environments.yaml in ~/joid/ci directory. If it does not exist then most likely you have not used the above method to deploy MAAS. In that case please copy the file manually.
  • verify the info in all 3x4 = 12 yaml configuration files (for example):
  • ~/joid/ci/odl/juju-deployer/ovs-odl-ha.yaml
  • modify the deploy bundle shell script for each of the 4 network controllers to add your lab:
  • ~/joid/ci/nosdn/
  • ~/joid/ci/odl/
  • ~/joid/ci/onos/
  • ~/joid/ci/opencontrail/
  'intelpod7' )
      cp maas/intel/pod7/ trusty/ubuntu-nodes-controller/network/
      cp maas/intel/pod7/lxc-add-more-interfaces trusty/ubuntu-nodes-controller/lxc/add-more-interfaces
      cp maas/intel/pod7/ trusty/ubuntu-nodes-compute/network/
      cp maas/intel/pod7/lxc-add-more-interfaces trusty/ubuntu-nodes-compute/lxc/add-more-interfaces
      # As per your lab vip address list be deafult uses -
      sed -i -- 's/' ./bundles.yaml
      # choose the correct interface to use for data network
      sed -i -- 's/#os-data-network:\/21/os-data-network:\/24/g' ./bundles.yaml
      sed -i -- 's/#        "ext-port": "eth1"/#        "ext-port": "brPublic"/g' ./bundles.yaml

Run the deployment using JOID

When the machines in the lab are ready to be powered on and booted we can continue.

Once you have modified the above sections then deployment will be very easy. Please do the following:

./ -o liberty -s odl -t nonha -l intelpod7

Above statement will deploy the openstack kilo with sdn odl in HA mode in Intel lab pod7

If you wants to deploy the opencontrail then you need to replace the odl with opencontrail and liberty with juno in the above command.

Submitting merge proposal to joid

On successful deployment test please submit the merge proposal into joid using git.

Please follow for any developer tools.

git add –all

git commit

git review -D

Few above commands will be useful to submit your patch for review.

joid/get_started.txt · Last modified: 2016/01/13 18:00 by Iben Rodriguez