kops にPRをおくる

1ヶ月前くらいのエントリで kops で構築した k8s クラスタに IRSA をいれた時に kube-apiserver の service-account-key-file に複数のキーファイルを指定した時にエラーになるという issue に遭遇した。
blog.hatappi.me

Github issue は↓
github.com

本来は見つけた時にPRも送りたかったけど kops にコントリビュートするためには CLA に sign する必要がある。
その時は会社のSSOを許可する必要があって、それはなぁーと思って断念したのですがなんとかなったのでそのあたりも含めて忘れないためにメモしていく。

まず kops に contribute する方法ですが CONTRIBUTING.md を読みます。
このドキュメントにも書いてありますがまずは CLA に sign します。
これ以外は普通のコントリビュート方法です。

CLA に sign する。

今回は個人なので individual CLAsign していきます。
identity.linuxfoundation.org

まずは下記のような画面になると思います。

f:id:hatappi1225:20191015230252p:plain

CLA は PR を送った際に GIthub のアカウントに紐づいた情報から CLA を結んでいるかチェックされるっぽいので Github 連携しておく必要があるっぽいです。
最初僕は I need to create a Linux Foundation ID でアカウントを作成してその後に Github のアカウントを紐付けようとした。
ただこのステップだと Github を紐づける時にどうも 会社のSSO 周りの権限も必要になるっぽい。

ということで別のアプローチとしてさきほどの画面で Log in with GitHub を選択してアカウントを作成する。
こっちをとると最低限の Github のユーザー情報だけ聞かれてそれを許可するだけでOK

とりあえずこれで自分は CLA に sign できた。

kops の開発をする

リポジトリをフォークして後は Go なのでコード読んでなおしていく。

build はローカルでも頑張ればできなくはないけどパスの関係もあるので↓に書かれているように Docker を使ったほうが楽。
テストとかも全部ここでできる。
kops/Docker.md at master · kubernetes/kops · GitHub

kops はしっかり開発する時にどうしたら良いかが書かれているので基本迷ったらそこを見ると解決しました。
https://github.com/kubernetes/kops/tree/master/docs#development

まとめ

出した PR は無事マージされました。

github.com

今回は Linux Foundation にどうやって sign するかがメインになってしまったw
しかしこれに sign すると kubernetes 周りのプロジェクトにコントリビュートできるので今後は何かバグに遭遇したらガンガンなおしていきたい