podTemplate(containers: [ containerTemplate(name: 'kubectl', image: 'lachlanevenson/k8s-kubectl:v1.8.8', command: 'cat', ttyEnabled: true), containerTemplate(name: 'docker', image: 'docker:latest', command: 'cat', ttyEnabled: true), ]) { node(POD_LABEL) { container('docker') { stage('Build stage image') { print('test in build') sh 'ls -la' sh """ docker build -t core.harbor/kubernetes/dashboard-frontend:stage -f Dockerfile.stage . && docker push core.harbor/kubernetes/dashboard-frontend:stage """ } stage('Push stage image to Harbor') { withCredentials([file(credentialsId: 'updated_harbor_ca', variable: 'HARBOR_CA'), usernamePassword(credentialsId: 'harbor_creds',usernameVariable: 'USERNAME', passwordVariable: 'PASSWORD')]) { sh """ docker login -u ${USERNAME} -p ${PASSWORD} docker push core.harbor/kubernetes/dashboard-frontend:stage """ } } } container('kubectl') { stage('Deploy new image') { withKubeConfig([credentialsId: 'jenkins-deployer-token', serverUrl: 'https://10.61.151.220:6443']) { sh 'k patch deployment -n frontend -p "{\"spec\":{\"template\":{\"metadata\":{\"annotations\":{\"date\":\"`date +'%s'`\"}}}}}"' } } } } }