#!/bin/bash

echo "🚀 开始配置 K3s NFS 动态供给器 (Master 节点专用) ..."

# --- 配置区 ---
NFS_SERVER="192.168.1.9"
NFS_PATH="/data/k3s_storage"
NAMESPACE="kube-system" # 建议将基础设施组件放在 kube-system 或默认命名空间
# ----------------

# 1. 下载部署文件
DEPLOY_FILE="/tmp/nfs-deploy.yaml"
curl -sSL https://raw.githubusercontent.com/kubernetes-sigs/nfs-subdir-external-provisioner/master/deploy/deployment.yaml > $DEPLOY_FILE

# 2. 替换配置 (IP 和 路径)
sed -i "s|server: \"\"|server: \"$NFS_SERVER\"|g" $DEPLOY_FILE
sed -i "s|path: \"\"|path: \"$NFS_PATH\"|g" $DEPLOY_FILE

# 3. 应用部署
echo "📦 正在部署 NFS Provisioner..."
kubectl apply -f $DEPLOY_FILE

# 4. 配置默认存储类 (关键步骤)
# 这一步确保以后你在 Rancher 界面点“添加存储”时，默认就是 NFS
echo "⚙️ 正在设置 nfs-client 为默认存储类..."
kubectl patch storageclass nfs-client -p '{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"true"}}}'

# 5. 验证
echo "⏳ 等待 Pod 启动..."
sleep 5
kubectl get pods -n $NAMESPACE -l app=nfs-subdir-external-provisioner

echo ""
echo "✅ 部署完成！"
echo "👉 请检查上方 Pod 状态是否为 Running"
echo "👉 执行 kubectl get sc 确认 nfs-client 后面带有 (default)"
