Forked from ivan-pinatti/jenkins-set-digitalocean-plugin-parameters.groovy
Created
October 8, 2022 13:23
-
-
Save chaitanyakommoju/30a92986738845ebc86995641f20224f to your computer and use it in GitHub Desktop.
Jenkins - Set Digitalocean slaves plugin parameters via groovy script - #jenkins #groovy #jenkins-digitalocean #jenkins-slaves #jenkins-slave
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!groovy | |
// imports | |
import com.dubture.jenkins.digitalocean.DigitalOceanCloud | |
import com.dubture.jenkins.digitalocean.SlaveTemplate | |
import jenkins.model.Jenkins | |
// parameters | |
def slaveTemplateParameters = [ | |
idleTerminationInMinutes: '10', | |
imageId: 'ubuntu-17-10-x64', | |
initScript: '', | |
installMonitoring: false, | |
instanceCap: '2', | |
labellessJobsAllowed: false, | |
labelString: 'digitalocean.toronto.ubuntu.17.10', | |
name: 'digitalocean.toronto.ubuntu.17.10', | |
numExecutors: '1', | |
regionId: 'tor1', | |
sizeId: '512mb', | |
sshPort: 22, | |
tags: '', | |
userData: '', | |
username: 'root', | |
workspacePath: '/home/jenkins' | |
] | |
def cloudParameters = [ | |
authToken: '01234567890123456789012345678901234567890123456789', | |
connectionRetryWait: '30', | |
instanceCap: '2', | |
name: 'mycompany', | |
sshKeyId: '01234567', | |
timeoutMinutes: '10', | |
usePrivateNetworking: false, | |
privateKey: '''-----BEGIN RSA PRIVATE KEY----- | |
MIICWwIBAAKBgGuoiHtwl8T2cKfclsWLOcv8S6p74iOAQX1kwCLvLy7ioDFlNzsI | |
U235N1StnZYZIwGla+3Uo3jMSUuWkMH85+d3KoRFPS+6RJCiAvMI0hr8FByes22v | |
DAVDnhkZ2SFOeh1SPxWDygPo2fW5sgqL2eYLO1CplDdqYhHLAL1FDV5tAgMBAAEC | |
gYBWRZoJgXK9zdb9TZIs/6LzSlzAY8IWPOM+PwyRcibXZZiFvNyDm+pviHTEkNRl | |
wgMBgLR6xBmz5dEel6utKKQVEPtD1m6N+z6hwUw+Nis35DCvmBX+hQSK+atGgjYH | |
ZKz0oqWUSuzHG+CxxcrePDTYJ4fdSyLPsQqaWoCZseDDwQJBANLey9r+juBEQe2N | |
MJoZTU1q/AoS5kY7OWQ1aF495I9fz87u9vx8BJh8djvmABwidUWREnd4vwwEIS3M | |
JtFGn+kCQQCCsvBvOXgVAlcR54/6ro6R42/0F3bZw0ZFVXvgRRjCZW6m4FyHq4AL | |
+gfAV0HERkMdlO1zBpBwkSURekDc9NvlAkAA3zj6k9jlZoLbR50u1fHy4wFdzUw0 | |
eCQ5nNrsoNbkHOJQGb7dtmmSc9lNUBsqAp53hi0MX2xy0UWN2e1DKkaZAkBi9stH | |
7OQYRGVZkVVcI8Cghu7GjN3ZlhsndMsPzkIpMFTQ1yI5OIsEhpZH9co+rFU1mQcT | |
Ce1kzwKacU+b/2xhAkEAovqzUMFB9YEbc8C9AzTej5F2ttyuKBDJJ+kvQeJP+PnW | |
4ovFI4Ee5UmTWI6k/Md9BM+MvEMWs3nPoF4MULHqNg== | |
-----END RSA PRIVATE KEY-----''' | |
] | |
// https://github.com/jenkinsci/digitalocean-plugin/blob/digitalocean-plugin-0.17/src/main/java/com/dubture/jenkins/digitalocean/SlaveTemplate.java | |
SlaveTemplate slaveTemplate = new SlaveTemplate( | |
slaveTemplateParameters.name, | |
slaveTemplateParameters.imageId, | |
slaveTemplateParameters.sizeId, | |
slaveTemplateParameters.regionId, | |
slaveTemplateParameters.username, | |
slaveTemplateParameters.workspacePath, | |
slaveTemplateParameters.sshPort, | |
slaveTemplateParameters.idleTerminationInMinutes, | |
slaveTemplateParameters.numExecutors, | |
slaveTemplateParameters.labelString, | |
slaveTemplateParameters.labellessJobsAllowed, | |
slaveTemplateParameters.instanceCap, | |
slaveTemplateParameters.installMonitoring, | |
slaveTemplateParameters.tags, | |
slaveTemplateParameters.userData, | |
slaveTemplateParameters.initScript | |
) | |
// https://github.com/jenkinsci/digitalocean-plugin/blob/digitalocean-plugin-0.17/src/main/java/com/dubture/jenkins/digitalocean/DigitalOceanCloud.java | |
DigitalOceanCloud digitalOceanCloud = new DigitalOceanCloud( | |
cloudParameters.name, | |
cloudParameters.authToken, | |
cloudParameters.privateKey, | |
cloudParameters.sshKeyId, | |
cloudParameters.instanceCap, | |
cloudParameters.usePrivateNetworking, | |
cloudParameters.timeoutMinutes, | |
cloudParameters.connectionRetryWait, | |
[slaveTemplate] | |
) | |
// get Jenkins instance | |
Jenkins jenkins = Jenkins.getInstance() | |
// add cloud configuration to Jenkins | |
jenkins.clouds.add(digitalOceanCloud) | |
// save current Jenkins state to disk | |
jenkins.save() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment