第43节 kubernetes 的贡献学习


❤️💕💕新时代拥抱云原生,云原生具有环境统一、按需付费、即开即用、稳定性强特点。Myblog:http://nsddd.topopen in new window


[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 guidelinesopen in new window and code of conductopen in new window.

Reporting a security vulnerability? Check out the project's security policyopen in new window.

他会告诉你,请阅读第一篇共享指南~

CNCF 2023

当我回顾 2022 年时,我对我们共同克服和取得的成就深感自豪。尽管我们已经面临并将继续应对的集体挑战,但云原生生态系统已经飙升。我们欢迎新的行业、项目,并将我们的社区扩大到 710 万云原生开发人员,超过了丹麦(丹麦:WTM)的人口!

贡献者和成员的成长:

image-20230108154959742

我们可以看到,今年我们迎来了 220 多名新成员加入 CNCF。

云原生生态越来越大,越来越好;最终用户对开源的信任正在引导它向前发展!

​ ——阿帕娜·苏伯拉曼尼安

​ ——Shopify 生产工程总监

Kubernetes 的贡献手册

Kubernetes的贡献相对平常的项目有更严格的标准,他的审核也是分批流的。

贡献的方式也是多种多样:

  • 你可以发现代码的 bug 并且修改它(但其实现在 Kubernetes 的维护者非常多,bug也很难发现了)
  • 出现一些问题或者给出一些建议,请提交一个 issue
  • 你需要去完善文档,比如说 Kubernetes 的中文翻译,或者是英文文档改善和补充
  • 贡献新的内容、模块或者功能(注意,这个需要你的设计稿并且通过例会同意)

贡献

image-20230108164211805

基本知识

开始之前open in new window

作为开源社区,很担心 contributor copy 代码引起官司,所以所有 Kubernetes 贡献者必须阅读贡献者指南open in new window签署贡献者授权同意书 (Contributor License Agreement, CLA)open in new window

若贡献者尚未签署 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 分支。
其他语言的内容(本地化)基于本地化团队的约定。参见本地化分支策略open in new window了解更多信息。

END 链接