Я пытаюсь запустить Jenkins Slave, используя podTemplate, но все, что он делает, это зависает в Jenkins:
Still waiting to schedule task
Waiting for next available executor
Я создал функцию для своих podTemplates (включая JNLP), как указано здесь здесь :
package com.test.utils.PodTemplates
public void jnlpTemplate(body) {
podTemplate(
containers: [containerTemplate(name: 'jnlp', image: 'jenkinsci/jnlp-slave:3.10-1-alpine', args: '${computer.jnlpmac} ${computer.name}')]) {
body.call()
}
}
public void dockerTemplate(body) {
...
}
return this
Мой Jenkinsfile
имеет:
import com.test.utils.PodTemplates
label = "jenkins-${UUID.randomUUID().toString()}"
slaveTemplates = new PodTemplates()
slaveTemplates.jnlpTemplate {
node(label) {
stage('Run shell') {
sh 'echo hello world'
}
}
}
Ожидается запуск нового подчиненного Jenkins, но он просто зависает и никогда не развертывает подчиненный модуль.
Если изменить Jenkinsfile на:
import com.test.utils.PodTemplates
label = "worker-${UUID.randomUUID().toString()}"
podTemplate(label: label,
containers: [containerTemplate(name: 'jnlp',
image: 'jenkinsci/jnlp-slave:3.10-1-alpine',
args: '${computer.jnlpmac} ${computer.name}')])
{
slaveTemplates = new PodTemplates()
slaveTemplates.jnlpTemplate {
node(label) {
stage('Run shell') {
sh 'echo hello world'
}
}
}
}
Он развертывает модуль и успешно отображает hello world
.