treewide: update etcd to 3.6
This is a fairly large update, containing 4 years of upstream
development. A lot of code has been moved around, requiring a rebase of
all patches and ajustments in code using it.
Upstream requires that upgrades first go through etcd 3.5.20, which is
done in a CL below this one. Other than that upgrades are possible
through normal Monogon node updates, but downgrades (while implemented
for 3.6.0) are still not supported in Monogon until further work is
done.
There are significant issues in etcd synchronization between the
"outside" manager (embed or standalone) and the core (EtcdServer), one
of which affects removal of the ConsensusMember role, causing a panic
due to the client listener not being closed when the server shuts down
on its own. This is triggered by the autopromoter hitting an endpoint on
a shut-down etcd, which accesses a nil backend. This issue existed
before, a full fix will likely involve either significantly rewriting or
getting rid of the embed package, so this just fixes the panic-causing
code path.
Change-Id: If5932a7428a262fde406a5bb652a40d211301734
Reviewed-on: https://review.monogon.dev/c/monogon/+/4394
Tested-by: Jenkins CI
Reviewed-by: Tim Windelschmidt <tim@monogon.tech>
diff --git a/go.mod b/go.mod
index 3fe7951..f49acd7 100644
--- a/go.mod
+++ b/go.mod
@@ -61,7 +61,7 @@
github.com/golangci/gofmt v0.0.0-20250106114630-d62b90e6713d
github.com/google/cel-go v0.22.1
github.com/google/certificate-transparency-go v1.1.2
- github.com/google/go-cmp v0.6.0
+ github.com/google/go-cmp v0.7.0
github.com/google/go-tpm v0.3.3
github.com/google/go-tpm-tools v0.3.5
github.com/google/gopacket v1.1.19
@@ -99,11 +99,11 @@
github.com/stretchr/testify v1.10.0
github.com/vishvananda/netlink v1.3.1-0.20240905180732-b1ce50cfa9be
github.com/yalue/native_endian v1.0.2
- go.etcd.io/etcd/api/v3 v3.5.21
- go.etcd.io/etcd/client/pkg/v3 v3.5.21
- go.etcd.io/etcd/client/v3 v3.5.21
- go.etcd.io/etcd/server/v3 v3.5.21
- go.etcd.io/etcd/tests/v3 v3.5.21
+ go.etcd.io/etcd/api/v3 v3.6.1
+ go.etcd.io/etcd/client/pkg/v3 v3.6.1
+ go.etcd.io/etcd/client/v3 v3.6.1
+ go.etcd.io/etcd/server/v3 v3.6.1
+ go.etcd.io/etcd/tests/v3 v3.6.1
go.uber.org/multierr v1.11.0
go.uber.org/zap v1.27.0
go4.org/netipx v0.0.0-20231129151722-fdeea329fbba
@@ -117,8 +117,8 @@
golang.org/x/tools v0.30.0
golang.zx2c4.com/wireguard/wgctrl v0.0.0-20220208144051-fde48d68ee68
google.golang.org/api v0.222.0
- google.golang.org/genproto/googleapis/api v0.0.0-20250106144421-5f5ef82da422
- google.golang.org/grpc v1.70.0
+ google.golang.org/genproto/googleapis/api v0.0.0-20250303144028-a0af3efb3deb
+ google.golang.org/grpc v1.71.1
google.golang.org/protobuf v1.36.5
gvisor.dev/gvisor v0.0.0-20241119070250-e4f9220466df
honnef.co/go/tools v0.5.1
@@ -153,6 +153,7 @@
github.com/Microsoft/hcsshim v0.12.9 // indirect
github.com/Microsoft/hnslib v0.0.8 // indirect
github.com/NYTimes/gziphandler v1.1.1 // indirect
+ github.com/VividCortex/ewma v1.2.0 // indirect
github.com/alecthomas/kingpin/v2 v2.4.0 // indirect
github.com/alecthomas/units v0.0.0-20211218093645-b94a6e3cc137 // indirect
github.com/alexflint/go-filemutex v1.3.0 // indirect
@@ -162,6 +163,7 @@
github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a // indirect
github.com/beevik/ntp v1.4.3 // indirect
github.com/beorn7/perks v1.0.1 // indirect
+ github.com/bgentry/speakeasy v0.2.0 // indirect
github.com/blang/semver/v4 v4.0.0 // indirect
github.com/bytecodealliance/wasmtime-go/v14 v14.0.0 // indirect
github.com/cenkalti/backoff v2.2.1+incompatible // indirect
@@ -170,6 +172,7 @@
github.com/checkpoint-restore/checkpointctl v1.3.0 // indirect
github.com/checkpoint-restore/go-criu/v6 v6.3.0 // indirect
github.com/checkpoint-restore/go-criu/v7 v7.2.0 // indirect
+ github.com/cheggaaa/pb/v3 v3.1.6 // indirect
github.com/cilium/ebpf v0.16.0 // indirect
github.com/containerd/btrfs/v2 v2.0.0 // indirect
github.com/containerd/cgroups/v3 v3.0.3 // indirect
@@ -215,6 +218,7 @@
github.com/euank/go-kmsg-parser v2.0.0+incompatible // indirect
github.com/exponent-io/jsonpath v0.0.0-20210407135951-1de76d718b3f // indirect
github.com/fatih/camelcase v1.0.0 // indirect
+ github.com/fatih/color v1.18.0 // indirect
github.com/fatih/structtag v1.2.0 // indirect
github.com/felixge/httpsnoop v1.0.4 // indirect
github.com/fsnotify/fsnotify v1.7.0 // indirect
@@ -234,10 +238,10 @@
github.com/godbus/dbus/v5 v5.1.0 // indirect
github.com/gofrs/flock v0.8.1 // indirect
github.com/gogo/protobuf v1.3.2 // indirect
- github.com/golang-jwt/jwt/v4 v4.5.2 // indirect
+ github.com/golang-jwt/jwt/v5 v5.2.2 // indirect
github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect
github.com/golang/protobuf v1.5.4 // indirect
- github.com/google/btree v1.1.2 // indirect
+ github.com/google/btree v1.1.3 // indirect
github.com/google/cadvisor v0.51.0 // indirect
github.com/google/gnostic-models v0.6.8 // indirect
github.com/google/go-dap v0.12.0 // indirect
@@ -254,8 +258,7 @@
github.com/grpc-ecosystem/go-grpc-middleware/providers/prometheus v1.0.1 // indirect
github.com/grpc-ecosystem/go-grpc-middleware/v2 v2.1.0 // indirect
github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0 // indirect
- github.com/grpc-ecosystem/grpc-gateway v1.16.0 // indirect
- github.com/grpc-ecosystem/grpc-gateway/v2 v2.22.0 // indirect
+ github.com/grpc-ecosystem/grpc-gateway/v2 v2.26.3 // indirect
github.com/hashicorp/go-envparse v0.1.0 // indirect
github.com/hashicorp/golang-lru v1.0.2 // indirect
github.com/hodgesds/perf-utils v0.7.0 // indirect
@@ -268,7 +271,7 @@
github.com/jackc/pgx/v5 v5.4.3 // indirect
github.com/jackc/puddle/v2 v2.2.1 // indirect
github.com/jinzhu/inflection v1.0.0 // indirect
- github.com/jonboulle/clockwork v0.4.0 // indirect
+ github.com/jonboulle/clockwork v0.5.0 // indirect
github.com/josharian/intern v1.0.0 // indirect
github.com/josharian/native v1.1.0 // indirect
github.com/jpillora/backoff v1.0.0 // indirect
@@ -286,9 +289,9 @@
github.com/lufia/iostat v1.2.1 // indirect
github.com/mailru/easyjson v0.7.7 // indirect
github.com/mattfenwick/collections v0.3.2 // indirect
- github.com/mattn/go-colorable v0.1.13 // indirect
+ github.com/mattn/go-colorable v0.1.14 // indirect
github.com/mattn/go-isatty v0.0.20 // indirect
- github.com/mattn/go-runewidth v0.0.15 // indirect
+ github.com/mattn/go-runewidth v0.0.16 // indirect
github.com/mattn/go-sqlite3 v1.14.17 // indirect
github.com/mattn/go-xmlrpc v0.0.3 // indirect
github.com/mdlayher/socket v0.5.1 // indirect
@@ -366,35 +369,36 @@
github.com/xiang90/probing v0.0.0-20221125231312-a49e3df8f510 // indirect
github.com/xlab/treeprint v1.2.0 // indirect
github.com/xrash/smetrics v0.0.0-20240521201337-686a1a2994c1 // indirect
- go.etcd.io/bbolt v1.3.11 // indirect
- go.etcd.io/etcd/client/v2 v2.305.21 // indirect
- go.etcd.io/etcd/pkg/v3 v3.5.21 // indirect
- go.etcd.io/etcd/raft/v3 v3.5.21 // indirect
+ go.etcd.io/bbolt v1.4.0 // indirect
+ go.etcd.io/etcd/etcdctl/v3 v3.6.1 // indirect
+ go.etcd.io/etcd/pkg/v3 v3.6.1 // indirect
+ go.etcd.io/gofail v0.2.0 // indirect
+ go.etcd.io/raft/v3 v3.6.0 // indirect
go.mozilla.org/pkcs7 v0.9.0 // indirect
go.opencensus.io v0.24.0 // indirect
go.opentelemetry.io/auto/sdk v1.1.0 // indirect
go.opentelemetry.io/contrib/instrumentation/github.com/emicklei/go-restful/otelrestful v0.42.0 // indirect
- go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.58.0 // indirect
+ go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.59.0 // indirect
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.58.0 // indirect
go.opentelemetry.io/otel v1.34.0 // indirect
- go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.31.0 // indirect
- go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.31.0 // indirect
+ go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.34.0 // indirect
+ go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.34.0 // indirect
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.31.0 // indirect
go.opentelemetry.io/otel/metric v1.34.0 // indirect
go.opentelemetry.io/otel/sdk v1.34.0 // indirect
go.opentelemetry.io/otel/trace v1.34.0 // indirect
- go.opentelemetry.io/proto/otlp v1.3.1 // indirect
+ go.opentelemetry.io/proto/otlp v1.5.0 // indirect
go.starlark.net v0.0.0-20231101134539-556fd59b42f6 // indirect
go.uber.org/atomic v1.11.0 // indirect
golang.org/x/arch v0.11.0 // indirect
golang.org/x/exp v0.0.0-20240909161429-701f63a606c0 // indirect
golang.org/x/exp/typeparams v0.0.0-20231108232855-2478ac86f678 // indirect
golang.org/x/mod v0.23.0 // indirect
- golang.org/x/oauth2 v0.26.0 // indirect
+ golang.org/x/oauth2 v0.27.0 // indirect
golang.org/x/telemetry v0.0.0-20241106142447-58a1122356f5 // indirect
golang.zx2c4.com/wireguard v0.0.0-20220202223031-3b95c81cc178 // indirect
google.golang.org/genproto v0.0.0-20250115164207-1a7da9e5054f // indirect
- google.golang.org/genproto/googleapis/rpc v0.0.0-20250224174004-546df14abb99 // indirect
+ google.golang.org/genproto/googleapis/rpc v0.0.0-20250303144028-a0af3efb3deb // indirect
gopkg.in/djherbis/times.v1 v1.2.0 // indirect
gopkg.in/evanphx/json-patch.v4 v4.12.0 // indirect
gopkg.in/inf.v0 v0.9.1 // indirect