Commentsこんにちは。開発班のwhywaitaです。雑にサーバ上にバイナリ置いてcron等に登録したらバックアップが取れる!!みたいなのが欲しくて書きました。名前はファイルを上に上げるというだけの思いつきです。Commentsこんにちは。出版班のwhywaitaです。開催される技術書典7にてKubernetesを用いたモダン開発環境についての本を出します。〜メディア」さん、表紙はへびつかいさんにご提供いただきました。前半部分を私(@whywaita)が、後半部分を新卒同期の@msy_mtd_a5が担当しています。Commentはじめにこんにちは。kubernetes班のwhywaitaです。使う場合、アプリケーションをデプロイする際にミドルウェアの管理に悩むことがあり、その解決策として様々なアプリケーションが開発されています。1その中でも私はHelmがお気に入りです。自分のアプリケーションを含めた全てのデプロイをHelmで賄うのには向いていないように感じますが、アプリケーションで必要なミドルウェア(DB、KVSなど)を立ち上げる用途としてはかなり優秀なプロダクトだと思います。そのHelmでインストールすることの出来るミドルウェアの単位をchartと呼びます。リポジトリはGitHub上で公開されています。Requestを送る事が出来るのですが、一般的に使われているフローではなく、一定のルールを満たす必要があります。Requestを送り、無事マージされるまでのフローを書きます。Requestであるためそれほどアプリケーションのバージョンは依存しませんが、念のため作業環境のバージョン書いておきます。Agreements、略してCLAの提出が必要となります。これはkubernetesにコントリビュートする際に満たすべき制約に、コントリビュートした全員が承諾する事を担保するものです。Foundationに入っているプロジェクトの1つです。Foundationのシステムを用いて、CNCFのCLAを提出すれば認可されます。FoundationのCLAには個人向けと企業向けの2種類が存在しています。私は個人としてCLAの提出を行ったため、今回は個人向けの作業をお伝えします。Foundationのアカウントを発行します。Foundationのアカウントを新規に作っても構いません。FoundationのアカウントとGitHubのアカウントを紐付ける必要があるため、GitHub連携でログインしておけば若干手間が減るかもしれません。Foundationのアカウントを作り、その後GitHub連携を行いました。この方法でも問題無くCLAの提出は可能です。nameを入力する欄がありますが、基本的には公開されず、usernameで書いた部分のみ公開されます。この時設定するメールアドレスにはGitHubのコミット上で用いているメールアドレスと同じものを利用するようにしてください。コミットとの紐付けに利用しているようです。現在利用しているメールアドレスは以下のコマンドで確かめられます。最後に、GitHub連携以外の方法でアカウントを作成した場合は、こちらからGitHub連携を追加しておいてください。FoundationアカウントをCNCFグループに参加させることができます。https://identity.linuxfoundation.org/projects/cncfアカウント作成、およびGitHub連携が既に済んでいる場合、以下のような画面が出ます。名前とメールアドレスが間違っていなければ、そのままSubmitを押します。すると、登録しているメールアドレスにHelloSignというサービスからメールが届きます。HelloSignは電子署名システムの1つで、実際に紙を印刷してサインをせずともWebブラウザのみで電子署名が行えるシステムです。Signのリンクからページに飛ぶと、CLAで承諾すべき項目が実際に表示され、問題無ければ項目を埋めて提出します。CLAの文章自体はこちらに公開されています。Foundationのオフィスに国際郵便で送付することも可能です。CLAの文書にどのような手法を用いられるのか記載されているので、CLAを提出する際にご確認ください。2HelloSign上でCLAを提出した場合、提出に成功したことがメールで通知され、HelloSign上のシステムでも提出が完了したことを確認できます。私が提出した時は、数分程度で提出完了のメールが届きました。これにてCLAの提出は完了です。Requestの作成これでようやくコードを書くことができます。Requestを例としながら説明していきます。Requestの作り方(Forkして、ブランチを切って、など)は一般的なフローと同じですので割愛させて頂きます。Requestを出すと、k8s-ci-robotというユーザが自動的にラベル付けなどを行ってくれます。Requestの状況等を管理してくれます。3CLAの提出が正しく出来ていれば、この段階でこのようなメッセージが来ます。Requestが自分の中でレビューして貰って問題無い状態になったら、レビューアーをアサインしてレビューしてもらいます。レビューアーに指定するべき人がランダムで提案されますが、基本的には担当者全員アサインして良いようです。この時のアサイン対象者ですが、誰でも良いという訳ではなく、chart毎に指定するべき人が決まっています。私が今回出したdatadogであれば、以下のURLにあるOWNERSファイルに書かれています。https://github.com/kubernetes/charts/blob/master/stable/datadog/OWNERSGitHubのシステム上、ブラウザ上からアサインすることも技術的には可能なのですが、アサインの状態を可視化するためにk8s-ci-robotにアサインしてもらう運用になっているようです。コマンドを実行します。実際のコメントはこちらです。その後はレビューアーの指示に従い、修正や議論を行います。ラベルを付けてもらう必要があります。その時々でラベルの付ける順番などは変わるようなので、適宜レビューアーに聞いてみると良いかもしれません。私も聞いた結果ラベルが付与されました。最終的に問題がないと判断されれば、k8s-ci-robotによってマージされます!おわりにこのフローを踏むことで、無事kubernetesグループに貢献することが出来ました。OSSを使うだけでなく、OSSに貢献することで、OSSの素晴らしいライフサイクルを回せていければと思います。本記事公開以降コントリビュート手順が変更される可能性があります。不明な点があった場合は、原文であるこちらを参照してください。HERP広告この記事は株式会社HERPの勤務中に書かれた物である。株式会社HERPでは今後もOSSに貢献し続けます。株式会社HERPは様々な職種での人材を募集しています。Wantedlyまた、この広告箇所は本の虫のオマージュです。↩ちなみに私が提出した際のCLAはこのコミットです。