blob: 44c98029debce5a3d5bf347530f4d066f1d8fd9c [file] [log] [blame]
Tim Windelschmidte5e90a82024-07-17 23:46:22 +02001go_sdk = use_extension("@io_bazel_rules_go//go:extensions.bzl", "go_sdk")
Tim Windelschmidt677de972024-09-25 05:30:04 +02002go_sdk.download(version = "1.23.1")
Tim Windelschmidte5e90a82024-07-17 23:46:22 +02003go_sdk.nogo(nogo = "//build/analysis:nogo")
4
Tim Windelschmidted9a5832025-02-04 03:02:45 +01005go_deps = use_extension("@gazelle//:extensions.bzl", "go_deps")
Tim Windelschmidte5e90a82024-07-17 23:46:22 +02006go_deps.from_file(go_mod = "//:go.mod")
7
8# All *direct* Go dependencies of the module have to be listed explicitly.
9# This list can be automatically updated by running "bazel mod tidy".
10use_repo(
11 go_deps,
12 "co_honnef_go_tools",
13 "com_4d63_gocheckcompilerdirectives",
14 "com_github_adrg_xdg",
15 "com_github_cavaliergopher_cpio",
16 "com_github_cenkalti_backoff_v4",
17 "com_github_cockroachdb_cockroach_go_v2",
18 "com_github_container_storage_interface_spec",
Lorenz Brun0ec0c532024-08-29 12:39:47 +000019 "com_github_containerd_containerd_v2",
Tim Windelschmidte5e90a82024-07-17 23:46:22 +020020 "com_github_containernetworking_plugins",
Tim Windelschmidte5e90a82024-07-17 23:46:22 +020021 "com_github_coreos_go_semver",
22 "com_github_corverroos_commentwrap",
23 "com_github_diskfs_go_diskfs",
24 "com_github_docker_distribution",
Serge Bazanski0d9e1252024-09-03 12:16:47 +020025 "com_github_gdamore_tcell_v2",
Tim Windelschmidte5e90a82024-07-17 23:46:22 +020026 "com_github_go_delve_delve",
27 "com_github_golang_migrate_migrate_v4",
28 "com_github_google_cel_go",
29 "com_github_google_certificate_transparency_go",
30 "com_github_google_go_cmp",
31 "com_github_google_go_tpm",
32 "com_github_google_go_tpm_tools",
33 "com_github_google_gopacket",
34 "com_github_google_nftables",
35 "com_github_google_uuid",
36 "com_github_iancoleman_strcase",
37 "com_github_improbable_eng_grpc_web",
38 "com_github_insomniacslk_dhcp",
39 "com_github_joho_godotenv",
40 "com_github_kballard_go_shellquote",
Tim Windelschmidte5e90a82024-07-17 23:46:22 +020041 "com_github_klauspost_compress",
42 "com_github_lib_pq",
43 "com_github_mattn_go_shellwords",
44 "com_github_mdlayher_arp",
45 "com_github_mdlayher_ethernet",
46 "com_github_mdlayher_ethtool",
47 "com_github_mdlayher_genetlink",
48 "com_github_mdlayher_kobject",
49 "com_github_mdlayher_netlink",
50 "com_github_mdlayher_packet",
Jan Schär4a180222024-07-29 16:32:54 +020051 "com_github_miekg_dns",
Tim Windelschmidte5e90a82024-07-17 23:46:22 +020052 "com_github_mitchellh_go_wordwrap",
53 "com_github_opencontainers_go_digest",
54 "com_github_opencontainers_runc",
55 "com_github_packethost_packngo",
56 "com_github_pkg_errors",
57 "com_github_pkg_sftp",
58 "com_github_prometheus_client_golang",
59 "com_github_prometheus_node_exporter",
Serge Bazanski0d9e1252024-09-03 12:16:47 +020060 "com_github_rivo_uniseg",
Tim Windelschmidte5e90a82024-07-17 23:46:22 +020061 "com_github_rmohr_bazeldnf",
62 "com_github_sbezverk_nfproxy",
Tim Windelschmidt7a1b27d2024-02-22 23:54:58 +010063 "com_github_schollz_progressbar_v3",
Tim Windelschmidte5e90a82024-07-17 23:46:22 +020064 "com_github_spf13_cobra",
65 "com_github_spf13_pflag",
66 "com_github_sqlc_dev_sqlc",
67 "com_github_stretchr_testify",
68 "com_github_vishvananda_netlink",
69 "com_github_yalue_native_endian",
70 "com_google_cloud_go_storage",
71 "com_zx2c4_golang_wireguard_wgctrl",
72 "dev_gvisor_gvisor",
73 "io_etcd_go_etcd_api_v3",
74 "io_etcd_go_etcd_client_pkg_v3",
75 "io_etcd_go_etcd_client_v3",
76 "io_etcd_go_etcd_server_v3",
77 "io_etcd_go_etcd_tests_v3",
78 "io_k8s_api",
79 "io_k8s_apimachinery",
80 "io_k8s_apiserver",
81 "io_k8s_cli_runtime",
82 "io_k8s_client_go",
Tim Windelschmidte5e90a82024-07-17 23:46:22 +020083 "io_k8s_component_base",
84 "io_k8s_klog_v2",
85 "io_k8s_kubectl",
86 "io_k8s_kubelet",
87 "io_k8s_kubernetes",
88 "io_k8s_pod_security_admission",
Jan Schära48bd3c2024-07-29 17:22:18 +020089 "io_k8s_utils",
Lorenz Brun227c5cb2025-01-09 21:39:55 +010090 "org_go4_netipx",
Tim Windelschmidt5178dd72024-12-04 04:38:45 +010091 "org_golang_google_api",
Tim Windelschmidte5e90a82024-07-17 23:46:22 +020092 "org_golang_google_genproto_googleapis_api",
93 "org_golang_google_grpc",
94 "org_golang_google_protobuf",
95 "org_golang_x_crypto",
Tim Windelschmidte5e90a82024-07-17 23:46:22 +020096 "org_golang_x_net",
97 "org_golang_x_sync",
98 "org_golang_x_sys",
Tim Windelschmidt7a1b27d2024-02-22 23:54:58 +010099 "org_golang_x_term",
Tim Windelschmidte5e90a82024-07-17 23:46:22 +0200100 "org_golang_x_text",
101 "org_golang_x_time",
102 "org_golang_x_tools",
103 "org_uber_go_multierr",
104 "org_uber_go_zap",
105)
106
107# Instead of defining a gazelle/module override for every dependency, we have a
108# big dict containing all of them.
109OVERRIDES = {
Lorenz Brun0ec0c532024-08-29 12:39:47 +0000110 "github.com/containerd/containerd/v2": {
Tim Windelschmidte5e90a82024-07-17 23:46:22 +0200111 "directives": [
112 "gazelle:proto disable",
Tim Windelschmidt25e0d8f2024-12-02 23:46:24 +0100113 "gazelle:build_tags no_aufs,no_btrfs,no_devmapper,no_zfs",
Tim Windelschmidte5e90a82024-07-17 23:46:22 +0200114 ],
Tim Windelschmidte5e90a82024-07-17 23:46:22 +0200115 },
116 "github.com/containerd/cgroups/v3": {
117 "directives": [
118 "gazelle:proto disable",
119 ],
120 },
121 "github.com/containerd/nri": {
122 "directives": [
123 "gazelle:proto disable",
124 ],
125 },
126 "github.com/gogo/protobuf": {
127 "directives": [
128 "gazelle:proto disable",
129 ],
130 },
131 "github.com/google/cel-go": {
132 "build_file_generation": "on",
133 "directives": [
134 "gazelle:go_naming_convention go_default_library",
135 ],
136 },
137 "github.com/google/go-tpm-tools": {
138 "directives": [
139 "gazelle:proto file",
140 ],
141 "pre_patches": [
142 "//third_party/go/patches:go-tpm-tools-fix-proto-paths.patch",
143 ],
144 },
145 "github.com/googleapis/gax-go/v2": {
146 "directives": [
147 "gazelle:proto disable",
148 ],
149 },
150 "github.com/Microsoft/hcsshim": {
151 "directives": [
152 "gazelle:proto disable",
153 ],
154 },
155 "github.com/opencontainers/runc": {
156 "directives": [
157 "gazelle:build_tags seccomp",
158 ],
159 "patches": [
160 "//third_party/go/patches:runc-add-cdeps.patch",
161 ],
162 },
Tim Windelschmidte5e90a82024-07-17 23:46:22 +0200163 "github.com/google/cadvisor": {
164 "directives": [
165 "gazelle:proto disable_global",
166 ],
Lorenz Brun837cb8e2024-12-23 13:52:56 +0100167 "pre_patches": [
168 "//third_party/go/patches:cadvisor-errdefs1.patch",
169 ],
Tim Windelschmidte5e90a82024-07-17 23:46:22 +0200170 },
171 "github.com/sqlc-dev/sqlc": {
Tim Windelschmidte5e90a82024-07-17 23:46:22 +0200172 "directives": [
173 "gazelle:proto disable",
Tim Windelschmidt25e0d8f2024-12-02 23:46:24 +0100174 "gazelle:build_tags nowasm",
Tim Windelschmidte5e90a82024-07-17 23:46:22 +0200175 ],
176 },
177 "github.com/containerd/ttrpc": {
178 "directives": [
179 "gazelle:proto disable",
180 ],
181 },
182 "go.etcd.io/etcd/api/v3": {
183 "directives": [
184 "gazelle:proto disable",
185 ],
186 },
187 "go.etcd.io/etcd/raft/v3": {
188 "directives": [
189 "gazelle:proto disable",
190 ],
191 },
192 "go.etcd.io/etcd/server/v3": {
193 "directives": [
194 "gazelle:proto disable",
195 ],
196 "patches": [
197 "//third_party/go/patches:etcd-fix-embed-close.patch",
Jan Schäre551d312024-09-17 12:38:54 +0200198 "//third_party/go/patches:etcd-fix-islearner-panic.patch",
Tim Windelschmidte5e90a82024-07-17 23:46:22 +0200199 ],
200 },
201 "github.com/grpc-ecosystem/grpc-gateway": {
202 # Force generation of new build files for this package, required due to changes in how gazelle handles @go_googleapis.
203 "build_file_generation": "on",
204 "directives": [
205 "gazelle:exclude **/**_test.go",
206 "gazelle:exclude examples",
207 "gazelle:resolve go github.com/grpc-ecosystem/grpc-gateway/internal //internal",
208 "gazelle:resolve go github.com/grpc-ecosystem/grpc-gateway/protoc-gen-swagger/options //protoc-gen-swagger/options",
209 "gazelle:proto disable_global",
210 ],
211 },
212 "k8s.io/api": {
213 "directives": [
214 "gazelle:proto disable",
215 ],
216 },
217 "k8s.io/apiextensions-apiserver": {
218 "directives": [
219 "gazelle:proto disable",
220 ],
221 },
222 "k8s.io/apiserver": {
223 "directives": [
224 "gazelle:proto disable",
225 ],
226 },
Lorenz Brun95190ce2025-01-28 13:07:00 +0000227 "k8s.io/client-go": {
228 "pre_patches": [
229 "//third_party/go/patches:k8s-fix-websocket-custom-dialer.patch",
230 ],
231 },
Tim Windelschmidte5e90a82024-07-17 23:46:22 +0200232 "k8s.io/cri-api": {
233 "directives": [
234 "gazelle:proto disable",
235 ],
236 },
237 "k8s.io/kube-aggregator": {
238 "directives": [
239 "gazelle:proto disable",
240 ],
241 },
242 "k8s.io/kubelet": {
243 "directives": [
244 "gazelle:proto disable",
245 ],
246 "patches": [
247 "//third_party/go/patches:kubelet-fix-path.patch",
248 ],
249 },
250 "k8s.io/kubernetes": {
251 "directives": [
252 "gazelle:proto disable",
Tim Windelschmidte5e90a82024-07-17 23:46:22 +0200253 ],
254 "patches": [
255 "//third_party/go/patches:k8s-native-metrics.patch",
256 "//third_party/go/patches:k8s-removed-block-device-pseudo-locks.patch",
257 "//third_party/go/patches:k8s-add-pause-build-file.patch",
258 "//third_party/go/patches:k8s-reserve-metropolis-ports-import.patch",
259 ],
260 "pre_patches": [
261 "//third_party/go/patches:k8s-drop-legacy-log-path.patch",
262 "//third_party/go/patches:k8s-reserve-metropolis-ports.patch",
263 ],
264 },
265 "k8s.io/metrics": {
266 "directives": [
267 "gazelle:proto disable",
268 ],
269 },
270 "google.golang.org/genproto/googleapis/api": {
271 "directives": [
272 "gazelle:proto disable_global",
273 ],
274 },
275 "google.golang.org/genproto/googleapis/rpc": {
276 "directives": [
277 "gazelle:proto disable_global",
278 ],
279 },
280 "google.golang.org/grpc": {
281 "directives": [
282 "gazelle:proto disable",
283 ],
284 },
285 "github.com/pingcap/tidb/parser": {
286 "build_file_generation": "on",
287 },
288 "golang.org/x/mod": {
289 "build_extra_args": [
290 "-go_naming_convention=import_alias",
291 "-go_naming_convention_external=import_alias",
292 ],
293 },
294 "golang.org/x/sync": {
295 "build_extra_args": [
296 "-go_naming_convention=import_alias",
297 "-go_naming_convention_external=import_alias",
298 ],
299 },
300 "github.com/containernetworking/cni": {
301 "patches": [
302 "//third_party/go/patches:cni-fix-cachepath.patch",
303 ],
304 },
Tim Windelschmidte5e90a82024-07-17 23:46:22 +0200305 "github.com/corverroos/commentwrap": {
306 "patches": [
307 "//third_party/go/patches:commentwrap-uri.patch",
308 ],
309 },
310 "github.com/go-delve/delve": {
311 "patches": [
312 "//third_party/go/patches:delve-fix-cgo.patch",
313 ],
314 },
315 "github.com/pganalyze/pg_query_go/v4": {
316 "patches": [
317 "//third_party/go/patches:pganalyze-add-cdeps.patch",
318 ],
319 },
320 "github.com/sbezverk/nfproxy": {
321 "pre_patches": [
322 "//third_party/go/patches:nfproxy-adapt-to-k8s-1.28.patch",
Lorenz Brun11bf3d32025-01-07 17:49:27 +0100323 "//third_party/go/patches:nfproxy-adapt-to-nftables-0.2.patch",
324 ],
325 },
326 "github.com/google/nftables": {
327 "pre_patches": [
328 "//third_party/go/patches:nftables-bigger-buffers.patch",
329 "//third_party/go/patches:nftables-dynamic-exprs.patch",
Tim Windelschmidte5e90a82024-07-17 23:46:22 +0200330 ],
331 },
332 "k8s.io/kubectl": {
333 "patches": [
334 "//third_party/go/patches:kubectl-fix-embed.patch",
335 ],
336 },
337 "github.com/seccomp/libseccomp-golang": {
338 "patches": [
339 "//third_party/go/patches:libseccomp.patch",
340 ],
341 },
342 "github.com/vishvananda/netlink": {
343 "patches": [
Lorenz Brun153c9c12025-01-07 17:44:45 +0100344 "//third_party/go/patches:netlink-psample.patch",
Tim Windelschmidte5e90a82024-07-17 23:46:22 +0200345 ],
346 },
347 "gvisor.dev/gvisor": {
348 "patches": [
349 "//third_party/go/patches:gvisor-fix-syslog.patch",
Tim Windelschmidte5e90a82024-07-17 23:46:22 +0200350 ],
351 "pre_patches": [
352 "//third_party/go/patches:gvisor-containerd-compat.patch",
Tim Windelschmidte5e90a82024-07-17 23:46:22 +0200353 ],
354 },
355 "go.etcd.io/etcd/tests/v3": {
356 "patches": [
357 "//third_party/go/patches:etcd-integration-logging.patch",
358 ],
359 },
Lorenz Brun5c520622025-01-14 14:14:52 +0100360 "k8s.io/component-base": {
361 "patches": [
362 "//third_party/go/patches:k8s-fix-metrics-data-race.patch",
363 ],
364 },
Tim Windelschmidte5e90a82024-07-17 23:46:22 +0200365 "k8s.io/mount-utils": {
366 "pre_patches": [
367 "//third_party/go/patches:k8s-native-mounter.patch",
368 ],
369 },
370 "golang.org/x/tools": {
371 "patches": [
372 "//third_party/go/patches:goimports-group-merging.patch",
373 ],
374 },
375}
376
377# MODULE.bazel doesn't support loops, but since we have lots of overrides,
378# this is the more readable approach.
379[
380 [
381 go_deps.gazelle_override(
382 build_extra_args = overrides.get("build_extra_args") or [],
383 build_file_generation = overrides.get("build_file_generation") or "auto",
384 directives = overrides.get("directives") or [],
385 path = path,
386 ),
387 go_deps.module_override(
388 patch_strip = 1,
389 patches = overrides.get("patches") or [],
390 path = path,
391 pre_patches = overrides.get("pre_patches") or [],
392 ),
393 ]
394 for path, overrides in OVERRIDES.items()
395]