ローカルで変更したコードをTiltを使ってkindのk8s環境に反映させる

TIlt logo

Tilt?

ローカルで開発、ビルドしてk8sに反映して、Pod立て直して、、という手間をTiltを使うとローカルで開発、ビルドからPodの立て直しまでを自動でやってくれるようになります。つまりホットリロード。

カスタムコントローラーを作る時とかのお供によく紹介されています。便利そう。

結果

Webサーバーを建てて変更内容が反映されるところまで確認

インストール

公式より。

https://tilt.dev

ディレクトリ構成

ディレクトリ構成画像

Tiltfileの用意

動かすのにはTitfileという、設定ファイルを作る必要があります。

k8s_yaml()でyamlファイルのパスを入れる。

k8s_resource()でワークロードを入れるらしい。今回はPodのnameを入れてみた

https://docs.tilt.dev/api.html#api.k8s_resource

custom_build()では、Tiltを使ってビルドするときの設定を書いている。

https://docs.tilt.dev/custom_build.html#the-next-way-running-your-own-image-builder

いろんなビルド方法が用意されているが、今回はkindで動かすので、ビルド後にkindへイメージをロードする必要があり、custom_buildを選択。

その他ファイル

Tiltの動作確認だけなので、GoでシンプルなWebサーバーを立てます。

main.go

https://echo.labstack.com/docs/quick-start#hello-world

Dockerfile

EXPOSEしたポートの1323とTiltfileのk8s_resourceのport_forwardsの値は同じにしています

simple-go.yaml

普通のPodです。imagePullPolicyはIfNotPresentでないと、kindで使えないので注意です。

実行方法

Tiltfileがあるディレクトリに移動してtiltを立ち上げるだけです。

http://localhost:10350/へアクセスすると、ビルドの状況などがわかります。

TIltでのビルド状況

あとはmain.goを変更してビルドが終わるのを待つだけ!

http://localhost:1323/にアクセスすると、ローカルで変更した内容が反映されるようになりました

終わり

この投稿へのコメント

コメントはありません。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA


この投稿へのトラックバック

トラックバックはありません。

トラックバック URL