Я пытаюсь запустить несколько сквозных тестов параллельно и на РАЗЛИЧНЫХ блоках kubernetes в декларативном конвейере jenkins, однако, похоже, что jenkins пытается запустить параллельные этапы на ЖЕ kubernetes pod. Это приводит к блокировкам базы данных , поскольку оба процесса пытаются вставить / усечь / обновить / запросить одни и те же таблицы. Есть ли способ, которым я могу раскрутить разные капсулы для каждого из параллельных этапов?
Конфигурация плагина kubernetes:
agent {
kubernetes {
label 'my-label'
defaultContainer 'jnlp'
yaml """
apiVersion: v1
kind: Pod
metadata:
name: dind
spec:
containers:
- name: < default container >
image: < image >
securityContext:
privileged: true
fsGroup: 1000
command:
- cat
tty: true
volumeMounts:
- name: jenkins-bundle-gems
mountPath: /usr/local/bundle
- name: <tests-container-name>
image: < image >
securityContext:
privileged: true
fsGroup: 1000
volumeMounts:
- name: jenkins-bundle-gems
mountPath: /usr/local/bundle
command:
- cat
tty: true
"""
}
}
Параллельный этап:
stage('Test'){
parallel {
stage("Branch 1") {
steps {
container('<tests-container-name>') {
sh "jenkins/scripts/initdb.sh"
sh 'bundle exec rspec --exclude-pattern "spec/features/*_spec.rb" spec'
}
}
}
stage("Branch 2") {
steps {
container('<tests-container-name>') {
sh "jenkins/scripts/initdb.sh"
sh "bundle exec rspec `jenkins/scripts/split_features.sh 0`"
}
}
}
}
}
ОЖИДАНИЕ: Я бы хотел, чтобы Дженкинс раскрутил две разные капсулы для каждой из параллельных ступеней. Это позволило бы мне использовать разные базы данных для каждого из тестов.
АКТУАЛЬНЫЙ РЕЗУЛЬТАТ: Дженкинс запускает оба этапа одновременно на одном модуле.