.. This work is licensed under a Creative Commons Attribution 4.0 International License.
.. SPDX-License-Identifier: CC-BY-4.0
.. (c) Open Platform for NFV Project, Inc. and its contributors
.. _connect-to-jenkins:
================================================
Connecting OPNFV Community Labs to OPNFV Jenkins
================================================
.. contents:: Table of Contents
:backlinks: none
Abstract
========
This document describes how to connect resources (servers) located in Linux Foundation (LF) lab
and labs provided by the OPNFV Community to OPNFV Jenkins.
License
=======
Connecting OPNFV Community Labs to OPNFV Jenkins (c) by Fatih Degirmenci (Ericsson AB) and others.
Connecting OPNFV Labs to OPNFV Jenkins document is licensed under a Creative Commons
Attribution 4.0 International License.
You should have received a copy of the license along with this. If not, see .
Version History
===============
+------------+-------------+------------------+---------------------------------------+
| **Date** | **Version** | **Author** | **Comment** |
| | | | |
+------------+-------------+------------------+---------------------------------------+
| 2015-05-05 | 0.1.0 | Fatih Degirmenci | First draft |
| | | | |
+------------+-------------+------------------+---------------------------------------+
| 2015-09-25 | 1.0.0 | Fatih Degirmenci | Instructions for the |
| | | | Arno SR1 release |
+------------+-------------+------------------+---------------------------------------+
| 2016-01-25 | 1.1.0 | Jun Li | Change the format for |
| | | | new doc toolchain |
+------------+-------------+------------------+---------------------------------------+
| 2016-01-27 | 1.2.0 | Fatih Degirmenci | Instructions for the |
| | | | Brahmaputra release |
+------------+-------------+------------------+---------------------------------------+
| 2016-05-25 | 1.3.0 | Julien | Add an additional step after step9 to |
| | | | output the correct monit config file |
+------------+-------------+------------------+---------------------------------------+
Jenkins
=======
Jenkins is an extensible open source Continuous Integration (CI) server. [1]
Linux Foundation (LF) hosts and operates `OPNFV Jenkins `_.
Jenkins Slaves
==============
**Slaves** are computers that are set up to build projects for a **Jenkins Master**. [2]
Jenkins runs a separate program called "**slave agent**" on slaves.
When slaves are registered to a master, the master starts distributing load to slaves by
scheduling jobs to run on slaves if the jobs are set to run on them. [2]
Term **Node** is used to refer to all machines that are part of Jenkins grid, slaves and
master. [2]
Two types of slaves are currently connected to OPNFV Jenkins and handling
different tasks depending on the purpose of connecting the slave.
* Slaves hosted in `LF Lab `_
* Slaves hosted in `Community Test Labs `_
The slaves connected to OPNFV Jenkins can be seen using this link:
https://build.opnfv.org/ci/computer/
Slaves without red cross next to computer icon are fully functional.
Connecting Slaves to OPNFV Jenkins
==================================
The method that is normally used for connecting slaves to Jenkins requires direct SSH access to
servers.
[3] This is the method that is used for connecting slaves hosted in LF Lab.
Connecting slaves using direct SSH access can become a challenge given that OPNFV Project
has number of different labs provided by community as mentioned in previous section.
All these labs have different security requirements which can increase the effort
and the time needed for connecting slaves to Jenkins.
In order to reduce the effort and the time needed for connecting slaves and streamline the
process, it has been decided to connect slaves using
`Java Network Launch Protocol (JNLP) `_.
Connecting Slaves from LF Lab to OPNFV Jenkins
----------------------------------------------
Slaves hosted in LF Lab are handled by LF. All the requests and questions regarding
these slaves should be submitted to `OPNFV LF Helpdesk `_.
Connecting Slaves from Community Labs to OPNFV Jenkins
------------------------------------------------------
As noted in corresponding section, slaves from Community Labs are connected using JNLP. Via JNLP,
slaves open connection towards Jenkins Master instead of Jenkins Master accessing to them directly.
Servers connecting to OPNFV