From d08eeea7ae4e66ef131f6334f6d12ef243357a4f Mon Sep 17 00:00:00 2001 From: VIPIN Date: Fri, 12 Sep 2025 09:26:28 +0530 Subject: [PATCH] Updated Jenkinsfile for Kubernetes deployment --- Jenkinsfile | 58 ++++++++++++++++++++++++++---------------------- kubeconfig.yaml | Bin 0 -> 1728 bytes 2 files changed, 32 insertions(+), 26 deletions(-) create mode 100644 kubeconfig.yaml diff --git a/Jenkinsfile b/Jenkinsfile index 01b0709..c8ec998 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -2,48 +2,54 @@ pipeline { agent any environment { - DOCKERHUB_REPO = "vipin2025devops/myapp" - IMAGE_TAG = "${env.BUILD_NUMBER}" + DOCKERHUB_USER = 'vipin2025devops' + IMAGE_NAME = 'myapp' + IMAGE_TAG = "latest" + K8S_DEPLOYMENT = 'k8s/deployment.yaml' + K8S_SERVICE = 'k8s/service.yaml' } stages { - stage('Checkout') { + stage('Checkout Code') { steps { checkout scm } } - stage('Build & Push Image') { + stage('Build Docker Image') { steps { - script { - docker.withRegistry('https://index.docker.io/v1/', 'dockerhub-creds') { - def img = docker.build("${DOCKERHUB_REPO}:${IMAGE_TAG}") - img.push() - // cleanup local image to save space - bat "docker image rm ${DOCKERHUB_REPO}:${IMAGE_TAG} || exit 0" - } + powershell """ + docker build -t ${DOCKERHUB_USER}/${IMAGE_NAME}:${IMAGE_TAG} . + """ + } + } + + stage('Push Image to Docker Hub') { + steps { + withCredentials([usernamePassword(credentialsId: 'docker-hub-credentials', usernameVariable: 'DOCKER_USER', passwordVariable: 'DOCKER_PASS')]) { + powershell """ + echo $env:DOCKER_PASS | docker login -u $env:DOCKER_USER --password-stdin + docker push ${DOCKERHUB_USER}/${IMAGE_NAME}:${IMAGE_TAG} + """ } } } stage('Deploy to Kubernetes') { steps { - withCredentials([file(credentialsId: 'kubeconfig', variable: 'KUBECONFIG')]) { - script { - bat """ - powershell -Command "(Get-Content k8s/deployment.yaml) -replace 'IMAGE_PLACEHOLDER', '${DOCKERHUB_REPO}:${IMAGE_TAG}' | Set-Content k8s/deployment-to-apply.yaml" - kubectl --kubeconfig=%KUBECONFIG% apply -f k8s/deployment-to-apply.yaml - kubectl --kubeconfig=%KUBECONFIG% apply -f k8s/service.yaml - """ - } - } + powershell """ + kubectl apply -f ${K8S_DEPLOYMENT} + kubectl apply -f ${K8S_SERVICE} + """ + } + } + + stage('Verify Deployment') { + steps { + powershell """ + kubectl get pods -o wide + """ } } } - - post { - always { - echo "Pipeline finished: ${currentBuild.fullDisplayName}" - } - } } diff --git a/kubeconfig.yaml b/kubeconfig.yaml new file mode 100644 index 0000000000000000000000000000000000000000..fe19f6d95e3a56a3a42d46ef61a9b607b3fa76a7 GIT binary patch literal 1728 zcmeHHNlwE+5Uev2f5-!{$)W_vH7CvlPL@zG*%ZgIoJAnS*MX{@4DymF3THI(*zW1> z>ZPW?zedO~#}mfLvF6tbDf(z&hZZhzffxz4JlX6u`X&viQ9g0<2IX3@X>aIn!Y9Va z>;t~H{F)IZr+kBV!y0gp@JJLFMa0tt3)6`ZVoBYU&w|!3)QQYv$UUbIMd@+Jcr&E* zHuatSYj9&oLJRq?N^~geu^v9+B5E~T>BK}$t()qp z@1tX0@ub|la{PxX>G4&qIuksOujM~qPVuGKi^F{JonDh8BlguXOEShNKB}c%lmZ{ORfDjWSCthp0AfG+`5-yXqa9w8is)6KVYCS$=*r I4oyt>0Z0=KNB{r; literal 0 HcmV?d00001