如何开发适配器

脚手架

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,则实际上包括执行generatemodlintbuildtest动作。

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

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

贡献者工作流程

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