1---
2title: Supported systems
3---
4
5## Current support
6
7The following table lists etcd support status for common architectures and operating systems:
8
9| Architecture | Operating System | Status       | Maintainers                 |
10| ------------ | ---------------- | ------------ | --------------------------- |
11| amd64        | Darwin           | Experimental | etcd maintainers            |
12| amd64        | Linux            | Stable       | etcd maintainers            |
13| amd64        | Windows          | Experimental |                             |
14| arm64        | Linux            | Experimental | @glevand                    |
15| arm          | Linux            | Unstable     |                             |
16| 386          | Linux            | Unstable     |                             |
17| ppc64le      | Linux            | Stable       | etcd maintainers, @mkumatag |
18
19* etcd-maintainers are listed in https://github.com/etcd-io/etcd/blob/master/MAINTAINERS.
20
21Experimental platforms appear to work in practice and have some platform specific code in etcd, but do not fully conform to the stable support policy. Unstable platforms have been lightly tested, but less than experimental. Unlisted architecture and operating system pairs are currently unsupported; caveat emptor.
22
23## Supporting a new system platform
24
25For etcd to officially support a new platform as stable, a few requirements are necessary to ensure acceptable quality:
26
271. An "official" maintainer for the platform with clear motivation; someone must be responsible for taking care of the platform.
282. Set up CI for build; etcd must compile.
293. Set up CI for running unit tests; etcd must pass simple tests.
304. Set up CI (TravisCI, SemaphoreCI or Jenkins) for running integration tests; etcd must pass intensive tests.
315. (Optional) Set up a functional testing cluster; an etcd cluster should survive stress testing.
32
33## 32-bit and other unsupported systems
34
35etcd has known issues on 32-bit systems due to a bug in the Go runtime. See the [Go issue][go-issue] and [atomic package][go-atomic] for more information.
36
37To avoid inadvertently running a possibly unstable etcd server, `etcd` on unstable or unsupported architectures will print a warning message and immediately exit if the environment variable `ETCD_UNSUPPORTED_ARCH` is not set to the target architecture.
38
39Currently amd64 and ppc64le architectures are officially supported by `etcd`.
40
41[go-issue]: https://github.com/golang/go/issues/599
42[go-atomic]: https://golang.org/pkg/sync/atomic/#pkg-note-BUG
43