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

Propositions for Joid integration in CI

Prerequisites

Jenkins install

Please follow HOW TO here: https://wiki.opnfv.org/wiki/jenkins#how_to_connect_servers_from_labs_to_opnfv_jenkins

Jump host preparation

The jumphost must be a flavor of Ubuntu
The following things must be set on the jumphost before starting any deploy:

  • applications must be installed
    • git
    • bridge-utils
    • vlan
  • The network must also be set to host 3 bridges (TO BE DISCUSSED)
    • brAdm
    • brData
    • brStorage

All those pre-requisits can be managed by Master MAAS.

Now you can launch jenkins

Jenkins parameters

Jenkins fixes those parameters:

Jenkins defaults

# Slave name on Jenkins	
export SLAVE_NAME=orange-fr-pod2
export NODE_NAME=$SLAVE_NAME

# Git URL to use on this Jenkins Slave
export GIT_BASE=https://gerrit.opnfv.org/gerrit/$PROJECT

# Project Name
export PROJECT=joid

# Place of jenkins workspace
export WORKSPACE=$HOME/workspace/joid-deploy-<scenario>/
# in case of local script testing
export WORKSPACE=$HOME/joid/

Projects default

The file containing installer defaults is releng/jjb/opnfv/installer-params.yml

# IP of the installer (Not used for Joid)
export INSTALLER_IP=192.168.Y.Y

# Installer used for deploying OPNFV on this POD
export INSTALLER_TYPE=joid

# Scenario to deploy and test
# Based on scenario naming we can get joid options
# naming convention:
#    os-<controller>-<nfvfeature>-<mode>[-<extrastuff>]
# With parameters:
#    controller=(nosdn|odl_l3|odl_l2|onos|ocl)
#       No odl_l3 today
#    nfvfeature=(kvm|ovs|dpdk|nofeature)
#       '_' list separated.
#    mode=(ha|noha)
#    extrastuff=(none)
#       Optional field - Not used today
export DEPLOY_SCENARIO=none

# OpenStack release (kilo|liberty)	
export OS_RELEASE=liberty

# External network to create (name;type;first ip;last ip; gateway;network)	
export EXTERNAL_NETWORK="ext-net;flat;192.168.0.2;192.168.0.253;192.168.0.1;192.168.0.0/24"

# Disks to use by ceph by default (space separated list)	
export CEPH_DISKS=/srv

# Disks to use by ceph by controllers (empty if same as CEPH_DISKS)	
export CEPH_DISKS_CONTROLLERS=""

# Local lab config and Openstack openrc location	
export LAB_CONFIG=$HOME/joid_config

# Format or not disk before using ceph [true/false] (must be done the first time)	
export CEPH_REFORMAT=false

# Reinstall MAAS and Bootstrap before deploy [true/false]	
export MAAS_REINSTALL=false

# Ubuntu version (trusty/xenial)
export UBUNTU_DISTRO=trusty



Pod defaults

The file containing pod default is releng/jjb/opnfv/slave-params.yml

# Version of the installer to deploy
export INSTALLER_VERSION=latest	

Those parameters shall be present in the pod default.

# Disks to use by ceph by default (space separated list)	
export CEPH_DISKS=/srv

# Disks to use by ceph by controllers (empty if same as CEPH_DISKS)	
export CEPH_DISKS_CONTROLLERS=/srv

Cleanup steps

The cleanup is done at each deploy in the script

HOW TO

Run CI deploy script without jenkins

  • Copy all jenkins parameters (see list 'Jenkins parameters' section) in a file (~/deploy_params.sh) and set them according to your platform (don't forget to set DEPLOY_SCENARIO value !)
  • Load this file
source ~/deploy_params.sh
  • Get the script
wget https://git.opnfv.org/cgit/releng/plain/jjb/joid/joid-deploy.sh
chmod +x joid-deploy.sh
  • Run the script
./joid-deploy.sh | tee joid-deploy.log

Add my pod deployed by jenkins

  1. Edit Releng jjb/joid/joid-ci-jobs.yml
    1. to add your node to pod list in the project section
    2. to add your trigger macro at the end of the file
  2. Add your pod description in jjb/opnfv/slave-params.yml
  3. Setup (or not) your local config file, as described in "Set specific pod parameters".
  4. If your $POD_NAME is not formated like this: <POD_DATA_CENTER>-<POD_ID> as set in joid/ci/maas/<POD_DATA_CENTER>/<POD_ID> subfolders, please modify section "Set Joid pod config name" in releng/jjb/joid/joid-deploy.sh
  5. Ask jenkins to deploy (smile)

Set specific pod parameters

The pod admin can set a few parameters

sudo -s jenkins
mkdir ~/joid_config
cat << EOF > ~/joid_config/config.sh
### Set passwords
export MAAS_USER=ubuntu
export MAAS_PASSWORD=ubuntu
export OS_ADMIN_PASSWORD=openstack
EOF

Deploy or not MAAS at each time

Testing MAAS deploy is not the core of CI tests, so to gain time, MAAS reinstall can be disabled by setting local parameter MAAS_REINSTALL=false. Juju will be cleaned and all nodes managed will return in ready mode.

  • No labels