Kubernetesコミュニティへのコントリビューションに興味がある人へ

これは [Kubernetes Advent Calendar 2022](https://qiita.com/advent-calendar/2022/kubernetes) の12/8(木)の記事です。

この記事では「Kubernetesコミュニティへのコントリビューション」について書こうと思います。
他の方が書く技術的な記事とは毛色が違う内容ですので、読み物的に読んでいただければ。
なお、本日の内容は私個人の見解になっておりますのでご承知おきを。

# TL;DR
- Kubernetesを始めとするCNCFのコミュニティはOSSを使うユーザからのコントリビューションが増えることを希望しています。
- コントリビューションとはソースコード更新のみを指しません。ドキュメントのアップデートやIssueの登録なども含みます。
- Kubernetesコミュニティに参加する日本の人が増えると良いと思い、私はコントリビューションを開始するための日本語トレーニング講師をこれまで3年間ほど実施しています。
- 興味のある人は是非トレーニングを受けてみてください。また、講師も募集しています。

# KubeCon+CloudNativeCon のキーノートトピックの変化

今年の10月末に開催された[KubeCon+CloudNativeCon NA 2022](https://events.linuxfoundation.org/kubecon-cloudnativecon-north-america/)は皆さん参加されたでしょうか？
今回は日本から現地に行った人も結構いたと聞いています。一方でバーチャルで参加した人もいたと思います。既にYoutubeで[セッション動画も公開されていますね](https://www.youtube.com/playlist?list=PLj6h78yzYM2O5aNpRM71NQyx3WUe1xpTn)。

私は2019年頃から継続してKubeCon+CloudNativeConに参加しているのですが、キーノートの内容の変化を感じています。
それは約2年ほど前からキーノートのトップトピックが「コミュニティ維持・拡大」に変わってきたということです。
「いや、昔からそのトピックはあったよね？」というのはたしかに正しいのですが、最近のキーノートは特にこの色が強いと思っています。
これはCOVID-19が要因とも考えられますし、時間と共にコミュニティの規模が大きくなってきたということも要因だと思います。
キーノートで言葉を変え繰り返し言われているのは「OSS利用者からのコントリビューションの価値がとても大きい」ということです。

OSS利用者は、実際にそのOSSを使ってるからこそOSSのバグや使い勝手の悪さに気づくことができ、新機能を提案して、実装に参加するという好循環に持ち込むことができるということですね。
これはよく想像されるOSSのコントリビューション(貢献活動)の例ではないでしょうか。

加えて、コントリビューションに求められている別の観点があります。それはOSSコミュニティの健全な運営を支える活動です。もしこれができていないとOSSそのものの開発速度が鈍ったり品質向上されない状況になりえるからです。


# 小さなところからコントリビューション

運営を支えるコントリビューションと書くと仰々しく感じられるかもしれませんが、例えば以下もその対象になると思います。
- 疑問点をGitHubのIssueに登録する。
- 気づいたドキュメント上のタイポ修正する。
- 曖昧な文章表現を誤解のないように修正する。
- ドキュメントを日本語翻訳する。

例えばKubernetesではコミュニケーションの流れもGitHub上で見れますから、小さな疑問点を自分が登録して疑問が解決した後も、同じ疑問を持つ別のユーザが検索して疑問が解決することが割と多いです。
あとは文章が曖昧でもっと適切な文章に更新することも(地味ですが)重要です。
こういうことの積み重ねがOSSコミュニティのサスティナビリティの向上につながってるのだと思います。

これらの活動ならコントリビューションしやすいと感じるのではないでしょうか。
当然コントリビューション活動に慣れてきたら、自分で新機能を提案するなどもやりやすくなりますよね。

こんな感じで書いてると私が「OSSを使っているならコントリビューションするべき」と言ってると聞こえるかもしれませんが、そうではないです。
私は「コントリビューションは、コントリビューションする理由がある人が始めるもの」というのが基本だと思います。
ただし、そのときに「どうやって始めれば良いのかわからない」や「どこから始めれば良いのかわからない」という状況は限りなくなくすべきだと思っています。
そして、日本は特にこの状況が多いのではないかな？と思っています。
OSSコミュニティ上のコミュニケーションが英語で行われていることも要因の1つなんだろうなと思っています。

# コントリビューションの始め方

ではコントリビューションはどうやって始めたら良いのでしょうか？
[kubenretes.dev](https://kubenretes.dev) のサイトの[Getting started](https://www.kubernetes.dev/docs/)の辺りを参照するとわかると思います。
このドキュメントだけでもコントリビューションを始められる人はいると思います。

一方で、先程書いたように基本的に英語のため、コントリビューションの開始をためらう人もいるのではないでしょうか。
そこで、コントリビューションを開始したい人向けに日本語で[Kubernetes Upstream Training](https://github.com/kubernetes-sigs/contributor-playground/tree/master/japan)というトレーニングを2019年から開催しています。私を含め毎回4,5人程度が講師として参加しています。

もし興味のある方がいたら[Kubernetes Upstream Training](https://github.com/kubernetes-sigs/contributor-playground/tree/master/japan)リポジトリを見てください。
これまでにCloudNative Days Tokyoなどのイベントを中心にいくつかのイベントの中で開催してきています。
今年も[CloudNative Days Tokyo 2022](https://event.cloudnativedays.jp/cndt2022)のCo-locatedイベントとして[開催](https://github.com/kubernetes-sigs/contributor-playground/tree/master/japan/cndt-2022)しました。
実は来週も[Okinawa Open Days 2022](https://www.okinawaopendays.com/)という沖縄のイベントの中で実施予定です。
リモート参加もできますので、興味のある人は[参加登録](https://connpass.com/event/264395)をお待ちしています。

ちなみに、好きなタイミングで[トレーニング動画を見ながら自分で実施](https://github.com/kubernetes-sigs/contributor-playground/tree/master/japan/adhoc)することも可能です。

最後に、実は昨日(2022/12/07)に[KubeDay Japan 2022](https://events.linuxfoundation.org/kubeday-japan/)というイベントでこれまで3年間のトレーニング実施の内容を[発表](https://sched.co/1C8l7)してきました。
こういった発表もOSSコミュニティを支える活動だと思い、発表を提案して採択されたという形ですね。
資料もアップロードされてますので、もし興味があったらご覧ください。

資料の末尾に書いていますが、新たなトレーニング講師も募集しています。
こちらも興味のある方がいらしたらお声がけください。


以上です。