最近LiteLLMのリリースノートをちゃんと追うようにしているんだけど、1.84.0-dev.1を見て「あ、これ自分の環境で考えたことなかったやつだ」と思った。
GitHub Actions経由で自動リリースされるこのバージョン、変更内容よりも冒頭のDockerイメージ署名検証の記述が気になった。cosignというツールを使って全イメージに署名していて、検証用の公開鍵はコミットハッシュ`0112e53`で固定されている。
タグじゃなくてコミットハッシュで鍵を参照するの、最初は「なんでわざわざ?」と思った。でも考えてみると、タグは後から動かせる。コミットハッシュは変えられない。ここの差は本番環境でサプライチェーン攻撃を防ぎたいときに地味に効いてくる。
このコマンドを実際に手元で叩いたら、ちゃんと署名が通った。自分はこれまでLiteLLMのイメージをComposeでpullするだけで署名確認なんてしてなかった。今後はCIに組み込もうと思っている。
バグ修正の中でひとつ刺さったのが`fix(redis): cache GCP IAM token to prevent async event loop blocking`という変更。GCPでLiteLLM Proxyを動かしてRedisキャッシュを使う構成、ちょうど今のプロジェクトで試してるやつだ。IAMトークンを毎回取得するせいでevent loopが詰まるケースがあったらしい。自分は症状に気づかないままだったかもしれない。
あとは`feat(proxy): add --timeout_worker_healthcheck flag for uvicorn worker triage`も地味に嬉しい。uvicornワーカーが固まってるのかどうか、今まで判断しにくかった。healthcheckのタイムアウトを明示的に設定できるようになるのはk8sのliveness probeと組み合わせるときに助かる。
dev版という位置づけなので本番には入れないけど、自分はstaging環境で試すつもりでいる。dev.1のリリースを見てから本番の1.84.0正式版が出たとき何が変わったかを比較するのが、最近のLiteLLMの追い方として自分の中でルーティンになってきた。
cosign自体まだ全然使いこなせてないので、次は自分のプロジェクトのイメージにも署名を入れる実験をやってみるつもりだ。
GitHub Actions経由で自動リリースされるこのバージョン、変更内容よりも冒頭のDockerイメージ署名検証の記述が気になった。cosignというツールを使って全イメージに署名していて、検証用の公開鍵はコミットハッシュ`0112e53`で固定されている。
コミットハッシュで鍵を固定する意味
タグじゃなくてコミットハッシュで鍵を参照するの、最初は「なんでわざわざ?」と思った。でも考えてみると、タグは後から動かせる。コミットハッシュは変えられない。ここの差は本番環境でサプライチェーン攻撃を防ぎたいときに地味に効いてくる。
cosign verify \
--key https://raw.githubusercontent.com/BerriAI/litellm/0112e53046018d726492c814b3644b7d376029d0/cosign.pub \
ghcr.io/berriai/litellm:1.84.0-dev.1このコマンドを実際に手元で叩いたら、ちゃんと署名が通った。自分はこれまでLiteLLMのイメージをComposeでpullするだけで署名確認なんてしてなかった。今後はCIに組み込もうと思っている。
今回の変更で自分のコードに直結する部分
バグ修正の中でひとつ刺さったのが`fix(redis): cache GCP IAM token to prevent async event loop blocking`という変更。GCPでLiteLLM Proxyを動かしてRedisキャッシュを使う構成、ちょうど今のプロジェクトで試してるやつだ。IAMトークンを毎回取得するせいでevent loopが詰まるケースがあったらしい。自分は症状に気づかないままだったかもしれない。
あとは`feat(proxy): add --timeout_worker_healthcheck flag for uvicorn worker triage`も地味に嬉しい。uvicornワーカーが固まってるのかどうか、今まで判断しにくかった。healthcheckのタイムアウトを明示的に設定できるようになるのはk8sのliveness probeと組み合わせるときに助かる。
dev版という位置づけなので本番には入れないけど、自分はstaging環境で試すつもりでいる。dev.1のリリースを見てから本番の1.84.0正式版が出たとき何が変わったかを比較するのが、最近のLiteLLMの追い方として自分の中でルーティンになってきた。
cosign自体まだ全然使いこなせてないので、次は自分のプロジェクトのイメージにも署名を入れる実験をやってみるつもりだ。