Container Runtime Interface (CRI) – a plugin interface which enables kubelet to use a wide variety of container runtimes.
Go to file
Kubernetes Publisher 479df36517 Merge pull request #128653 from saschagrunert/cri-gogo
Remove gogo from proto bindings (part 1: CRI)

Kubernetes-commit: 0fe23942fdeabb8f90a252a8eb241f9217177dca
2025-07-04 17:36:54 +00:00
.github New staging repository for cri-api 2019-03-21 10:47:24 +05:30
pkg Remove gogo-protobuf from CRI 2024-11-07 11:06:21 +01:00
CONTRIBUTING.md update of CRI API readme file 2025-01-23 20:25:49 +00:00
LICENSE New staging repository for cri-api 2019-03-21 10:47:24 +05:30
OWNERS enable dep-approvers for staging go.mod/go.sum 2025-04-24 15:38:41 -07:00
README.md renamed SIG Node google groups 2025-05-21 20:45:01 +00:00
SECURITY_CONTACTS Fix `cri-api` `SECURITY_CONTACTS` by removing a duplicate 2024-05-02 09:21:33 +02:00
code-of-conduct.md New staging repository for cri-api 2019-03-21 10:47:24 +05:30
doc.go remove import doc comments 2024-12-02 14:43:58 +01:00
go.mod Update vendor 2025-07-01 15:23:58 +00:00
go.sum Merge pull request #128653 from saschagrunert/cri-gogo 2025-07-04 17:36:54 +00:00

README.md

Purpose

This repository contains the definitions for the Container Runtime Interface (CRI). CRI is a plugin interface which enables kubelet to use a wide variety of container runtimes, without the need to recompile. CRI consists of a protocol buffers and gRPC API. Read more about CRI API at kubernetes docs.

The repository kubernetes/cri-api is a mirror of https://github.com/kubernetes/kubernetes/tree/master/staging/src/k8s.io/cri-api. Please do not file issues or submit PRs against the kubernetes/cri-api repository as it is readonly, all development is done in kubernetes/kubernetes.

The CRI API is defined in kubernetes/kubernetes repository and is only intended to be used for kubelet to container runtime interactions, or for node-level troubleshooting using a tool such as crictl. It is not a common purpose container runtime API for general use, and is intended to be Kubernetes-centric. We try to avoid it, but there may be logic within a container runtime that optimizes for the order or specific parameters of call(s) that the kubelet makes.

Version skew policy and feature development

Please read about:

Community, discussion, contribution, and support

Learn how to engage with the Kubernetes community on the community page.

You can reach the maintainers of this repository at:

Issues can be filed at https://github.com/kubernetes/kubernetes/issues. See CONTRIBUTING.md.

Code of Conduct

Participation in the Kubernetes community is governed by the Kubernetes Code of Conduct.

Contribution Guidelines

See CONTRIBUTING.md for more information. Please note that kubernetes/cri-api is a readonly mirror repository, all development is done at kubernetes/kubernetes.

Change history

Here is the change history of the Container Runtime Interface protocol. The change history is maintained manually:

v1.20

git diff v1.19.0 v1.20.0 -- staging/src/k8s.io/cri-api/pkg/apis/runtime/v1/api.proto

v1.21

git diff v1.20.0 v1.21.0 -- staging/src/k8s.io/cri-api/pkg/apis/runtime/v1/api.proto

No changes

v1.22

git diff v1.21.0 v1.22.0 -- staging/src/k8s.io/cri-api/pkg/apis/runtime/v1/api.proto

  • Windows host process support

    • PodSandboxConfig has windows field of type WindowsPodSandboxConfig
    • New type WindowsPodSandboxConfig introduced
    • New type WindowsSandboxSecurityContext introduced
    • The type WindowsContainerSecurityContext has a new host_process boolean field
  • Feature: add unified on CRI to support cgroup v2

  • The type LinuxContainerResources has a new field unified which is a map of strings

  • Alpha node swap support

    • The type LinuxContainerResources has a new memory_swap_limit_in_bytes int64 field

v1.23

git diff v1.22.0 v1.23.0 -- staging/src/k8s.io/cri-api/pkg/apis/runtime/v1/api.proto

v1.24

git diff v1.23.0 v1.24.0 -- staging/src/k8s.io/cri-api/pkg/apis/runtime/v1/api.proto

v1.25

git diff v1.24.0 v1.25.0 -- staging/src/k8s.io/cri-api/pkg/apis/runtime/v1/api.proto

v1.26

git diff v1.25.0 v1.26.0 -- staging/src/k8s.io/cri-api/pkg/apis/runtime/v1/api.proto

v1.27

git diff v1.26.0 v1.27.0 -- staging/src/k8s.io/cri-api/pkg/apis/runtime/v1/api.proto

v1.28

git diff v1.27.0 v1.28.0 -- staging/src/k8s.io/cri-api/pkg/apis/runtime/v1/api.proto

v1.29

git diff v1.28.0 v1.29.0 -- staging/src/k8s.io/cri-api/pkg/apis/runtime/v1/api.proto

v1.30

git diff v1.29.0 v1.30.0 -- staging/src/k8s.io/cri-api/pkg/apis/runtime/v1/api.proto

v1.31

git diff v1.30.0 v1.31.0 -- staging/src/k8s.io/cri-api/pkg/apis/runtime/v1/api.proto

v1.32

git diff v1.31.0 v1.32.0 -- staging/src/k8s.io/cri-api/pkg/apis/runtime/v1/api.proto

  • CRI: Add field to support CPU affinity on Windows
    • CRI field affinity_cpus to WindowsContainerResources struct to support CPU affinity on Windows. This field will be used by Windows CPU manager to set the logical processors to affinitize for a particular container down to containerd/hcsshim.