Skip to content

Commit 46a1b17

Browse files
committed
feat(go): upgrade 1.20.13 -> 1.21.7 + dep update
Upgrades to Go 1.21.7 now that Go 1.20 is no longer being maintained. It also, resolves the race conditions that we were seeing with BGP server tests when we upgraded from 1.20 -> 1.21. This appears to be because some efficiency changed in 1.21 that caused BGP to write to the events at the same time that the test harness was trying to read from them. Solved this in a coarse manner by adding surrounding mutexes to the test code. Additionally, upgraded dependencies.
1 parent c356289 commit 46a1b17

13 files changed

+257
-519
lines changed

.github/workflows/ci.yml

+2-2
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,9 @@ env:
1818
# Upgrading to Go 1.21.{0,1,2} seems to in cause some sort of race condition that causes tests to fail sporadically.
1919
# Sometimes they fail in apparent race conditions, other times they end up with nil pointer and SIGSEGV errors. We'll
2020
# either need to try with a future bug fix release or do some in-depth debugging before we upgrade.
21-
BUILDTIME_BASE: "golang:1.20.13-alpine3.18"
21+
BUILDTIME_BASE: "golang:1.21.7-alpine3.18"
2222
RUNTIME_BASE: "alpine:3.18"
23-
GO_VERSION: "~1.20.13"
23+
GO_VERSION: "~1.21.7"
2424
GO_CACHE: "/home/runner/.cache/go-build"
2525
GO_MOD_CACHE: "/home/runner/go/pkg/mod"
2626

Makefile

+1-4
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,7 @@ DOCKER=$(if $(or $(IN_DOCKER_GROUP),$(IS_ROOT),$(OSX)),docker,sudo docker)
1717
MAKEFILE_DIR=$(dir $(realpath $(firstword $(MAKEFILE_LIST))))
1818
UPSTREAM_IMPORT_PATH=$(GOPATH)/src/github.com./cloudnativelabs/kube-router/
1919
BUILD_IN_DOCKER?=true
20-
# Upgrading to Go 1.21.{0,1,2} seems to in cause some sort of race condition that causes tests to fail sporadically.
21-
# Sometimes they fail in apparent race conditions, other times they end up with nil pointer and SIGSEGV errors. We'll
22-
# either need to try with a future bug fix release or do some in-depth debugging before we upgrade.
23-
DOCKER_BUILD_IMAGE?=golang:1.20.13-alpine3.18
20+
DOCKER_BUILD_IMAGE?=golang:1.21.7-alpine3.18
2421
## These variables are used by the Dockerfile as the bases for building and creating the runtime container
2522
## During CI these come from .github/workflows/ci.yaml below we define for local builds as well
2623
GO_CACHE?=$(shell go env GOCACHE)

go.mod

+46-39
Original file line numberDiff line numberDiff line change
@@ -1,57 +1,59 @@
11
module github.com./cloudnativelabs/kube-router/v2
22

33
require (
4-
github.com./aws/aws-sdk-go v1.50.8
4+
github.com./aws/aws-sdk-go v1.50.30
55
github.com./coreos/go-iptables v0.7.0
6-
github.com./docker/docker v24.0.8+incompatible
6+
github.com./docker/docker v25.0.3+incompatible
77
github.com./hashicorp/go-version v1.6.0
88
github.com./moby/ipvs v1.1.0
99
github.com./onsi/ginkgo v1.16.5
1010
github.com./onsi/gomega v1.31.1
1111
github.com./osrg/gobgp/v3 v3.23.0
12-
github.com./prometheus/client_golang v1.18.0
12+
github.com./prometheus/client_golang v1.19.0
1313
github.com./spf13/pflag v1.0.5
1414
github.com./stretchr/testify v1.8.4
1515
github.com./vishvananda/netlink v1.2.1-beta.2
1616
github.com./vishvananda/netns v0.0.4
17-
golang.org/x/exp v0.0.0-20240119083558-1b970713d09a
18-
golang.org/x/net v0.20.0
19-
google.golang.org/grpc v1.61.0
17+
golang.org/x/exp v0.0.0-20240222234643-814bf88cf225
18+
golang.org/x/net v0.21.0
19+
google.golang.org/grpc v1.62.0
2020
google.golang.org/protobuf v1.32.0
21-
k8s.io/api v0.28.6
22-
k8s.io/apimachinery v0.28.6
23-
k8s.io/client-go v0.28.6
24-
k8s.io/cri-api v0.28.6
25-
k8s.io/klog/v2 v2.100.1
21+
k8s.io/api v0.29.2
22+
k8s.io/apimachinery v0.29.2
23+
k8s.io/client-go v0.29.2
24+
k8s.io/cri-api v0.29.2
25+
k8s.io/klog/v2 v2.120.1
2626
k8s.io/utils v0.0.0-20240102154912-e7106e64919e
2727
)
2828

