{"id":13635177,"url":"https://github.com/kubernetes/cri-api","last_synced_at":"2025-05-14T04:08:36.737Z","repository":{"id":40910520,"uuid":"177744283","full_name":"kubernetes/cri-api","owner":"kubernetes","description":"Container Runtime Interface (CRI) – a plugin interface which enables kubelet to use a wide variety of container runtimes.","archived":false,"fork":false,"pushed_at":"2025-04-25T04:13:57.000Z","size":2874,"stargazers_count":415,"open_issues_count":0,"forks_count":133,"subscribers_count":15,"default_branch":"master","last_synced_at":"2025-04-25T05:26:05.288Z","etag":null,"topics":["k8s-sig-node","k8s-staging"],"latest_commit_sha":null,"homepage":null,"language":"Go","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/kubernetes.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"code-of-conduct.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY_CONTACTS","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2019-03-26T08:22:50.000Z","updated_at":"2025-04-25T04:14:01.000Z","dependencies_parsed_at":"2023-10-17T08:23:04.073Z","dependency_job_id":"22116a10-92ba-461a-a97b-b8832b008943","html_url":"https://github.com/kubernetes/cri-api","commit_stats":{"total_commits":466,"total_committers":105,"mean_commits":4.438095238095238,"dds":0.6330472103004292,"last_synced_commit":"9b9dff2569803686ed76db3c1daa52b4c48ecf81"},"previous_names":[],"tags_count":1180,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kubernetes%2Fcri-api","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kubernetes%2Fcri-api/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kubernetes%2Fcri-api/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kubernetes%2Fcri-api/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kubernetes","download_url":"https://codeload.github.com/kubernetes/cri-api/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254069870,"owners_count":22009558,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["k8s-sig-node","k8s-staging"],"created_at":"2024-08-02T00:00:41.941Z","updated_at":"2025-05-14T04:08:31.713Z","avatar_url":"https://github.com/kubernetes.png","language":"Go","funding_links":[],"categories":["others","Go","Repositories"],"sub_categories":[],"readme":"## Purpose\n\nThis repository contains the definitions for the Container Runtime Interface (CRI).\nCRI is a plugin interface which enables kubelet to use a wide variety of container runtimes,\nwithout the need to recompile. CRI consists of a protocol buffers and gRPC API.\nRead more about CRI API at [kubernetes docs](https://kubernetes.io/docs/concepts/architecture/cri/).\n\nThe repository [kubernetes/cri-api](https://github.com/kubernetes/cri-api) is a mirror of https://github.com/kubernetes/kubernetes/tree/master/staging/src/k8s.io/cri-api.\nPlease do **not** file issues or submit PRs against the [kubernetes/cri-api](https://github.com/kubernetes/cri-api)\nrepository as it is readonly, all development is done in [kubernetes/kubernetes](https://github.com/kubernetes/kubernetes).\n\nThe CRI API is defined in [kubernetes/kubernetes](https://github.com/kubernetes/kubernetes)\nrepository and is **only** intended to be used for kubelet to container runtime \ninteractions, or for node-level troubleshooting using a tool such as `crictl`.\nIt is **not** a common purpose container runtime API for general use, and is intended\nto be Kubernetes-centric. We try to avoid it, but there may be logic within a container\nruntime that optimizes for the order or specific parameters of call(s) that the kubelet\nmakes.\n\n## Version skew policy and feature development\n\nPlease read about:\n\n- [CRI API version skew policy](https://kubernetes.dev/docs/code/cri-api-version-skew-policy/)\n- [Kubernetes feature development and container runtimes](https://kubernetes.dev/docs/code/cri-api-dev-policies/)\n\n## Community, discussion, contribution, and support\n\nLearn how to engage with the Kubernetes community on the [community\npage](https://www.k8s.dev/community/).\n\nYou can reach the maintainers of this repository at:\n\n- Slack: #sig-node (on https://kubernetes.slack.com -- get an\n  invite at [slack.kubernetes.io](https://slack.kubernetes.io))\n- Mailing List:\n  https://groups.google.com/forum/#!forum/kubernetes-sig-node\n\nIssues can be filed at https://github.com/kubernetes/kubernetes/issues. See [CONTRIBUTING.md](CONTRIBUTING.md).\n\n### Code of Conduct\n\nParticipation in the Kubernetes community is governed by the [Kubernetes\nCode of Conduct](code-of-conduct.md).\n\n### Contribution Guidelines\n\nSee [CONTRIBUTING.md](CONTRIBUTING.md) for more information. Please note that [kubernetes/cri-api](https://github.com/kubernetes/cri-api)\nis a readonly mirror repository, all development is done at [kubernetes/kubernetes](https://github.com/kubernetes/kubernetes).\n\n## Change history\n\nHere is the change history of the Container Runtime Interface protocol. The change history is maintained manually:\n\n### v1.20\n\n`git diff v1.19.0 v1.20.0 -- staging/src/k8s.io/cri-api/pkg/apis/runtime/v1/api.proto`\n\n- CRI [v1 introduced](https://github.com/kubernetes/kubernetes/pull/96387)\n\n### v1.21\n\n`git diff v1.20.0 v1.21.0 -- staging/src/k8s.io/cri-api/pkg/apis/runtime/v1/api.proto`\n\nNo changes\n\n### v1.22\n\n`git diff v1.21.0 v1.22.0 -- staging/src/k8s.io/cri-api/pkg/apis/runtime/v1/api.proto`\n\n- [Windows host process support](https://github.com/kubernetes/kubernetes/pull/99576)\n  - `PodSandboxConfig` has `windows` field  of type `WindowsPodSandboxConfig`\n  - New type `WindowsPodSandboxConfig` introduced\n  - New type `WindowsSandboxSecurityContext` introduced\n  - The type `WindowsContainerSecurityContext` has a new `host_process` boolean field\n\n- [Feature: add unified on CRI to support cgroup v2](https://github.com/kubernetes/kubernetes/pull/102578)\n - The type `LinuxContainerResources` has a new field `unified` which is a map of strings\n\n- [Alpha node swap support](https://github.com/kubernetes/kubernetes/pull/102823)\n  - The type `LinuxContainerResources` has a new `memory_swap_limit_in_bytes` int64 field\n\n### v1.23\n\n`git diff v1.22.0 v1.23.0 -- staging/src/k8s.io/cri-api/pkg/apis/runtime/v1/api.proto`\n\n- [CRI: add fields for pod level stats to satisfy the /stats/summary API](https://github.com/kubernetes/kubernetes/pull/102789)\n  - New functions `PodSandboxStats`, `ListPodSandboxStats` with the corresponding types of request and response objects are introduced\n\n- [pass sandbox resource requirements over CRI](https://github.com/kubernetes/kubernetes/pull/104886)\n  - New fields on `LinuxPodSandboxConfig`: `overhead` and `resources` of type `LinuxContainerResources`.\n\n- [prevents garbage collection from removing pinned images](https://github.com/kubernetes/kubernetes/pull/103299)\n  - The type `Image` has a new boolean field `pinned`\n\n### v1.24\n\n`git diff v1.23.0 v1.24.0 -- staging/src/k8s.io/cri-api/pkg/apis/runtime/v1/api.proto`\n\n- [Update CRI-API Capabilities to include a field that allows us to set ambient capabilities](https://github.com/kubernetes/kubernetes/pull/104620)\n  - The type `Capability` has a new string field `add_ambient_capabilities`\n\n- [CRI-API - Add rootfs size to WindowsContainerResources](https://github.com/kubernetes/kubernetes/pull/108894)\n  - The type `WindowsContainerResources` has a new int64 field `rootfs_size_in_bytes`\n\n### v1.25\n\n`git diff v1.24.0 v1.25.0 -- staging/src/k8s.io/cri-api/pkg/apis/runtime/v1/api.proto`\n\n\n- [kubelet: add CRI definitions for user namespaces](https://github.com/kubernetes/kubernetes/pull/110535)\n  - The new type `UserNamespace` introduced to represent user namespaces id mapping\n  - The type `NamespaceOption` has a new field `userns_options` of type `UserNamespace`\n\n- [Minimal checkpointing support](https://github.com/kubernetes/kubernetes/pull/104907)\n  - The new method `CheckpointContainer` introduced with the corresponding request and response types\n\n- [Update CRI API to support Evented PLEG](https://github.com/kubernetes/kubernetes/pull/111642)\n  - The new streaming method `GetContainerEvents` is introduced with the corresponding request and response types\n\n- [CRI changes to support in-place pod resize](https://github.com/kubernetes/kubernetes/pull/111645)\n  - The new type `ContainerResources` is introduced\n  - The type `ContainerStatus` has a new field `resources` of type `ContainerResources`\n  - The semantic of `UpdateContainerResources` updated. The method must be implemented as synchronous and return error on failure\n\n### v1.26\n\n`git diff v1.25.0 v1.26.0 -- staging/src/k8s.io/cri-api/pkg/apis/runtime/v1/api.proto`\n\n- [CRI: Add Windows Podsandbox Stats](https://github.com/kubernetes/kubernetes/pull/110754)\n  - Added fields to the type `WindowsPodSandboxStats` expressing stats required to be collected from windows pods.\n\n- [Windows hostnetwork alpha](https://github.com/kubernetes/kubernetes/pull/112961)\n  - New type `WindowsNamespaceOption` introduced\n  - The type `WindowsSandboxSecurityContext` has a new field `namespace_options` of type `WindowsNamespaceOption`\n\n- [Improve the API description of `PodSecurityContext.SupplementalGroups` to clarify its unfamiliar behavior](https://github.com/kubernetes/kubernetes/pull/113047)\n  - Clarified the expected behavior of `SupplementalGroups` field of `PodSecurityContext`\n\n- [Add Support for Evented PLEG](https://github.com/kubernetes/kubernetes/pull/111384)\n  - The type `ContainerEventResponse` updated: the field `pod_sandbox_metadata` removed and fields `pod_sandbox_status` and `containers_statuses` added.\n  - The type `PodSandboxStatusResponse` has a new fields `containers_statuses` and `timestamp`\n\n### v1.27\n\n`git diff v1.26.0 v1.27.0 -- staging/src/k8s.io/cri-api/pkg/apis/runtime/v1/api.proto`\n\n- [CRI: Add CDI device info for containers](https://github.com/kubernetes/kubernetes/pull/115891/)\n  - New type `CDIDevice` was introduced and added to container config\n\n- [Add mappings for volumes](https://github.com/kubernetes/kubernetes/pull/116377)\n  - Added new fields to the type `Mount` expressing runtime UID/GID mappings for the mount.\n\n### v1.28\n\n`git diff v1.27.0 v1.28.0 -- staging/src/k8s.io/cri-api/pkg/apis/runtime/v1/api.proto`\n\n- [cri-api: fix comment lines about PROPAGATION_PRIVATE](https://github.com/kubernetes/kubernetes/pull/115704)\n  - Fixed comment lines about PROPAGATION_PRIVATE\n\n- [Add user specified image to CRI ContainerConfig](https://github.com/kubernetes/kubernetes/pull/118652)\n  - Added the `user_specified_image` field to type `ImageSpec`\n\n- [kubelet: get cgroup driver config from CRI ](https://github.com/kubernetes/kubernetes/pull/118770)\n  - Added rpc for querying runtime configuration\n  - Added cavieats about cgroup driver field\n\n- [Add swap to stats to Summary API and Prometheus endpoints (/stats/summary and /metrics/resource)](https://github.com/kubernetes/kubernetes/pull/118865)\n  - Added `SwapUsage` type\n  - Added `SwapUsage` field to `ContainerStats` type\n\n- [Expose commit memory used in WindowsMemoryUsage struct](https://github.com/kubernetes/kubernetes/pull/119238)\n  - Added the `commit_memory_bytes` field to type `WindowsMemoryUsage`\n\n### v1.29\n\n`git diff v1.28.0 v1.29.0 -- staging/src/k8s.io/cri-api/pkg/apis/runtime/v1/api.proto`\n\n- [Add runtime handler field to ImageSpec struct](https://github.com/kubernetes/kubernetes/pull/121121)\n  - Added `runtime_handler` field to type `ImageSpec`\n\n- [Add container filesystem to the ImageFsInfoResponse](https://github.com/kubernetes/kubernetes/pull/120914)\n  - Added `container_filesystems` field to type `ImageFsInfoResponse`\n\n### v1.30\n\n`git diff v1.29.0 v1.30.0 -- staging/src/k8s.io/cri-api/pkg/apis/runtime/v1/api.proto`\n\n- [Recursive Read-only (RRO) mounts](https://github.com/kubernetes/kubernetes/pull/123272)\n  - Added RuntimeHandler and RuntimeHandlerFeatures type\n  - Added `recursive_read_only` field to type `Mount`\n  - Added `runtime_handlers` field to type `StatusResponse`\n\n- [Add user_namespaces field to RuntimeHandlerFeatures](https://github.com/kubernetes/kubernetes/pull/123356)\n  - Added `user_namespaces` field to type `RuntimeHandlerFeatures`\n\n- [Add image_id to CRI Container message](https://github.com/kubernetes/kubernetes/pull/123508)\n  - Added `image_id` field to type `Container`\n\n- [Add image_id to CRI ContainerStatus message](https://github.com/kubernetes/kubernetes/pull/123583)\n  - Added `image_id` field to type `ContainerStatus`\n\n### v1.31\n\n`git diff v1.30.0 v1.31.0 -- staging/src/k8s.io/cri-api/pkg/apis/runtime/v1/api.proto`\n\n- [KEP-3619: Add NodeStatus.Features.SupplementalGroupsPolicy API and e2e](https://github.com/kubernetes/kubernetes/pull/125470)\n  - Added `features` field to the type `StatusResponse` for the runtime to kubelet handshake on what features are supported\n\n- [KEP-3619: Fine-grained SupplementalGroups control](https://github.com/kubernetes/kubernetes/pull/117842)\n  - Added `supplemental_groups_policy` field to types `LinuxContainerSecurityContext` and `LinuxSandboxSecurityContext`\n  - Added `user` field to the type `ContainerStatus` to represent actual user for the container \n\n- [[KEP-4639] Add OCI VolumeSource CRI API](https://github.com/kubernetes/kubernetes/pull/125659)\n  - Added `image` field to the type `Mount` to represent the OCI VolumeSource \n\n### v1.32\n\n`git diff v1.31.0 v1.32.0 -- staging/src/k8s.io/cri-api/pkg/apis/runtime/v1/api.proto`\n\n- [CRI: Add field to support CPU affinity on Windows](https://github.com/kubernetes/kubernetes/pull/124285)\n  - CRI field `affinity_cpus` to `WindowsContainerResources` struct to support CPU affinity on Windows.\n    This field will be used by Windows CPU manager to set the logical processors to affinitize\n    for a particular container down to containerd/hcsshim.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkubernetes%2Fcri-api","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkubernetes%2Fcri-api","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkubernetes%2Fcri-api/lists"}