"""Defines dependencies on binary (pre-compile) tools""" load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive", "http_file") load("//hack/build/rules/shellcheck:bin.bzl", "shellcheck_dependencies") def install_tools(): """Defines top-level tool install function. This function is imported into our WORKSPACE file to make Bazel aware of our tooling dependencies. To add a binary tool, create a new function that returns targets for Linux (amd64) and Darwin (amd64 and arm64 (m1)) binaries, then include it in this file. """ shellcheck_dependencies() install_docker() install_bazel_tools() install_kustomize() install_helm() install_kpt() install_kubebuilder_tools() install_go_tools() install_go() install_just() install_yq() install_kind() install_k3d() install_flux_cli() install_cloud_sql_proxy() install_embedded_postgres() install_kubeval() install_crdoc() install_argo() install_sonobuoy() install_lua() install_mend_unified_agent() install_golang_migrate() install_target_determinator() install_apko() def install_docker(): """Defines tarball for Docker to be embedded into a container. This tool is not used in any Bazel scripts and is only used from CI containers and on local dev machines, installed outside of Bazel. This is why there is only a tar target. """ http_archive( name = "docker", build_file_content = """ package(default_visibility = ["//visibility:public"]) load("@rules_pkg//:pkg.bzl", "pkg_tar") pkg_tar( name = "tar", # need all of the docker binaries provided in the installation srcs = glob(['docker/*']), extension = "tar.gz", mode = "755", package_dir = "/usr/bin", strip_prefix = "./external/docker/docker" ) """, sha256 = "ab91092320a87691a1eaf0225b48585db9c69cff0ed4b0f569f744ff765515e3", urls = ["https://download.docker.com/linux/static/stable/x86_64/docker-20.10.24.tgz"], ) def install_bazel_tools(): """Install additional tools related to Bazel These are not installed via tools.go because of their dependency on protobuf. """ http_file( name = "buildozer_osx", sha256 = "294f4d0790f4dba18c9b7617f57563e07c2c7e529a8915bcbc49170dc3c08eb9", executable = 1, urls = ["https://github.com/bazelbuild/buildtools/releases/download/5.1.0/buildozer-darwin-amd64"], ) http_file( name = "buildozer_m1", sha256 = "57f8d90fac6b111bd0859b97847d3db2ce71419f44588b0e91250892037cf638", executable = 1, urls = ["https://github.com/bazelbuild/buildtools/releases/download/5.1.0/buildozer-darwin-arm64"], ) http_file( name = "buildozer_linux", sha256 = "7346ce1396dfa9344a5183c8e3e6329f067699d71c4391bd28317391228666bf", executable = 1, urls = ["https://github.com/bazelbuild/buildtools/releases/download/5.1.0/buildozer-linux-amd64"], ) http_file( name = "buildifier_osx", sha256 = "c9378d9f4293fc38ec54a08fbc74e7a9d28914dae6891334401e59f38f6e65dc", executable = 1, urls = ["https://github.com/bazelbuild/buildtools/releases/download/5.1.0/buildifier-darwin-amd64"], ) http_file( name = "buildifier_m1", sha256 = "745feb5ea96cb6ff39a76b2821c57591fd70b528325562486d47b5d08900e2e4", executable = 1, urls = ["https://github.com/bazelbuild/buildtools/releases/download/5.1.0/buildifier-darwin-arm64"], ) http_file( name = "buildifier_linux", sha256 = "52bf6b102cb4f88464e197caac06d69793fa2b05f5ad50a7e7bf6fbd656648a3", executable = 1, urls = ["https://github.com/bazelbuild/buildtools/releases/download/5.1.0/buildifier-linux-amd64"], ) http_file( name = "bazelisk_linux", sha256 = "19fd84262d5ef0cb958bcf01ad79b528566d8fef07ca56906c5c516630a0220b", executable = 1, urls = ["https://github.com/bazelbuild/bazelisk/releases/download/v1.15.0/bazelisk-linux-amd64"], ) def install_target_determinator(): http_file( name = "target_determinator_linux", executable = 1, sha256 = "917d2d3a39c80ccd55cf8eef48d5ba7af37086a3b6209529a36a5518bd609b50", urls = ["https://github.com/bazel-contrib/target-determinator/releases/download/v0.26.0/target-determinator.linux.amd64"], ) http_file( name = "target_determinator_darwin", executable = 1, sha256 = "927696f988d490978e93a71588f02b0c60fbe29278bffe1fe03d447ddfb1e0a4", urls = ["https://github.com/bazel-contrib/target-determinator/releases/download/v0.26.0/target-determinator.darwin.amd64"], ) http_file( name = "target_determinator_m1", executable = 1, sha256 = "bef3f79f1559d4c372742f9841a480cdba1eeca249b00cbad28f90ded6ce6fca", urls = ["https://github.com/bazel-contrib/target-determinator/releases/download/v0.26.0/target-determinator.darwin.arm64"], ) def install_kustomize(): http_archive( name = "kustomize_linux", build_file_content = """ filegroup( name = "file", srcs = ["kustomize"], visibility = ["//visibility:public"] ) """, sha256 = "bf3a0d7409d9ce6a4a393ba61289047b4cb875a36ece1ec94b36924a9ccbaa0f", urls = ["https://github.com/kubernetes-sigs/kustomize/releases/download/kustomize%2Fv4.4.0/kustomize_v4.4.0_linux_amd64.tar.gz"], ) http_archive( name = "kustomize_osx", build_file_content = """ package(default_visibility = ["//visibility:public"]) filegroup( name = "file", srcs = ["kustomize"], visibility = ["//visibility:public"] ) """, sha256 = "f0e55366239464546f9870489cee50764d87ebdd07f7402cf2622e5e8dc77ac1", urls = ["https://github.com/kubernetes-sigs/kustomize/releases/download/kustomize%2Fv4.4.0/kustomize_v4.4.0_darwin_amd64.tar.gz"], ) http_archive( name = "kustomize_m1", build_file_content = """ package(default_visibility = ["//visibility:public"]) filegroup( name = "file", srcs = ["kustomize"], visibility = ["//visibility:public"] ) """, sha256 = "54cfbf2e18e1a344469f892715c037c58301852822afe16085435d57cc13abee", urls = ["https://github.com/kubernetes-sigs/kustomize/releases/download/kustomize%2Fv4.5.4/kustomize_v4.5.4_darwin_arm64.tar.gz"], ) def install_helm(): http_archive( name = "helm_linux", build_file_content = """ package(default_visibility = ["//visibility:public"]) load("@rules_pkg//:pkg.bzl", "pkg_tar") pkg_tar( name = "tar", srcs = ["linux-amd64/helm"], extension = "tar.gz", mode = "755", package_dir = "/usr/local/bin", strip_prefix = "linux-amd64/" ) filegroup( name = "file", srcs = ["linux-amd64/helm"], visibility = ["//visibility:public"] ) """, sha256 = "6cb9a48f72ab9ddfecab88d264c2f6508ab3cd42d9c09666be16a7bf006bed7b", urls = ["https://get.helm.sh/helm-v3.8.2-linux-amd64.tar.gz"], ) http_archive( name = "helm_osx", build_file_content = """ package(default_visibility = ["//visibility:public"]) filegroup( name = "file", srcs = ["darwin-amd64/helm"], visibility = ["//visibility:public"] ) """, sha256 = "25bb4a70b0d9538a97abb3aaa57133c0779982a8091742a22026e60d8614f8a0", urls = ["https://get.helm.sh/helm-v3.8.2-darwin-amd64.tar.gz"], ) http_archive( name = "helm_m1", build_file_content = """ package(default_visibility = ["//visibility:public"]) filegroup( name = "file", srcs = ["darwin-arm64/helm"], visibility = ["//visibility:public"] ) """, sha256 = "dfddc0696597c010ed903e486fe112a18535ab0c92e35335aa54af2360077900", urls = ["https://get.helm.sh/helm-v3.8.2-darwin-arm64.tar.gz"], ) def install_kpt(): """Installs GoogleContainerTools/kpt Has incompatible dependencies so can't be installed via tools.go""" http_archive( name = "kpt_linux", build_file_content = """ package(default_visibility = ["//visibility:public"]) load("@rules_pkg//:pkg.bzl", "pkg_tar") pkg_tar( name = "tar", srcs = ["kpt"], extension = "tar.gz", mode = "755", package_dir = "/usr/local/bin", ) filegroup( name = "file", srcs = ["kpt"], visibility = ["//visibility:public"] ) """, sha256 = "4362dbcaf67302cbaa416407e2e1cc57bc1e3d58c02f50e1ee155f81b6fee763", urls = ["https://github.com/GoogleContainerTools/kpt/releases/download/v0.39.1/kpt_linux_amd64-0.39.1.tar.gz"], ) http_archive( name = "kpt_osx", build_file_content = """ package(default_visibility = ["//visibility:public"]) filegroup( name = "file", srcs = ["kpt"], visibility = ["//visibility:public"] ) """, sha256 = "afea39eaa06da97f7960f4b13990e5c2993f3327ea3eecff1be5606f588e49e5", urls = ["https://github.com/GoogleContainerTools/kpt/releases/download/v0.39.1/kpt_darwin_amd64-0.39.1.tar.gz"], ) http_archive( name = "kpt_m1", build_file_content = """ package(default_visibility = ["//visibility:public"]) filegroup( name = "file", srcs = ["kpt"], visibility = ["//visibility:public"] ) """, sha256 = "f819fa8e4e93915d4eb7b957d443c35deecb513cc8390ed654badfe93c725a3a", urls = ["https://github.com/GoogleContainerTools/kpt/releases/download/v0.39.1/kpt_darwin_arm64-0.39.1.tar.gz"], ) def install_kubebuilder_tools(): """Installs kubernetes-sigs/kubebuilder tools binaries. Used for envtest dependencies""" http_archive( name = "kubebuilder_tools_linux", build_file_content = """ package(default_visibility = ["//visibility:public"]) filegroup( name = "files", srcs = glob(["kubebuilder/bin/*"]), visibility = ["//visibility:public"] ) """, sha256 = "878fded1b42261293419621b78c9deac319531a325ea57ef62d9060b444fe356", urls = ["https://storage.googleapis.com/kubebuilder-tools/kubebuilder-tools-1.28.3-linux-amd64.tar.gz"], ) http_archive( name = "kubebuilder_tools_osx", build_file_content = """ package(default_visibility = ["//visibility:public"]) filegroup( name = "files", srcs = glob(["kubebuilder/bin/*"]), visibility = ["//visibility:public"] ) """, sha256 = "f0ce69984cb1e51b68b34408fa79649368c85fe8db9caedc61d02bffc978fced", urls = ["https://storage.googleapis.com/kubebuilder-tools/kubebuilder-tools-1.28.3-darwin-amd64.tar.gz"], ) http_archive( name = "kubebuilder_tools_m1", build_file_content = """ package(default_visibility = ["//visibility:public"]) filegroup( name = "files", srcs = glob(["kubebuilder/bin/*"]), visibility = ["//visibility:public"] ) """, sha256 = "98092c9edbfab1312d1418244f1f3f2d21509328e5ca8a84e0a6050e7aae69ea", urls = ["https://storage.googleapis.com/kubebuilder-tools/kubebuilder-tools-1.28.3-darwin-arm64.tar.gz"], ) def install_go_tools(): """Installs Golang tooling that doesn't play nice with tools.go.""" golangci_lint_version = "1.61.0" http_archive( name = "golangci_lint_darwin_amd64", build_file_content = """ package(default_visibility = ["//visibility:public"]) filegroup( name = "file", srcs = ["golangci-lint-%s-darwin-amd64/golangci-lint"], visibility = ["//visibility:public"] ) """ % golangci_lint_version, sha256 = "5c280ef3284f80c54fd90d73dc39ca276953949da1db03eb9dd0fbf868cc6e55", urls = ["https://github.com/golangci/golangci-lint/releases/download/v%s/golangci-lint-%s-darwin-amd64.tar.gz" % (golangci_lint_version, golangci_lint_version)], ) http_archive( name = "golangci_lint_m1", build_file_content = """ package(default_visibility = ["//visibility:public"]) filegroup( name = "file", srcs = ["golangci-lint-%s-darwin-arm64/golangci-lint"], visibility = ["//visibility:public"] ) """ % golangci_lint_version, sha256 = "544334890701e4e04a6e574bc010bea8945205c08c44cced73745a6378012d36", urls = ["https://github.com/golangci/golangci-lint/releases/download/v%s/golangci-lint-%s-darwin-arm64.tar.gz" % (golangci_lint_version, golangci_lint_version)], ) http_archive( name = "golangci_lint_linux", build_file_content = """ package(default_visibility = ["//visibility:public"]) filegroup( name = "file", srcs = ["golangci-lint-%s-linux-amd64/golangci-lint"], visibility = ["//visibility:public"] ) """ % golangci_lint_version, sha256 = "77cb0af99379d9a21d5dc8c38364d060e864a01bd2f3e30b5e8cc550c3a54111", urls = ["https://github.com/golangci/golangci-lint/releases/download/v%s/golangci-lint-%s-linux-amd64.tar.gz" % (golangci_lint_version, golangci_lint_version)], ) def install_go(): """Pulls Go tarball so we can install it into our build tools containers. This is easier than getting the rules_go provided SDK into a container image.""" # this is a http_file instead of http_archive due to a bazel bug re: invalid byte sequences # https://github.com/bazelbuild/rules_go/blob/master/go/private/sdk.bzl#L181 http_file( name = "go_1_23", sha256 = "542d3c1705f1c6a1c5a80d5dc62e2e45171af291e755d591c5e6531ef63b454e", downloaded_file_path = "go-sdk.tar.gz", urls = ["https://golang.org/dl/go1.23.2.linux-amd64.tar.gz"], ) def install_just(): """Pulls just Linux installation for baking into CI images""" http_archive( name = "just_linux", build_file_content = """ package(default_visibility = ["//visibility:public"]) load("@rules_pkg//:pkg.bzl", "pkg_tar") pkg_tar( name = "tar", srcs = ["just"], extension = "tar.gz", mode = "755", package_dir = "/usr/local/bin/", ) """, sha256 = "c730d17faf7c3b45f7a0d321f8e743ebd5bdd8f14d1966faecae1a8f9dd76aad", urls = ["https://github.com/casey/just/releases/download/v0.8.3/just-v0.8.3-x86_64-unknown-linux-musl.tar.gz"], ) def install_yq(): """yq is used to query YAML files, similar to jq""" http_file( name = "yq_m1", downloaded_file_path = "yq", sha256 = "8495389a5c31dfd78314e680169cd2c277f2f47442d3fc08e5101ee2c07c6b13", urls = ["https://github.com/mikefarah/yq/releases/download/v4.30.8/yq_darwin_arm64"], executable = 1, ) http_file( name = "yq_osx", sha256 = "123a992cada25421db5c068895006047d3dcdb61987c00e93a1127e6af61b93a", downloaded_file_path = "yq", urls = ["https://github.com/mikefarah/yq/releases/download/v4.30.8/yq_darwin_amd64"], executable = 1, ) http_file( name = "yq_linux", downloaded_file_path = "yq", sha256 = "6c911103e0dcc54e2ba07e767d2d62bcfc77452b39ebaee45b1c46f062f4fd26", urls = ["https://github.com/mikefarah/yq/releases/download/v4.30.8/yq_linux_amd64"], executable = 1, ) def install_kind(): http_file( name = "kind_linux", downloaded_file_path = "kind", urls = ["https://github.com/kubernetes-sigs/kind/releases/download/v0.20.0/kind-linux-amd64"], sha256 = "513a7213d6d3332dd9ef27c24dab35e5ef10a04fa27274fe1c14d8a246493ded", executable = 1, ) http_file( name = "kind_m1", downloaded_file_path = "kind", urls = ["https://github.com/kubernetes-sigs/kind/releases/download/v0.20.0/kind-darwin-arm64"], sha256 = "8df041a5cae55471f3b039c3c9942226eb909821af63b5677fc80904caffaabf", executable = 1, ) http_file( name = "kind_osx", downloaded_file_path = "kind", urls = ["https://github.com/kubernetes-sigs/kind/releases/download/v0.20.0/kind-darwin-amd64"], sha256 = "bffd8fb2006dc89fa0d1dde5ba6bf48caacb707e4df8551528f49145ebfeb7ad", executable = 1, ) def install_k3d(): http_file( name = "k3d_linux", downloaded_file_path = "k3d", urls = ["https://github.com/k3d-io/k3d/releases/download/v5.6.0/k3d-linux-amd64"], sha256 = "c2ca4b90c0c064cd56ae674d586e2003712fe5841748223552e2f8536f741366", executable = 1, ) http_file( name = "k3d_m1", downloaded_file_path = "k3d", urls = ["https://github.com/k3d-io/k3d/releases/download/v5.6.0/k3d-darwin-arm64"], sha256 = "7344bbb41b6ced667d38431076393473b5bcd47c44607685f98818500864f802", executable = 1, ) http_file( name = "k3d_osx", downloaded_file_path = "k3d", urls = ["https://github.com/k3d-io/k3d/releases/download/v5.6.0/k3d-darwin-amd64"], sha256 = "0c1e7712b8b63771d3c8c5cbd32da10bded3fd3f89240380bb08c44ff608f345", executable = 1, ) def install_argo(): """ install the argo cli """ http_file( # http_archive doesnt like the .gz extensions so we have to use genrules and http_file name = "argo_osx", sha256 = "03f460832ea75282871f52d3209c70e4c0e07b897d9fd007f20b5a9739244b99", urls = ["https://github.com/argoproj/argo-workflows/releases/download/v3.5.2/argo-darwin-amd64.gz"], downloaded_file_path = "argo.gz", executable = True, ) http_file( name = "argo_m1", sha256 = "9b57c13169c824c8d14221eb6ef6f3ef959c1fa2458ef8d7246b138d5cc6a99e", urls = ["https://github.com/argoproj/argo-workflows/releases/download/v3.5.2/argo-darwin-arm64.gz"], downloaded_file_path = "argo.gz", executable = True, ) http_file( name = "argo_linux", sha256 = "bac1a01efe11ea11d9f8f7218ace48daf5de8fbc014c5a2c9756cb1f7760b737", urls = ["https://github.com/argoproj/argo-workflows/releases/download/v3.5.2/argo-linux-amd64.gz"], downloaded_file_path = "argo.gz", executable = True, ) def install_sonobuoy(): http_archive( name = "sonobuoy_osx", sha256 = "d40705e4ff054f91fe327f374d7087c1ea2ffa340a464f9ec6a2f863f4327e58", urls = ["https://github.com/vmware-tanzu/sonobuoy/releases/download/v0.56.17/sonobuoy_0.56.17_darwin_amd64.tar.gz"], build_file_content = """ package(default_visibility = ["//visibility:public"]) filegroup( name = "file", srcs = ["sonobuoy"], visibility = ["//visibility:public"] ) """, ) http_archive( name = "sonobuoy_m1", sha256 = "dd28b11bba66483a08656d3b2a6c029dd9e76199ca4e40e7089621d96913637c", urls = ["https://github.com/vmware-tanzu/sonobuoy/releases/download/v0.56.17/sonobuoy_0.56.17_darwin_arm64.tar.gz"], build_file_content = """ package(default_visibility = ["//visibility:public"]) filegroup( name = "file", srcs = ["sonobuoy"], visibility = ["//visibility:public"] ) """, ) http_archive( name = "sonobuoy_linux", sha256 = "dfc064941981e5762cacd54a8eb263d2c00807be160cb12293d5a4bfea2e148a", urls = ["https://github.com/vmware-tanzu/sonobuoy/releases/download/v0.56.17/sonobuoy_0.56.17_linux_amd64.tar.gz"], build_file_content = """ package(default_visibility = ["//visibility:public"]) filegroup( name = "file", srcs = ["sonobuoy"], visibility = ["//visibility:public"] ) """, ) def install_flux_cli(): http_archive( name = "fluxcd_cli_osx", sha256 = "6a8497168fda7e41b58e601a3f1aa7966ae730ba6becad86dc8b633eb2064830", urls = ["https://github.com/fluxcd/flux2/releases/download/v0.22.0/flux_0.22.0_darwin_amd64.tar.gz"], build_file_content = """ package(default_visibility = ["//visibility:public"]) filegroup( name = "file", srcs = ["flux"], visibility = ["//visibility:public"] ) """, ) http_archive( name = "fluxcd_cli_m1", urls = ["https://github.com/fluxcd/flux2/releases/download/v0.28.5/flux_0.28.5_darwin_arm64.tar.gz"], sha256 = "d86729f521d1c17f527ad928167868e59de0e9bb4cd474d7fb5ba6ce69478cc3", build_file_content = """ package(default_visibility = ["//visibility:public"]) filegroup( name = "file", srcs = ["flux"], visibility = ["//visibility:public"] ) """, ) http_archive( name = "fluxcd_cli_linux", urls = ["https://github.com/fluxcd/flux2/releases/download/v0.22.0/flux_0.22.0_linux_amd64.tar.gz"], sha256 = "ab666f7bc993299495d03a9196600b3ef810db6616e054b6e596620adbf9fa4a", build_file_content = """ package(default_visibility = ["//visibility:public"]) filegroup( name = "file", srcs = ["flux"], visibility = ["//visibility:public"] ) """, ) def install_cloud_sql_proxy(): http_file( name = "cloud_sql_proxy_osx", sha256 = "aea4da38033e7b901330dba8c5e8f5a035c3f58e5563843a808a9709baafe969", urls = ["https://storage.googleapis.com/cloud-sql-connectors/cloud-sql-proxy/v2.3.0/cloud-sql-proxy.darwin.amd64"], downloaded_file_path = "cloud_sql_proxy", ) http_file( name = "cloud_sql_proxy_m1", sha256 = "54c77958bf8f27e99c230b1ab0a91a9594ff38e189cc06401bbfa3611888fd26", urls = ["https://storage.googleapis.com/cloud-sql-connectors/cloud-sql-proxy/v2.3.0/cloud-sql-proxy.darwin.arm64"], downloaded_file_path = "cloud_sql_proxy", ) http_file( name = "cloud_sql_proxy_linux", sha256 = "8ef387c10d6798500fa5a2546bc9cd43d9991cfb131da0284ef6df14dd30539e", urls = ["https://storage.googleapis.com/cloud-sql-connectors/cloud-sql-proxy/v2.3.0/cloud-sql-proxy.linux.amd64"], downloaded_file_path = "cloud_sql_proxy", ) def install_embedded_postgres(): http_archive( name = "embedded_postgres_linux", build_file_content = """ package(default_visibility = ["//visibility:public"]) genrule( name = "rename-linux", srcs = ["postgres-linux-x86_64.txz"], outs = ["postgres.txz"], cmd = "cp $(SRCS) $(RULEDIR)/postgres.txz", ) filegroup( name = "file", srcs = ["postgres.txz"], visibility = ["//visibility:public"] ) """, sha256 = "859fabcb076f77bf486f6f04f18a317b0e7e8fafbd76cdbb46b450904c71a8dc", urls = ["https://repo1.maven.org/maven2/io/zonky/test/postgres/embedded-postgres-binaries-linux-amd64/14.8.0/embedded-postgres-binaries-linux-amd64-14.8.0.jar"], ) http_archive( name = "embedded_postgres_osx", build_file_content = """ package(default_visibility = ["//visibility:public"]) genrule( name = "rename-osx", srcs = ["postgres-darwin-x86_64.txz"], outs = ["postgres.txz"], cmd = "cp $(SRCS) $(RULEDIR)/postgres.txz", ) filegroup( name = "file", srcs = ["postgres.txz"], visibility = ["//visibility:public"] ) """, sha256 = "35f95d2967b3ffdffe6149c307c8b503f3ee74aad623d6df25ee64d471f27494", urls = ["https://repo1.maven.org/maven2/io/zonky/test/postgres/embedded-postgres-binaries-darwin-amd64/14.8.0/embedded-postgres-binaries-darwin-amd64-14.8.0.jar"], ) http_archive( name = "embedded_postgres_m1", build_file_content = """ package(default_visibility = ["//visibility:public"]) genrule( name = "rename-m1", srcs = ["postgres-darwin-arm_64.txz"], outs = ["postgres.txz"], cmd = "cp $(SRCS) $(RULEDIR)/postgres.txz", ) filegroup( name = "file", srcs = ["postgres.txz"], visibility = ["//visibility:public"] ) """, sha256 = "5ca0334115cdc6b56b67f5cc38a941ea1855c14f5cd39b039dc138b8740394b6", urls = ["https://repo1.maven.org/maven2/io/zonky/test/postgres/embedded-postgres-binaries-darwin-arm64v8/14.8.0/embedded-postgres-binaries-darwin-arm64v8-14.8.0.jar"], ) def install_kubeval(): """Defines targets for fetching kubeval in all architectures we need""" kubeval_version = "v0.16.1" http_archive( name = "kubeval_osx", sha256 = "c79a91f2e6638463881a8189e0628ebd583a5e2912e6f411897e3cea567125e7", urls = ["https://github.com/instrumenta/kubeval/releases/download/%s/kubeval-darwin-amd64.tar.gz" % kubeval_version], build_file_content = """ package(default_visibility = ["//visibility:public"]) filegroup( name = "file", srcs = ["kubeval"], visibility = ["//visibility:public"] ) """, ) http_archive( name = "kubeval_m1", sha256 = "c79a91f2e6638463881a8189e0628ebd583a5e2912e6f411897e3cea567125e7", urls = ["https://github.com/instrumenta/kubeval/releases/download/%s/kubeval-darwin-amd64.tar.gz" % kubeval_version], build_file_content = """ package(default_visibility = ["//visibility:public"]) filegroup( name = "file", srcs = ["kubeval"], visibility = ["//visibility:public"] ) """, ) http_archive( name = "kubeval_linux", sha256 = "2d6f9bda1423b93787fa05d9e8dfce2fc1190fefbcd9d0936b9635f3f78ba790", urls = ["https://github.com/instrumenta/kubeval/releases/download/%s/kubeval-linux-amd64.tar.gz" % kubeval_version], build_file_content = """ package(default_visibility = ["//visibility:public"]) filegroup( name = "file", srcs = ["kubeval"], visibility = ["//visibility:public"] ) """, ) def install_crdoc(): """Defines targets for fetching crdoc in all architectures we need""" crdoc_version = "0.6.2" url = "https://github.com/fybrik/crdoc/releases/download/v{}/crdoc_{}_{}.tar.gz" http_archive( name = "crdoc_linux", sha256 = "8a513a59c78462b65ef2bfe0bfc5d4981d7d6632c627d01ba1431c3afda0b251", urls = [url.format(crdoc_version, crdoc_version, "Linux_x86_64")], build_file_content = """ package(default_visibility = ["//visibility:public"]) filegroup( name = "file", srcs = ["crdoc"], visibility = ["//visibility:public"] ) """, ) http_archive( name = "crdoc_osx", sha256 = "dbc00cbb59115a8fea8c3027423c14e3209f13d7019a9a3be267b2760b85d28a", urls = [url.format(crdoc_version, crdoc_version, "Darwin_x86_64")], build_file_content = """ package(default_visibility = ["//visibility:public"]) filegroup( name = "file", srcs = ["crdoc"], visibility = ["//visibility:public"] ) """, ) http_archive( name = "crdoc_m1", sha256 = "4a83a49f2e7fe06fdf59f2d25fd44df63c0ad612aba80473c897379f6068e3f2", urls = [url.format(crdoc_version, crdoc_version, "Darwin_arm64")], build_file_content = """ package(default_visibility = ["//visibility:public"]) filegroup( name = "file", srcs = ["crdoc"], visibility = ["//visibility:public"] ) """, ) def install_lua(): """Defines targets for fetching luajit in all architectures we need""" lua_version = "2.1.0-beta3" prefix = "LuaJIT-" http_archive( name = "luajit_linux", sha256 = "409f7fe570d3c16558e594421c47bdd130238323c9d6fd6c83dedd2aaeb082a8", urls = ["https://github.com/LuaJIT/LuaJIT/archive/refs/tags/v%s.tar.gz" % lua_version], strip_prefix = prefix + lua_version, build_file_content = """ package(default_visibility = ["//visibility:public"]) filegroup( name = "srcs", srcs = glob(["**"]), ) genrule( name = "install_luajit_linux", srcs = [":srcs"], outs = ["luajit"], cmd = "INIT_DIR=$$PWD &&" + "LUAJIT_SRC_DIR=$$(dirname $$(echo $(locations :srcs) | cut -d ' ' -f1)) && " + "cd $$LUAJIT_SRC_DIR && " + "make && " + "cd $$INIT_DIR &&" + "cp $$LUAJIT_SRC_DIR/src/luajit $(RULEDIR)", ) """, ) http_archive( name = "luajit_osx", sha256 = "409f7fe570d3c16558e594421c47bdd130238323c9d6fd6c83dedd2aaeb082a8", urls = ["https://github.com/LuaJIT/LuaJIT/archive/refs/tags/v%s.tar.gz" % lua_version], strip_prefix = prefix + lua_version, build_file_content = """ package(default_visibility = ["//visibility:public"]) filegroup( name = "srcs", srcs = glob(["**"]), ) genrule( name = "install_luajit_mac", srcs = [":srcs"], outs = ["luajit"], cmd = "export MACOSX_DEPLOYMENT_TARGET=13.5 " + "INIT_DIR=$$PWD &&" + "LUAJIT_SRC_DIR=$$(dirname $$(echo $(locations :srcs) | cut -d ' ' -f1)) && " + "cd $$LUAJIT_SRC_DIR && " + "make && " + "cd $$INIT_DIR &&" + "cp $$LUAJIT_SRC_DIR/src/luajit $(RULEDIR)", ) """, ) http_archive( name = "luajit_m1", sha256 = "409f7fe570d3c16558e594421c47bdd130238323c9d6fd6c83dedd2aaeb082a8", urls = ["https://github.com/LuaJIT/LuaJIT/archive/refs/tags/v%s.tar.gz" % lua_version], strip_prefix = prefix + lua_version, build_file_content = """ package(default_visibility = ["//visibility:public"]) filegroup( name = "srcs", srcs = glob(["**"]), ) genrule( name = "install_luajit_m1", srcs = [":srcs"], outs = ["luajit"], cmd = "export MACOSX_DEPLOYMENT_TARGET=13.5 " + "INIT_DIR=$$PWD &&" + "LUAJIT_SRC_DIR=$$(dirname $$(echo $(locations :srcs) | cut -d ' ' -f1)) && " + "cd $$LUAJIT_SRC_DIR && " + "make && " + "cd $$INIT_DIR &&" + "cp $$LUAJIT_SRC_DIR/src/luajit $(RULEDIR)", ) """, ) def install_mend_unified_agent(): """Defines the target we need to fetch the mend unified agent to run the SCA scan""" version = "23.10.2" http_file( name = "wss_unified_agent", sha256 = "fbafb14d7e99b2022f3c4c36dc4032bb0152123b97057e781cf76f8d96b257a6", url = "https://github.com/whitesource/unified-agent-distribution/releases/download/v%s/wss-unified-agent.jar" % version, ) def install_golang_migrate(): version = "4.16.2" http_archive( name = "golang_migrate_darwin_amd64", sha256 = "35d5bc3783b37018b6aa1232a4f2c805e994961a502230e7c581bbac03603b5c", urls = ["https://github.com/golang-migrate/migrate/releases/download/v%s/migrate.darwin-amd64.tar.gz" % version], build_file_content = """ package(default_visibility = ["//visibility:public"]) filegroup( name = "file", srcs = ["migrate"], visibility = ["//visibility:public"] ) """, ) http_archive( name = "golang_migrate_linux_amd64", sha256 = "457c5ac80c85c2d7c06d3859706c9664e8ccd294e0469d6adddf6d7265237fcc", urls = ["https://github.com/golang-migrate/migrate/releases/download/v%s/migrate.linux-amd64.tar.gz" % version], build_file_content = """ package(default_visibility = ["//visibility:public"]) filegroup( name = "file", srcs = ["migrate"], visibility = ["//visibility:public"] ) """, ) http_archive( name = "golang_migrate_darwin_arm64", sha256 = "9e8f9f57a5230557fb9fd93dfd070b3e10616cb8d24c4dbdced05b61552f50c3", urls = ["https://github.com/golang-migrate/migrate/releases/download/v%s/migrate.darwin-arm64.tar.gz" % version], build_file_content = """ package(default_visibility = ["//visibility:public"]) filegroup( name = "file", srcs = ["migrate"], visibility = ["//visibility:public"] ) """, ) def install_apko(): http_archive( name = "apko_darwin_amd64", sha256 = "fc486ee29f0f57851d5ff826c1497374fecb1c37be850917414a07049c9f8445", urls = ["https://github.com/chainguard-dev/apko/releases/download/v0.13.2/apko_0.13.2_darwin_amd64.tar.gz"], build_file_content = """ package(default_visibility = ["//visibility:public"]) filegroup( name = "file", srcs =["apko_0.13.2_darwin_amd64/apko"], visibility = ["//visibility:public"] ) """, ) http_archive( name = "apko_darwin_arm64", sha256 = "1c9e6007c36fbe8342d6994f4896b21d07b1d7953b87d00dc7197c69df5ef624", urls = ["https://github.com/chainguard-dev/apko/releases/download/v0.13.2/apko_0.13.2_darwin_arm64.tar.gz"], build_file_content = """ package(default_visibility = ["//visibility:public"]) filegroup( name = "file", srcs =["apko_0.13.2_darwin_arm64/apko"], visibility = ["//visibility:public"] ) """, ) http_archive( name = "apko_linux_amd64", sha256 = "95e3f21e01538de4438d67d3c3c841bdcc24fa2eb7b4b1c95265c6d7bfd4dc9d", urls = ["https://github.com/chainguard-dev/apko/releases/download/v0.13.2/apko_0.13.2_linux_amd64.tar.gz"], build_file_content = """ package(default_visibility = ["//visibility:public"]) filegroup( name = "file", srcs =["apko_0.13.2_linux_amd64/apko"], visibility = ["//visibility:public"], ) """, )