pipeline { agent any environment { REGISTRY = "10.77.77.41:5000/slalog" IMAGE_NAME = "sla-separacao" IMAGE_TAG = "${BUILD_NUMBER}" K8S_DIR = "k8s" K8S_NAMESPACE = "ci-cd" } stages { stage('Checkout') { steps { checkout scm } } stage('Build Docker Image') { steps { script { sh """ docker build -t ${REGISTRY}/${IMAGE_NAME}:${IMAGE_TAG} . """ } } } stage('Push Docker Image') { steps { script { sh """ docker push ${REGISTRY}/${IMAGE_NAME}:${IMAGE_TAG} """ } } } stage('Deploy to Kubernetes') { steps { script { sh """ export KUBECONFIG=/var/lib/jenkins/.kube/config sed -i 's|image: .*sla-separacao:.*|image: ${REGISTRY}/${IMAGE_NAME}:${IMAGE_TAG}|' k8s/deployment.yaml kubectl apply -n ${K8S_NAMESPACE} -f k8s/deployment.yaml kubectl apply -n ${K8S_NAMESPACE} -f k8s/service.yaml kubectl apply -n ${K8S_NAMESPACE} -f k8s/hpa.yaml git checkout -- k8s/deployment.yaml kubectl rollout status deployment/sla-separacao-deployment -n ${K8S_NAMESPACE} --timeout=180s """ } } } } post { success { echo "Deploy realizado com sucesso." } failure { echo "Falha no pipeline." } } }