以前、udzuraさんがOCI Runtime Specを簡単にまとめた以下のようなブログを書かれていました。
OCI Runtime Specification を読む - ローファイ日記
この記事にてまとめられているのは 95a6ecf であり、このrevisionから一番近いreleaseはpre-releaseである v1.0.0-rc2 です。
さて、 v1.0.2 のリリースがそろそろということもあり、ここでは簡単のため、v1.0.0-rc2からv1.0.2までの間に入った変更について見てみようと思います。ただし全部は取り上げません。
https://github.com/opencontainers/runtime-spec/releases/tag/v1.0.0-rc3
rcの間は駆け足で行きます。 Windowsについての記述が追加されています。 #565, #573 それに関してか?consoleのサイズについての情報を格納するfiledが #563 で追加されています。これらはMicrosoftの人によるcommitですね。
https://github.com/opencontainers/runtime-spec/releases/tag/v1.0.0-rc4
いくつかのresouceに負の値を指定できるようになっています。でもmemory usage limitとかに負を指定できて嬉しいんだろうか? #648
https://github.com/opencontainers/runtime-spec/releases/tag/v1.0.0-rc5
platformについての記述がREQUIEDに指定されています。 #695 それに関連してWindowsやSolarisについての記述が追加されたり修正されたり。 #673
あ、rc4 で負の値を指定できるようになったいくつかのfieldで、またunsignedに戻されていますね。#704
libseccompのバージョンが v2.3.0からv2.3.2に上がっています。 #705
https://github.com/opencontainers/runtime-spec/releases/tag/v1.0.0-rc6
最後のrc release。 WindowsでのCPU使用率についての記述がperecnt指定からmaximum指定になっていたり。#777 指定したいパーセントに100を掛けた値を設定するように読めますけども。
やっぱりmemory usageに負の値を指定できるようになりました。-1
を指定するとunlimitedの意味になるようですね。 #876
platformについてのfiledが削除されました。runcでは使用されておらず、image-specのみが気にすることだろうということで? #850
https://github.com/opencontainers/runtime-spec/releases/tag/v1.0.0
first release!
disableOOMKiller
がmemory section配下に移動しました。#896
breaking chnageとされているのはこれだけ。
https://github.com/opencontainers/runtime-spec/releases/tag/v1.0.1
ほぼほぼwordingやtypo fixですね。当然ですけど。
https://github.com/opencontainers/runtime-spec/pull/1037
v1.0.1に比べるとたくさんあります。 差分は(多分)これ https://github.com/opencontainers/runtime-spec/compare/v1.0.1…c4ee7d1
hookが追加されました。 createContainer
, startContainer
, createRuntime
の3つです。代わりにprestart
がdeprecatedに指定されています。LXCと同じ名前だとか。 #1008
memoryに関してcgroupのuse_hierarchyが使用できるようになっています。 #985 第3回 Linuxカーネルのコンテナ機能[2] ─cgroupとは?(その1):LXCで学ぶコンテナ入門 -軽量仮想化環境を実現する技術|gihyo.jp … 技術評論社
WindowsにおいてDeviceをschemaに含められるようになっています。 #976
libseccompが v2.4.0になり、SMCP_ACT_LOG
が使用できるようになっています。#1019
syscallのlogを残すようにする設定? http://man7.org/linux/man-pages/man3/seccomp_init.3.html
また、実装の一覧にgVisor、kara-container、crunが追加されています。crunはOCIのC実装で、runcより高速に動作するようです。元々はRedHatのgiuseppe氏による個人project?がContainers org配下に移動しています。 https://github.com/containers/crun
取り上げられていない変更がめちゃくちゃあるので気になった人は直接見てください。