CRIについて、Interfaceの定義はどこにあるのか

こんにちは、うなすけです。

自分のブログ ( https://blog.unasuke.com/ )も持っているのですが、そこに書くまでの分量でもない、けどMastodonやTwitterには書ききれない、そんなような記事を書いていこうと思っています。

さてCRIについてですが。CRIについての詳しい説明は次の記事に譲るとして、ではそのInterface definitionはどこにあるんだという話です。

CRIランタイムやハイレベルランタイムとも呼ばれます。kubeletからの命令をunix socket経由で受付けます。このAPIはCRIと呼ばれます。

と上の記事で説明されているように、CRIを話すのはkubeletです。そしてkubeletの実装はここにあるのでした。

https://github.com/kubernetes/kubernetes/blob/v1.14.1/pkg/kubelet/apis/cri/runtime/v1alpha2/api.proto

URLからわかるように、これは Kubernetes v1.14.1 におけるCRIのProtocol Bufferの定義になっています。では最新版、masterではどうなっているでしょうか。
https://github.com/kubernetes/kubernetes/blob/master/pkg/kubelet/apis/cri/runtime/v1alpha2/api.proto

404ですね。どういうことなのでしょう。

次のpull requestにより、リポジトリに切り出されたことが確認できます。

It's hard for folks who are writing CRI implementations to vendor in code from the main kubernetes repository. Let's make it easier by adding this to staging/ and publish the API in the new repository

ということで、CRIの定義はここに移動しています。

ただ、説明にもあるように使いやすいようリポジトリを切り出しただけなので、pull requestはここではなく、 https://git.k8s.io/kubernetes/ に対して提出してほしいということがCONTRIBUTING.mdに記載されています。

ちなみに、  https://git.k8s.io/kubernetes/ は現時点では https://github.com/kubernetes/kubernetes に302でredirectするようになっています。

% curl -I https://git.k8s.io/kubernetes
HTTP/2 302
server: nginx/1.10.3
date: Fri, 26 Apr 2019 07:54:32 GMT
content-type: text/html
content-length: 161
location: https://github.com/kubernetes/kubernetes/
via: 1.1 google
alt-svc: clear




投げ銭していただけるととても嬉しいです