SuperAPI AI 工具集

using-maestro

部署与运维

查看项目

更新于 10-15 09:44

技能介绍

用途

Maestro 用于在 Kubernetes 上编排开发者环境。项目由 Go API 与 Rust CLI 组成,运行在 GKE(生产/预发)和 k3d(本地,通过 Tilt)上。本技能适用于开发 Maestro 项目时,包括 K8s Pod 管理、Tilt 本地开发、GKE 部署、Go+Rust 代码生成、n8n 工作流或 Maestro CLI 开发等场景。

项目结构

项目根目录为 /Users/joe/dev/maestro/,包含:

  • api/:Go API 服务器(K8s Pod 生命周期、n8n、E2E 运行器)
  • cli/:Rust CLI(maestro 二进制、认证、Pod 命令)
  • infra/:Terraform 与 Helm charts
  • tilt/:Tiltfiles 与本地开发配置
  • Makefile:build、test、lint、dev-setup、install-hooks

本地开发(Tilt)

常用命令:

  • tilt up:启动 k3d 集群及所有服务
  • tilt logs -f <resource>:流式查看日志
  • tilt trigger <resource>:强制重建某个资源
  • tilt down:拆除(安全——仅限本地)

Tilt 会监视源文件并在变更时重建容器。应让 Tilt 管理重建,不要手动重启服务。

GKE 上下文

认证(每会话一次或令牌过期时):

gcloud auth login
gcloud container clusters get-credentials main-0 --region us-east1 --project toptal-maestro

验证:

kubectl config current-context
# → gke_toptal-maestro_us-east1_main-0

切回本地 k3d:

kubectl config use-context k3d-maestro

常用 kubectl 操作

  • kubectl get pods -n sessions:列出活跃会话 Pod
  • kubectl logs -n sessions <pod> --tail=100:查看 Pod 日志
  • kubectl describe pod -n sessions <pod>:查看事件、资源限制、状态
  • kubectl port-forward svc/maestro-api 8080:8080 -n maestro:本地访问 API
  • kubectl get events -n sessions --sort-by=.lastTimestamp:查看最近事件

安全规则

  • 绝不在没有 --selector 或明确 Pod 名称的情况下删除 Pod:可能终止活跃开发会话
  • 绝不在 sessions 命名空间运行 kubectl delete all:会销毁所有活跃环境
  • 在任何 docker rm/stop 前检查 $MAESTRO_CONTAINER_ID:可能终止自己的容器
  • 基础设施变更(Terraform/Helm):先提出计划并获得批准(参见 infrastructure-plan-first 技能)
  • 绝不重置共享服务凭据:会影响所有开发者

Go 约定

  • 接口定义在使用方(而非实现包中)
  • 错误使用 %w 包装以便链式检查
  • 所有服务/处理方法第一个参数为 Context
  • 提交前运行 go test ./... -race
  • api/ 包覆盖率 ≥80%

Rust CLI 约定

  • Edition 2024,六边形架构(cli/domain/、cli/adapters/)
  • cargo clippy -- -D warnings 与 cargo fmt 必须通过
  • 认证令牌通过 keyring crate(操作系统钥匙串)存储,绝不使用明文

构建与测试

  • make build:构建 API + CLI
  • make test:运行所有测试
  • make lint:go vet + cargo clippy
  • make install-hooks:pre-commit、pre-push

常见问题

  • Colima 未运行:colima start
  • gcloud 认证过期:gcloud auth login
  • kubectl 上下文错误:gcloud container clusters get-credentials main-0 --region us-east1 --project toptal-maestro
  • Tilt 文件监视限制:ulimit -n 10000
  • maestro 认证过期:MAESTRO_API_URL=https://api.maestro-staging.toptal.net maestro auth login