| go_sdk = use_extension("@io_bazel_rules_go//go:extensions.bzl", "go_sdk") |
| go_sdk.download(version = "1.22.5") |
| go_sdk.nogo(nogo = "//build/analysis:nogo") |
| |
| go_deps = use_extension("@bazel_gazelle//:extensions.bzl", "go_deps") |
| go_deps.from_file(go_mod = "//:go.mod") |
| |
| # All *direct* Go dependencies of the module have to be listed explicitly. |
| # This list can be automatically updated by running "bazel mod tidy". |
| use_repo( |
| go_deps, |
| "co_honnef_go_tools", |
| "com_4d63_gocheckcompilerdirectives", |
| "com_github_adrg_xdg", |
| "com_github_cavaliergopher_cpio", |
| "com_github_cenkalti_backoff_v4", |
| "com_github_cockroachdb_cockroach_go_v2", |
| "com_github_container_storage_interface_spec", |
| "com_github_containerd_containerd", |
| "com_github_containernetworking_plugins", |
| "com_github_coredns_coredns", |
| "com_github_coreos_go_semver", |
| "com_github_corverroos_commentwrap", |
| "com_github_diskfs_go_diskfs", |
| "com_github_docker_distribution", |
| "com_github_go_delve_delve", |
| "com_github_golang_migrate_migrate_v4", |
| "com_github_google_cel_go", |
| "com_github_google_certificate_transparency_go", |
| "com_github_google_go_cmp", |
| "com_github_google_go_tpm", |
| "com_github_google_go_tpm_tools", |
| "com_github_google_gopacket", |
| "com_github_google_nftables", |
| "com_github_google_uuid", |
| "com_github_iancoleman_strcase", |
| "com_github_improbable_eng_grpc_web", |
| "com_github_insomniacslk_dhcp", |
| "com_github_joho_godotenv", |
| "com_github_kballard_go_shellquote", |
| "com_github_kevinburke_go_bindata", |
| "com_github_klauspost_compress", |
| "com_github_lib_pq", |
| "com_github_mattn_go_shellwords", |
| "com_github_mdlayher_arp", |
| "com_github_mdlayher_ethernet", |
| "com_github_mdlayher_ethtool", |
| "com_github_mdlayher_genetlink", |
| "com_github_mdlayher_kobject", |
| "com_github_mdlayher_netlink", |
| "com_github_mdlayher_packet", |
| "com_github_mitchellh_go_wordwrap", |
| "com_github_opencontainers_go_digest", |
| "com_github_opencontainers_runc", |
| "com_github_packethost_packngo", |
| "com_github_pkg_errors", |
| "com_github_pkg_sftp", |
| "com_github_prometheus_client_golang", |
| "com_github_prometheus_node_exporter", |
| "com_github_pseudomuto_protoc_gen_doc", |
| "com_github_rmohr_bazeldnf", |
| "com_github_sbezverk_nfproxy", |
| "com_github_spf13_cobra", |
| "com_github_spf13_pflag", |
| "com_github_sqlc_dev_sqlc", |
| "com_github_stretchr_testify", |
| "com_github_vishvananda_netlink", |
| "com_github_yalue_native_endian", |
| "com_google_cloud_go_storage", |
| "com_zx2c4_golang_wireguard_wgctrl", |
| "dev_gvisor_gvisor", |
| "io_etcd_go_etcd_api_v3", |
| "io_etcd_go_etcd_client_pkg_v3", |
| "io_etcd_go_etcd_client_v3", |
| "io_etcd_go_etcd_server_v3", |
| "io_etcd_go_etcd_tests_v3", |
| "io_k8s_api", |
| "io_k8s_apimachinery", |
| "io_k8s_apiserver", |
| "io_k8s_cli_runtime", |
| "io_k8s_client_go", |
| "io_k8s_code_generator", |
| "io_k8s_component_base", |
| "io_k8s_klog_v2", |
| "io_k8s_kubectl", |
| "io_k8s_kubelet", |
| "io_k8s_kubernetes", |
| "io_k8s_pod_security_admission", |
| "net_starlark_go", |
| "org_golang_google_genproto_googleapis_api", |
| "org_golang_google_grpc", |
| "org_golang_google_protobuf", |
| "org_golang_x_crypto", |
| "org_golang_x_mod", |
| "org_golang_x_net", |
| "org_golang_x_sync", |
| "org_golang_x_sys", |
| "org_golang_x_text", |
| "org_golang_x_time", |
| "org_golang_x_tools", |
| "org_uber_go_multierr", |
| "org_uber_go_zap", |
| ) |
| |
| # Instead of defining a gazelle/module override for every dependency, we have a |
| # big dict containing all of them. |
| OVERRIDES = { |
| "github.com/containerd/cgroups": { |
| "directives": [ |
| "gazelle:proto disable", |
| ], |
| }, |
| "github.com/containerd/containerd": { |
| "directives": [ |
| "gazelle:proto disable", |
| "gazelle:build_tags no_btrfs,no_zfs", |
| ], |
| "pre_patches": [ |
| # We build with newer CRI API definitions. |
| "//third_party/go/patches:containerd-grpc-inherit-unimplemented.patch", |
| ], |
| }, |
| "github.com/containerd/cgroups/v3": { |
| "directives": [ |
| "gazelle:proto disable", |
| ], |
| }, |
| "github.com/containerd/nri": { |
| "directives": [ |
| "gazelle:proto disable", |
| ], |
| }, |
| "github.com/gogo/protobuf": { |
| "directives": [ |
| "gazelle:proto disable", |
| ], |
| }, |
| "github.com/google/cel-go": { |
| "build_file_generation": "on", |
| "directives": [ |
| "gazelle:go_naming_convention go_default_library", |
| ], |
| }, |
| "github.com/google/go-tpm-tools": { |
| "directives": [ |
| "gazelle:proto file", |
| ], |
| "pre_patches": [ |
| "//third_party/go/patches:go-tpm-tools-fix-proto-paths.patch", |
| ], |
| }, |
| "github.com/googleapis/gax-go/v2": { |
| "directives": [ |
| "gazelle:proto disable", |
| ], |
| }, |
| "github.com/Microsoft/hcsshim": { |
| "directives": [ |
| "gazelle:proto disable", |
| ], |
| }, |
| "github.com/opencontainers/runc": { |
| "directives": [ |
| "gazelle:build_tags seccomp", |
| ], |
| "patches": [ |
| "//third_party/go/patches:runc-add-cdeps.patch", |
| ], |
| }, |
| "github.com/prometheus/node_exporter": { |
| "directives": [ |
| "gazelle:build_tags nobtrfs,nozfs,notapestats,norapl", |
| ], |
| }, |
| "github.com/pseudomuto/protoc-gen-doc": { |
| "directives": [ |
| "gazelle:resolve go github.com/mwitkow/go-proto-validators @com_github_mwitkow_go_proto_validators//:validators_golang", |
| ], |
| "pre_patches": [ |
| "//third_party/go/patches:protoc-gen-doc-no-gogo.patch", |
| ], |
| }, |
| "github.com/pseudomuto/protokit": { |
| "directives": [ |
| "gazelle:proto disable", |
| ], |
| }, |
| "github.com/google/cadvisor": { |
| "directives": [ |
| "gazelle:proto disable_global", |
| ], |
| }, |
| "github.com/sqlc-dev/sqlc": { |
| "build_extra_args": [ |
| "-exclude=internal/ext/wasm/wasm.go", |
| ], |
| "directives": [ |
| "gazelle:proto disable", |
| ], |
| }, |
| "github.com/containerd/ttrpc": { |
| "directives": [ |
| "gazelle:proto disable", |
| ], |
| }, |
| "go.etcd.io/etcd/api/v3": { |
| "directives": [ |
| "gazelle:proto disable", |
| ], |
| }, |
| "go.etcd.io/etcd/raft/v3": { |
| "directives": [ |
| "gazelle:proto disable", |
| ], |
| }, |
| "go.etcd.io/etcd/server/v3": { |
| "directives": [ |
| "gazelle:proto disable", |
| ], |
| "patches": [ |
| "//third_party/go/patches:etcd-fix-embed-close.patch", |
| ], |
| }, |
| "github.com/grpc-ecosystem/grpc-gateway": { |
| # Force generation of new build files for this package, required due to changes in how gazelle handles @go_googleapis. |
| "build_file_generation": "on", |
| "directives": [ |
| "gazelle:exclude **/**_test.go", |
| "gazelle:exclude examples", |
| "gazelle:resolve go github.com/grpc-ecosystem/grpc-gateway/internal //internal", |
| "gazelle:resolve go github.com/grpc-ecosystem/grpc-gateway/protoc-gen-swagger/options //protoc-gen-swagger/options", |
| "gazelle:proto disable_global", |
| ], |
| }, |
| "k8s.io/api": { |
| "directives": [ |
| "gazelle:proto disable", |
| ], |
| }, |
| "k8s.io/apiextensions-apiserver": { |
| "directives": [ |
| "gazelle:proto disable", |
| ], |
| }, |
| "k8s.io/apiserver": { |
| "directives": [ |
| "gazelle:proto disable", |
| ], |
| }, |
| "k8s.io/cri-api": { |
| "directives": [ |
| "gazelle:proto disable", |
| ], |
| }, |
| "k8s.io/kube-aggregator": { |
| "directives": [ |
| "gazelle:proto disable", |
| ], |
| }, |
| "k8s.io/kubelet": { |
| "directives": [ |
| "gazelle:proto disable", |
| ], |
| "patches": [ |
| "//third_party/go/patches:kubelet-fix-path.patch", |
| ], |
| }, |
| "k8s.io/kubernetes": { |
| "directives": [ |
| "gazelle:proto disable", |
| "gazelle:build_tags providerless,dockerless", |
| ], |
| "patches": [ |
| "//third_party/go/patches:k8s-native-metrics.patch", |
| "//third_party/go/patches:k8s-removed-block-device-pseudo-locks.patch", |
| "//third_party/go/patches:k8s-add-pause-build-file.patch", |
| "//third_party/go/patches:k8s-reserve-metropolis-ports-import.patch", |
| ], |
| "pre_patches": [ |
| "//third_party/go/patches:k8s-drop-legacy-log-path.patch", |
| "//third_party/go/patches:k8s-reserve-metropolis-ports.patch", |
| ], |
| }, |
| "k8s.io/metrics": { |
| "directives": [ |
| "gazelle:proto disable", |
| ], |
| }, |
| "google.golang.org/genproto/googleapis/api": { |
| "directives": [ |
| "gazelle:proto disable_global", |
| ], |
| }, |
| "google.golang.org/genproto/googleapis/rpc": { |
| "directives": [ |
| "gazelle:proto disable_global", |
| ], |
| }, |
| "google.golang.org/grpc": { |
| "directives": [ |
| "gazelle:proto disable", |
| ], |
| }, |
| "github.com/pingcap/tidb/parser": { |
| "build_file_generation": "on", |
| }, |
| "golang.org/x/mod": { |
| "build_extra_args": [ |
| "-go_naming_convention=import_alias", |
| "-go_naming_convention_external=import_alias", |
| ], |
| }, |
| "golang.org/x/sync": { |
| "build_extra_args": [ |
| "-go_naming_convention=import_alias", |
| "-go_naming_convention_external=import_alias", |
| ], |
| }, |
| "github.com/containernetworking/cni": { |
| "patches": [ |
| "//third_party/go/patches:cni-fix-cachepath.patch", |
| ], |
| }, |
| "github.com/coredns/coredns": { |
| "pre_patches": [ |
| "//third_party/go/patches:coredns-remove-unused-plugins.patch", |
| ], |
| }, |
| "github.com/corverroos/commentwrap": { |
| "patches": [ |
| "//third_party/go/patches:commentwrap-uri.patch", |
| ], |
| }, |
| "github.com/go-delve/delve": { |
| "patches": [ |
| "//third_party/go/patches:delve-fix-cgo.patch", |
| ], |
| }, |
| "github.com/pganalyze/pg_query_go/v4": { |
| "patches": [ |
| "//third_party/go/patches:pganalyze-add-cdeps.patch", |
| ], |
| }, |
| "github.com/sbezverk/nfproxy": { |
| "pre_patches": [ |
| "//third_party/go/patches:nfproxy-adapt-to-k8s-1.28.patch", |
| ], |
| }, |
| "k8s.io/kubectl": { |
| "patches": [ |
| "//third_party/go/patches:kubectl-fix-embed.patch", |
| ], |
| }, |
| "github.com/seccomp/libseccomp-golang": { |
| "patches": [ |
| "//third_party/go/patches:libseccomp.patch", |
| ], |
| }, |
| "github.com/vishvananda/netlink": { |
| "patches": [ |
| "//third_party/go/patches:netlink-permhwaddr.patch", |
| "//third_party/go/patches:netlink-use-rtm_setlink.patch", |
| ], |
| }, |
| "gvisor.dev/gvisor": { |
| "patches": [ |
| "//third_party/go/patches:gvisor-fix-syslog.patch", |
| # Gazelle doesn't understand conditional build files. |
| # https://github.com/bazelbuild/bazel-gazelle/issues/1262 |
| "//third_party/go/patches:gvisor-fix-gazelle-debug-builds.patch", |
| ], |
| "pre_patches": [ |
| "//third_party/go/patches:gvisor-containerd-compat.patch", |
| # Modified patch for the go branch. |
| # Upstream issue https://github.com/google/gvisor/issues/9039 |
| # Upstream patch https://github.com/google/gvisor/commit/62afa160fe8ad17302d43f7c6016061de57c7f4d |
| "//third_party/go/patches:gvisor-fix-debug-builds.patch", |
| ], |
| }, |
| "go.etcd.io/etcd/tests/v3": { |
| "patches": [ |
| "//third_party/go/patches:etcd-integration-logging.patch", |
| ], |
| }, |
| "k8s.io/mount-utils": { |
| "pre_patches": [ |
| "//third_party/go/patches:k8s-native-mounter.patch", |
| ], |
| }, |
| "golang.org/x/tools": { |
| "patches": [ |
| "//third_party/go/patches:goimports-group-merging.patch", |
| ], |
| }, |
| } |
| |
| # MODULE.bazel doesn't support loops, but since we have lots of overrides, |
| # this is the more readable approach. |
| [ |
| [ |
| go_deps.gazelle_override( |
| build_extra_args = overrides.get("build_extra_args") or [], |
| build_file_generation = overrides.get("build_file_generation") or "auto", |
| directives = overrides.get("directives") or [], |
| path = path, |
| ), |
| go_deps.module_override( |
| patch_strip = 1, |
| patches = overrides.get("patches") or [], |
| path = path, |
| pre_patches = overrides.get("pre_patches") or [], |
| ), |
| ] |
| for path, overrides in OVERRIDES.items() |
| ] |