Skip to content

Commit 01d5f14

Browse files
committed
Add a note about NRI API stability and release notes.
Signed-off-by: Krisztian Litkey <[email protected]>
1 parent ea9976d commit 01d5f14

2 files changed

Lines changed: 43 additions & 0 deletions

File tree

README.md

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -354,6 +354,17 @@ access to these sockets and can act as NRI or Device Plugins. See the
354354
and [best practices](https://kubernetes.io/docs/setup/best-practices/enforcing-pod-security-standards/)
355355
about Kubernetes security.
356356

357+
## API Stability
358+
359+
NRI APIs should not be considered stable yet. We try to avoid unnecessarily
360+
breaking APIs, especially the Stub API which plugins use to interact with NRI.
361+
However, before NRI reaches a stable 1.0.0 release, this is only best effort
362+
and cannot be guaranteed. Meanwhile we do our best to document any API breaking
363+
changes for each release in the [release notes](RELEASES.md).
364+
365+
The current target for a stable v1 API through a 1.0.0 release is the end of
366+
this year.
367+
357368
## Project details
358369

359370
nri is a containerd sub-project, licensed under the [Apache 2.0 license](./LICENSE).

RELEASES.md

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
# Release Notes
2+
3+
## 0.4.0 (pending untagged release)
4+
5+
- Pass the ttRPC receiving context from the Stub to each NRI request handler
6+
of the plugin.
7+
- Fix Stub/Plugin UpdateContainer interface to pass the resource update to
8+
the UpdateContainer NRI request handler of the plugin as the last argument.
9+
- All plugins need to be updated to reflect the above changes in any NRI
10+
request handler they implement.
11+
12+
## 0.3.0
13+
14+
- Eliminate the global NRI configuration file, replacing any remaining
15+
configuration options with corresponding programmatic options for runtimes.
16+
- Change default socket path from /var/run/nri.sock to /var/run/nri/nri.sock.
17+
- Make plugin timeouts configurable on the runtime side.
18+
- Plugins should be API-compatible between 0.2.0 and 0.3.0, but either the
19+
runtime needs to be configured to use the old NRI socket path, or 0.2.0 plugins
20+
need to be configured to use the new default NRI socket path.
21+
22+
## 0.2.0
23+
24+
- Replace the v0.1.0 CNI like plugin interface with JSON message exchange on
25+
stdin and stdout with external daemon-like plugins and a protobuf-defined
26+
protocol with ttRPC bindings for communicating with the runtime.
27+
- Allow plugins to track the state of (CRI) pods and containers.
28+
- Allow plugins to make changes to a selected subset of container parameters
29+
during container creation, update, and stopping of (other) containers.
30+
- All 0.1.0 plugins are incompatible with 0.2.0, although
31+
[an experimental adapter plugin](plugins/v010-adapter) is provided to bridge
32+
between any existing 0.1.0 plugins and the current NRI APIs.

0 commit comments

Comments
 (0)