Я хотел бы создать конвейер CICD внутри контейнера POD в централизованном кластере Kubernetes.
Структура кода CICD: -
- ansibleroles
- Instance creation role
- Application deployment role
.
.
- Makefile
- Jenkinsfile
.
.
Jenkinsfile ссылается на make-файл, а make-файл - на определенную c ansible папку ролей, как определено.
Найдите часть Jenkinsfile ниже:
podTemplate(label: label, containers: [
containerTemplate(name: 'python', image: 'python:3.7', command: 'cat', ttyEnabled: true)
],
volumes: [
hostPathVolume(mountPath: '/opt/tmp', hostPath: '/tmp/jenkins/.python')
]) {
node(label) {
checkout scm
stage('Test') {
try {
container('python') {
sh """
python3 -m pip install ansible
python3 -m pip install make
python3 -m pip install awscli
make instance-installation
"""
}
}
catch (exc) {
println "Failed to test - ${currentBuild.fullDisplayName}"
throw(exc)
}
Все, что я помещаю в контейнер python, будет работать, но как это сделать для большего кода. У меня есть 6-7 разных ansible ролей, которые я хотел бы заставить работать внутри контейнера, писать все вместе внутри Jenkinsfile не представляется возможным. Есть ли способ создать всю структуру cicd внутри POD или глобализовать значения контейнера вне контейнера.