def serverk8s = "https://X.X.X.X:6443"
def jenkinssvc = "jenkins-external-service"
podTemplate(label: 'builder',
imagePullSecrets: ['mypull-secret'],
containers: [
containerTemplate(name: 'jnlp', image: 'jenkins/inbound-agent:3206.vb_15dcf73f6a_9-5-jdk17', args: '${computer.jnlpmac} ${computer.name}',
envVars: [
envVar(key: 'JENKINS_URL', value: "http://"+jenkinssvc+":8080"),
envVar(key: 'JENKINS_TUNNEL', value: jenkinssvc+":50000")
]),
//containerTemplate(name: 'kaniko', image: 'gcr.io/kaniko-project/executor:debug', command: 'cat', ttyEnabled: true),
containerTemplate(name: 'git', image: 'alpine/git', command: 'cat', ttyEnabled: true),
containerTemplate(name: 'kubectl', image: 'visualon/kubectl:1.19.3', ttyEnabled: true, command: 'cat', envVars: [
envVar(key: 'KUBECONFIG', value: '/tmp/admin.conf')
])
],
yaml: '''
apiVersion: v1
kind: Pod
metadata:
labels:
some-label: some-label
spec:
containers:
- name: kaniko
image: gcr.io/kaniko-project/executor:debug
command:
- /busybox/cat
tty: true
volumeMounts:
- name: kaniko-secret
mountPath: /kaniko/.docker
restartPolicy: Never
volumes:
- name: kaniko-secret
secret:
secretName: secret-harbor
items:
- key: .dockerconfigjson
path: config.json
'''
) {
node('builder') {
parameters {
//string(name: 'GIT_REPO', defaultValue: 'https://gitlab.com/mon_projet.git', description: 'URL du repo GitLab')
//string(name: 'GIT_BRANCH', defaultValue: 'main', description: 'Branche Git à builder')
string(name: 'IMAGE_NAME', defaultValue: 'harbor.mondomaine.com/projet/image:latest', description: 'Nom de l’image Docker à push')
}
stage('Check connection') {
container('jnlp') {
script {
container('kubectl'){
withCredentials([string(credentialsId: 'jenkins-agents', variable: 'token')]) {
sh """
kubectl get pods --server="""+serverk8s+""" --insecure-skip-tls-verify="true" --token=${token}
"""
}
}
}
}
}
stage('Cloner le repo') {
container('git') {
sh 'git clone -b main https://github.com/kubernetes-learning-projects/kube-petclinc-app.git . '
}
}
stage('Build and Push Docker Image') {
container('kaniko') {
withCredentials([usernamePassword(credentialsId: 'docker-hub-credentials', usernameVariable: 'DOCKER_HUB_USR', passwordVariable: 'DOCKER_HUB_PSW')]) {
script {
sh '''
/kaniko/executor --dockerfile="/Dockerfile" --skip-tls-verify --context `pwd` --destination harbor.allopsconnect.com/imagesdocker/build:1.0.0
'''
}
}
}
}
}
}