Skip to content

Commit 51a460b

Browse files
authored
Merge pull request #292 from containerd/dep-updates
Automated RELEASES.md sync update
2 parents cb11980 + 5708aa8 commit 51a460b

1 file changed

Lines changed: 112 additions & 0 deletions

File tree

content/releases.md

Lines changed: 112 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -185,6 +185,118 @@ Deprecated containerd and kubernetes versions
185185

186186
** Note: containerd v1.6.*, and v1.7.* support CRI v1 and v1alpha2 through EOL as those releases continue to support older versions of k8s, cloud providers, and other clients using CRI v1alpha2. CRI v1alpha2 is deprecated in v1.7 and is not present in containerd v2.0.
187187

188+
### Platform Support
189+
190+
containerd runs on a range of operating systems and CPU architectures, but the
191+
level of support we can provide varies by platform. Support is limited by what
192+
we are able to build, test, and maintain. A platform that we can fully test in
193+
CI can be supported more strongly than one we can only compile.
194+
195+
To make these differences explicit, platforms are organized into tiers. A tier
196+
describes what the project commits to for a platform. Tiers are forward-looking
197+
and apply to in-development and future releases. Platforms may be
198+
[demoted or removed](#demotion-and-removal) if the project is no longer able to
199+
commit to support at a given tier.
200+
201+
A platform is identified by its `GOOS/GOARCH` pair, optionally with a variant
202+
(for example `linux/amd64`, `windows/amd64`, or `linux/arm/v7`). For operating
203+
systems like Linux, we do not designate specific distributions as supported,
204+
however automated testing primarily covers Ubuntu, Fedora, and AlmaLinux.
205+
206+
#### Tiers
207+
208+
__*Tier 1: Supported.*__ The platform is built, released, and exercised by
209+
automated tests (integration and/or CRI tests) in CI on every change. Test
210+
failures on a Tier 1 platform generally block merges and releases. These are the
211+
platforms we recommend for production use. Release artifacts are published with
212+
each release and nightly builds are produced.
213+
214+
__*Tier 2: Released, best-effort.*__ The platform is built and release artifacts
215+
are published, but we run no automated testing for it. While binaries are
216+
produced with the expectation that they work, the project cannot independently
217+
validate runtime behavior. Bugs that are specific to a Tier 2 platform are
218+
addressed on a best-effort basis and may depend on the reporter or interested
219+
parties to diagnose, fix, and verify. Nightly builds are produced.
220+
221+
__*Tier 3: Build-verified.*__ The platform is compiled in CI so that we do not
222+
knowingly break it, but no release artifacts are published and no testing is
223+
performed. This tier exists primarily to support the adoption of containerd on
224+
platforms that we do not have the resources to support at a stronger level.
225+
226+
__*Unsupported.*__ Any platform not listed below. containerd may still build and
227+
run on these platforms, but the project makes no commitments and performs no
228+
verification. Users are free to build from source for their own use.
229+
230+
#### Current platforms
231+
232+
| Platform | Tier | Release artifacts | Nightly builds | Functional CI testing | Build / compile check |
233+
|-----------------|:----:|:-----------------:|:--------------:|:---------------------:|:---------------------:|
234+
| linux/amd64 | 1 |||||
235+
| linux/arm64 | 1 |||||
236+
| windows/amd64 | 1 |||||
237+
| linux/ppc64le | 2 |||||
238+
| linux/riscv64 | 2 |||||
239+
| linux/s390x | 2 |||||
240+
| linux/arm/v7 | 3 |||||
241+
| linux/arm/v5 | 3 |||||
242+
| darwin/arm64 | 3 |||||
243+
| freebsd/amd64 | 3 |||||
244+
| freebsd/arm64 | 3 |||||
245+
| windows/arm64 | 3 |||||
246+
247+
containerd's build, testing, and release infrastructure is primarily defined
248+
in [GitHub Actions](./.github/workflows). Release artifacts and their platforms
249+
are defined in `release.yml`, nightly builds in `nightly.yml`, functional
250+
testing in `ci.yml`, and Tier 3 compile coverage in the `binaries` and
251+
`crossbuild` jobs of `ci.yml`. This table should be updated if the
252+
workflows are changed.
253+
254+
#### Requesting a new platform or a tier change
255+
256+
New platforms enter at the lowest tier that the maintainers can sustainably
257+
commit to, and most begin at Tier 3. To propose a new platform or a change in
258+
tier, [open an issue](https://github.com/containerd/containerd/issues)
259+
describing the platform, its `GOOS/GOARCH`, the level of support being
260+
requested, and what you are able to contribute toward it.
261+
262+
What it takes to reach each tier:
263+
264+
- __Tier 3 (Build-verified):__ Go must support the platform as a port, and the
265+
platform must build (at minimum, `make build` and `make binaries`). Because
266+
the cost and risk are low, the maintainers will generally accept a new
267+
build-verified platform as long as it does not meaningfully complicate the
268+
build or slow CI. This is the recommended entry point for a new architecture.
269+
- __Tier 2 (Released, best-effort):__ In addition to Tier 3, the platform must
270+
produce working release artifacts through the existing release tooling. The
271+
maintainers decide whether to publish release artifacts for a platform at
272+
their discretion, weighing demonstrated demand, the risk of shipping binaries
273+
we cannot test, and the ongoing maintenance burden. A vendor or community
274+
sponsor who commits to triaging platform-specific issues is not required, but
275+
is strongly encouraged and makes promotion more likely.
276+
- __Tier 1 (Supported):__ In addition to Tier 2, the platform must be covered by
277+
automated functional tests in CI that are reliable enough to gate merges. This
278+
generally requires either hosted runners for the platform or a sponsor who
279+
provides and _maintains_ suitable CI infrastructure (for example, self-hosted
280+
runners or hardware). Testing or infrastructure that is too slow or too flaky
281+
to reliably gate changes is not sufficient.
282+
283+
#### Demotion and removal
284+
285+
Tiers reflect what the project can sustain, so a platform may move down as well as
286+
up. The maintainers may demote or remove a platform when, for example:
287+
288+
- automated testing for the platform becomes too unreliable or too slow to gate
289+
changes;
290+
- the infrastructure or sponsorship that a tier depended on is no longer
291+
available;
292+
- supporting the platform meaningfully impedes development of containerd; or
293+
- the platform is no longer in meaningful use.
294+
295+
When practical, the maintainers will give notice before lowering a platform's
296+
tier or removing it, and will prefer to make such changes at a minor-release
297+
boundary. Removing a platform does not retroactively affect artifacts already
298+
published for prior releases.
299+
188300
### Backporting
189301

190302
Backports in containerd are community driven. As maintainers, we'll try to

0 commit comments

Comments
 (0)