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 CLA に sign していきます。
identity.linuxfoundation.org
まずは下記のような画面になると思います。
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 は無事マージされました。
今回は Linux Foundation にどうやって sign するかがメインになってしまったw
しかしこれに sign すると kubernetes 周りのプロジェクトにコントリビュートできるので今後は何かバグに遭遇したらガンガンなおしていきたい