Velero 二次开发-01

网友投稿 476 2022-05-29

一 准备工作

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

Velero 二次开发-01

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。

Kubernetes

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:MQTT协议分析—对接华为云体验整个通信流程
下一篇:《Office 2019高效办公三合一从入门到精通 : 视频自学版》 —3.2.3设置文本效果
相关文章