mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-08-09 03:57:41 +00:00
Merge pull request #129789 from SergeyKanzhelev/updateCriApiReadme
update of CRI API readme file
This commit is contained in:
commit
2973b4b99a
@ -1,7 +1,15 @@
|
|||||||
# Contributing guidelines
|
# Contributing guidelines
|
||||||
|
|
||||||
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.
|
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.
|
||||||
|
|
||||||
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).
|
Issues related to CRI API can be filed at [kubernetes/kubernetes repository](https://github.com/kubernetes/kubernetes/issues).
|
||||||
|
For issues in specific implementations of CRI API (e.g. container runtime) - follow processes of the specific runtime.
|
||||||
|
For support, ask your Kubernetes vendor or ask at the [forum](https://discuss.kubernetes.io/).
|
||||||
|
|
||||||
|
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).
|
||||||
|
|
||||||
Please see [Staging Directory and Publishing](https://git.k8s.io/community/contributors/devel/sig-architecture/staging.md) for more information.
|
Please see [Staging Directory and Publishing](https://git.k8s.io/community/contributors/devel/sig-architecture/staging.md) for more information.
|
||||||
|
@ -17,89 +17,40 @@ to be Kubernetes-centric. We try to avoid it, but there may be logic within a co
|
|||||||
runtime that optimizes for the order or specific parameters of call(s) that the kubelet
|
runtime that optimizes for the order or specific parameters of call(s) that the kubelet
|
||||||
makes.
|
makes.
|
||||||
|
|
||||||
## Version skew policy
|
## Version skew policy and feature development
|
||||||
|
|
||||||
On a single Node there may be installed multiple components implementing
|
Please read about:
|
||||||
different versions of CRI API.
|
|
||||||
|
|
||||||
For example, on a single node there might be:
|
- [CRI API version skew policy](https://kubernetes.dev/docs/code/cri-api-version-skew-policy/)
|
||||||
|
- [Kubernetes feature development and container runtimes](https://kubernetes.dev/docs/code/cri-api-dev-policies/)
|
||||||
|
|
||||||
- _Kubelet_ may call into _Container Runtime_ (e.g. [containerd](https://containerd.io))
|
## Community, discussion, contribution, and support
|
||||||
and _Image Service Proxy_ (e.g. [stargz-snapshotter](https://github.com/containerd/stargz-snapshotter)).
|
|
||||||
_Container Runtime_ may be versioned with the OS Image, _Kubelet_ is installed
|
|
||||||
by system administrator and _Image Service proxy_ is versioned by the third party vendor.
|
|
||||||
- _Image Service Proxy_ calls into _Container Runtime_.
|
|
||||||
- _CRI tools_ (e.g. [crictl](https://kubernetes.io/docs/tasks/debug/debug-cluster/crictl/))
|
|
||||||
may be installed by end user to troubleshoot, same as a third party daemonsets.
|
|
||||||
All of them are used to call into the _Container Runtime_ to collect container information.
|
|
||||||
|
|
||||||
So on a single node it may happen that _Container Runtime_ is serving a newer
|
Learn how to engage with the Kubernetes community on the [community
|
||||||
version'd kubelet and older versioned crictl. This is a supported scenario within
|
page](https://www.k8s.dev/community/).
|
||||||
the version skew policy.
|
|
||||||
|
|
||||||
### Version Skew Policy for CRI API
|
You can reach the maintainers of this repository at:
|
||||||
|
|
||||||
CRI API has two versions:
|
- Slack: #sig-node (on https://kubernetes.slack.com -- get an
|
||||||
- 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`).
|
invite at [slack.kubernetes.io](https://slack.kubernetes.io))
|
||||||
- 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.
|
- Mailing List:
|
||||||
|
https://groups.google.com/forum/#!forum/kubernetes-sig-node
|
||||||
|
|
||||||
Major semantic version (e.g. `v1`) is used to introduce breaking changes
|
Issues can be filed at https://github.com/kubernetes/kubernetes/issues. See [CONTRIBUTING.md](CONTRIBUTING.md).
|
||||||
and major new features that are incompatible with the current API.
|
|
||||||
|
|
||||||
Kubernetes version is used to indicate a specific feature set implemented
|
### Code of Conduct
|
||||||
on top of the major semantic version. All changes made without the change
|
|
||||||
of a major semantic version API must be backward and forward compatible.
|
|
||||||
|
|
||||||
- _Kubelet_ must work with the older _Container Runtime_ if it implements
|
Participation in the Kubernetes community is governed by the [Kubernetes
|
||||||
the same semantic version of CRI API (e.g. `v1`) of up to three Kubernetes minor
|
Code of Conduct](code-of-conduct.md).
|
||||||
versions back. New features implemented in CRI API must be gracefully degraded.
|
|
||||||
For example, _Kubelet_ of version 1.26 must work with _Container Runtime_
|
|
||||||
implementing `k8s.io/cri-api@v0.23.0`+.
|
|
||||||
- _Kubelet_ must work with _Container Runtime_ if it implements
|
|
||||||
the same semantic version of CRI API (e.g. `v1`) of up to
|
|
||||||
three minor versions up. New features implemented in CRI API must not change
|
|
||||||
behavior of old method calls and response values. For example, _Kubelet_ of
|
|
||||||
version 1.22 must work with _Container Runtime_ implementing `k8s.io/cri-api@v0.25.5`.
|
|
||||||
|
|
||||||
|
### Contribution Guidelines
|
||||||
|
|
||||||
## Versioning
|
See [CONTRIBUTING.md](CONTRIBUTING.md) for more information. Please note that [kubernetes/cri-api](https://github.com/kubernetes/cri-api)
|
||||||
|
is a readonly mirror repository, all development is done at [kubernetes/kubernetes](https://github.com/kubernetes/kubernetes).
|
||||||
This library contains go classes generated from the CRI API protocol buffers and gRPC API.
|
|
||||||
|
|
||||||
The library versioned as `0.XX` as Kubernetes doesn't provide any guarantees
|
|
||||||
on backward compatibility of Go wrappers between versions. However CRI API itself
|
|
||||||
(protocol buffers and gRPC API) is marked as stable `v1` version and it is
|
|
||||||
backward compatible between versions.
|
|
||||||
|
|
||||||
Versions like `v0.<minor>.<patch>` (e.g. `v0.25.5`) are considered stable.
|
|
||||||
It is discouraged to introduce CRI API changes in patch releases and recommended
|
|
||||||
to use versions like `v0.<minor>.0`.
|
|
||||||
|
|
||||||
All alpha and beta versions (e.g. `k8s.io/cri-api@v0.26.0-beta.0`) should be
|
|
||||||
backward and forward compatible.
|
|
||||||
|
|
||||||
## Feature development
|
|
||||||
|
|
||||||
Some features development requires changes in CRI API and corresponding changes
|
|
||||||
in _Container Runtime_. Coordinating between Kubernetes branches and release
|
|
||||||
versions and _Container Runtime_ versions is not always trivial.
|
|
||||||
|
|
||||||
The recommended feature development flow is following:
|
|
||||||
|
|
||||||
- Review proposed CRI API changes during the KEP review stage.
|
|
||||||
Some field names and types may not be spelled out exactly at this stage.
|
|
||||||
- Locally implement a prototype that implement changes in both - Kubernetes and Container Runtime.
|
|
||||||
- Submit a Pull Request for Kubernetes implementing CRI API changes alongside the feature code.
|
|
||||||
Feature must be developed to degrade gracefully when used with older Container Runtime
|
|
||||||
according to the Version Skew policy.
|
|
||||||
- Once PR is merged, wait for the next Kubernetes release tag being produced.
|
|
||||||
Find the corresponding CRI API tag (e.g. `k8s.io/cri-api@v0.26.0-beta.0`).
|
|
||||||
- This tag can be used to implement the feature in Container Runtime. It is recommended
|
|
||||||
to switch to the stable tag like (`k8s.io/cri-api@v0.26.0`) once available.
|
|
||||||
|
|
||||||
## Change history
|
## Change history
|
||||||
|
|
||||||
Here is the change history of the Container Runtime Interface protocol:
|
Here is the change history of the Container Runtime Interface protocol. The change history is maintained manually:
|
||||||
|
|
||||||
### v1.20
|
### v1.20
|
||||||
|
|
||||||
@ -263,25 +214,11 @@ No changes
|
|||||||
- [[KEP-4639] Add OCI VolumeSource CRI API](https://github.com/kubernetes/kubernetes/pull/125659)
|
- [[KEP-4639] Add OCI VolumeSource CRI API](https://github.com/kubernetes/kubernetes/pull/125659)
|
||||||
- Added `image` field to the type `Mount` to represent the OCI VolumeSource
|
- Added `image` field to the type `Mount` to represent the OCI VolumeSource
|
||||||
|
|
||||||
|
### v1.32
|
||||||
|
|
||||||
## Community, discussion, contribution, and support
|
`git diff v1.31.0 v1.32.0 -- staging/src/k8s.io/cri-api/pkg/apis/runtime/v1/api.proto`
|
||||||
|
|
||||||
Learn how to engage with the Kubernetes community on the [community
|
- [CRI: Add field to support CPU affinity on Windows](https://github.com/kubernetes/kubernetes/pull/124285)
|
||||||
page](http://kubernetes.io/community/).
|
- 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
|
||||||
You can reach the maintainers of this repository at:
|
for a particular container down to containerd/hcsshim.
|
||||||
|
|
||||||
- Slack: #sig-node (on https://kubernetes.slack.com -- get an
|
|
||||||
invite at [slack.kubernetes.io](https://slack.kubernetes.io))
|
|
||||||
- Mailing List:
|
|
||||||
https://groups.google.com/forum/#!forum/kubernetes-sig-node
|
|
||||||
|
|
||||||
### Code of Conduct
|
|
||||||
|
|
||||||
Participation in the Kubernetes community is governed by the [Kubernetes
|
|
||||||
Code of Conduct](code-of-conduct.md).
|
|
||||||
|
|
||||||
### Contribution Guidelines
|
|
||||||
|
|
||||||
See [CONTRIBUTING.md](CONTRIBUTING.md) for more information. Please note that [kubernetes/cri-api](https://github.com/kubernetes/cri-api)
|
|
||||||
is a readonly mirror repository, all development is done at [kubernetes/kubernetes](https://github.com/kubernetes/kubernetes).
|
|
||||||
|
Loading…
Reference in New Issue
Block a user