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 jenkinsci-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/jenkinsci-users/CAESUf_CK-jSXU9NfWkPJ8J3OX5zWrsB8XeaLOHM90790AN0Osw%40mail.gmail.com.

Reply via email to