Spotinst

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.18 (May 07, 2024)

  • Change cloud display name to full elastigroup name & groupId

  • Added cloud description to cloud’s tooltip, for Jenkins versions 2.420 and above

Version 2.2.17 (Mar 18, 2024)

  • AWS stateful groups: ignore stateful instances with no running instance

Version 2.2.15 (Sep 26, 2023)

  • AWS stateful groups: deallocate stateful instances resources when removed from Jenkins

  • Fixed : monitor alert won’t show up for Spotinst Clouds Communication Monitor when all groups are properly connected

Version 2.2.13 (Apr 19, 2023)

  • Allow using default accountId by setting empty accountId in clouds configuration

Version 2.2.12 (Apr 2, 2023)

  • Fixed severe UI bug: Pipeline projects' configurations weren’t shown

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.9 (Dec 29, 2022)

  • Added capability to search for instances by instance types

Version 2.2.8 (Jul 14, 2022)

  • Added 'Single Task Nodes' feature

Version 2.2.7 (Jan 17, 2022)

  • Fix issue: fix fallback to hardcoded list of AWS instance types in configure cloud page

Version 2.2.6 (Dec 22, 2021)

  • Load AWS instance types using Spot API

Version 2.2.5 (Oct 19, 2021)

  • Add Spot Personal Access Token to Jenkins Credentials Store

Version 2.2.4 (Sep 26, 2021)

  • Add AWS instance type

Version 2.2.1 (Jul 18, 2021)

  • Add ability to override the # of executors for all instance types

Version 2.1.8 (Jun 1, 2021)

  • Add timeout to RestClient to handle process starvation in edge-cases

Version 2.1.7 (Feb 10, 2021)

  • Fix issue: some nodes disconnecting abruptly

  • Performance improvements

  • Add AWS instance types

Version 2.1.6 (Jan 18, 2021)

  • Add AWS instance types

Version 2.1.5 (Jan 11, 2021)

  • Added support for connecting agents with SSH

  • Performance improvements

Version 2.1.4 (Dec 14, 2020)

  • New cloud support for Azure Virtual Machine

Version 2.1.3 (Dec 6, 2020)

  • 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.1 (Nov 19, 2020)

  • Add AWS instance types

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.25 (Jun 17, 2020)

  • Add AWS instance types

Version 2.0.21 (May 31, 2020)

  • Add AWS instance types

Version 2.0.19 (Feb 4, 2020)

  • Add AWS instance types

Version 2.0.18 (Dec 22, 2019)

  • Performance improvements for offline nodes.

Version 2.0.17 (Sep 12, 2019)

  • Add missing 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.15 (Jun 13, 2019)

  • Add support for AWS instance types  - i3en, m5ad and r5ad

Version 2.0.14 (May 8, 2019)

  • Add support for AWS instance type  - t3a

Version 2.0.13 (Mar 12, 2019)

  • SpotinstToken config - add params to context for Jenkins configuration as code plugin use

Version 2.0.12 (Feb 19, 2019)

  • Add support for new AWS instance types

Version 2.0.11 (Feb 10, 2019)

  • Add missing setters to support Jenkins configuration as code plugin

Version 2.0.10 (Nov 15, 2018)

  • Fix AWS instance weight for older configurations

Version 2.0.9 (Nov 14, 2018)

  • Add support for AWS instance types  - r5d

Version 2.0.8 (Nov 14, 2018)

  • Add support for AWS instance types  - m5a, r5a

Verson 2.0.7 (Nov 6, 2018)

  • Support new version of azure Elastigroup

Version 2.0.6 (Oct 8, 2018)

  • Performance improvements in scaling up instances

  • Fix typo in logs

Version 2.0.5 (Jul 1, 2018)

  • Add support for AWS instance types  - c5d, m5d

Version 2.0.4 (Jan 31, 2018)

  • Add support for AWS instance types 

Version 2.0.3 (Jan 4, 2018)

  • Performance Improvements

Version 2.0.2 (Oct 19, 2017)

  • Performance Improvements

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.4 (Sep 5, 2016)

  • Performance Improvements

Version 1.2.3 (Aug 30, 2016)

  • Support for GCP (Google Cloud Platform) Elastigroups , slaves can run on GCE instances 

Version 1.2.2 (Aug 21, 2016)

  • Support for recovering spot slaves 

Version 1.2 (Jul 18, 2016)

  • Add 'Remote root directory' and 'Instance type weight' to Cloud config 

  • Performance Improvements

Version 1.1 (Jul 5, 2016)

  • Fixed the support for labels

  • Performance Improvements

Version 1.0 (Jun 8, 2016)

  • Initial release