Как запустить конвейер CICD с Jenkinsfile, Ansible ролей внутри контейнера POD - PullRequest
0 голосов
/ 29 мая 2020

Я хотел бы создать конвейер 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 или глобализовать значения контейнера вне контейнера.

...