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/service.yaml
kubectl apply -f k8s/ingress.yaml kubectl apply -f k8s/ingress.yaml
if kubectl get deployment "${APP_NAME}" -n "${NAMESPACE}" >/dev/null 2>&1; then echo "🧱 应用/更新 deployment..."
echo "🔄 检测到现有 deployment执行滚动更新..."
kubectl set image deployment/${APP_NAME} ${APP_NAME}=${FULL_IMAGE} -n "${NAMESPACE}"
else
echo "🆕 首次部署,创建 deployment..."
kubectl apply -f k8s/deployment.yaml kubectl apply -f k8s/deployment.yaml
kubectl set image deployment/${APP_NAME} ${APP_NAME}=${FULL_IMAGE} -n "${NAMESPACE}" kubectl set image deployment/${APP_NAME} ${APP_NAME}=${FULL_IMAGE} -n "${NAMESPACE}"
fi
# 使用 latest 标签时,强制触发一次重启以拉取新镜像
kubectl rollout restart deployment/${APP_NAME} -n "${NAMESPACE}"
echo "⏳ 等待 rollout 完成..." 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 "✅ 部署完成"
echo "📌 版本: ${NEW_COMMIT_SHA} - ${NEW_COMMIT_MSG}" echo "📌 版本: ${NEW_COMMIT_SHA} - ${NEW_COMMIT_MSG}"

View File

@@ -22,8 +22,8 @@ spec:
spec: spec:
containers: containers:
- name: noval - name: noval
image: noval-app:latest image: crpi-om2xd9y8cmaizszf.cn-beijing.personal.cr.aliyuncs.com/test-namespace-gu/writing-reddot:latest
imagePullPolicy: Never imagePullPolicy: Always
ports: ports:
- containerPort: 8000 - containerPort: 8000
name: http name: http