Won't Fix
Details
Assignee
Barak KorrenBarak Korren(Deactivated)Reporter
Barak KorrenBarak Korren(Deactivated)Components
Priority
Medium
Details
Details
Assignee
Barak Korren
Barak Korren(Deactivated)Reporter
Barak Korren
Barak Korren(Deactivated)Components
Priority
Created June 26, 2018 at 7:02 AM
Updated August 29, 2019 at 2:12 PM
Resolved July 4, 2019 at 12:21 PM
Create a set of jobs and groovy functions that will enable one Jenkins master to borrow slaves from another Jenkins master.
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.