Skip to content

Commit 2973b4b

Browse files
authored
Merge pull request kubernetes#129789 from SergeyKanzhelev/updateCriApiReadme
update of CRI API readme file
2 parents 3bc8f01 + 9ac25f1 commit 2973b4b

File tree

2 files changed

+36
-91
lines changed

2 files changed

+36
-91
lines changed
Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,15 @@
11
# Contributing guidelines
22

3-
Do not open pull requests directly against this repository, they will be ignored. Instead, please open pull requests against [kubernetes/kubernetes](https://git.k8s.io/kubernetes/). Please follow the same [contributing guide](https://git.k8s.io/kubernetes/CONTRIBUTING.md) you would follow for any other pull request made to kubernetes/kubernetes.
3+
Do not open pull requests directly against this repository, they will be ignored.
4+
Instead, please open pull requests against [kubernetes/kubernetes](https://git.k8s.io/kubernetes/).
5+
Please follow the same [contributing guide](https://git.k8s.io/kubernetes/CONTRIBUTING.md)
6+
you would follow for any other pull request made to kubernetes/kubernetes.
47

5-
This repository is published from [kubernetes/kubernetes/staging/src/k8s.io/cri-api](https://git.k8s.io/kubernetes/staging/src/k8s.io/cri-api) by the [kubernetes publishing-bot](https://git.k8s.io/publishing-bot).
8+
Issues related to CRI API can be filed at [kubernetes/kubernetes repository](https://github.com/kubernetes/kubernetes/issues).
9+
For issues in specific implementations of CRI API (e.g. container runtime) - follow processes of the specific runtime.
10+
For support, ask your Kubernetes vendor or ask at the [forum](https://discuss.kubernetes.io/).
11+
12+
This repository is published from [kubernetes/kubernetes/staging/src/k8s.io/cri-api](https://git.k8s.io/kubernetes/staging/src/k8s.io/cri-api)
13+
by the [kubernetes publishing-bot](https://git.k8s.io/publishing-bot).
614

715
Please see [Staging Directory and Publishing](https://git.k8s.io/community/contributors/devel/sig-architecture/staging.md) for more information.

staging/src/k8s.io/cri-api/README.md

Lines changed: 26 additions & 89 deletions
Original file line numberDiff line numberDiff line change
@@ -17,89 +17,40 @@ to be Kubernetes-centric. We try to avoid it, but there may be logic within a co
1717
runtime that optimizes for the order or specific parameters of call(s) that the kubelet
1818
makes.
1919

20-
## Version skew policy
20+
## Version skew policy and feature development
2121

22-
On a single Node there may be installed multiple components implementing
23-
different versions of CRI API.
22+
Please read about:
2423

25-
For example, on a single node there might be:
24+
- [CRI API version skew policy](https://kubernetes.dev/docs/code/cri-api-version-skew-policy/)
25+
- [Kubernetes feature development and container runtimes](https://kubernetes.dev/docs/code/cri-api-dev-policies/)
2626

27-
- _Kubelet_ may call into _Container Runtime_ (e.g. [containerd](https://containerd.io))
28-
and _Image Service Proxy_ (e.g. [stargz-snapshotter](https://github.com/containerd/stargz-snapshotter)).
29-
_Container Runtime_ may be versioned with the OS Image, _Kubelet_ is installed
30-
by system administrator and _Image Service proxy_ is versioned by the third party vendor.
31-
- _Image Service Proxy_ calls into _Container Runtime_.
32-
- _CRI tools_ (e.g. [crictl](https://kubernetes.io/docs/tasks/debug/debug-cluster/crictl/))
33-
may be installed by end user to troubleshoot, same as a third party daemonsets.
34-
All of them are used to call into the _Container Runtime_ to collect container information.
35-
36-
So on a single node it may happen that _Container Runtime_ is serving a newer
37-
version'd kubelet and older versioned crictl. This is a supported scenario within
38-
the version skew policy.
39-
40-
### Version Skew Policy for CRI API
41-
42-
CRI API has two versions:
43-
- Major semantic version (known versions are `v1alpha2` ([removed in 1.26](https://kubernetes.io/blog/2022/12/09/kubernetes-v1-26-release/#cri-v1alpha2-removed)), `v1`).
44-
- Kubernetes version (for example: `@1.23`). Note, the `cri-api` Golang library is versioned as `0.23` as it doesn't guarantee Go types backward compatibility.
45-
46-
Major semantic version (e.g. `v1`) is used to introduce breaking changes
47-
and major new features that are incompatible with the current API.
48-
49-
Kubernetes version is used to indicate a specific feature set implemented
50-
on top of the major semantic version. All changes made without the change
51-
of a major semantic version API must be backward and forward compatible.
52-
53-
- _Kubelet_ must work with the older _Container Runtime_ if it implements
54-
the same semantic version of CRI API (e.g. `v1`) of up to three Kubernetes minor
55-
versions back. New features implemented in CRI API must be gracefully degraded.
56-
For example, _Kubelet_ of version 1.26 must work with _Container Runtime_
57-
implementing `k8s.io/[email protected]`+.
58-
- _Kubelet_ must work with _Container Runtime_ if it implements
59-
the same semantic version of CRI API (e.g. `v1`) of up to
60-
three minor versions up. New features implemented in CRI API must not change
61-
behavior of old method calls and response values. For example, _Kubelet_ of
62-
version 1.22 must work with _Container Runtime_ implementing `k8s.io/[email protected]`.
63-
64-
65-
## Versioning
27+
## Community, discussion, contribution, and support
6628

67-
This library contains go classes generated from the CRI API protocol buffers and gRPC API.
29+
Learn how to engage with the Kubernetes community on the [community
30+
page](https://www.k8s.dev/community/).
6831

69-
The library versioned as `0.XX` as Kubernetes doesn't provide any guarantees
70-
on backward compatibility of Go wrappers between versions. However CRI API itself
71-
(protocol buffers and gRPC API) is marked as stable `v1` version and it is
72-
backward compatible between versions.
32+
You can reach the maintainers of this repository at:
7333

74-
Versions like `v0.<minor>.<patch>` (e.g. `v0.25.5`) are considered stable.
75-
It is discouraged to introduce CRI API changes in patch releases and recommended
76-
to use versions like `v0.<minor>.0`.
34+
- Slack: #sig-node (on https://kubernetes.slack.com -- get an
35+
invite at [slack.kubernetes.io](https://slack.kubernetes.io))
36+
- Mailing List:
37+
https://groups.google.com/forum/#!forum/kubernetes-sig-node
7738

78-
All alpha and beta versions (e.g. `k8s.io/[email protected]`) should be
79-
backward and forward compatible.
39+
Issues can be filed at https://github.com/kubernetes/kubernetes/issues. See [CONTRIBUTING.md](CONTRIBUTING.md).
8040

81-
## Feature development
41+
### Code of Conduct
8242

83-
Some features development requires changes in CRI API and corresponding changes
84-
in _Container Runtime_. Coordinating between Kubernetes branches and release
85-
versions and _Container Runtime_ versions is not always trivial.
43+
Participation in the Kubernetes community is governed by the [Kubernetes
44+
Code of Conduct](code-of-conduct.md).
8645

87-
The recommended feature development flow is following:
46+
### Contribution Guidelines
8847

89-
- Review proposed CRI API changes during the KEP review stage.
90-
Some field names and types may not be spelled out exactly at this stage.
91-
- Locally implement a prototype that implement changes in both - Kubernetes and Container Runtime.
92-
- Submit a Pull Request for Kubernetes implementing CRI API changes alongside the feature code.
93-
Feature must be developed to degrade gracefully when used with older Container Runtime
94-
according to the Version Skew policy.
95-
- Once PR is merged, wait for the next Kubernetes release tag being produced.
96-
Find the corresponding CRI API tag (e.g. `k8s.io/[email protected]`).
97-
- This tag can be used to implement the feature in Container Runtime. It is recommended
98-
to switch to the stable tag like (`k8s.io/[email protected]`) once available.
48+
See [CONTRIBUTING.md](CONTRIBUTING.md) for more information. Please note that [kubernetes/cri-api](https://github.com/kubernetes/cri-api)
49+
is a readonly mirror repository, all development is done at [kubernetes/kubernetes](https://github.com/kubernetes/kubernetes).
9950

10051
## Change history
10152

102-
Here is the change history of the Container Runtime Interface protocol:
53+
Here is the change history of the Container Runtime Interface protocol. The change history is maintained manually:
10354

10455
### v1.20
10556

@@ -263,25 +214,11 @@ No changes
263214
- [[KEP-4639] Add OCI VolumeSource CRI API](https://github.com/kubernetes/kubernetes/pull/125659)
264215
- Added `image` field to the type `Mount` to represent the OCI VolumeSource
265216

217+
### v1.32
266218

267-
## Community, discussion, contribution, and support
268-
269-
Learn how to engage with the Kubernetes community on the [community
270-
page](http://kubernetes.io/community/).
271-
272-
You can reach the maintainers of this repository at:
273-
274-
- Slack: #sig-node (on https://kubernetes.slack.com -- get an
275-
invite at [slack.kubernetes.io](https://slack.kubernetes.io))
276-
- Mailing List:
277-
https://groups.google.com/forum/#!forum/kubernetes-sig-node
278-
279-
### Code of Conduct
280-
281-
Participation in the Kubernetes community is governed by the [Kubernetes
282-
Code of Conduct](code-of-conduct.md).
283-
284-
### Contribution Guidelines
219+
`git diff v1.31.0 v1.32.0 -- staging/src/k8s.io/cri-api/pkg/apis/runtime/v1/api.proto`
285220

286-
See [CONTRIBUTING.md](CONTRIBUTING.md) for more information. Please note that [kubernetes/cri-api](https://github.com/kubernetes/cri-api)
287-
is a readonly mirror repository, all development is done at [kubernetes/kubernetes](https://github.com/kubernetes/kubernetes).
221+
- [CRI: Add field to support CPU affinity on Windows](https://github.com/kubernetes/kubernetes/pull/124285)
222+
- CRI field `affinity_cpus` to `WindowsContainerResources` struct to support CPU affinity on Windows.
223+
This field will be used by Windows CPU manager to set the logical processors to affinitize
224+
for a particular container down to containerd/hcsshim.

0 commit comments

Comments
 (0)