-
Bug
-
Resolution: Unresolved
-
Critical
-
None
-
Jenkins 2.305
kubernetes-plugin: 1.30.1
slave-agent: 4.10
We are in the process of upgrading our Jenkins instance and plugins version.
We have encountered this bug for long-lasting pods (ex: idleMinutes: "30").
If there is no slave matching the agent label. Everything is running properly.
- A new agent pod is provided
- Closure is properly run on new agent pod.
Please note that the agent will properly run all pipeline that will be provided from this point.
- Jenkins properly find the already running agent (Yeah!)
- Closure is properly executed.
If we restart Jenkins (master), while the agent was already provided (matching label):
- Jenkins properly find the already running agent (Yeah!)
- PodTemplate is getting the exception:
java.lang.IllegalStateException: Not expecting pod template to be null at this point
Here is a pipeline example :
def slavePodForYou(steps, body){ String image = 'jenkins/jnlp-slave:latest' def kubeLabel = "slavenode" steps.podTemplate(name: "slavenode", label: kubeLabel, namespace: "default", containers: [ steps.containerTemplate( name: "jnlp", image: image, ttyEnabled: false, args: '${computer.jnlpmac} ${computer.name}', resourceRequestCpu: '100m', resourceRequestMemory: '250Mi' ) ], yaml: """ metadata: labels: job: jenkins """.stripIndent(), showRawYaml: false, idleMinutes: "30", ){ body.call(kubeLabel) } } slavePodForYou(this){ kubeLabel -> node(kubeLabel){ sh "echo 'chicken'" } }
Note: Everything was properly working with version: 1.25.1 of the Kubernetes plugin.
Note also: jnlp agent is properly rejoining the master, after the restart.
Note also: we are not using JCasc. All our pod definition are done in a shared library. Only the cloud cluster definition is done in the UI.