首次提交:初始化项目代码
This commit is contained in:
@@ -0,0 +1,45 @@
|
||||
#!/usr/bin/env bash
|
||||
# CloudNest 一键部署脚本
|
||||
# CloudNest One-Click Deployment Script
|
||||
# 用法 / Usage: CLOUDNEST_ENV=prod ./deploy-all.sh
|
||||
set -euo pipefail
|
||||
|
||||
ENV=${CLOUDNEST_ENV:-prod}
|
||||
echo "=== CloudNest 一键部署脚本 ==="
|
||||
echo "环境 / Environment: $ENV"
|
||||
|
||||
# 0. 创建命名空间 / Create namespace
|
||||
kubectl create namespace cloudnest 2>/dev/null || true
|
||||
|
||||
# 1. 基础设施 / Infrastructure
|
||||
echo "[1/3] 部署 MySQL / Redis / MinIO..."
|
||||
kubectl apply -f deployments/k8s/00-namespace.yaml
|
||||
kubectl apply -f deployments/k8s/mysql-deployment.yaml
|
||||
kubectl apply -f deployments/k8s/redis-deployment.yaml
|
||||
kubectl apply -f deployments/k8s/minio-deployment.yaml
|
||||
|
||||
echo "等待基础设施就绪 / Waiting for infrastructure..."
|
||||
kubectl wait --for=condition=ready pod -l app=mysql -n cloudnest --timeout=180s
|
||||
kubectl wait --for=condition=ready pod -l app=redis -n cloudnest --timeout=60s
|
||||
kubectl wait --for=condition=ready pod -l app=minio -n cloudnest --timeout=60s
|
||||
|
||||
# 2. 微服务 / Microservices
|
||||
echo "[2/3] 部署 Auth / File 微服务..."
|
||||
kubectl apply -f deployments/k8s/auth-deployment.yaml
|
||||
kubectl apply -f deployments/k8s/file-deployment.yaml
|
||||
kubectl apply -f deployments/k8s/ingress.yaml
|
||||
|
||||
kubectl wait --for=condition=ready pod -l app=auth-service -n cloudnest --timeout=120s
|
||||
kubectl wait --for=condition=ready pod -l app=file-service -n cloudnest --timeout=120s
|
||||
|
||||
# 3. 状态总览 / Status overview
|
||||
echo "[3/3] 部署完成,资源总览 / Deployment complete, resource overview:"
|
||||
kubectl get all,ingressroute,middleware -n cloudnest
|
||||
|
||||
echo ""
|
||||
echo "下一步 / Next steps:"
|
||||
echo " 1. 在域名服务商添加 A 记录: api / minio -> 你的服务器公网 IP"
|
||||
echo " Add A records at your DNS provider: api / minio -> your server public IP"
|
||||
echo " 2. 按部署指南启用 Traefik Let's Encrypt 自动证书"
|
||||
echo " Enable Traefik Let's Encrypt auto-certificate per deployment guide"
|
||||
echo " 3. curl -X POST https://api.yourdomain.com/api/v1/auth/register -d '{\"username\":\"admin\",\"password\":\"123456\"}' -H 'Content-Type: application/json'"
|
||||
Reference in New Issue
Block a user