|
|
@@ -45,47 +45,37 @@ pipeline {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- stage('🔐 配置 Ingress 控制器') {
|
|
|
- when {
|
|
|
- expression { params.DOMAIN?.trim() }
|
|
|
- }
|
|
|
- steps {
|
|
|
- script {
|
|
|
- sh """
|
|
|
- export KUBECONFIG=${KUBECONFIG_PATH}
|
|
|
-
|
|
|
- echo ">>> 配置 Ingress 控制器为 LoadBalancer 类型..."
|
|
|
-
|
|
|
- # 检查 Ingress 控制器 Service 类型
|
|
|
- INGRESS_SERVICE_TYPE=\$(kubectl get svc ingress-nginx-controller -n ingress-nginx -o jsonpath='{.spec.type}')
|
|
|
- echo ">>> 当前 Ingress 控制器类型: \${INGRESS_SERVICE_TYPE}"
|
|
|
-
|
|
|
- if [ "\${INGRESS_SERVICE_TYPE}" != "LoadBalancer" ]; then
|
|
|
- echo ">>> 修改 Ingress 控制器为 LoadBalancer 类型..."
|
|
|
- kubectl patch svc ingress-nginx-controller -n ingress-nginx -p '{"spec":{"type":"LoadBalancer"}}'
|
|
|
-
|
|
|
- echo ">>> 等待 LoadBalancer 分配外部 IP..."
|
|
|
- kubectl wait --for=condition=Available --timeout=300s svc/ingress-nginx-controller -n ingress-nginx
|
|
|
-
|
|
|
- # 获取外部 IP
|
|
|
- EXTERNAL_IP=\$(kubectl get svc ingress-nginx-controller -n ingress-nginx -o jsonpath='{.status.loadBalancer.ingress[0].ip}')
|
|
|
- if [ -n "\${EXTERNAL_IP}" ]; then
|
|
|
- echo "✅ Ingress 控制器获得外部 IP: \${EXTERNAL_IP}"
|
|
|
- echo ">>> 请将域名 ${params.DOMAIN} 解析到: \${EXTERNAL_IP}"
|
|
|
- else
|
|
|
- echo "⚠️ LoadBalancer 尚未分配外部 IP,请稍后检查"
|
|
|
- fi
|
|
|
- else
|
|
|
- echo "✅ Ingress 控制器已经是 LoadBalancer 类型"
|
|
|
- EXTERNAL_IP=\$(kubectl get svc ingress-nginx-controller -n ingress-nginx -o jsonpath='{.status.loadBalancer.ingress[0].ip}')
|
|
|
- if [ -n "\${EXTERNAL_IP}" ]; then
|
|
|
- echo ">>> 当前外部 IP: \${EXTERNAL_IP}"
|
|
|
- fi
|
|
|
- fi
|
|
|
- """
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
+ stage('🔐 配置 Ingress 控制器') {
|
|
|
+ when {
|
|
|
+ expression { params.DOMAIN?.trim() }
|
|
|
+ }
|
|
|
+ steps {
|
|
|
+ script {
|
|
|
+ sh """
|
|
|
+ export KUBECONFIG=${KUBECONFIG_PATH}
|
|
|
+
|
|
|
+ echo ">>> 配置 Ingress 控制器为 LoadBalancer 类型..."
|
|
|
+
|
|
|
+ # 检查 Ingress 控制器 Service 类型
|
|
|
+ INGRESS_SERVICE_TYPE=\$(kubectl get svc ingress-nginx-controller -n ingress-nginx -o jsonpath='{.spec.type}')
|
|
|
+ echo ">>> 当前 Ingress 控制器类型: \${INGRESS_SERVICE_TYPE}"
|
|
|
+
|
|
|
+ if [ "\${INGRESS_SERVICE_TYPE}" != "LoadBalancer" ]; then
|
|
|
+ echo ">>> 修改 Ingress 控制器为 LoadBalancer 类型..."
|
|
|
+ kubectl patch svc ingress-nginx-controller -n ingress-nginx -p '{"spec":{"type":"LoadBalancer"}}'
|
|
|
+ echo "✅ Ingress 控制器已修改为 LoadBalancer 类型"
|
|
|
+ echo "⚠️ 注意:外部 IP 分配可能需要一些时间,请稍后检查"
|
|
|
+ else
|
|
|
+ echo "✅ Ingress 控制器已经是 LoadBalancer 类型"
|
|
|
+ fi
|
|
|
+
|
|
|
+ # 显示当前状态
|
|
|
+ echo ">>> 当前 Ingress 控制器状态:"
|
|
|
+ kubectl get svc ingress-nginx-controller -n ingress-nginx
|
|
|
+ """
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
stage('�� 验证 TLS Secret') {
|
|
|
when {
|