2929
require (
3030
github.com./Microsoft/go-winio v0.6.1 // indirect
3131
github.com./beorn7/perks v1.0.1 // indirect
3232
github.com./cespare/xxhash/v2 v2.2.0 // indirect
33+
github.com./containerd/log v0.1.0 // indirect
3334
github.com./davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect
3435
github.com./dgryski/go-farm v0.0.0-20200201041132-a6ae2369ad13 // indirect
3536
github.com./distribution/reference v0.5.0 // indirect
36-
github.com./docker/distribution v2.8.3+incompatible // indirect
37-
github.com./docker/go-connections v0.4.0 // indirect
37+
github.com./docker/go-connections v0.5.0 // indirect
3838
github.com./docker/go-units v0.5.0 // indirect
3939
github.com./eapache/channels v1.1.0 // indirect
4040
github.com./eapache/queue v1.1.0 // indirect
41-
github.com./emicklei/go-restful/v3 v3.11.0 // indirect
41+
github.com./emicklei/go-restful/v3 v3.11.3 // indirect
4242
github.com./evanphx/json-patch v4.12.0+incompatible // indirect
43-
github.com./fsnotify/fsnotify v1.6.0 // indirect
43+
github.com./felixge/httpsnoop v1.0.4 // indirect
44+
github.com./fsnotify/fsnotify v1.7.0 // indirect
4445
github.com./go-logr/logr v1.4.1 // indirect
45-
github.com./go-openapi/jsonpointer v0.20.0 // indirect
46-
github.com./go-openapi/jsonreference v0.20.2 // indirect
47-
github.com./go-openapi/swag v0.22.4 // indirect
46+
github.com./go-logr/stdr v1.2.2 // indirect
47+
github.com./go-openapi/jsonpointer v0.20.2 // indirect
48+
github.com./go-openapi/jsonreference v0.20.4 // indirect
49+
github.com./go-openapi/swag v0.22.9 // indirect
4850
github.com./gogo/protobuf v1.3.2 // indirect
4951
github.com./golang/protobuf v1.5.3 // indirect
5052
github.com./google/gnostic-models v0.6.9-0.20230804172637-c7be7c783f49 // indirect
5153
github.com./google/go-cmp v0.6.0 // indirect
5254
github.com./google/gofuzz v1.2.0 // indirect
5355
github.com./google/pprof v0.0.0-20230323073829-e72429f035bd // indirect
54-
github.com./google/uuid v1.4.0 // indirect
56+
github.com./google/uuid v1.6.0 // indirect
5557
github.com./hashicorp/hcl v1.0.0 // indirect
5658
github.com./imdario/mergo v0.3.16 // indirect
5759
github.com./jmespath/go-jmespath v0.4.0 // indirect
@@ -60,7 +62,6 @@ require (
6062
github.com./k-sone/critbitgo v1.4.0 // indirect
6163
github.com./magiconair/properties v1.8.7 // indirect
6264
github.com./mailru/easyjson v0.7.7 // indirect
63-
github.com./matttproud/golang_protobuf_extensions/v2 v2.0.0 // indirect
6465
github.com./mitchellh/mapstructure v1.5.0 // indirect
6566
github.com./moby/term v0.0.0-20221205130635-1aeaba878587 // indirect
6667
github.com./modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
@@ -69,41 +70,47 @@ require (
6970
github.com./munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect
7071
github.com./nxadm/tail v1.4.8 // indirect
7172
github.com./opencontainers/go-digest v1.0.0 // indirect
72-
github.com./opencontainers/image-spec v1.0.2 // indirect
73-
github.com./pelletier/go-toml/v2 v2.1.0 // indirect
73+
github.com./opencontainers/image-spec v1.1.0 // indirect
74+
github.com./pelletier/go-toml/v2 v2.1.1 // indirect
7475
github.com./pkg/errors v0.9.1 // indirect
7576
github.com./pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect
76-
github.com./prometheus/client_model v0.5.0 // indirect
77-
github.com./prometheus/common v0.45.0 // indirect
77+
github.com./prometheus/client_model v0.6.0 // indirect
78+
github.com./prometheus/common v0.49.0 // indirect
7879
github.com./prometheus/procfs v0.12.0 // indirect
79-
github.com./sagikazarmark/locafero v0.3.0 // indirect
80+
github.com./sagikazarmark/locafero v0.4.0 // indirect
8081
github.com./sagikazarmark/slog-shim v0.1.0 // indirect
8182
github.com./sirupsen/logrus v1.9.3 // indirect
8283
github.com./sourcegraph/conc v0.3.0 // indirect
83-
github.com./spf13/afero v1.10.0 // indirect
84-
github.com./spf13/cast v1.5.1 // indirect
85-
github.com./spf13/viper v1.17.0 // indirect
84+
github.com./spf13/afero v1.11.0 // indirect
85+
github.com./spf13/cast v1.6.0 // indirect
86+
github.com./spf13/viper v1.18.2 // indirect
8687
github.com./subosito/gotenv v1.6.0 // indirect
88+
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.49.0 // indirect
89+
go.opentelemetry.io/otel v1.24.0 // indirect
90+
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.24.0 // indirect
91+
go.opentelemetry.io/otel/metric v1.24.0 // indirect
92+
go.opentelemetry.io/otel/sdk v1.24.0 // indirect
93+
go.opentelemetry.io/otel/trace v1.24.0 // indirect
8794
go.uber.org/multierr v1.11.0 // indirect
88-
golang.org/x/mod v0.14.0 // indirect
89-
golang.org/x/oauth2 v0.14.0 // indirect
90-
golang.org/x/sys v0.16.0 // indirect
91-
golang.org/x/term v0.16.0 // indirect
95+
golang.org/x/mod v0.15.0 // indirect
96+
golang.org/x/oauth2 v0.17.0 // indirect
97+
golang.org/x/sys v0.17.0 // indirect
98+
golang.org/x/term v0.17.0 // indirect
9299
golang.org/x/text v0.14.0 // indirect
93-
golang.org/x/time v0.3.0 // indirect
94-
golang.org/x/tools v0.17.0 // indirect
100+
golang.org/x/time v0.5.0 // indirect
101+
golang.org/x/tools v0.18.0 // indirect
95102
google.golang.org/appengine v1.6.8 // indirect
96-
google.golang.org/genproto/googleapis/rpc v0.0.0-20231106174013-bbf56f31fb17 // indirect
103+
google.golang.org/genproto/googleapis/rpc v0.0.0-20240228224816-df926f6c8641 // indirect
97104
gopkg.in/inf.v0 v0.9.1 // indirect
98105
gopkg.in/ini.v1 v1.67.0 // indirect
99106
gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 // indirect
100107
gopkg.in/yaml.v2 v2.4.0 // indirect
101108
gopkg.in/yaml.v3 v3.0.1 // indirect
102109
gotest.tools/v3 v3.4.0 // indirect
103-
k8s.io/kube-openapi v0.0.0-20230928205116-a78145627833 // indirect
110+
k8s.io/kube-openapi v0.0.0-20240228011516-70dd3763d340 // indirect
104111
sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd // indirect
105-
sigs.k8s.io/structured-merge-diff/v4 v4.3.0 // indirect
106-
sigs.k8s.io/yaml v1.3.0 // indirect
112+
sigs.k8s.io/structured-merge-diff/v4 v4.4.1 // indirect
113+
sigs.k8s.io/yaml v1.4.0 // indirect
107114
)
108115

109-
go 1.19
116+
go 1.21

0 commit comments

Comments
 (0)