Access CNCF changelog updates through our uniform API. Same JSON structure across all sources — no adapter-specific parsing needed.
GET https://watchchangelog.com/api/v1/entries?source=etcd.releases{
"source": "etcd.releases",
"vendor": "CNCF",
"id": "tag:github.com,2008:Repository/11225014/v3.7.1",
"published_at": "2026-07-23T19:37:53.000Z",
"title": "v3.7.1",
"url": "https://github.com/etcd-io/etcd/releases/tag/v3.7.1",
"summary": "Please check out CHANGELOG for a full list of changes. And make sure to read upgrade guide before upgrading etcd (there may be breaking changes). For installation guides, please check out operating etcd . Latest support status for common architectures and operating systems can be found at supported platforms . Linux ETCD_VER=v3.7.1 # choose either URL GOOGLE_URL=https://storage.googleapis.com/etcd GITHUB_URL=https://github.com/etcd-io/etcd/releases/download DOWNLOAD_URL= ${GOOGLE_URL} rm -f /tmp/etcd- ${ETCD_VER} -linux-amd64.tar.gz rm -rf /tmp/etcd-download-test && mkdir -p /tmp/etcd-download-test curl -L ${DOWNLOAD_URL} / ${ETCD_VER} /etcd- ${ETCD_VER} -linux-amd64.tar.gz -o /tmp/etcd- ${ETCD_VER} -linux-amd64.tar.gz tar xzvf /tmp/etcd- ${ETCD_VER} -linux-amd64.tar.gz -C /tmp/etcd-download-test --strip-components=1 --no-same-owner rm -f /tmp/etcd- ${ETCD_VER} -linux-amd64.tar.gz /tmp/etcd-download-test/etcd --version /tmp/etcd-download-test/etcdctl version /tmp/etcd-download-test/etcdutl version # start a local etcd server /tmp/etcd-download-test/etcd # write,read to etcd /tmp/etcd-download-test/etcdctl --endpoints=localhost:2379 put foo bar /tmp/etcd-download-test/etcdctl --endpoints=localhost:2379 get foo macOS (Darwin) ETCD_VER=v3.7.1 # choose either URL GOOGLE_URL=https://storage.googleapis.com/etcd GITHUB_URL=https://github.com/etcd-io/etcd/releases/download DOWNLOAD_URL= ${GOOGLE_URL} rm -f /tmp/etcd- ${ETCD_VER} -darwin-amd64.zip rm -rf /tmp/etcd-download-test && mkdir -p /tmp/etcd-download-test curl -L ${DOWNLOAD_URL} / ${ETCD_VER} /etcd- ${ETCD_VER} -darwin-amd64.zip -o /tmp/etcd- ${ETCD_VER} -darwin-amd64.zip unzip /tmp/etcd- ${ETCD_VER} -darwin-amd64.zip -d /tmp && rm -f /tmp/etcd- ${ETCD_VER} -darwin-amd64.zip mv /tmp/etcd- ${ETCD_VER} -darwin-amd64/ * /tmp/etcd-download-test && rm -rf mv /tmp/etcd- ${ETCD_VER} -darwin-amd64 /tmp/etcd-download-test/etcd --version /tmp/etcd-download-test/etcdctl version /tmp/etcd-download-test/etcdutl version Docker etcd uses gcr.io/etcd-development/etcd as a primary container registry, and quay.io/coreos/etcd as secondary. ETCD_VER=v3.7.1 rm -rf /tmp/etcd-data.tmp && mkdir -p /tmp/etcd-data.tmp && \\ docker rmi gcr.io/etcd-development/etcd: ${ETCD_VER} || true && \\ docker run \\ -p 2379:2379 \\ -p 2380:2380 \\ --mount type=bind,source=/tmp/etcd-data.tmp,destination=/etcd-data \\ --name etcd-gcr- ${ETCD_VER} \\ gcr.io/etcd-development/etcd: ${ETCD_VER} \\ /usr/local/bin/etcd \\ --name s1 \\ --data-dir /etcd-data \\ --listen-client-urls http://0.0.0.0:2379 \\ --advertise-client-urls http://0.0.0.0:2379 \\ --listen-peer-urls http://0.0.0.0:2380 \\ --initial-advertise-peer-urls http://0.0.0.0:2380 \\ --initial-cluster s1=http://0.0.0.0:2380 \\ --initial-cluster-token tkn \\ --initial-cluster-state new \\ --log-level info \\ --logger zap \\ --log-outputs stderr docker exec etcd-gcr- ${ETCD_VER} /usr/local/bin/etcd --version docker exec etcd-gcr- ${ETCD_VER} /usr/local/bin/etcdctl version docker exec etcd-gcr- ${ETCD_VER} /usr/local/bin/etcdutl version docker exec etcd-gcr- ${ETCD_VER} /usr/local/bin/etcdctl endpoint health docker exec etcd-gcr- ${ETCD_VER} /usr/local/bin/etcdctl put foo bar docker exec etcd-gcr- ${ETCD_VER} /usr/local/bin/etcdctl get foo",
"tags": [
"CNCF",
"etcd.releases",
"service-discovery",
"key-value",
"distributed"
]
}+2 more
+2 more
+2 more
+2 more
+2 more
+2 more