如何开发适配器
脚手架
Octopus提供了一种开发新适配器的简单方法,运行make template-adaptor
,在adaptors
目录下获得一个脚手架。 脚手架的覆盖物如下:
tree -d adaptors/<adaptor-name>
├── api --- device model CRD
│ └── v1alpha1 ------ implement the logic*
├── bin --- output of `go build`
├── cmd --- command entry code
│ └── <adaptor-name> ------ implement the logic*
├── deploy --- deployment manifest
│ ├── e2e ------ output of `kubectl kustomize` and demo cases
│ └── manifests ------ overlay for kustomize
├── dist --- output of `go test` and versioned deployment manifest
├── hack --- bash scripts for make rules
├── pkg --- core code
│ ├── adaptor
│ └── <adaptor-name> ------ implement the logic*
└── test --- test code
├── e2e
└── integration
Build 管理
适配器遵循Octopus的构建管理,请查看开发Octopus以获得更多详细信息。 与Octopus一样,Adaptor的管理过程包括多个阶段和多个操作。 为方便起见,动作名称代表当前阶段。 动作流程的整体关系描述如下:
generate -> mod -> lint -> build -> package -> deploy
\ -> test -> verify -> e2e
执行适配器的阶段可以运行make adapter <adatpor-name> <stage name>
,例如,当对dummy适配器执行test
阶段时,请运行make adapter dummy test
。
要执行一个阶段,将执行先前序列中的所有动作,如果运行make adapter dummy test
,则实际上包括执行generate
,mod
,lint
,build
和test
动作。
要通过添加only
命令来运行操作,例如,如果仅运行build
操作,请使用make adapter <adatpor-name> build only
。
例如,如果仅通过dapper
来运行build
动作,则通过BY
环境变量与dapper
集成。请仅使用BY=dapper make adapter <adatpor-name> build
。
贡献者工作流程
欢迎进行贡献,请查看CONTRIBUTING以获取更多详细信息。