Ведомый из podTemplate не развертывает модуль - PullRequest
0 голосов
/ 04 октября 2019

Я пытаюсь запустить 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.

...