fix:统一使用k8s的namespace
All checks were successful
Build NGINX on Ubuntu / build-and-deploy (push) Successful in 58s
All checks were successful
Build NGINX on Ubuntu / build-and-deploy (push) Successful in 58s
This commit is contained in:
parent
73b55440f8
commit
de93ff12a9
@ -254,7 +254,7 @@ jobs:
|
||||
export HARBOR_USERNAME="${{ secrets.HARBOR_USERNAME }}"
|
||||
export HARBOR_PASSWORD="${{ secrets.HARBOR_PASSWORD }}"
|
||||
export NGINX_IMAGE_TAG="${{ github.sha }}"
|
||||
export NAMESPACE="${{ vars.K8S_NAMESPACE || 'app-nginx' }}"
|
||||
export K8S_NAMESPACE="${{ vars.K8S_NAMESPACE || 'app-nginx' }}" # 修改变量名
|
||||
|
||||
# 进入 k8s 目录
|
||||
cd k8s
|
||||
|
@ -126,9 +126,10 @@ update_deployment_image() {
|
||||
# 备份原文件
|
||||
cp "$deployment_file" "${deployment_file}.bak"
|
||||
|
||||
# 使用 sed 替换环境变量,替换 $HARBOR_REGISTRY 和 $NGINX_IMAGE_TAG
|
||||
# 使用 sed 替换环境变量
|
||||
sed -i.tmp "s|\$HARBOR_REGISTRY|${HARBOR_REGISTRY}|g" "$deployment_file"
|
||||
sed -i.tmp "s|\$NGINX_IMAGE_TAG|${image_tag}|g" "$deployment_file"
|
||||
sed -i.tmp "s|\$NAMESPACE|${DEPLOY_NAMESPACE}|g" "$deployment_file" # 添加命名空间替换
|
||||
|
||||
# 如果有其他环境变量需要替换,可以继续添加类似的 sed 命令
|
||||
# 例如:sed -i.tmp "s|\$NAMESPACE|${NAMESPACE}|g" "$deployment_file"
|
||||
@ -161,12 +162,32 @@ wait_for_deployment() {
|
||||
|
||||
print_info "等待部署就绪..."
|
||||
|
||||
# 添加初始检查和调试信息
|
||||
if ! kubectl get deployment "$deployment_name" -n "$namespace" &> /dev/null; then
|
||||
print_error "找不到部署 $deployment_name"
|
||||
print_info "检查部署状态..."
|
||||
kubectl get deployments -n "$namespace" -o wide
|
||||
print_info "检查Pod状态..."
|
||||
kubectl get pods -n "$namespace" -o wide
|
||||
print_info "检查最近事件..."
|
||||
kubectl get events -n "$namespace" --sort-by='.lastTimestamp'
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if kubectl wait --for=condition=available deployment/"$deployment_name" \
|
||||
--namespace="$namespace" --timeout="${timeout}s"; then
|
||||
print_success "部署已就绪"
|
||||
else
|
||||
print_error "部署超时,请检查部署状态"
|
||||
# 添加更详细的错误信息
|
||||
print_info "Pod状态:"
|
||||
kubectl get pods -n "$namespace" -l app=nginx -o wide
|
||||
print_info "描述deployment:"
|
||||
kubectl describe deployment "$deployment_name" -n "$namespace"
|
||||
print_info "最近的事件:"
|
||||
kubectl get events -n "$namespace" --sort-by='.lastTimestamp' | tail -n 20
|
||||
print_info "Pod日志:"
|
||||
kubectl logs -n "$namespace" -l app=nginx --tail=50
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
@ -234,8 +255,14 @@ get_access_info() {
|
||||
main() {
|
||||
print_info "开始 NGINX Kubernetes 自动部署..."
|
||||
|
||||
# 设置默认值
|
||||
local namespace=${NAMESPACE:-default}
|
||||
# 修改命名空间处理逻辑,优先使用 CI 变量
|
||||
local namespace="app-nginx" # 默认值
|
||||
if [[ -n "${K8S_NAMESPACE}" ]]; then
|
||||
namespace="${K8S_NAMESPACE}" # 使用 GitHub Actions 变量
|
||||
fi
|
||||
|
||||
print_info "使用命名空间: $namespace"
|
||||
|
||||
local deployment_file=${DEPLOYMENT_FILE:-./nginx-deployment.yaml}
|
||||
local image_tag=${NGINX_IMAGE_TAG:-latest}
|
||||
|
||||
@ -245,6 +272,8 @@ main() {
|
||||
create_namespace "$namespace"
|
||||
create_harbor_secret "$namespace"
|
||||
|
||||
# 添加命名空间环境变量替换
|
||||
export DEPLOY_NAMESPACE="$namespace"
|
||||
update_deployment_image "$deployment_file" "$image_tag"
|
||||
apply_k8s_config "$deployment_file"
|
||||
wait_for_deployment "$namespace"
|
||||
|
@ -17,7 +17,7 @@ apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: nginx-config
|
||||
namespace: default
|
||||
namespace: $NAMESPACE # 使用变量
|
||||
data:
|
||||
nginx.conf: |
|
||||
# 由于以非root用户运行,user指令会被忽略,可以移除
|
||||
@ -182,7 +182,7 @@ apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: nginx-deployment
|
||||
namespace: default
|
||||
namespace: $NAMESPACE # 使用变量
|
||||
labels:
|
||||
app: nginx
|
||||
version: v1
|
||||
@ -330,7 +330,7 @@ apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: nginx-service
|
||||
namespace: default
|
||||
namespace: $NAMESPACE # 使用变量
|
||||
labels:
|
||||
app: nginx
|
||||
spec:
|
||||
@ -350,7 +350,7 @@ apiVersion: autoscaling/v2
|
||||
kind: HorizontalPodAutoscaler
|
||||
metadata:
|
||||
name: nginx-hpa
|
||||
namespace: default
|
||||
namespace: $NAMESPACE # 使用变量
|
||||
spec:
|
||||
scaleTargetRef:
|
||||
apiVersion: apps/v1
|
||||
@ -391,7 +391,7 @@ apiVersion: policy/v1
|
||||
kind: PodDisruptionBudget
|
||||
metadata:
|
||||
name: nginx-pdb
|
||||
namespace: default
|
||||
namespace: $NAMESPACE # 使用变量
|
||||
spec:
|
||||
minAvailable: 1
|
||||
selector:
|
||||
|
Loading…
x
Reference in New Issue
Block a user