第43节 kubernetes 的贡献学习
❤️💕💕新时代拥抱云原生,云原生具有环境统一、按需付费、即开即用、稳定性强特点。Myblog:http://nsddd.top
[TOC]
Kubernetes的共享指南
注意使用 git 过程中的一系列的问题和操作,关于我们使用 Kubernetes ,我们或许写了很多的控制器,或者是写了Kubernetes的官方文档,我们该怎么样把这个官方文档贡献到Kubernetes的社区。
⚠️ 请注意,无论是 Kubernetes 还是 CNCF(下一个标题有介绍),它们的代码和贡献都是大同小异的,我们参考 CNCF 的贡献也可,但是对于 Kubernetes 这个庞大的社区(Slack社群里面user有165k 的成员)来说,贡献者分为管理层和技术层,是互不干涉的,这也是 Kubernetes 这麽多年依旧保持 GitHub 活跃度顶级的项目。
tip⚠️:
和普通的开源项目也有区别,Kubernetes 不仅仅要求你对每一次 PR 提交 CA 证书。同时,如果不是完成一个小的漏洞或者修复,那么要求你提前给出 feature 设计, issue 的方案。
或者 Kubernetes 社区不会对你的 PR 进行审核。
官方提供了一个文档,本开发人员指南适用于希望编写直接访问Kubernetes API的代码或希望直接为Kubernetes项目做出贡献的任何人。它假定您对《用户指南》和《群集管理指南》中的概念有一定的了解。
如果这是你的第一个 PR 请求,那么会给你提醒:
It looks like this is your first time opening a pull request in this project!
Be sure to review the contributing guidelines and code of conduct.
Reporting a security vulnerability? Check out the project's security policy.
他会告诉你,请阅读第一篇共享指南~
CNCF 2023
当我回顾 2022 年时,我对我们共同克服和取得的成就深感自豪。尽管我们已经面临并将继续应对的集体挑战,但云原生生态系统已经飙升。我们欢迎新的行业、项目,并将我们的社区扩大到 710 万云原生开发人员,超过了丹麦(丹麦:WTM)的人口!
贡献者和成员的成长:
我们可以看到,今年我们迎来了 220 多名新成员加入 CNCF。
云原生生态越来越大,越来越好;最终用户对开源的信任正在引导它向前发展!
——阿帕娜·苏伯拉曼尼安
——Shopify 生产工程总监
Kubernetes 的贡献手册
Kubernetes的贡献相对平常的项目有更严格的标准,他的审核也是分批流的。
贡献的方式也是多种多样:
- 你可以发现代码的 bug 并且修改它(但其实现在 Kubernetes 的维护者非常多,bug也很难发现了)
- 出现一些问题或者给出一些建议,请提交一个 issue
- 你需要去完善文档,比如说 Kubernetes 的中文翻译,或者是英文文档改善和补充
- 贡献新的内容、模块或者功能(注意,这个需要你的设计稿并且通过例会同意)
贡献
基本知识
使用 Markdown 编写 Kubernetes 文档并使用 Hugo 构建网站。
Kubernetes 文档使用 CommonMark 作为 Markdown 的风格。
源代码位于 GitHub 仓库中。 你可以在
/content/zh-cn/docs/
目录下找到 Kubernetes 文档。 某些参考文档是使用位于update-imported-docs/
目录下的脚本自动生成的。页面内容类型使用 Hugo 描述文档内容的呈现。
你可以使用 Docsy 短代码 或定制的 Hugo 短代码贡献 Kubernetes 文档。
除了标准的 Hugo 短代码外, 我们还在文档中使用一些定制的 Hugo 短代码来控制内容的呈现。
文档的源代码有多种语言形式,位于
/content/
目录下。 每种语言都有一个自己的目录,用两个字母表示,这两个字母是基于 ISO 639-1 标准来确定的。 例如,英语文档的源代码位于/content/en/docs/
目录下。关于为多语言文档做贡献以及如何开始新翻译的详细信息, 可参考本地化文档。
开始之前
作为开源社区,很担心 contributor copy 代码引起官司,所以所有 Kubernetes 贡献者必须阅读贡献者指南 并签署贡献者授权同意书 (Contributor License Agreement, CLA)。
若贡献者尚未签署 CLA,其发起的 PR 将无法通过自动化测试。 你所提供的姓名和邮件地址必须与 git config
中配置的完全相同, 而且你的 git 用户名和邮件地址必须与用来签署 CNCF CLA 的信息一致。
比如我的 git 分支:
root@cubmaster01:/workspces/kubernetes/docs# git config --list user.name=Xinwei Xiong user.email=3293172751nss@gmail.com core.repositoryformatversion=0 core.filemode=true core.bare=false core.logallrefupdates=true remote.origin.url=https://ghproxy.com/https://github.com/kubernetes/kubernetes.git remote.origin.fetch=+refs/heads/*:refs/remotes/origin/* branch.master.remote=origin branch.master.merge=refs/heads/master remote.upstream.url=https://github.com/cubxxw/kubernetes.git remote.upstream.fetch=+refs/heads/*:refs/remotes/upstream/* remote.kubernetes.url=https://github.com/kubernetes/kubernetes.git remote.kubernetes.fetch=+refs/heads/*:refs/remotes/kubernetes/*
在发起 pr 之前,你需要选择合适的分支:
在发起 PR 时,你需要预先知道基于哪个分支来开展工作。
场景 | 分支 |
---|---|
针对当前发行版本的,对现有英文内容的修改或新的英文内容 | main |
针对功能特性变更的内容 | 分支对应于功能特性变更的主要和次要版本,分支名称采用 dev-<version> 的模式。例如,如果某功能特性在 v1.27 版本发生变化,则对应的文档变化要添加到 dev-1.27 分支。 |
其他语言的内容(本地化) | 基于本地化团队的约定。参见本地化分支策略了解更多信息。 |
END 链接
✴️版权声明 © :本书所有内容遵循CC-BY-SA 3.0协议(署名-相同方式共享)©