Velero 二次开发-01
一 准备工作
1.1 开始之前
- 熟悉行为准则Code of Conduct。
- 参阅 CONTRIBUTING.md以获取开发准则。
1.2 创建设计文档
拥有一个高层次的设计文档,其中包含建议的变更和影响,可以帮助维护人员评估是否应该合并一个主要变更。要发出设计拉请求,可以将 design/_ template.md 文件中的模板复制到新的 Markdown 文件中。
1.3 寻找路径
你可以加入 Velero 社区,以不同的方式做出贡献,包括帮助我们设计或测试新功能。对于任何我们考虑添加的重要特性,我们从设计文档开始。你可以在这里找到一个正在进行中的新设计的列表: https://github.com/vmware-tanzu/velero/pulls?q=is%3Aopen+is%3Apr+label%3Adesign。请随时回顾并帮助我们完成您的输入。您还可以使用: + 1: 和:-1: 对问题进行投票,正如我们的功能增强请求和 Bug 问题模板中所解释的那样。这将帮助我们量化问题的重要性并对其进行优先排序。关于如何与我们的维护者和社区联系的信息,参加我们的在线会议,或者找到好的第一个问题,可以从我们的 Velero 社区页面开始。请浏览我们的资源列表,包括过去的在线社区会议、博客文章和其他资源的播放列表,以帮助您熟悉我们的项目: Velero 资源。
二 开始开发
2.1 更新生成文件
会pull一个velero/build-image 的镜像
如果您做了以下更改,请运行 make update 以重新生成文件:
- Add/edit/remove command line flags and/or their help text
- Add/edit/remove commands or subcommands
- Add new API types
- Add/edit/remove plugin protobuf message or service definitions
下面的文件是从源代码自动生成的:
- The clientset
- Listers
- Shared informers
- Documentation
- Protobuf/gRPC types
您可以运行 make verify 以确保所有生成的文件(clientset、listers、shared informers、docs)都是最新的。
2.2 Linting
您可以运行 make lint 来执行构建映像中的 golangci-lint,或者执行构建映像外部的 local-lint。两者都使 lint 和使局部-lint 将只运行临时对变化。
使用 lint-all 对整个代码库运行 linter。 默认的 linter 是通过 LINTERS 变量在 Makefile 中定义的。 您还可以通过运行命令来覆盖默认的 linter 列表
$ make lint LINTERS=gosec
2.3 单元测试
make test
2.4 vendor 依赖
如果您需要添加或更新供应商依赖项,请参阅供应商:Vendoring dependencies.
2.5 使用主分支
如果您正在开发或使用主分支,请注意您可能需要更新 Velero CRD 以在其他开发工作完成时获得新的更改。
$ velero install --crds-only --dry-run -o yaml | kubectl apply -f -
注意: 如果 Velero CLI 无法发现 Kubernetes 首选的 CRD API 版本,则可以更改默认的 CRD API 版本(v1beta1或 v1)。Kubernetes 版本 < 1.16的首选 CRD API 版本是 v1beta1;
Kubernetes 版本 > = 1.16的首选 CRD API 版本是 v1。
- 点赞
- 收藏
- 关注作者
评论(0)