脚手架

Octopus 提供了一种开发新适配器的简单方法,运行make template-adaptor,在adaptors目录下获得一个脚手架。 脚手架的覆盖物如下:

  1. tree -d adaptors/<adaptor-name>
  2. ├── api --- device model CRD
  3. └── v1alpha1 ------ implement the logic*
  4. ├── bin --- output of `go build`
  5. ├── cmd --- command entry code
  6. └── <adaptor-name> ------ implement the logic*
  7. ├── deploy --- deployment manifest
  8. ├── e2e ------ output of `kubectl kustomize` and demo cases
  9. └── manifests ------ overlay for kustomize
  10. ├── dist --- output of `go test` and versioned deployment manifest
  11. ├── hack --- bash scripts for make rules
  12. ├── pkg --- core code
  13. ├── adaptor
  14. └── <adaptor-name> ------ implement the logic*
  15. └── test --- test code
  16. ├── e2e
  17. └── integration

Build 管理

适配器遵循 Octopus 的构建管理,请查看开发 Octopus以获得更多详细信息。 与 Octopus 一样,Adaptor 的管理过程包括多个阶段和多个操作。 为方便起见,动作名称代表当前阶段。 动作流程的整体关系描述如下:

  1. generate -> mod -> lint -> build -> package -> deploy
  2. \ -> test -> verify -> e2e

执行适配器的阶段可以运行make adapter <adatpor-name> <stage name>,例如,当对dummy适配器执行test阶段时,请运行make adapter dummy test

要执行一个阶段,将执行先前序列中的所有动作,如果运行make adapter dummy test,则实际上包括执行generatemodlintbuildtest动作。

要通过添加only命令来运行操作,例如,如果仅运行build操作,请使用make adapter <adatpor-name> build only

例如,如果仅通过dapper来运行build动作,则通过BY环境变量与dapper集成。请仅使用BY=dapper make adapter <adatpor-name> build

贡献者工作流程

欢迎进行贡献,请查看CONTRIBUTING以获取更多详细信息。