aws-load-balancer-controllerにOSSコントリビュートした話

2 min読了の目安(約2600字IDEAアイデア記事

業務でaws-load-balancer-controllerを利用した際に生じたい問題が公式ドキュメントに記載されてなかったのでコントリビュートしました。その際にやったことの知見をまとめたいと思います。

https://github.com/kubernetes-sigs/aws-load-balancer-controller

PRした内容

何をPRしたのかといいますと以下の内容です。

https://github.com/kubernetes-sigs/aws-load-balancer-controller/pull/1805

簡単に言うと、 EKS For Fargate で aws-load-balancer-controller を使うときは Helm から入れたほうがええよといった内容です。

きっかけ

業務で EKS for Fargate を使ったインフラ構築を行ったのですが、公式ドキュメント通り行くとmanifests でやるか、Helm で入れるかの二択を迫られます。業務ではなるべる技術にばらつきを起こさないようにと考えていたので、 manifests のほうがよいと判断しHelmをやめ実装していました。
しかし、実装していると cert-manager のエラーで失敗してしまい困っていたところこのような issue を見つけました。

https://github.com/kubernetes-sigs/aws-load-balancer-controller/issues/1787

If you are installing on 1.16 and later, the cert-manager and yaml manifests should work without modifications. If cert-manager doesn't work in your case (for example, cert-manager will not work in Fargate), you can try the helm chart since it doesn't depend on the cert-manager.

Fargate では cert-manager 動かんだと、、、
というとこで公式ドキュメントに記述されてないし追記してあげよと思いました。

リポジトリを Fork しよう

まずはリポジトリをForkしましょう。Forkできたら、ローカルにcloneしてブランチを切りましょう。
また、コントリビュートする際はコントリビュータ向けのドキュメントがありますのでそちらを一読するといいかもしれません。今回のaws-load-balancer-controllerにドキュメントがあります。

https://github.com/kubernetes-sigs/aws-load-balancer-controller/blob/main/CONTRIBUTING.md

CLA に署名しよう

KubernetesではCLAに署名しないとコントリビュートできません!!
下記のREADMEを見ながらでもいいのですが、全部英語でわかりづらいのでこちらのQiitaの記事をおすすめします。Qiitaも公式も同じようなことなのでどちらを読んでも大丈夫かと思います。

https://github.com/kubernetes/community/blob/master/CLA.md
https://qiita.com/jlandowner/items/d14d9bc8797a62b65e67

コードもしくはドキュメントを修正しよう

それでは、該当箇所を確認して、修正を行います。
ドキュメント修正で注意することは、日本語を忘れることです。

日本語に翻訳するものものあるので一概にこれとは限りません。

元々英語のドキュメントなのでなるべくシンプルな英文で伝わるように書きましょう。
おすすめはまず自分で英文を書いて、その後 DeepL翻訳Google翻訳 で、修正して行くのがおすすめです。
あまり難しい英文よりシンプルな方がいいです。

Pull Request を立て、レビューしてもらおう

ローカルでの簡単な動作確認なども完了したら、 push して Pull Request を立てましょう。
Pull Request を行うと勝手に CI が走ります。 aws-load-balancer-controller の場合このようなメッセージが表示されます。

上から順に

  1. CLA 署名してね
  2. testしてね

といった内容が表示されます。
今回はドキュメントの修正なので2番目はとりあえず無視して、1番目の CLA 署名をパスしましょう。
署名ができていたなら、このような感じでコメント追記してあげると CI が勝手に動きます。 

CLA 署名をパスしたらコントリビュータがレビューしてくれるのを待ちましょう。

無事マージされました🎉

終わりに

いかかでしょうか?
まずはドキュメントから入っていくことでコントリビュートする壁が少し低くなるかと思います。
私もまだ初心者ですが、これから月1くらいでコントリビュートできたらと思います