fix(deploy): align deployment image/pullPolicy with cloud registry and improve rollout diagnostics
All checks were successful
Deploy Noval to K3s / deploy (push) Successful in 2m35s

This commit is contained in:
2026-03-22 18:00:25 +08:00
parent 1c9b482df3
commit 7d5f4640b3
2 changed files with 15 additions and 11 deletions

View File

@@ -72,17 +72,21 @@ jobs:
kubectl apply -f k8s/service.yaml
kubectl apply -f k8s/ingress.yaml
if kubectl get deployment "${APP_NAME}" -n "${NAMESPACE}" >/dev/null 2>&1; then
echo "🔄 检测到现有 deployment执行滚动更新..."
kubectl set image deployment/${APP_NAME} ${APP_NAME}=${FULL_IMAGE} -n "${NAMESPACE}"
else
echo "🆕 首次部署,创建 deployment..."
kubectl apply -f k8s/deployment.yaml
kubectl set image deployment/${APP_NAME} ${APP_NAME}=${FULL_IMAGE} -n "${NAMESPACE}"
fi
echo "🧱 应用/更新 deployment..."
kubectl apply -f k8s/deployment.yaml
kubectl set image deployment/${APP_NAME} ${APP_NAME}=${FULL_IMAGE} -n "${NAMESPACE}"
# 使用 latest 标签时,强制触发一次重启以拉取新镜像
kubectl rollout restart deployment/${APP_NAME} -n "${NAMESPACE}"
echo "⏳ 等待 rollout 完成..."
kubectl rollout status deployment/${APP_NAME} -n "${NAMESPACE}" --timeout=300s
if ! kubectl rollout status deployment/${APP_NAME} -n "${NAMESPACE}" --timeout=300s; then
echo "❌ rollout 超时,输出诊断信息"
kubectl get pods -n "${NAMESPACE}" -l app=${APP_NAME} -o wide || true
kubectl describe deployment/${APP_NAME} -n "${NAMESPACE}" || true
kubectl logs -n "${NAMESPACE}" deploy/${APP_NAME} --all-containers=true --tail=200 || true
exit 1
fi
echo "✅ 部署完成"
echo "📌 版本: ${NEW_COMMIT_SHA} - ${NEW_COMMIT_MSG}"