Jira issue created: https://issues.jenkins-ci.org/browse/JENKINS-64047

Le mar. 27 oct. 2020 à 11:17, Arnaud bourree <[email protected]> a
écrit :

> 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_D0L%2Bnc%3DSxE5vCyWTjhU7itSkEKada79F0i47PDk0e6cA%40mail.gmail.com.

Reply via email to