blob: a7231440200e9c58a169aee3494c7717ea62822e [file] [log] [blame]
Tim Windelschmidte5e90a82024-07-17 23:46:22 +02001go_sdk = use_extension("@io_bazel_rules_go//go:extensions.bzl", "go_sdk")
Tim Windelschmidt515f1f32025-02-24 18:51:31 +01002go_sdk.download(version = "1.24.0")
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",
Tim Windelschmidt7c0bd0b2025-01-10 04:15:37 +010028 "com_github_golangci_gofmt",
Tim Windelschmidte5e90a82024-07-17 23:46:22 +020029 "com_github_google_cel_go",
30 "com_github_google_certificate_transparency_go",
31 "com_github_google_go_cmp",
32 "com_github_google_go_tpm",
33 "com_github_google_go_tpm_tools",
34 "com_github_google_gopacket",
35 "com_github_google_nftables",
36 "com_github_google_uuid",
37 "com_github_iancoleman_strcase",
38 "com_github_improbable_eng_grpc_web",
39 "com_github_insomniacslk_dhcp",
40 "com_github_joho_godotenv",
41 "com_github_kballard_go_shellquote",
Tim Windelschmidte5e90a82024-07-17 23:46:22 +020042 "com_github_klauspost_compress",
43 "com_github_lib_pq",
44 "com_github_mattn_go_shellwords",
45 "com_github_mdlayher_arp",
46 "com_github_mdlayher_ethernet",
47 "com_github_mdlayher_ethtool",
48 "com_github_mdlayher_genetlink",
49 "com_github_mdlayher_kobject",
50 "com_github_mdlayher_netlink",
51 "com_github_mdlayher_packet",
Jan Schär4a180222024-07-29 16:32:54 +020052 "com_github_miekg_dns",
Tim Windelschmidte5e90a82024-07-17 23:46:22 +020053 "com_github_mitchellh_go_wordwrap",
54 "com_github_opencontainers_go_digest",
55 "com_github_opencontainers_runc",
56 "com_github_packethost_packngo",
57 "com_github_pkg_errors",
58 "com_github_pkg_sftp",
59 "com_github_prometheus_client_golang",
60 "com_github_prometheus_node_exporter",
Serge Bazanski0d9e1252024-09-03 12:16:47 +020061 "com_github_rivo_uniseg",
Tim Windelschmidte5e90a82024-07-17 23:46:22 +020062 "com_github_rmohr_bazeldnf",
63 "com_github_sbezverk_nfproxy",
Tim Windelschmidt7a1b27d2024-02-22 23:54:58 +010064 "com_github_schollz_progressbar_v3",
Tim Windelschmidte5e90a82024-07-17 23:46:22 +020065 "com_github_spf13_cobra",
66 "com_github_spf13_pflag",
67 "com_github_sqlc_dev_sqlc",
68 "com_github_stretchr_testify",
69 "com_github_vishvananda_netlink",
70 "com_github_yalue_native_endian",
71 "com_google_cloud_go_storage",
72 "com_zx2c4_golang_wireguard_wgctrl",
73 "dev_gvisor_gvisor",
74 "io_etcd_go_etcd_api_v3",
75 "io_etcd_go_etcd_client_pkg_v3",
76 "io_etcd_go_etcd_client_v3",
77 "io_etcd_go_etcd_server_v3",
78 "io_etcd_go_etcd_tests_v3",
79 "io_k8s_api",
80 "io_k8s_apimachinery",
81 "io_k8s_apiserver",
82 "io_k8s_cli_runtime",
83 "io_k8s_client_go",
Tim Windelschmidte5e90a82024-07-17 23:46:22 +020084 "io_k8s_component_base",
85 "io_k8s_klog_v2",
86 "io_k8s_kubectl",
87 "io_k8s_kubelet",
88 "io_k8s_kubernetes",
89 "io_k8s_pod_security_admission",
Jan Schära48bd3c2024-07-29 17:22:18 +020090 "io_k8s_utils",
Lorenz Brun52700ae2025-01-28 15:07:08 +010091 "org_dolansoft_git_dolansoft_k8s_nft_npc",
Lorenz Brun227c5cb2025-01-09 21:39:55 +010092 "org_go4_netipx",
Tim Windelschmidt5178dd72024-12-04 04:38:45 +010093 "org_golang_google_api",
Tim Windelschmidte5e90a82024-07-17 23:46:22 +020094 "org_golang_google_genproto_googleapis_api",
95 "org_golang_google_grpc",
96 "org_golang_google_protobuf",
97 "org_golang_x_crypto",
Tim Windelschmidte5e90a82024-07-17 23:46:22 +020098 "org_golang_x_net",
99 "org_golang_x_sync",
100 "org_golang_x_sys",
Tim Windelschmidt7a1b27d2024-02-22 23:54:58 +0100101 "org_golang_x_term",
Tim Windelschmidte5e90a82024-07-17 23:46:22 +0200102 "org_golang_x_text",
103 "org_golang_x_time",
104 "org_golang_x_tools",
105 "org_uber_go_multierr",
106 "org_uber_go_zap",
107)
108
109# Instead of defining a gazelle/module override for every dependency, we have a
110# big dict containing all of them.
111OVERRIDES = {
Lorenz Brun0ec0c532024-08-29 12:39:47 +0000112 "github.com/containerd/containerd/v2": {
Tim Windelschmidte5e90a82024-07-17 23:46:22 +0200113 "directives": [
114 "gazelle:proto disable",
Tim Windelschmidt25e0d8f2024-12-02 23:46:24 +0100115 "gazelle:build_tags no_aufs,no_btrfs,no_devmapper,no_zfs",
Tim Windelschmidte5e90a82024-07-17 23:46:22 +0200116 ],
Tim Windelschmidte5e90a82024-07-17 23:46:22 +0200117 },
118 "github.com/containerd/cgroups/v3": {
119 "directives": [
120 "gazelle:proto disable",
121 ],
122 },
123 "github.com/containerd/nri": {
124 "directives": [
125 "gazelle:proto disable",
126 ],
127 },
128 "github.com/gogo/protobuf": {
129 "directives": [
130 "gazelle:proto disable",
131 ],
132 },
133 "github.com/google/cel-go": {
134 "build_file_generation": "on",
135 "directives": [
136 "gazelle:go_naming_convention go_default_library",
137 ],
138 },
139 "github.com/google/go-tpm-tools": {
140 "directives": [
141 "gazelle:proto file",
142 ],
143 "pre_patches": [
Tim Windelschmidt7887f752025-02-04 03:06:56 +0100144 "//third_party/com_github_google_go_tpm_tools:go-tpm-tools-fix-proto-paths.patch",
Tim Windelschmidte5e90a82024-07-17 23:46:22 +0200145 ],
146 },
147 "github.com/googleapis/gax-go/v2": {
148 "directives": [
149 "gazelle:proto disable",
150 ],
151 },
152 "github.com/Microsoft/hcsshim": {
153 "directives": [
154 "gazelle:proto disable",
155 ],
156 },
157 "github.com/opencontainers/runc": {
158 "directives": [
159 "gazelle:build_tags seccomp",
160 ],
161 "patches": [
Tim Windelschmidt7887f752025-02-04 03:06:56 +0100162 "//third_party/com_github_opencontainers_runc:runc-add-cdeps.patch",
Tim Windelschmidte5e90a82024-07-17 23:46:22 +0200163 ],
164 },
Tim Windelschmidte5e90a82024-07-17 23:46:22 +0200165 "github.com/google/cadvisor": {
166 "directives": [
167 "gazelle:proto disable_global",
168 ],
Lorenz Brun837cb8e2024-12-23 13:52:56 +0100169 "pre_patches": [
Tim Windelschmidt7887f752025-02-04 03:06:56 +0100170 "//third_party/com_github_google_cadvisor:cadvisor-errdefs1.patch",
Lorenz Brun837cb8e2024-12-23 13:52:56 +0100171 ],
Tim Windelschmidte5e90a82024-07-17 23:46:22 +0200172 },
173 "github.com/sqlc-dev/sqlc": {
Tim Windelschmidte5e90a82024-07-17 23:46:22 +0200174 "directives": [
175 "gazelle:proto disable",
Tim Windelschmidt25e0d8f2024-12-02 23:46:24 +0100176 "gazelle:build_tags nowasm",
Tim Windelschmidte5e90a82024-07-17 23:46:22 +0200177 ],
178 },
179 "github.com/containerd/ttrpc": {
180 "directives": [
181 "gazelle:proto disable",
182 ],
183 },
184 "go.etcd.io/etcd/api/v3": {
185 "directives": [
186 "gazelle:proto disable",
187 ],
188 },
189 "go.etcd.io/etcd/raft/v3": {
190 "directives": [
191 "gazelle:proto disable",
192 ],
193 },
194 "go.etcd.io/etcd/server/v3": {
195 "directives": [
196 "gazelle:proto disable",
197 ],
198 "patches": [
Tim Windelschmidt7887f752025-02-04 03:06:56 +0100199 "//third_party/com_go_etcd_io_etcd_server_v3:etcd-fix-embed-close.patch",
200 "//third_party/com_go_etcd_io_etcd_server_v3:etcd-fix-islearner-panic.patch",
Tim Windelschmidte5e90a82024-07-17 23:46:22 +0200201 ],
202 },
203 "github.com/grpc-ecosystem/grpc-gateway": {
204 # Force generation of new build files for this package, required due to changes in how gazelle handles @go_googleapis.
205 "build_file_generation": "on",
206 "directives": [
207 "gazelle:exclude **/**_test.go",
208 "gazelle:exclude examples",
209 "gazelle:resolve go github.com/grpc-ecosystem/grpc-gateway/internal //internal",
210 "gazelle:resolve go github.com/grpc-ecosystem/grpc-gateway/protoc-gen-swagger/options //protoc-gen-swagger/options",
211 "gazelle:proto disable_global",
212 ],
213 },
214 "k8s.io/api": {
215 "directives": [
216 "gazelle:proto disable",
217 ],
218 },
219 "k8s.io/apiextensions-apiserver": {
220 "directives": [
221 "gazelle:proto disable",
222 ],
223 },
224 "k8s.io/apiserver": {
225 "directives": [
226 "gazelle:proto disable",
227 ],
228 },
Lorenz Brun95190ce2025-01-28 13:07:00 +0000229 "k8s.io/client-go": {
230 "pre_patches": [
Tim Windelschmidt71718ba2025-02-07 00:04:28 +0100231 "//third_party/com_k8s_io_client_go:k8s-fix-websocket-custom-dialer.patch",
Lorenz Brun95190ce2025-01-28 13:07:00 +0000232 ],
233 },
Tim Windelschmidte5e90a82024-07-17 23:46:22 +0200234 "k8s.io/cri-api": {
235 "directives": [
236 "gazelle:proto disable",
237 ],
238 },
239 "k8s.io/kube-aggregator": {
240 "directives": [
241 "gazelle:proto disable",
242 ],
243 },
244 "k8s.io/kubelet": {
245 "directives": [
246 "gazelle:proto disable",
247 ],
248 "patches": [
Tim Windelschmidt7887f752025-02-04 03:06:56 +0100249 "//third_party/com_k8s_io_kubelet:kubelet-fix-path.patch",
Tim Windelschmidte5e90a82024-07-17 23:46:22 +0200250 ],
251 },
252 "k8s.io/kubernetes": {
253 "directives": [
254 "gazelle:proto disable",
Tim Windelschmidte5e90a82024-07-17 23:46:22 +0200255 ],
256 "patches": [
Tim Windelschmidt7887f752025-02-04 03:06:56 +0100257 "//third_party/com_k8s_io_kubernetes:k8s-native-metrics.patch",
258 "//third_party/com_k8s_io_kubernetes:k8s-removed-block-device-pseudo-locks.patch",
259 "//third_party/com_k8s_io_kubernetes:k8s-add-pause-build-file.patch",
260 "//third_party/com_k8s_io_kubernetes:k8s-reserve-metropolis-ports-import.patch",
Tim Windelschmidte5e90a82024-07-17 23:46:22 +0200261 ],
262 "pre_patches": [
Tim Windelschmidt7887f752025-02-04 03:06:56 +0100263 "//third_party/com_k8s_io_kubernetes:k8s-drop-legacy-log-path.patch",
264 "//third_party/com_k8s_io_kubernetes:k8s-reserve-metropolis-ports.patch",
Tim Windelschmidte5e90a82024-07-17 23:46:22 +0200265 ],
266 },
267 "k8s.io/metrics": {
268 "directives": [
269 "gazelle:proto disable",
270 ],
271 },
272 "google.golang.org/genproto/googleapis/api": {
273 "directives": [
274 "gazelle:proto disable_global",
275 ],
276 },
277 "google.golang.org/genproto/googleapis/rpc": {
278 "directives": [
279 "gazelle:proto disable_global",
280 ],
281 },
282 "google.golang.org/grpc": {
283 "directives": [
284 "gazelle:proto disable",
285 ],
286 },
287 "github.com/pingcap/tidb/parser": {
288 "build_file_generation": "on",
289 },
290 "golang.org/x/mod": {
291 "build_extra_args": [
292 "-go_naming_convention=import_alias",
293 "-go_naming_convention_external=import_alias",
294 ],
295 },
296 "golang.org/x/sync": {
297 "build_extra_args": [
298 "-go_naming_convention=import_alias",
299 "-go_naming_convention_external=import_alias",
300 ],
301 },
302 "github.com/containernetworking/cni": {
303 "patches": [
Tim Windelschmidt7887f752025-02-04 03:06:56 +0100304 "//third_party/com_github_containernetworking_cni:cni-fix-cachepath.patch",
Tim Windelschmidte5e90a82024-07-17 23:46:22 +0200305 ],
306 },
Lorenz Brun0dca6c92025-01-28 15:04:13 +0100307 "github.com/containernetworking/plugins": {
308 "patches": [
Tim Windelschmidt71718ba2025-02-07 00:04:28 +0100309 "//third_party/com_github_containernetworking_plugins:cniplugins-add-linkgroup.patch",
Lorenz Brun0dca6c92025-01-28 15:04:13 +0100310 ],
311 },
Tim Windelschmidte5e90a82024-07-17 23:46:22 +0200312 "github.com/corverroos/commentwrap": {
313 "patches": [
Tim Windelschmidt7887f752025-02-04 03:06:56 +0100314 "//third_party/com_github_corverroos_commentwrap:commentwrap-uri.patch",
Tim Windelschmidte5e90a82024-07-17 23:46:22 +0200315 ],
316 },
Tim Windelschmidte5e90a82024-07-17 23:46:22 +0200317 "github.com/pganalyze/pg_query_go/v4": {
318 "patches": [
Tim Windelschmidt7887f752025-02-04 03:06:56 +0100319 "//third_party/com_github_pganalyze_pg_query_go_v4:pganalyze-add-cdeps.patch",
Tim Windelschmidte5e90a82024-07-17 23:46:22 +0200320 ],
321 },
322 "github.com/sbezverk/nfproxy": {
323 "pre_patches": [
Tim Windelschmidt7887f752025-02-04 03:06:56 +0100324 "//third_party/com_github_sbezverk_nfproxy:nfproxy-adapt-to-k8s-1.28.patch",
325 "//third_party/com_github_sbezverk_nfproxy:nfproxy-adapt-to-nftables-0.2.patch",
Lorenz Brun11bf3d32025-01-07 17:49:27 +0100326 ],
327 },
328 "github.com/google/nftables": {
329 "pre_patches": [
Tim Windelschmidt7887f752025-02-04 03:06:56 +0100330 "//third_party/com_github_google_nftables:nftables-dynamic-exprs.patch",
Jan Schärec03df42025-02-27 14:30:45 +0100331 "//third_party/com_github_google_nftables:nftables-rule-handle.patch",
332 "//third_party/com_github_google_nftables:nftables-element-batching.patch",
Tim Windelschmidte5e90a82024-07-17 23:46:22 +0200333 ],
334 },
335 "k8s.io/kubectl": {
336 "patches": [
Tim Windelschmidt7887f752025-02-04 03:06:56 +0100337 "//third_party/com_k8s_io_kubectl:kubectl-fix-embed.patch",
Tim Windelschmidte5e90a82024-07-17 23:46:22 +0200338 ],
339 },
340 "github.com/seccomp/libseccomp-golang": {
341 "patches": [
Tim Windelschmidt7887f752025-02-04 03:06:56 +0100342 "//third_party/com_github_seccomp_libseccomp_golang:libseccomp.patch",
Tim Windelschmidte5e90a82024-07-17 23:46:22 +0200343 ],
344 },
345 "github.com/vishvananda/netlink": {
346 "patches": [
Tim Windelschmidt7887f752025-02-04 03:06:56 +0100347 "//third_party/com_github_vishvananda_netlink:netlink-psample.patch",
Tim Windelschmidte5e90a82024-07-17 23:46:22 +0200348 ],
349 },
350 "gvisor.dev/gvisor": {
351 "patches": [
Tim Windelschmidt7887f752025-02-04 03:06:56 +0100352 "//third_party/com_gvisor_dev_gvisor:gvisor-fix-syslog.patch",
Tim Windelschmidte5e90a82024-07-17 23:46:22 +0200353 ],
354 "pre_patches": [
Tim Windelschmidt7887f752025-02-04 03:06:56 +0100355 "//third_party/com_gvisor_dev_gvisor:gvisor-containerd-compat.patch",
Tim Windelschmidte5e90a82024-07-17 23:46:22 +0200356 ],
357 },
358 "go.etcd.io/etcd/tests/v3": {
359 "patches": [
Tim Windelschmidt7887f752025-02-04 03:06:56 +0100360 "//third_party/com_go_etcd_io_etcd_tests_v3:etcd-integration-logging.patch",
Tim Windelschmidte5e90a82024-07-17 23:46:22 +0200361 ],
362 },
Lorenz Brun5c520622025-01-14 14:14:52 +0100363 "k8s.io/component-base": {
364 "patches": [
Tim Windelschmidt7887f752025-02-04 03:06:56 +0100365 "//third_party/com_k8s_io_component_base:k8s-fix-metrics-data-race.patch",
Lorenz Brun5c520622025-01-14 14:14:52 +0100366 ],
367 },
Tim Windelschmidte5e90a82024-07-17 23:46:22 +0200368 "k8s.io/mount-utils": {
369 "pre_patches": [
Tim Windelschmidt7887f752025-02-04 03:06:56 +0100370 "//third_party/com_k8s_io_mount_utils:k8s-native-mounter.patch",
Tim Windelschmidte5e90a82024-07-17 23:46:22 +0200371 ],
372 },
373 "golang.org/x/tools": {
374 "patches": [
Tim Windelschmidt7887f752025-02-04 03:06:56 +0100375 "//third_party/com_golang_org_x_tools:goimports-group-merging.patch",
Tim Windelschmidte5e90a82024-07-17 23:46:22 +0200376 ],
377 },
378}
379
380# MODULE.bazel doesn't support loops, but since we have lots of overrides,
381# this is the more readable approach.
382[
383 [
384 go_deps.gazelle_override(
385 build_extra_args = overrides.get("build_extra_args") or [],
386 build_file_generation = overrides.get("build_file_generation") or "auto",
387 directives = overrides.get("directives") or [],
388 path = path,
389 ),
390 go_deps.module_override(
391 patch_strip = 1,
392 patches = overrides.get("patches") or [],
393 path = path,
394 pre_patches = overrides.get("pre_patches") or [],
395 ),
396 ]
397 for path, overrides in OVERRIDES.items()
398]