KubeTempuraは、GitHubでのプルリクエスト(PR)をトリガーとしてKubernetesのリソースを作成できるツール。PRの作成だけでなく、PRへのコミットのプッシュもトリガーとして機能する。
同氏によると、「PRごとに環境をつくるというアイデアはHeroku Review Appsなど広く知られているもの」で、社内でもKubernetes向けに似たアイデアのツールがあり、利用されていたという。
しかし、以前のプログラムでは同社内の典型的な設計のマイクロサービスにはうまく対応できるものの、ServiceやDeploymentが複数あったり、Ingressがあったりなかったりといったケースに対応する場合は、コードの変更と特別なアノテーションの追加が求められていた。
KubeTempuraでは、ReviewApp CRDを定義し、そこで配置するリソースをテンプレートとして定義することで、PRに対してどのようなリソースを配置するかユーザーが決定できるように設計し、柔軟性が向上した。
GitHub ActionsなどのCIを利用してもこうした機能を実装できるが、Kubernetes Operatorとして実装した理由として、Mercari US社内で50のマイクロサービスとそれに対応するレポジトリを運用しており、それぞれでGitHub Actionsを設定する際の煩雑さを挙げている。KubeTempuraでは、すべての設定をKubernetes上にReviewApp resourcesとして集約することで、組織やサービス数の拡大に対しスケーラブルな設計となっている。
KubeTempuraの利用手順や注意点については、同社のブログのほか、KubeTempuraのGitHubレポジトリにて案内されている。