资源 Specs
云资源行为优先声明在 YAML specs 中。Go hooks 只用于 spec schema 难以清晰表达的跨 API 派生或归一化。
布局
产品 spec:
specs/<product>/product.yaml
资源 spec:
specs/<product>/<resource>.yaml
来自本仓库的示例:
specs/ecs/instance.yaml
specs/ecs/sg.yaml
specs/vpc/vpc.yaml
specs/vpc/vswitch.yaml
specs/ack/ack.yaml
生成 Catalog
资源 specs 会生成到:
pkg/spec/catalog_generated.go
修改 specs 后运行:
make generate
当 pkg/spec/catalog_generated.go 变化时,需要一起提交。
参考页
参考 → 按产品分的资源 下的逐资源页面由 ecctl schema 生成,而非手写。
修改 spec 后,重新构建二进制并重新生成:
make build
npm --prefix website run gen:reference
提交重新生成的 Markdown:website/docs/reference/resources/ 及其 zh-Hans 对应目录。
验证
优先使用项目目标:
make test
make lint
只修改 website/ 下文档时,也运行:
cd website
npm run test
npm run typecheck
npm run build
外部 Specs
设置 ECCTL_SPEC_DIR,可以让发现和命令生成指向同布局的外部 spec 目录:
ECCTL_SPEC_DIR=/path/to/specs ecctl schema --list
这适合私有实验,或在合并 spec 前做验证。