Allow Jenkins to start agents/nodes with Spot framework, and terminate them as they get unused.
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.
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"
-
Pending Timeout Behavior Change: The pending timeout field is no longer limited to a maximum of 15 minutes. Generally, the pending timeout defines the maximum time to wait for launching a new machine. The default timeout (if this field is not set) is 10 minutes. In the previous version, it was also limited to a maximum of 15 minutes. We have removed that limitation, and from this version, the pending timeout will be respected with any defined value to support cases with long startup scripts.
-
Support Java 11 and above (Java 8 is no longer supported)
-
Fix retrigger bug when a slave terminates during Jenkins pipeline run job
-
Change cloud display name to full elastigroup name & groupId
-
Added cloud description to cloud’s tooltip, for Jenkins versions 2.420 and above
-
AWS stateful groups: ignore stateful instances with no running instance
-
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
-
Allow using default accountId by setting empty accountId in clouds configuration
-
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
-
Added restriction for more than one orchestrator from engaging with the same elastigroup
-
Fix issue: fix fallback to hardcoded list of AWS instance types in configure cloud page
-
Fix issue: some nodes disconnecting abruptly
-
Performance improvements
-
Add AWS instance types
-
Add option to choose Strategy what happens when a slave Terminates during a Job Run, Choice Between Retriggering the terminated Job or not.
-
Requires Jenkins 2.222.1
-
Add Websocket protocol support
-
Upgrade Jenkins Dependencies to 4.9
-
Job recovery, after slave terminates during a Job run.
-
Add Public and private IP labels to the node description
-
Add AWS instance types
-
Support for Elastigroups from multiple Spotinst accounts
-
Add Environment Variables and Tool Locations properties to the Elastigroup cloud configuration
-
SpotinstToken config - add params to context for Jenkins configuration as code plugin use
-
Add Spotinst Account Id configuration
-
Support for Azure Elastigroups , slaves can run on Azure virtual machines
-
* 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
-
Support for 'Tunnel connection through' option for slave connection to master
-
Add JVM options for slaves
-
Support for nodes usage mode (NORMAL / EXCLUSIVE)
-
Add AWS new instance types
-
Performance Improvements
-
Support slave connection with credentials from thirdParty (GitHub)
-
Support for GCP (Google Cloud Platform) Elastigroups , slaves can run on GCE instances
-
Add 'Remote root directory' and 'Instance type weight' to Cloud config
-
Performance Improvements