|
@@ -74,7 +74,7 @@ pipeline {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- stage('📦 Kubernetes 部署') {
|
|
|
+ stage('�� Kubernetes 部署') {
|
|
|
steps {
|
|
|
script {
|
|
|
def domain = params.DOMAIN.trim()
|
|
@@ -106,7 +106,13 @@ spec:
|
|
|
export KUBECONFIG=${KUBECONFIG_PATH}
|
|
|
kubectl get ns ${params.NAMESPACE} || kubectl create ns ${params.NAMESPACE}
|
|
|
|
|
|
- kubectl apply -n ${params.NAMESPACE} -f - <<EOF
|
|
|
+ # 检查Deployment是否存在
|
|
|
+ if kubectl get deployment ${PROJECT_NAME} -n ${params.NAMESPACE} >/dev/null 2>&1; then
|
|
|
+ echo ">>> Deployment已存在,更新镜像..."
|
|
|
+ kubectl set image deployment/${PROJECT_NAME} ${PROJECT_NAME}=${IMAGE_TAG} -n ${params.NAMESPACE}
|
|
|
+ else
|
|
|
+ echo ">>> Deployment不存在,创建新的Deployment..."
|
|
|
+ kubectl apply -n ${params.NAMESPACE} -f - <<EOF
|
|
|
apiVersion: apps/v1
|
|
|
kind: Deployment
|
|
|
metadata:
|
|
@@ -144,6 +150,7 @@ spec:
|
|
|
nodePort: 30088
|
|
|
${ingressBlock}
|
|
|
EOF
|
|
|
+ fi
|
|
|
"""
|
|
|
|
|
|
if (domain) {
|
|
@@ -171,7 +178,7 @@ EOF
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- stage('🧹 清理悬空镜像 <none>') {
|
|
|
+ stage('�� 清理悬空镜像 <none>') {
|
|
|
steps {
|
|
|
script {
|
|
|
sh """
|
|
@@ -182,7 +189,7 @@ EOF
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- stage('🧹 触发 Harbor 镜像保留策略') {
|
|
|
+ stage('�� 触发 Harbor 镜像保留策略') {
|
|
|
steps {
|
|
|
script {
|
|
|
sh """
|
|
@@ -197,7 +204,7 @@ EOF
|
|
|
|
|
|
post {
|
|
|
success {
|
|
|
- echo "✅ 构建 & 部署成功 🎉"
|
|
|
+ echo "✅ 构建 & 部署成功 ��"
|
|
|
}
|
|
|
failure {
|
|
|
echo "❌ 构建或部署失败,请检查日志"
|
|
@@ -206,4 +213,4 @@ EOF
|
|
|
cleanWs()
|
|
|
}
|
|
|
}
|
|
|
-}
|
|
|
+}
|