# sema-up 机器清单模板(DEPLOY-OVERSEAS-PILOT §5 Phase 0/1)
# 条目数决定模式:>=3 → cluster(k3s,embedded etcd HA);1 → single(docker compose)。
# 凭据二选一:password(bootstrap 用它铺 ssh key,不落盘不入日志)或 ssh_key(已互信)。
profile: full-cluster   # full-cluster | full-single | data-center | local-plus
region: auto            # auto | cn | global(auto=连通性探测,--region 可覆盖)
users: single           # single(超管 turnkey,推荐)| multi(身份隔离+能力默认全开)
# server_image: ghcr.io/sema-agent/sema-server:<tag>   # 引擎镜像 registry 引用(GHCR/Docker Hub 公开仓,
#                         # 匿名可拉;CN 兜底=内网 Gitea registry。SWR 已弃用 2026-07-13);
#                         # 不填则要 env SEMA_SERVER_IMAGE 或 SEMA_SERVER_IMAGE_TAR(tar 预灌)

machines:
  - host: 10.0.0.1      # ssh 可达地址(生产建议私网;公网入口走 LB,不直暴节点)
    user: root
    # password: "..."   # 或
    ssh_key: ~/.ssh/id_ed25519
    role: server        # server(k3s control-plane)| agent;single 模式忽略
    # name: sema-01     # k3s node-name,缺省 sema-0N;必须唯一(裸机批次系统 hostname 常整批相同,
    #                   # 靠系统名注册 etcd 成员必撞——Phase 1b 真踩)
    # private_ip: 10.34.0.154   # 集群东西向走的私网 IP(VLAN);缺省用 host
    # private_cidr: 10.34.0.0/24 # NodePort 限定网段;缺省从 private_ip 推 /24(非 /24 网段必填)
    # public_iface: bond0       # 有公网口的机器填,VXLAN 8472 会在该口 DROP(隔离不变量)
  - host: 10.0.0.2
    user: root
    ssh_key: ~/.ssh/id_ed25519
    role: server
  - host: 10.0.0.3
    user: root
    ssh_key: ~/.ssh/id_ed25519
    role: server

data_plane:
  pg: deploy            # deploy(内置+自动调优)| 连接串 postgres://…(外接,先校验)
  s3: deploy            # deploy(内置 MinIO+自动调优)| endpoint+key(外接 S3 协议桶)
  backup: true          # PG 定时备份到 S3(data-center/full 默认 true)

sandbox:
  lane: kata            # kata(默认,需 KVM,预检不过不给)| e2b-cloud | e2b-self | runc
  # e2b_endpoint: …     # lane=e2b-self 时必填(校验连通+模板可用)
  # e2b_api_key: …

registry:
  enabled: true         # sema-registry 配置中心(MCP/skill/模型配置云同步);data-center 也建议 true
  # image: ghcr.io/clayboby/sema-registry:<tag>  # enabled=true 必填(GHCR/Hub,迁移中;SWR 已弃用)
image_registry:
  mode: dockerhub       # dockerhub(现行:docker.io/claybobby 公开池,匿名可拉,clay 2026-07-12/13 拍
  #                     # SWR 全面弃用)| swr-secret(已弃用:旧国内 SWR 拉取凭据)|
  #                     # local(内网仓;CN 兜底=内网 Gitea registry)
  # endpoint: …         # mode=local 时的仓地址
  # 拉取凭据一律 env,不写进本文件:cluster-up.sh 读 IMAGE_PULL_USER / IMAGE_PULL_TOKEN
  # (+可选 IMAGE_PULL_REGISTRY,默认 https://index.docker.io/v1/)→ 建 secret sema-regcred
  # 于 sema/sema-sandbox 两 ns 并 patch default SA(server 与沙箱 pod 全覆盖)。
  # server 镜像即 SEMA_SERVER_IMAGE=ghcr.io/sema-agent/sema-server:<tag>(public 匿名可拉;
  # 仅换成 private 仓时才要上面的凭据)。
