Velero 二次開發(fā)-01

一 準(zhǔn)備工作
1.1 開始之前
熟悉行為準(zhǔn)則Code of Conduct。
參閱 CONTRIBUTING.md以獲取開發(fā)準(zhǔn)則。
1.2 創(chuàng)建設(shè)計文檔
擁有一個高層次的設(shè)計文檔,其中包含建議的變更和影響,可以幫助維護人員評估是否應(yīng)該合并一個主要變更。要發(fā)出設(shè)計拉請求,可以將 design/_ template.md 文件中的模板復(fù)制到新的 Markdown 文件中。
1.3 尋找路徑
你可以加入 velero 社區(qū),以不同的方式做出貢獻,包括幫助我們設(shè)計或測試新功能。對于任何我們考慮添加的重要特性,我們從設(shè)計文檔開始。你可以在這里找到一個正在進行中的新設(shè)計的列表: https://github.com/vmware-tanzu/velero/pulls?q=is%3Aopen+is%3Apr+label%3Adesign。請隨時回顧并幫助我們完成您的輸入。您還可以使用: + 1: 和:-1: 對問題進行投票,正如我們的功能增強請求和 Bug 問題模板中所解釋的那樣。這將幫助我們量化問題的重要性并對其進行優(yōu)先排序。關(guān)于如何與我們的維護者和社區(qū)聯(lián)系的信息,參加我們的在線會議,或者找到好的第一個問題,可以從我們的 Velero 社區(qū)頁面開始。請瀏覽我們的資源列表,包括過去的在線社區(qū)會議、博客文章和其他資源的播放列表,以幫助您熟悉我們的項目: Velero 資源。
二 開始開發(fā)
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 來執(zhí)行構(gòu)建映像中的 golangci-lint,或者執(zhí)行構(gòu)建映像外部的 local-lint。兩者都使 lint 和使局部-lint 將只運行臨時對變化。
使用 lint-all 對整個代碼庫運行 linter。 默認的 linter 是通過 LINTERS 變量在 Makefile 中定義的。 您還可以通過運行命令來覆蓋默認的 linter 列表
$ make lint LINTERS=gosec
2.3 單元測試
make test
2.4 vendor 依賴
如果您需要添加或更新供應(yīng)商依賴項,請參閱供應(yīng)商:Vendoring dependencies.
2.5 使用主分支
如果您正在開發(fā)或使用主分支,請注意您可能需要更新 Velero CRD 以在其他開發(fā)工作完成時獲得新的更改。
$ velero install --crds-only --dry-run -o yaml | kubectl apply -f -
注意: 如果 Velero CLI 無法發(fā)現(xiàn) Kubernetes 首選的 CRD API 版本,則可以更改默認的 CRD API 版本(v1beta1或 v1)。Kubernetes 版本 < 1.16的首選 CRD API 版本是 v1beta1;
Kubernetes 版本 > = 1.16的首選 CRD API 版本是 v1。
Kubernetes
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。