Плагин Дженкинса Кубернетеса подзаголовок не может отобразить рабочее пространство от мастера к модулю, вместо этого работает в конвейере

#jenkins #kubernetes

Вопрос:

Я объявил следующую подзаголовок для запуска сборки packer ami в моем проекте,

 podTemplate(label: "ami-builds", serviceAccount: "default", containers: [
    containerTemplate(name: 'packer-builder', image: 'anadimisra/python-hashicorp:1.0', ttyEnabled: true, command: 'sleep', args: '99d'),
  ]) {
    node('ami-builds') {
        stage('Build AMI') {
            container('packer-builder') {
                stage('Packer Build') {
                    sh '''
                    export AWS_ACCESS_KEY_ID="${AWS_SECRET_ACCESS_KEY}"
                    export AWS_SECRET_ACCESS_KEY="${AWS_SECRET_ACCESS_KEY}"
                    export AWS_SESSION_TOKEN=${AWS_SESSION_TOKEN}
                    packer init amis/registry/.
                    packer build -var="nifi_registry_version=${NIFI_RELEASE_VERSION}" 
                        -var="ami_version=${AMI_VERSION}"
                        -var="vpc_id=${VPC_ID}" 
                        -var="subnet_id=${SUBNET_ID}" amis/registry/.
                    '''
                }
            }
        }

    }
}
 

Когда я запускаю сборку Дженкинса, она завершается неудачей на этом этапе packer init . , потому что упаковщик не может найти никаких hcl файлов, когда я наблюдаю за блоками из kubectl, переводя в режим сна в блоке sh, я замечаю, что рабочее пространство модуля пустое; в то время как на master у нас есть ветка git, проверенная в /var/jenkins_home/workspace .....

Следовательно, приходим к выводу, что отображение каким-то образом не происходит. Но когда я изменяю этот синтаксис на конвейер с агентом, он работает:

 pipeline {
  agent {
    kubernetes {
      label 'ami-builds'
      yamlFile 'amis/registry/PythonHashicorpPod.yaml'
    }
  }
  stages {
    stage('Packer Build') {
        steps {
            container('packer-builder') {
                sh '''
                export AWS_ACCESS_KEY_ID="${AWS_SECRET_ACCESS_KEY}"
                export AWS_SECRET_ACCESS_KEY="${AWS_SECRET_ACCESS_KEY}"
                export AWS_SESSION_TOKEN=${AWS_SESSION_TOKEN}
                packer init amis/registry/.
                packer build -var="nifi_registry_version=${NIFI_RELEASE_VERSION}" 
                    -var="ami_version=${AMI_VERSION}"
                    -var="vpc_id=${VPC_ID}" 
                    -var="subnet_id=${SUBNET_ID}" amis/registry/.
                '''
            }        
        }
    }
  }
}
 

и стручок ЯМЛ

 apiVersion: v1
kind: Pod
spec:
  containers:
  - name: packer-builder
    image: anadimisra/python-hashicorp:1.1
    tty: true
 

In both cases the Job type is Pipeline and the build step is Pipeline Scm Script .

Makes me wonder do we use podTemplates and pipelines for inherently different purposes?