====== Deploy JOID in your POD ====== (Help us to improve this page) Example POD architecture drawings: {{:joid:maas-poc-drawing.png?600|}} Link to Gliffy source for above drawing: {{:joid:maas-poc-drawing.gliffy.zip|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 and Juju VMs on Jumphost to complete JOID Setup ==== Jenkins Job Naming Convention ==== - Based on scenario naming we can get joid options naming convention: os---[-] - 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 Actual scenario list: - 'os-nosdn-nofeature-noha': - auto-trigger-name: 'brahmaputra-trigger-daily-disabled' - 'os-nosdn-nofeature-ha': - auto-trigger-name: 'brahmaputra-trigger-daily-disabled' - 'os-odl_l2-nofeature-ha': - auto-trigger-name: 'joid-{scenario}-{pod}-trigger' - 'os-odl_l2-nofeature-noha': - auto-trigger-name: 'brahmaputra-trigger-daily-disabled' - 'os-onos-nofeature-ha': - auto-trigger-name: 'brahmaputra-trigger-daily-disabled' - 'os-onos-nofeature-noha': - auto-trigger-name: 'brahmaputra-trigger-daily-disabled' ===== Enable MAAS ===== * Create a directory in maas/// 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 interfaces.host lxc-add-more-interfaces ==== deployment.yaml file ==== === Prerequisite: === - 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. - 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. ==== modify ==== 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 [[https://gerrit.opnfv.org/gerrit/gitweb?p=joid.git;a=blob;f=ci/maas/intel/pod5/deployment.yaml]] ==== interfaces.host 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 ''./02-maasdeploy.sh 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/01-deploybundle.sh * ~/joid/ci/odl/01-deploybundle.sh * ~/joid/ci/onos/01-deploybundle.sh * ~/joid/ci/opencontrail/01-deploybundle.sh '' 'intelpod7' ) cp maas/intel/pod7/interfaces.host trusty/ubuntu-nodes-controller/network/interfaces.host cp maas/intel/pod7/lxc-add-more-interfaces trusty/ubuntu-nodes-controller/lxc/add-more-interfaces cp maas/intel/pod7/interfaces.host trusty/ubuntu-nodes-compute/network/interfaces.host 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 10.4.1.11 - 10.4.1.20 sed -i -- 's/10.4.1.1/10.4.1.2/g' ./bundles.yaml # choose the correct interface to use for data network sed -i -- 's/#os-data-network: 10.4.8.0\/21/os-data-network: 10.4.9.0\/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: '' ./deploy.sh -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 https://wiki.opnfv.org/developer/getting_started for any developer tools. '' git add --all '' '' git commit '' '' git review -D '' Few above commands will be useful to submit your patch for review.