Я следую приведенному ниже ответу, чтобы добавить Облака ECS в Jenkins для рабов
Настройка плагина slave для amazon-ecs с использованием Groovy на Jenkins
Плагин был изменен, и я нашел следующие JavaDocs
https://javadoc.jenkins.io/plugin/amazon-ecs/com/cloudbees/jenkins/plugins/amazonecs/ECSCloud.html
https://javadoc.jenkins.io/plugin/amazon-ecs/com/cloudbees/jenkins/plugins/amazonecs/ECSTaskTemplate.html
Мне удалось изменить ECSTaskTemplate для добавления более новых переменных, но я продолжаю получать сообщение об ошибке в ECSCloud
import java.util.Arrays
import java.util.logging.Logger
Logger logger = Logger.getLogger("ecs-cluster")
logger.info("Loading Jenkins")
import jenkins.model.*
instance = Jenkins.getInstance()
import com.cloudbees.jenkins.plugins.amazonecs.ECSTaskTemplate.MountPointEntry
def mounts = Arrays.asList(
new MountPointEntry(
name="docker",
sourcePath="/var/run/docker.sock",
containerPath="/var/run/docker.sock",
readOnly=false),
new MountPointEntry(
name="jenkins",
sourcePath="/home/jenkins",
containerPath="/home/jenkins",
readOnly=false),
)
logger.info("Creating template")
import com.cloudbees.jenkins.plugins.amazonecs.ECSTaskTemplate
def ecsTemplate = new ECSTaskTemplate(
templateName="jnlp-slave-with-docker",
label="ecs-with-docker",
taskDefinitionOverride='',
image="jnlp-slave-with-docker:latest",
repositoryCredentials=null,
launchType="EC2",
networkMode="default",
remoteFSRoot=null,
memory=2048,
memoryReservation=2048,
cpu=512,
subnets=null,
securityGroups=null,
assignPublicIp=false,
privileged=false,
containerUser=null,
logDriverOptions=null,
environments=null,
extraHosts=null,
mountPoints=mounts,
portMappings=null
)
logger.info("Retrieving ecs cloud config by descriptor")
import com.cloudbees.jenkins.plugins.amazonecs.ECSCloud
ecsCloud = new ECSCloud(
name="name",
templates=Arrays.asList(ecsTemplate),
credentialsId=null,
cluster="arn:aws:ecs:us-east-1:123456789:cluster/ecs-jenkins-slave",
regionName="us-east-1",
jenkinsUrl="https://my-jenkins.com",
slaveTimoutInSeconds=60,
retentionTimeout=5
)
logger.info("Gettings clouds")
def clouds = instance.clouds
clouds.add(ecsCloud)
logger.info("Saving jenkins")
instance.save()
Ошибка как показано ниже
groovy.lang.GroovyRuntimeException: Could not find matching constructor for: com.cloudbees.jenkins.plugins.amazonecs.ECSCloud(java.lang.String, java.util.Arrays$ArrayList, null, java.lang.String, java.lang.String, java.lang.String, java.lang.Integer, java.lang.Integer)