Allow Jenkins to start agents/nodes with Spot framework, and terminate them as they get unused.
Spot Elastigroup
This plugin uses Spot Elastigroup to launch instances instead of directly launching them by itself.
The Elastigroup will make sure the agents' target-capacity is being maintained.
More details can be found in our documentation.
Usage
You’ll need a Spot account to use this plugin, you can get one at Spot Signup.
Once you have an account, login into your Spot Console to generate API token (Settings → Personal Access Tokens → Generate)
Now, Create an Elastigroup with your proper Region, AMI, Instance Types etc.
After you installed the plugin, navigate to the main "Manage Jenkins" > "Configure System" page, and scroll down to the “Spot” Section, and add the API Token you’ve generated in the previous step. Then click on "Validate Token", make sure that the token is valid.
Once you’ve set the Spot Token, scroll down near the bottom to the “Cloud” section.
There, Click on the "Add a new cloud" button, and select the "Spot" option.
Now – you should Specify your "Elastigroup ID" and "Idle minutes before termination"
Version history
Version 2.2.13 (Apr 19, 2023)
-
Allow using default accountId by setting empty accountId in clouds configuration
Version 2.2.11 (Mar 21, 2023)
-
Added support to change the value for Agent’s instance’s pending timeout before termination - for cases of a longer startup script. in the previous versions the value is 10 minutes for AWS and GCP clouds and 15 for Azure clouds. since this version that value becomes the default value, if not changed by the user.
-
Improved security involved with the credentials store
Version 2.2.10 (Mar 6, 2023)
-
Added restriction for more than one orchestrator from engaging with the same elastigroup
Version 2.2.7 (Jan 17, 2022)
-
Fix issue: fix fallback to hardcoded list of AWS instance types in configure cloud page
Version 2.1.7 (Feb 10, 2021)
-
Fix issue: some nodes disconnecting abruptly
-
Performance improvements
-
Add AWS instance types
Version 2.1.2 (Nov 30, 2020)
-
Add option to choose Strategy what happens when a slave Terminates during a Job Run, Choice Between Retriggering the terminated Job or not.
Version 2.1.0 (Nov 15, 2020)
-
Requires Jenkins 2.222.1
-
Add Websocket protocol support
-
Upgrade Jenkins Dependencies to 4.9
-
Job recovery, after slave terminates during a Job run.
Version 2.0.27 (Oct 25, 2020)
-
Add Public and private IP labels to the node description
-
Add AWS instance types
Version 2.0.16 (Aug 13, 2019)
-
Support for Elastigroups from multiple Spotinst accounts
-
Add Environment Variables and Tool Locations properties to the Elastigroup cloud configuration
Version 2.0.13 (Mar 12, 2019)
-
SpotinstToken config - add params to context for Jenkins configuration as code plugin use
Version 2.0.1 (Jun 26, 2017)
-
Add Spotinst Account Id configuration
-
Support for Azure Elastigroups , slaves can run on Azure virtual machines
Version 2.0.0 (Mar 23, 2017)
-
* New Major version - breaking changes (you will need to reconfigure Spotinst token and Spotinst cloud) *
-
Support for idle slave termination according to billing hour
-
Support for multiple labels in each slave
-
Performance Improvements
Version 1.2.7 (Feb 28, 2017)
-
Support for 'Tunnel connection through' option for slave connection to master
-
Add JVM options for slaves
Version 1.2.6 (Feb 20, 2017)
-
Support for nodes usage mode (NORMAL / EXCLUSIVE)
-
Add AWS new instance types
Version 1.2.5 (Feb 1, 2017)
-
Performance Improvements
-
Support slave connection with credentials from thirdParty (GitHub)
Version 1.2.3 (Aug 30, 2016)
-
Support for GCP (Google Cloud Platform) Elastigroups , slaves can run on GCE instances