[
https://ovirt-jira.atlassian.net/browse/OVIRT-2254?page=com.atlassian.jir...
]
Barak Korren commented on OVIRT-2254:
-------------------------------------
Some design details:
* The "borrow" job takes the following parameters:
** The IP and JNLP port of the Jenkins that is borrowing the slave
** The JNLP secret to register to the Jenkins that is borrowing the slave
** A YAML/JSON structure with node requirements that includes:
*** A *kind* field set to "{{stdci_node_req}}"
*** An *apiVersion* field set to "{{1}}".
*** The project *name*.
*** The project *clone_ur*, *branch* and *refspec*.
*** The STDCI thread *stage*, *substage*, *distro* and *arch*.
*** The STDCI *runtime_requirements*.
Create slave borrowing flow
---------------------------
Key: OVIRT-2254
URL:
https://ovirt-jira.atlassian.net/browse/OVIRT-2254
Project: oVirt - virtualization made easy
Issue Type: New Feature
Components: Jenkins Master, Jenkins Slaves
Reporter: Barak Korren
Assignee: infra
Create a set of jobs and groovy functions that will enable one Jenkins master to borrow
slaves from another Jenkins master.
h3. Acceptance criteria
# We define a borrower and a borrowing Jenkins instances. Ans support the use case where
both are the same instance
# Borrowing is done by setting up a JNLP connection from the slave of the borrower
instance to to borrowing instance.
# On the borrower instance:
## We have a "borrow" job that:
##* Takes slave requirement details, allocates a matching slaves and make it connect via
JNLP to the borrowing instance
##* If all matching slaves are already borrowed by other instances, try to call the
garbage collector jobs (see below) on borrowing instances to free the slaves.
## We have a "return" job that is called by a borrowing instance to return a
slave
# On the borrowing instance
## STDCI tries to borrow slaves from a predefined instance if not matching slaves are
available locally
## Once borrowed - slaves stay attached to the borrowing instance so they can be reused
by other STDCI jobs.
## We have a "garbage collector" job that is triggered periodically or by the
borrower instance. It looks at borrowed slaves, and frees ones that were not used
recently.
--
This message was sent by Atlassian Jira
(v1001.0.0-SNAPSHOT#100087)