forked from xiaohei/taiji-AI-PAD
111 lines
2.9 KiB
Bash
Executable File
111 lines
2.9 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# 创建 Kubernetes Secrets 的交互式脚本
|
|
# 使用方法: ./create-secrets.sh
|
|
|
|
set -e
|
|
|
|
# 颜色输出
|
|
RED='\033[0;31m'
|
|
GREEN='\033[0;32m'
|
|
YELLOW='\033[1;33m'
|
|
NC='\033[0m'
|
|
|
|
echo -e "${GREEN}创建 Kubernetes Secrets${NC}"
|
|
echo ""
|
|
|
|
# 检查 kubectl
|
|
if ! command -v kubectl &> /dev/null; then
|
|
echo -e "${RED}错误: kubectl 未安装${NC}"
|
|
exit 1
|
|
fi
|
|
|
|
# 检查命名空间
|
|
NAMESPACE="taiji-ai"
|
|
if ! kubectl get namespace $NAMESPACE &> /dev/null; then
|
|
echo -e "${YELLOW}创建命名空间 $NAMESPACE...${NC}"
|
|
kubectl create namespace $NAMESPACE
|
|
fi
|
|
|
|
# 提示输入各个 Secret 值
|
|
echo -e "${YELLOW}请输入以下配置信息(按 Enter 跳过可选项):${NC}"
|
|
echo ""
|
|
|
|
read -p "数据库 URL (DATABASE_URL): " DATABASE_URL
|
|
read -p "异步数据库 URL (ASYNC_DATABASE_URL): " ASYNC_DATABASE_URL
|
|
read -p "Redis URL (REDIS_URL): " REDIS_URL
|
|
read -p "JWT Secret: " JWT_SECRET
|
|
read -p "加密密钥 (ENCRYPTION_KEY): " ENCRYPTION_KEY
|
|
read -p "LiteLLM Master Key: " LITELLM_MASTER_KEY
|
|
read -p "OpenRouter API Key: " OPENROUTER_API_KEY
|
|
read -p "RapidAPI Key (可选): " RAPIDAPI_KEY
|
|
read -p "Azure Storage Connection String (可选): " AZURE_STORAGE_CONNECTION
|
|
|
|
# 构建 kubectl 命令
|
|
SECRET_ARGS=()
|
|
|
|
if [ -n "$DATABASE_URL" ]; then
|
|
SECRET_ARGS+=("--from-literal=database-url=$DATABASE_URL")
|
|
fi
|
|
|
|
if [ -n "$ASYNC_DATABASE_URL" ]; then
|
|
SECRET_ARGS+=("--from-literal=async-database-url=$ASYNC_DATABASE_URL")
|
|
fi
|
|
|
|
if [ -n "$REDIS_URL" ]; then
|
|
SECRET_ARGS+=("--from-literal=redis-url=$REDIS_URL")
|
|
fi
|
|
|
|
if [ -n "$JWT_SECRET" ]; then
|
|
SECRET_ARGS+=("--from-literal=jwt-secret=$JWT_SECRET")
|
|
fi
|
|
|
|
if [ -n "$ENCRYPTION_KEY" ]; then
|
|
SECRET_ARGS+=("--from-literal=encryption-key=$ENCRYPTION_KEY")
|
|
fi
|
|
|
|
if [ -n "$LITELLM_MASTER_KEY" ]; then
|
|
SECRET_ARGS+=("--from-literal=litellm-master-key=$LITELLM_MASTER_KEY")
|
|
SECRET_ARGS+=("--from-literal=litellm-api-key=$LITELLM_MASTER_KEY")
|
|
fi
|
|
|
|
if [ -n "$OPENROUTER_API_KEY" ]; then
|
|
SECRET_ARGS+=("--from-literal=openrouter-api-key=$OPENROUTER_API_KEY")
|
|
fi
|
|
|
|
if [ -n "$RAPIDAPI_KEY" ]; then
|
|
SECRET_ARGS+=("--from-literal=rapidapi-key=$RAPIDAPI_KEY")
|
|
fi
|
|
|
|
if [ -n "$AZURE_STORAGE_CONNECTION" ]; then
|
|
SECRET_ARGS+=("--from-literal=azure-storage-connection-string=$AZURE_STORAGE_CONNECTION")
|
|
fi
|
|
|
|
# 删除现有 Secret(如果存在)
|
|
if kubectl get secret taiji-secrets -n $NAMESPACE &> /dev/null; then
|
|
echo -e "${YELLOW}删除现有 Secret...${NC}"
|
|
kubectl delete secret taiji-secrets -n $NAMESPACE
|
|
fi
|
|
|
|
# 创建 Secret
|
|
if [ ${#SECRET_ARGS[@]} -gt 0 ]; then
|
|
echo -e "${YELLOW}创建 Secret...${NC}"
|
|
kubectl create secret generic taiji-secrets \
|
|
"${SECRET_ARGS[@]}" \
|
|
--namespace=$NAMESPACE
|
|
|
|
echo -e "${GREEN}Secret 创建成功!${NC}"
|
|
else
|
|
echo -e "${RED}错误: 没有提供任何 Secret 值${NC}"
|
|
exit 1
|
|
fi
|
|
|
|
# 验证 Secret
|
|
echo ""
|
|
echo -e "${YELLOW}验证 Secret:${NC}"
|
|
kubectl get secret taiji-secrets -n $NAMESPACE
|
|
|
|
echo ""
|
|
echo -e "${GREEN}完成!${NC}"
|
|
|