pipeline { agent any environment { DOCKERHUB_USER = 'vipin2025devops' IMAGE_NAME = 'myapp' IMAGE_TAG = "latest" K8S_DEPLOYMENT = 'k8s/deployment.yaml' K8S_SERVICE = 'k8s/service.yaml' } stages { stage('Checkout Code') { steps { checkout scm } } stage('Build Docker Image') { steps { 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 { powershell """ kubectl apply -f ${K8S_DEPLOYMENT} kubectl apply -f ${K8S_SERVICE} """ } } stage('Verify Deployment') { steps { powershell """ kubectl get pods -o wide """ } } } }