Hello,
My Jenkins is running in a kubernetes cluster and all pipelines run in pod.
I'd like to limit the number of pipelines running in parallel: I'd like an
executor limitation like we have when we were running all pipelines in
master.
I'm using lockable resources plugin.
My expecting implementation was something like:
pipeline {
agent {
kubernetes {
label 'test-lock'
yaml libraryResource('my-pod.yaml')
}
}
options {
lock(label: 'forge-executor', quantity: 1, variable:
'forgeExecutor')
}
stages {
stage('echo') {
steps {
echo "OK"
script {
def outcome = input message: 'Please select',
parameters: [
[name: 'myChoice', description: 'My choice',
choices: 'Choice 1\nChoice 2\nChoice 3', $class:
'ChoiceParameterDefinition']
]
}
}
}
}
}
OK, the pipeline doesn't execute any stages if it cannot lock, but
Kubernetes resources are used.
I try to add when block with beforeAgent option in, but when block is only
allowed at stage level.
So I found a workaround: don't set any main agent and have one top stage
with when condition:
pipeline {
agent none
stages {
stage('lock') {
agent {
kubernetes {
label 'test-lock'
yaml libraryResource('my-pod.yaml')
}
}
when {
beforeAgent true
equals(expected: true, actual:true)
}
options {
lock(label: 'forge-executor', quantity: 1, variable:
'forgeExecutor')
}
stages {
stage('echo') {
steps {
echo "OK"
script {
def outcome = input message: 'Please select',
parameters: [
[name: 'myChoice', description: 'My
choice', choices: 'Choice 1\nChoice 2\nChoice 3', $class:
'ChoiceParameterDefinition']
]
}
}
}
}
}
}
}
Where will I submit the issue? In lock plugin? in kubernets plugin? or in a
core project?
Regards,
Arnaud
--
You received this message because you are subscribed to the Google Groups
"Jenkins Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/jenkinsci-users/CAESUf_CK-jSXU9NfWkPJ8J3OX5zWrsB8XeaLOHM90790AN0Osw%40mail.gmail.com.