Page tree
Skip to end of metadata
Go to start of metadata

Deploy JOID in your POD

(Help us to improve this page)

Example POD architecture drawings:

Link to Gliffy source for above drawing: maas-poc-drawing.gliffy.zip


Get the joid code from gerritt

git clone https://gerrit.opnfv.org/gerrit/p/joid.git

cd joid/ci

Automate JOID setup with Jenkins

  • Setup your jumphost
  • Setup Jenkins Slave for your lab https://wiki.opnfv.org/octopus/jenkins_slave_connection
  • Setup create JJB Jenkins Job Builder Script for your pod in your lab
  • Test and iterate JJB script to deploy MaaS on jumphost and Juju VMs on Jumphost to complete JOID Setup

Jenkins Job Naming Convention

  1. Based on scenario naming we can get joid options naming convention:
     os-<controller>-<nfvfeature>-<mode>[-<extrastuff>]

- With parameters:

     controller=(nosdn|ocl)
     nfvfeature=(kvm|ovs|dpdk|nofeature)
        '_' list separated.
     mode=(ha|noha)
     extrastuff=(none)
        Optional field - Not used today


Scenario deployed:

  1. os-nosdn-nofeature-noha
  2. os-nosdn-nofeature-ha
  3. os-ocl-nofeature-noha
  4. os-ocl-nofeature-ha
  5. os-nosdn-lxd-ha
  6. os-nosdn-lxd-noha
  7. k8-nosdn-lb-noha
  8. k8-ovn-lb-noha

Enable MAAS

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

mkdir joid/labconfig/intel/pod7/

  • copy files from pod5 to pod7

{{cp joid/labconfig/intel/pod5/labconfig.yaml  joid/labconfig/intel/pod7/labconfig.yaml }}

labconfig.yaml file

Prerequisite:

  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). for example Intel Pod21

modify

This file has been used to configure  your maas and bootstrap node in a VM. Also will be used for obtailing the network environment, floating ips, public ips, number of units etc. Comments in the file are self explanatory and we expect fill up the information according to match lab infrastructure information. Sample labconfig.yaml can be found at https://gerrit.opnfv.org/gerrit/gitweb?p=joid.git;a=blob;f=labconfig/intel/pod5/labconfig.yaml

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 16.04 install and all bridges configured on bare metal host server as mentioned in labconfig.yaml file above. Then follow the section below.

modify labconfig.yaml

  • modify as per your lab environment:
lab:
  location: intel
  racks:
  - rack: pod5
    nodes:
##Fill the node details below. Entries will depend upon the number of nodes you have for deployment.
    - name: rack-5-m1
      architecture: x86_64
      roles: [network,control]
      nics:
      - ifname: eth1
        spaces: [admin]
        mac: ["xx:xx:xx:xx:xx:xx"]
      - ifname: eth4
        spaces: [data]
        mac: ["xx:xx:xx:xx:xx:xx"]
      - ifname: eth5
        spaces: [floating]
        mac: ["xx:xx:xx:xx:xx:xx"]
      power:
        type: ipmi
        address: xx.xx.xx.xx
        user: xxxx
        pass: xxxx
    - name: rack-5-m2
      architecture: x86_64
      roles: [compute,control,storage]
      nics:
      - ifname: eth1
        spaces: [admin]
        mac: ["xx:xx:xx:xx:xx:xx"]
      - ifname: eth4
        spaces: [data]
        mac: ["xx:xx:xx:xx:xx:xx"]
      - ifname: eth5
        spaces: [floating]
        mac: ["xx:xx:xx:xx:xx:xx"]
      power:
        type: ipmi
        address: xx.xx.xx.xx
        user: xxxxx
        pass: xxxxx
##IP range will be used for floating ips in the openstack environment
##Format is starting ip,end ip,gateway,cidr
    floating-ip-range: 10.5.15.6,10.5.15.250,10.5.15.1,10.5.15.0/24
##External port where all openstack instances with get routed the outside traffic
    ext-port: "eth5"
##dns used
    dns: 8.8.8.8
opnfv:
    release: e
    distro: xenial
    type: ha
    openstack: ocata
    sdncontroller:
    - type: nosdn
    storage:
##in case of mutiple disk on the server use the one used for ceph otherwise /srv if no extra disk
    - type: ceph
      disk: /dev/sdb
##feature to install it could be sfc etc...
    feature: odl_l2
##below values should match your jumphost so that it can be enabled to the nodes using MAAS
    spaces:
    - type: admin
      bridge: brAdm
      cidr: xx.xx.xx.0/24
      gateway: xx.xx.xx.xx
      vlan:
    - type: data
      cidr: xx.xx.xx.0/24
      gateway:
      vlan:
    - type: public
      cidr: xx.xx.xx.0/24
      gateway: xx.xx.xx.xx
      vlan:
    - type: external
      cidr:
      gateway:
      ipaddress: xx.xx.xx.xx
      vlan:

 

install MAAS and add nodes in MAAS

  • run the following command from ~/joid/ci directory
./03-maasdeploy.sh custom ../labconfig/intel/pod7/labconfig.yaml
or 
You can place labconfig.yaml at web location and run the commands below. In that case no integration is need in joid.
./03-maasdeploy.sh custom http://www.xxx.com/labconfig.yaml     
     
Above command will take around 30-45 minutes depends upon your network connection to install MAAS on jumphost as per name 
in the labconfig.yaml and configure the interfaces accordingly. This will create a file in joid/ci 
is deployconfig.yaml

 
Please make sure you take the backup of those files in case you need to reuse MAAS again and again for deployment of 
openstack. Alternatively you can reinstall the MAAS and those files will get generated again.
 

* Above maas installation will crate the deployconfig.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 deployconfig.yaml and environments.yaml in ~/joid/ci directory. If it does not exist then most likely you have not used the above method to deploy MAAS or you lost your environment. Alternatively you can copy files from ~/.juju/ directory.
  • In case you have MAAS deployed out of JOID then you can generate the deployconfig file using labconfig.yaml
    • copy your labconfig.yaml to joid/ci/
    • run command python genDeploymentConfig.py -l labconfig.yaml > deployconfig.yaml
       

Run the deployment using JOID

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

Please run the following command to do the deployment of openstack.

{{ ./deploy.sh -m openstack -o ocata -s ocl -t noha -l custom -d xenial -f none }}

Above statement will deploy the openstack newton with sdn odl in HA mode in your lab with no feature.

Please run the following command to do the deployment of kubernetes with load balancer.

{{ ./deploy.sh -m kubernetes -s nosdn -l custom -f lb }}

Above statement will deploy the kubernetes in your lab with load balancer feature.

Full usage can be find below

./deploy.sh        

    -s | --sdn                 <nosdn|odl|opencontrail>

    -t | --type                 <noha|ha|tip >

    -o | --openstack      <ocata>

    -l | --lab                   <default|custom>

    -f | --feature             <ipv6,dpdk,lxd,dvr,openbaton>

    -d | --distro              <xenial>

    -a | --arch                <amd64|ppc64el|aarch64>

    -m | --model            <openstack|kubernetes>

    -i | --virtinstall          <0|1>

    --maasinstall         <0|1>

    --labfile                  <labconfig.yaml file>

    -r | --release            <e> 


Submitting merge proposal to joid

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

Please follow https://wiki.opnfv.org/developer/getting_started for any developer tools.

{{ git add --all }}

{{ git commit }}

{{ git review }}

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

  • No labels