...

Text file src/edge-infra.dev/hack/tools/bin.bzl

Documentation: edge-infra.dev/hack/tools

     1"""Defines dependencies on binary (pre-compile) tools"""
     2
     3load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive", "http_file")
     4load("//hack/build/rules/shellcheck:bin.bzl", "shellcheck_dependencies")
     5
     6def install_tools():
     7    """Defines top-level tool install function.
     8
     9    This function is imported into our WORKSPACE file to make Bazel
    10    aware of our tooling dependencies.
    11
    12    To add a binary tool, create a new function that returns targets
    13    for Linux (amd64) and Darwin (amd64 and arm64 (m1)) binaries, then include it in this file.
    14    """
    15    shellcheck_dependencies()
    16    install_docker()
    17    install_bazel_tools()
    18    install_kustomize()
    19    install_helm()
    20    install_kpt()
    21    install_kubebuilder_tools()
    22    install_go_tools()
    23    install_go()
    24    install_just()
    25    install_yq()
    26    install_kind()
    27    install_k3d()
    28    install_flux_cli()
    29    install_cloud_sql_proxy()
    30    install_embedded_postgres()
    31    install_kubeval()
    32    install_crdoc()
    33    install_argo()
    34    install_sonobuoy()
    35    install_lua()
    36    install_mend_unified_agent()
    37    install_golang_migrate()
    38    install_target_determinator()
    39    install_apko()
    40
    41def install_docker():
    42    """Defines tarball for Docker to be embedded into a container.
    43
    44    This tool is not used in any Bazel scripts and is only used from CI containers
    45    and on local dev machines, installed outside of Bazel. This is why there is
    46    only a tar target.
    47"""
    48    http_archive(
    49        name = "docker",
    50        build_file_content = """
    51package(default_visibility = ["//visibility:public"])
    52load("@rules_pkg//:pkg.bzl", "pkg_tar")
    53pkg_tar(
    54    name = "tar",
    55    # need all of the docker binaries provided in the installation
    56    srcs = glob(['docker/*']),
    57    extension = "tar.gz",
    58    mode = "755",
    59    package_dir = "/usr/bin",
    60    strip_prefix = "./external/docker/docker"
    61)
    62""",
    63        sha256 = "ab91092320a87691a1eaf0225b48585db9c69cff0ed4b0f569f744ff765515e3",
    64        urls = ["https://download.docker.com/linux/static/stable/x86_64/docker-20.10.24.tgz"],
    65    )
    66
    67def install_bazel_tools():
    68    """Install additional tools related to Bazel
    69
    70    These are not installed via tools.go because of their dependency on protobuf.
    71    """
    72    http_file(
    73        name = "buildozer_osx",
    74        sha256 = "294f4d0790f4dba18c9b7617f57563e07c2c7e529a8915bcbc49170dc3c08eb9",
    75        executable = 1,
    76        urls = ["https://github.com/bazelbuild/buildtools/releases/download/5.1.0/buildozer-darwin-amd64"],
    77    )
    78
    79    http_file(
    80        name = "buildozer_m1",
    81        sha256 = "57f8d90fac6b111bd0859b97847d3db2ce71419f44588b0e91250892037cf638",
    82        executable = 1,
    83        urls = ["https://github.com/bazelbuild/buildtools/releases/download/5.1.0/buildozer-darwin-arm64"],
    84    )
    85
    86    http_file(
    87        name = "buildozer_linux",
    88        sha256 = "7346ce1396dfa9344a5183c8e3e6329f067699d71c4391bd28317391228666bf",
    89        executable = 1,
    90        urls = ["https://github.com/bazelbuild/buildtools/releases/download/5.1.0/buildozer-linux-amd64"],
    91    )
    92
    93    http_file(
    94        name = "buildifier_osx",
    95        sha256 = "c9378d9f4293fc38ec54a08fbc74e7a9d28914dae6891334401e59f38f6e65dc",
    96        executable = 1,
    97        urls = ["https://github.com/bazelbuild/buildtools/releases/download/5.1.0/buildifier-darwin-amd64"],
    98    )
    99
   100    http_file(
   101        name = "buildifier_m1",
   102        sha256 = "745feb5ea96cb6ff39a76b2821c57591fd70b528325562486d47b5d08900e2e4",
   103        executable = 1,
   104        urls = ["https://github.com/bazelbuild/buildtools/releases/download/5.1.0/buildifier-darwin-arm64"],
   105    )
   106
   107    http_file(
   108        name = "buildifier_linux",
   109        sha256 = "52bf6b102cb4f88464e197caac06d69793fa2b05f5ad50a7e7bf6fbd656648a3",
   110        executable = 1,
   111        urls = ["https://github.com/bazelbuild/buildtools/releases/download/5.1.0/buildifier-linux-amd64"],
   112    )
   113
   114    http_file(
   115        name = "bazelisk_linux",
   116        sha256 = "19fd84262d5ef0cb958bcf01ad79b528566d8fef07ca56906c5c516630a0220b",
   117        executable = 1,
   118        urls = ["https://github.com/bazelbuild/bazelisk/releases/download/v1.15.0/bazelisk-linux-amd64"],
   119    )
   120
   121def install_target_determinator():
   122    http_file(
   123        name = "target_determinator_linux",
   124        executable = 1,
   125        sha256 = "917d2d3a39c80ccd55cf8eef48d5ba7af37086a3b6209529a36a5518bd609b50",
   126        urls = ["https://github.com/bazel-contrib/target-determinator/releases/download/v0.26.0/target-determinator.linux.amd64"],
   127    )
   128    http_file(
   129        name = "target_determinator_darwin",
   130        executable = 1,
   131        sha256 = "927696f988d490978e93a71588f02b0c60fbe29278bffe1fe03d447ddfb1e0a4",
   132        urls = ["https://github.com/bazel-contrib/target-determinator/releases/download/v0.26.0/target-determinator.darwin.amd64"],
   133    )
   134    http_file(
   135        name = "target_determinator_m1",
   136        executable = 1,
   137        sha256 = "bef3f79f1559d4c372742f9841a480cdba1eeca249b00cbad28f90ded6ce6fca",
   138        urls = ["https://github.com/bazel-contrib/target-determinator/releases/download/v0.26.0/target-determinator.darwin.arm64"],
   139    )
   140
   141def install_kustomize():
   142    http_archive(
   143        name = "kustomize_linux",
   144        build_file_content = """
   145filegroup(
   146    name = "file",
   147    srcs = ["kustomize"],
   148    visibility = ["//visibility:public"]
   149)
   150""",
   151        sha256 = "bf3a0d7409d9ce6a4a393ba61289047b4cb875a36ece1ec94b36924a9ccbaa0f",
   152        urls = ["https://github.com/kubernetes-sigs/kustomize/releases/download/kustomize%2Fv4.4.0/kustomize_v4.4.0_linux_amd64.tar.gz"],
   153    )
   154    http_archive(
   155        name = "kustomize_osx",
   156        build_file_content = """
   157package(default_visibility = ["//visibility:public"])
   158filegroup(
   159    name = "file",
   160    srcs = ["kustomize"],
   161    visibility = ["//visibility:public"]
   162)
   163""",
   164        sha256 = "f0e55366239464546f9870489cee50764d87ebdd07f7402cf2622e5e8dc77ac1",
   165        urls = ["https://github.com/kubernetes-sigs/kustomize/releases/download/kustomize%2Fv4.4.0/kustomize_v4.4.0_darwin_amd64.tar.gz"],
   166    )
   167
   168    http_archive(
   169        name = "kustomize_m1",
   170        build_file_content = """
   171package(default_visibility = ["//visibility:public"])
   172filegroup(
   173    name = "file",
   174    srcs = ["kustomize"],
   175    visibility = ["//visibility:public"]
   176)
   177""",
   178        sha256 = "54cfbf2e18e1a344469f892715c037c58301852822afe16085435d57cc13abee",
   179        urls = ["https://github.com/kubernetes-sigs/kustomize/releases/download/kustomize%2Fv4.5.4/kustomize_v4.5.4_darwin_arm64.tar.gz"],
   180    )
   181
   182def install_helm():
   183    http_archive(
   184        name = "helm_linux",
   185        build_file_content = """
   186package(default_visibility = ["//visibility:public"])
   187
   188load("@rules_pkg//:pkg.bzl", "pkg_tar")
   189
   190pkg_tar(
   191    name = "tar",
   192    srcs = ["linux-amd64/helm"],
   193    extension = "tar.gz",
   194    mode = "755",
   195    package_dir = "/usr/local/bin",
   196    strip_prefix = "linux-amd64/"
   197)
   198
   199filegroup(
   200    name = "file",
   201    srcs = ["linux-amd64/helm"],
   202    visibility = ["//visibility:public"]
   203)
   204""",
   205        sha256 = "6cb9a48f72ab9ddfecab88d264c2f6508ab3cd42d9c09666be16a7bf006bed7b",
   206        urls = ["https://get.helm.sh/helm-v3.8.2-linux-amd64.tar.gz"],
   207    )
   208    http_archive(
   209        name = "helm_osx",
   210        build_file_content = """
   211package(default_visibility = ["//visibility:public"])
   212filegroup(
   213    name = "file",
   214    srcs = ["darwin-amd64/helm"],
   215    visibility = ["//visibility:public"]
   216)
   217""",
   218        sha256 = "25bb4a70b0d9538a97abb3aaa57133c0779982a8091742a22026e60d8614f8a0",
   219        urls = ["https://get.helm.sh/helm-v3.8.2-darwin-amd64.tar.gz"],
   220    )
   221
   222    http_archive(
   223        name = "helm_m1",
   224        build_file_content = """
   225package(default_visibility = ["//visibility:public"])
   226filegroup(
   227    name = "file",
   228    srcs = ["darwin-arm64/helm"],
   229    visibility = ["//visibility:public"]
   230)
   231""",
   232        sha256 = "dfddc0696597c010ed903e486fe112a18535ab0c92e35335aa54af2360077900",
   233        urls = ["https://get.helm.sh/helm-v3.8.2-darwin-arm64.tar.gz"],
   234    )
   235
   236def install_kpt():
   237    """Installs GoogleContainerTools/kpt
   238
   239    Has incompatible dependencies so can't be installed via tools.go"""
   240    http_archive(
   241        name = "kpt_linux",
   242        build_file_content = """
   243package(default_visibility = ["//visibility:public"])
   244
   245load("@rules_pkg//:pkg.bzl", "pkg_tar")
   246
   247pkg_tar(
   248    name = "tar",
   249    srcs = ["kpt"],
   250    extension = "tar.gz",
   251    mode = "755",
   252    package_dir = "/usr/local/bin",
   253)
   254
   255filegroup(
   256    name = "file",
   257    srcs = ["kpt"],
   258    visibility = ["//visibility:public"]
   259)
   260""",
   261        sha256 = "4362dbcaf67302cbaa416407e2e1cc57bc1e3d58c02f50e1ee155f81b6fee763",
   262        urls = ["https://github.com/GoogleContainerTools/kpt/releases/download/v0.39.1/kpt_linux_amd64-0.39.1.tar.gz"],
   263    )
   264
   265    http_archive(
   266        name = "kpt_osx",
   267        build_file_content = """
   268package(default_visibility = ["//visibility:public"])
   269filegroup(
   270    name = "file",
   271    srcs = ["kpt"],
   272    visibility = ["//visibility:public"]
   273)
   274""",
   275        sha256 = "afea39eaa06da97f7960f4b13990e5c2993f3327ea3eecff1be5606f588e49e5",
   276        urls = ["https://github.com/GoogleContainerTools/kpt/releases/download/v0.39.1/kpt_darwin_amd64-0.39.1.tar.gz"],
   277    )
   278
   279    http_archive(
   280        name = "kpt_m1",
   281        build_file_content = """
   282package(default_visibility = ["//visibility:public"])
   283filegroup(
   284    name = "file",
   285    srcs = ["kpt"],
   286    visibility = ["//visibility:public"]
   287)
   288""",
   289        sha256 = "f819fa8e4e93915d4eb7b957d443c35deecb513cc8390ed654badfe93c725a3a",
   290        urls = ["https://github.com/GoogleContainerTools/kpt/releases/download/v0.39.1/kpt_darwin_arm64-0.39.1.tar.gz"],
   291    )
   292
   293def install_kubebuilder_tools():
   294    """Installs kubernetes-sigs/kubebuilder tools binaries.  Used for envtest dependencies"""
   295    http_archive(
   296        name = "kubebuilder_tools_linux",
   297        build_file_content = """
   298package(default_visibility = ["//visibility:public"])
   299filegroup(
   300  name = "files",
   301  srcs = glob(["kubebuilder/bin/*"]),
   302  visibility = ["//visibility:public"]
   303)
   304""",
   305        sha256 = "878fded1b42261293419621b78c9deac319531a325ea57ef62d9060b444fe356",
   306        urls = ["https://storage.googleapis.com/kubebuilder-tools/kubebuilder-tools-1.28.3-linux-amd64.tar.gz"],
   307    )
   308    http_archive(
   309        name = "kubebuilder_tools_osx",
   310        build_file_content = """
   311package(default_visibility = ["//visibility:public"])
   312filegroup(
   313  name = "files",
   314  srcs = glob(["kubebuilder/bin/*"]),
   315  visibility = ["//visibility:public"]
   316)
   317""",
   318        sha256 = "f0ce69984cb1e51b68b34408fa79649368c85fe8db9caedc61d02bffc978fced",
   319        urls = ["https://storage.googleapis.com/kubebuilder-tools/kubebuilder-tools-1.28.3-darwin-amd64.tar.gz"],
   320    )
   321    http_archive(
   322        name = "kubebuilder_tools_m1",
   323        build_file_content = """
   324package(default_visibility = ["//visibility:public"])
   325filegroup(
   326  name = "files",
   327  srcs = glob(["kubebuilder/bin/*"]),
   328  visibility = ["//visibility:public"]
   329)
   330""",
   331        sha256 = "98092c9edbfab1312d1418244f1f3f2d21509328e5ca8a84e0a6050e7aae69ea",
   332        urls = ["https://storage.googleapis.com/kubebuilder-tools/kubebuilder-tools-1.28.3-darwin-arm64.tar.gz"],
   333    )
   334
   335def install_go_tools():
   336    """Installs Golang tooling that doesn't play nice with tools.go."""
   337    golangci_lint_version = "1.61.0"
   338    http_archive(
   339        name = "golangci_lint_darwin_amd64",
   340        build_file_content = """
   341package(default_visibility = ["//visibility:public"])
   342filegroup(
   343  name = "file",
   344  srcs = ["golangci-lint-%s-darwin-amd64/golangci-lint"],
   345  visibility = ["//visibility:public"]
   346)
   347""" % golangci_lint_version,
   348        sha256 = "5c280ef3284f80c54fd90d73dc39ca276953949da1db03eb9dd0fbf868cc6e55",
   349        urls = ["https://github.com/golangci/golangci-lint/releases/download/v%s/golangci-lint-%s-darwin-amd64.tar.gz" % (golangci_lint_version, golangci_lint_version)],
   350    )
   351
   352    http_archive(
   353        name = "golangci_lint_m1",
   354        build_file_content = """
   355package(default_visibility = ["//visibility:public"])
   356filegroup(
   357  name = "file",
   358  srcs = ["golangci-lint-%s-darwin-arm64/golangci-lint"],
   359  visibility = ["//visibility:public"]
   360)
   361""" % golangci_lint_version,
   362        sha256 = "544334890701e4e04a6e574bc010bea8945205c08c44cced73745a6378012d36",
   363        urls = ["https://github.com/golangci/golangci-lint/releases/download/v%s/golangci-lint-%s-darwin-arm64.tar.gz" % (golangci_lint_version, golangci_lint_version)],
   364    )
   365
   366    http_archive(
   367        name = "golangci_lint_linux",
   368        build_file_content = """
   369package(default_visibility = ["//visibility:public"])
   370filegroup(
   371  name = "file",
   372  srcs = ["golangci-lint-%s-linux-amd64/golangci-lint"],
   373  visibility = ["//visibility:public"]
   374)
   375""" % golangci_lint_version,
   376        sha256 = "77cb0af99379d9a21d5dc8c38364d060e864a01bd2f3e30b5e8cc550c3a54111",
   377        urls = ["https://github.com/golangci/golangci-lint/releases/download/v%s/golangci-lint-%s-linux-amd64.tar.gz" % (golangci_lint_version, golangci_lint_version)],
   378    )
   379
   380def install_go():
   381    """Pulls Go tarball so we can install it into our build tools containers.
   382
   383    This is easier than getting the rules_go provided SDK into a container image."""
   384
   385    # this is a http_file instead of http_archive due to a bazel bug re: invalid byte sequences
   386    # https://github.com/bazelbuild/rules_go/blob/master/go/private/sdk.bzl#L181
   387    http_file(
   388        name = "go_1_23",
   389        sha256 = "542d3c1705f1c6a1c5a80d5dc62e2e45171af291e755d591c5e6531ef63b454e",
   390        downloaded_file_path = "go-sdk.tar.gz",
   391        urls = ["https://golang.org/dl/go1.23.2.linux-amd64.tar.gz"],
   392    )
   393
   394def install_just():
   395    """Pulls just Linux installation for baking into CI images"""
   396    http_archive(
   397        name = "just_linux",
   398        build_file_content = """
   399package(default_visibility = ["//visibility:public"])
   400load("@rules_pkg//:pkg.bzl", "pkg_tar")
   401pkg_tar(
   402  name = "tar",
   403  srcs = ["just"],
   404  extension = "tar.gz",
   405  mode = "755",
   406  package_dir = "/usr/local/bin/",
   407)
   408""",
   409        sha256 = "c730d17faf7c3b45f7a0d321f8e743ebd5bdd8f14d1966faecae1a8f9dd76aad",
   410        urls = ["https://github.com/casey/just/releases/download/v0.8.3/just-v0.8.3-x86_64-unknown-linux-musl.tar.gz"],
   411    )
   412
   413def install_yq():
   414    """yq is used to query YAML files, similar to jq"""
   415    http_file(
   416        name = "yq_m1",
   417        downloaded_file_path = "yq",
   418        sha256 = "8495389a5c31dfd78314e680169cd2c277f2f47442d3fc08e5101ee2c07c6b13",
   419        urls = ["https://github.com/mikefarah/yq/releases/download/v4.30.8/yq_darwin_arm64"],
   420        executable = 1,
   421    )
   422
   423    http_file(
   424        name = "yq_osx",
   425        sha256 = "123a992cada25421db5c068895006047d3dcdb61987c00e93a1127e6af61b93a",
   426        downloaded_file_path = "yq",
   427        urls = ["https://github.com/mikefarah/yq/releases/download/v4.30.8/yq_darwin_amd64"],
   428        executable = 1,
   429    )
   430
   431    http_file(
   432        name = "yq_linux",
   433        downloaded_file_path = "yq",
   434        sha256 = "6c911103e0dcc54e2ba07e767d2d62bcfc77452b39ebaee45b1c46f062f4fd26",
   435        urls = ["https://github.com/mikefarah/yq/releases/download/v4.30.8/yq_linux_amd64"],
   436        executable = 1,
   437    )
   438
   439def install_kind():
   440    http_file(
   441        name = "kind_linux",
   442        downloaded_file_path = "kind",
   443        urls = ["https://github.com/kubernetes-sigs/kind/releases/download/v0.20.0/kind-linux-amd64"],
   444        sha256 = "513a7213d6d3332dd9ef27c24dab35e5ef10a04fa27274fe1c14d8a246493ded",
   445        executable = 1,
   446    )
   447
   448    http_file(
   449        name = "kind_m1",
   450        downloaded_file_path = "kind",
   451        urls = ["https://github.com/kubernetes-sigs/kind/releases/download/v0.20.0/kind-darwin-arm64"],
   452        sha256 = "8df041a5cae55471f3b039c3c9942226eb909821af63b5677fc80904caffaabf",
   453        executable = 1,
   454    )
   455
   456    http_file(
   457        name = "kind_osx",
   458        downloaded_file_path = "kind",
   459        urls = ["https://github.com/kubernetes-sigs/kind/releases/download/v0.20.0/kind-darwin-amd64"],
   460        sha256 = "bffd8fb2006dc89fa0d1dde5ba6bf48caacb707e4df8551528f49145ebfeb7ad",
   461        executable = 1,
   462    )
   463
   464def install_k3d():
   465    http_file(
   466        name = "k3d_linux",
   467        downloaded_file_path = "k3d",
   468        urls = ["https://github.com/k3d-io/k3d/releases/download/v5.6.0/k3d-linux-amd64"],
   469        sha256 = "c2ca4b90c0c064cd56ae674d586e2003712fe5841748223552e2f8536f741366",
   470        executable = 1,
   471    )
   472
   473    http_file(
   474        name = "k3d_m1",
   475        downloaded_file_path = "k3d",
   476        urls = ["https://github.com/k3d-io/k3d/releases/download/v5.6.0/k3d-darwin-arm64"],
   477        sha256 = "7344bbb41b6ced667d38431076393473b5bcd47c44607685f98818500864f802",
   478        executable = 1,
   479    )
   480
   481    http_file(
   482        name = "k3d_osx",
   483        downloaded_file_path = "k3d",
   484        urls = ["https://github.com/k3d-io/k3d/releases/download/v5.6.0/k3d-darwin-amd64"],
   485        sha256 = "0c1e7712b8b63771d3c8c5cbd32da10bded3fd3f89240380bb08c44ff608f345",
   486        executable = 1,
   487    )
   488
   489def install_argo():
   490    """ install the argo cli """
   491    http_file(
   492        # http_archive doesnt like the .gz extensions so we have to use genrules and http_file
   493        name = "argo_osx",
   494        sha256 = "03f460832ea75282871f52d3209c70e4c0e07b897d9fd007f20b5a9739244b99",
   495        urls = ["https://github.com/argoproj/argo-workflows/releases/download/v3.5.2/argo-darwin-amd64.gz"],
   496        downloaded_file_path = "argo.gz",
   497        executable = True,
   498    )
   499
   500    http_file(
   501        name = "argo_m1",
   502        sha256 = "9b57c13169c824c8d14221eb6ef6f3ef959c1fa2458ef8d7246b138d5cc6a99e",
   503        urls = ["https://github.com/argoproj/argo-workflows/releases/download/v3.5.2/argo-darwin-arm64.gz"],
   504        downloaded_file_path = "argo.gz",
   505        executable = True,
   506    )
   507
   508    http_file(
   509        name = "argo_linux",
   510        sha256 = "bac1a01efe11ea11d9f8f7218ace48daf5de8fbc014c5a2c9756cb1f7760b737",
   511        urls = ["https://github.com/argoproj/argo-workflows/releases/download/v3.5.2/argo-linux-amd64.gz"],
   512        downloaded_file_path = "argo.gz",
   513        executable = True,
   514    )
   515
   516def install_sonobuoy():
   517    http_archive(
   518        name = "sonobuoy_osx",
   519        sha256 = "d40705e4ff054f91fe327f374d7087c1ea2ffa340a464f9ec6a2f863f4327e58",
   520        urls = ["https://github.com/vmware-tanzu/sonobuoy/releases/download/v0.56.17/sonobuoy_0.56.17_darwin_amd64.tar.gz"],
   521        build_file_content = """
   522package(default_visibility = ["//visibility:public"])
   523filegroup(
   524name = "file",
   525srcs = ["sonobuoy"],
   526visibility = ["//visibility:public"]
   527)
   528""",
   529    )
   530
   531    http_archive(
   532        name = "sonobuoy_m1",
   533        sha256 = "dd28b11bba66483a08656d3b2a6c029dd9e76199ca4e40e7089621d96913637c",
   534        urls = ["https://github.com/vmware-tanzu/sonobuoy/releases/download/v0.56.17/sonobuoy_0.56.17_darwin_arm64.tar.gz"],
   535        build_file_content = """
   536package(default_visibility = ["//visibility:public"])
   537filegroup(
   538name = "file",
   539srcs = ["sonobuoy"],
   540visibility = ["//visibility:public"]
   541)
   542""",
   543    )
   544
   545    http_archive(
   546        name = "sonobuoy_linux",
   547        sha256 = "dfc064941981e5762cacd54a8eb263d2c00807be160cb12293d5a4bfea2e148a",
   548        urls = ["https://github.com/vmware-tanzu/sonobuoy/releases/download/v0.56.17/sonobuoy_0.56.17_linux_amd64.tar.gz"],
   549        build_file_content = """
   550package(default_visibility = ["//visibility:public"])
   551filegroup(
   552name = "file",
   553srcs = ["sonobuoy"],
   554visibility = ["//visibility:public"]
   555)
   556""",
   557    )
   558
   559def install_flux_cli():
   560    http_archive(
   561        name = "fluxcd_cli_osx",
   562        sha256 = "6a8497168fda7e41b58e601a3f1aa7966ae730ba6becad86dc8b633eb2064830",
   563        urls = ["https://github.com/fluxcd/flux2/releases/download/v0.22.0/flux_0.22.0_darwin_amd64.tar.gz"],
   564        build_file_content = """
   565package(default_visibility = ["//visibility:public"])
   566filegroup(
   567name = "file",
   568srcs = ["flux"],
   569visibility = ["//visibility:public"]
   570)
   571""",
   572    )
   573
   574    http_archive(
   575        name = "fluxcd_cli_m1",
   576        urls = ["https://github.com/fluxcd/flux2/releases/download/v0.28.5/flux_0.28.5_darwin_arm64.tar.gz"],
   577        sha256 = "d86729f521d1c17f527ad928167868e59de0e9bb4cd474d7fb5ba6ce69478cc3",
   578        build_file_content = """
   579package(default_visibility = ["//visibility:public"])
   580filegroup(
   581name = "file",
   582srcs = ["flux"],
   583visibility = ["//visibility:public"]
   584)
   585""",
   586    )
   587
   588    http_archive(
   589        name = "fluxcd_cli_linux",
   590        urls = ["https://github.com/fluxcd/flux2/releases/download/v0.22.0/flux_0.22.0_linux_amd64.tar.gz"],
   591        sha256 = "ab666f7bc993299495d03a9196600b3ef810db6616e054b6e596620adbf9fa4a",
   592        build_file_content = """
   593package(default_visibility = ["//visibility:public"])
   594filegroup(
   595name = "file",
   596srcs = ["flux"],
   597visibility = ["//visibility:public"]
   598)
   599""",
   600    )
   601
   602def install_cloud_sql_proxy():
   603    http_file(
   604        name = "cloud_sql_proxy_osx",
   605        sha256 = "aea4da38033e7b901330dba8c5e8f5a035c3f58e5563843a808a9709baafe969",
   606        urls = ["https://storage.googleapis.com/cloud-sql-connectors/cloud-sql-proxy/v2.3.0/cloud-sql-proxy.darwin.amd64"],
   607        downloaded_file_path = "cloud_sql_proxy",
   608    )
   609
   610    http_file(
   611        name = "cloud_sql_proxy_m1",
   612        sha256 = "54c77958bf8f27e99c230b1ab0a91a9594ff38e189cc06401bbfa3611888fd26",
   613        urls = ["https://storage.googleapis.com/cloud-sql-connectors/cloud-sql-proxy/v2.3.0/cloud-sql-proxy.darwin.arm64"],
   614        downloaded_file_path = "cloud_sql_proxy",
   615    )
   616
   617    http_file(
   618        name = "cloud_sql_proxy_linux",
   619        sha256 = "8ef387c10d6798500fa5a2546bc9cd43d9991cfb131da0284ef6df14dd30539e",
   620        urls = ["https://storage.googleapis.com/cloud-sql-connectors/cloud-sql-proxy/v2.3.0/cloud-sql-proxy.linux.amd64"],
   621        downloaded_file_path = "cloud_sql_proxy",
   622    )
   623
   624def install_embedded_postgres():
   625    http_archive(
   626        name = "embedded_postgres_linux",
   627        build_file_content = """
   628package(default_visibility = ["//visibility:public"])
   629genrule(
   630    name = "rename-linux",
   631    srcs = ["postgres-linux-x86_64.txz"],
   632    outs = ["postgres.txz"],
   633    cmd = "cp $(SRCS) $(RULEDIR)/postgres.txz",
   634)
   635filegroup(
   636  name = "file",
   637  srcs = ["postgres.txz"],
   638  visibility = ["//visibility:public"]
   639)
   640    """,
   641        sha256 = "859fabcb076f77bf486f6f04f18a317b0e7e8fafbd76cdbb46b450904c71a8dc",
   642        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"],
   643    )
   644    http_archive(
   645        name = "embedded_postgres_osx",
   646        build_file_content = """
   647package(default_visibility = ["//visibility:public"])
   648genrule(
   649    name = "rename-osx",
   650    srcs = ["postgres-darwin-x86_64.txz"],
   651    outs = ["postgres.txz"],
   652    cmd = "cp $(SRCS) $(RULEDIR)/postgres.txz",
   653)
   654filegroup(
   655  name = "file",
   656  srcs = ["postgres.txz"],
   657  visibility = ["//visibility:public"]
   658)
   659""",
   660        sha256 = "35f95d2967b3ffdffe6149c307c8b503f3ee74aad623d6df25ee64d471f27494",
   661        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"],
   662    )
   663    http_archive(
   664        name = "embedded_postgres_m1",
   665        build_file_content = """
   666package(default_visibility = ["//visibility:public"])
   667genrule(
   668    name = "rename-m1",
   669    srcs = ["postgres-darwin-arm_64.txz"],
   670    outs = ["postgres.txz"],
   671    cmd = "cp $(SRCS) $(RULEDIR)/postgres.txz",
   672)
   673filegroup(
   674  name = "file",
   675  srcs = ["postgres.txz"],
   676  visibility = ["//visibility:public"]
   677)
   678""",
   679        sha256 = "5ca0334115cdc6b56b67f5cc38a941ea1855c14f5cd39b039dc138b8740394b6",
   680        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"],
   681    )
   682
   683def install_kubeval():
   684    """Defines targets for fetching kubeval in all architectures we need"""
   685    kubeval_version = "v0.16.1"
   686
   687    http_archive(
   688        name = "kubeval_osx",
   689        sha256 = "c79a91f2e6638463881a8189e0628ebd583a5e2912e6f411897e3cea567125e7",
   690        urls = ["https://github.com/instrumenta/kubeval/releases/download/%s/kubeval-darwin-amd64.tar.gz" % kubeval_version],
   691        build_file_content = """
   692package(default_visibility = ["//visibility:public"])
   693filegroup(
   694name = "file",
   695srcs = ["kubeval"],
   696visibility = ["//visibility:public"]
   697)
   698""",
   699    )
   700    http_archive(
   701        name = "kubeval_m1",
   702        sha256 = "c79a91f2e6638463881a8189e0628ebd583a5e2912e6f411897e3cea567125e7",
   703        urls = ["https://github.com/instrumenta/kubeval/releases/download/%s/kubeval-darwin-amd64.tar.gz" % kubeval_version],
   704        build_file_content = """
   705package(default_visibility = ["//visibility:public"])
   706filegroup(
   707name = "file",
   708srcs = ["kubeval"],
   709visibility = ["//visibility:public"]
   710)
   711""",
   712    )
   713    http_archive(
   714        name = "kubeval_linux",
   715        sha256 = "2d6f9bda1423b93787fa05d9e8dfce2fc1190fefbcd9d0936b9635f3f78ba790",
   716        urls = ["https://github.com/instrumenta/kubeval/releases/download/%s/kubeval-linux-amd64.tar.gz" % kubeval_version],
   717        build_file_content = """
   718package(default_visibility = ["//visibility:public"])
   719filegroup(
   720name = "file",
   721srcs = ["kubeval"],
   722visibility = ["//visibility:public"]
   723)
   724""",
   725    )
   726
   727def install_crdoc():
   728    """Defines targets for fetching crdoc in all architectures we need"""
   729    crdoc_version = "0.6.2"
   730    url = "https://github.com/fybrik/crdoc/releases/download/v{}/crdoc_{}_{}.tar.gz"
   731    http_archive(
   732        name = "crdoc_linux",
   733        sha256 = "8a513a59c78462b65ef2bfe0bfc5d4981d7d6632c627d01ba1431c3afda0b251",
   734        urls = [url.format(crdoc_version, crdoc_version, "Linux_x86_64")],
   735        build_file_content = """
   736package(default_visibility = ["//visibility:public"])
   737filegroup(
   738name = "file",
   739srcs = ["crdoc"],
   740visibility = ["//visibility:public"]
   741)
   742""",
   743    )
   744    http_archive(
   745        name = "crdoc_osx",
   746        sha256 = "dbc00cbb59115a8fea8c3027423c14e3209f13d7019a9a3be267b2760b85d28a",
   747        urls = [url.format(crdoc_version, crdoc_version, "Darwin_x86_64")],
   748        build_file_content = """
   749package(default_visibility = ["//visibility:public"])
   750filegroup(
   751name = "file",
   752srcs = ["crdoc"],
   753visibility = ["//visibility:public"]
   754)
   755""",
   756    )
   757    http_archive(
   758        name = "crdoc_m1",
   759        sha256 = "4a83a49f2e7fe06fdf59f2d25fd44df63c0ad612aba80473c897379f6068e3f2",
   760        urls = [url.format(crdoc_version, crdoc_version, "Darwin_arm64")],
   761        build_file_content = """
   762package(default_visibility = ["//visibility:public"])
   763filegroup(
   764name = "file",
   765srcs = ["crdoc"],
   766visibility = ["//visibility:public"]
   767)
   768""",
   769    )
   770
   771def install_lua():
   772    """Defines targets for fetching luajit in all architectures we need"""
   773    lua_version = "2.1.0-beta3"
   774    prefix = "LuaJIT-"
   775
   776    http_archive(
   777        name = "luajit_linux",
   778        sha256 = "409f7fe570d3c16558e594421c47bdd130238323c9d6fd6c83dedd2aaeb082a8",
   779        urls = ["https://github.com/LuaJIT/LuaJIT/archive/refs/tags/v%s.tar.gz" % lua_version],
   780        strip_prefix = prefix + lua_version,
   781        build_file_content = """
   782package(default_visibility = ["//visibility:public"])
   783
   784filegroup(
   785    name = "srcs",
   786    srcs = glob(["**"]),
   787)
   788genrule(
   789    name = "install_luajit_linux",
   790    srcs = [":srcs"],
   791    outs = ["luajit"],
   792    cmd  = "INIT_DIR=$$PWD &&" +
   793           "LUAJIT_SRC_DIR=$$(dirname $$(echo $(locations :srcs) | cut -d ' ' -f1)) && " +
   794           "cd $$LUAJIT_SRC_DIR && " +
   795           "make && " +
   796           "cd $$INIT_DIR &&" +
   797           "cp $$LUAJIT_SRC_DIR/src/luajit $(RULEDIR)",
   798)
   799""",
   800    )
   801
   802    http_archive(
   803        name = "luajit_osx",
   804        sha256 = "409f7fe570d3c16558e594421c47bdd130238323c9d6fd6c83dedd2aaeb082a8",
   805        urls = ["https://github.com/LuaJIT/LuaJIT/archive/refs/tags/v%s.tar.gz" % lua_version],
   806        strip_prefix = prefix + lua_version,
   807        build_file_content = """
   808package(default_visibility = ["//visibility:public"])
   809filegroup(
   810    name = "srcs",
   811    srcs = glob(["**"]),
   812)
   813genrule(
   814   name = "install_luajit_mac",
   815   srcs = [":srcs"],
   816   outs = ["luajit"],
   817   cmd = "export MACOSX_DEPLOYMENT_TARGET=13.5 " +
   818         "INIT_DIR=$$PWD &&" +
   819         "LUAJIT_SRC_DIR=$$(dirname $$(echo $(locations :srcs) | cut -d ' ' -f1)) && " +
   820         "cd $$LUAJIT_SRC_DIR && " +
   821         "make && " +
   822         "cd $$INIT_DIR &&" +
   823         "cp $$LUAJIT_SRC_DIR/src/luajit $(RULEDIR)",
   824)
   825""",
   826    )
   827
   828    http_archive(
   829        name = "luajit_m1",
   830        sha256 = "409f7fe570d3c16558e594421c47bdd130238323c9d6fd6c83dedd2aaeb082a8",
   831        urls = ["https://github.com/LuaJIT/LuaJIT/archive/refs/tags/v%s.tar.gz" % lua_version],
   832        strip_prefix = prefix + lua_version,
   833        build_file_content = """
   834package(default_visibility = ["//visibility:public"])
   835filegroup(
   836    name = "srcs",
   837    srcs = glob(["**"]),
   838)
   839genrule(
   840   name = "install_luajit_m1",
   841   srcs = [":srcs"],
   842   outs = ["luajit"],
   843   cmd = "export MACOSX_DEPLOYMENT_TARGET=13.5 " +
   844         "INIT_DIR=$$PWD &&" +
   845         "LUAJIT_SRC_DIR=$$(dirname $$(echo $(locations :srcs) | cut -d ' ' -f1)) && " +
   846         "cd $$LUAJIT_SRC_DIR && " +
   847         "make && " +
   848         "cd $$INIT_DIR &&" +
   849         "cp $$LUAJIT_SRC_DIR/src/luajit $(RULEDIR)",
   850)
   851""",
   852    )
   853
   854def install_mend_unified_agent():
   855    """Defines the target we need to fetch the mend unified agent to run the SCA scan"""
   856    version = "23.10.2"
   857    http_file(
   858        name = "wss_unified_agent",
   859        sha256 = "fbafb14d7e99b2022f3c4c36dc4032bb0152123b97057e781cf76f8d96b257a6",
   860        url = "https://github.com/whitesource/unified-agent-distribution/releases/download/v%s/wss-unified-agent.jar" % version,
   861    )
   862
   863def install_golang_migrate():
   864    version = "4.16.2"
   865    http_archive(
   866        name = "golang_migrate_darwin_amd64",
   867        sha256 = "35d5bc3783b37018b6aa1232a4f2c805e994961a502230e7c581bbac03603b5c",
   868        urls = ["https://github.com/golang-migrate/migrate/releases/download/v%s/migrate.darwin-amd64.tar.gz" % version],
   869        build_file_content = """
   870package(default_visibility = ["//visibility:public"])
   871filegroup(
   872name = "file",
   873srcs = ["migrate"],
   874visibility = ["//visibility:public"]
   875)
   876""",
   877    )
   878    http_archive(
   879        name = "golang_migrate_linux_amd64",
   880        sha256 = "457c5ac80c85c2d7c06d3859706c9664e8ccd294e0469d6adddf6d7265237fcc",
   881        urls = ["https://github.com/golang-migrate/migrate/releases/download/v%s/migrate.linux-amd64.tar.gz" % version],
   882        build_file_content = """
   883package(default_visibility = ["//visibility:public"])
   884filegroup(
   885name = "file",
   886srcs = ["migrate"],
   887visibility = ["//visibility:public"]
   888)
   889""",
   890    )
   891    http_archive(
   892        name = "golang_migrate_darwin_arm64",
   893        sha256 = "9e8f9f57a5230557fb9fd93dfd070b3e10616cb8d24c4dbdced05b61552f50c3",
   894        urls = ["https://github.com/golang-migrate/migrate/releases/download/v%s/migrate.darwin-arm64.tar.gz" % version],
   895        build_file_content = """
   896package(default_visibility = ["//visibility:public"])
   897filegroup(
   898name = "file",
   899srcs = ["migrate"],
   900visibility = ["//visibility:public"]
   901)
   902""",
   903    )
   904
   905def install_apko():
   906    http_archive(
   907        name = "apko_darwin_amd64",
   908        sha256 = "fc486ee29f0f57851d5ff826c1497374fecb1c37be850917414a07049c9f8445",
   909        urls = ["https://github.com/chainguard-dev/apko/releases/download/v0.13.2/apko_0.13.2_darwin_amd64.tar.gz"],
   910        build_file_content = """
   911package(default_visibility = ["//visibility:public"])
   912filegroup(
   913name = "file",
   914srcs =["apko_0.13.2_darwin_amd64/apko"],
   915visibility = ["//visibility:public"]
   916)
   917""",
   918    )
   919    http_archive(
   920        name = "apko_darwin_arm64",
   921        sha256 = "1c9e6007c36fbe8342d6994f4896b21d07b1d7953b87d00dc7197c69df5ef624",
   922        urls = ["https://github.com/chainguard-dev/apko/releases/download/v0.13.2/apko_0.13.2_darwin_arm64.tar.gz"],
   923        build_file_content = """
   924package(default_visibility = ["//visibility:public"])
   925filegroup(
   926name = "file",
   927srcs =["apko_0.13.2_darwin_arm64/apko"],
   928visibility = ["//visibility:public"]
   929)
   930""",
   931    )
   932    http_archive(
   933        name = "apko_linux_amd64",
   934        sha256 = "95e3f21e01538de4438d67d3c3c841bdcc24fa2eb7b4b1c95265c6d7bfd4dc9d",
   935        urls = ["https://github.com/chainguard-dev/apko/releases/download/v0.13.2/apko_0.13.2_linux_amd64.tar.gz"],
   936        build_file_content = """
   937package(default_visibility = ["//visibility:public"])
   938filegroup(
   939name = "file",
   940srcs =["apko_0.13.2_linux_amd64/apko"],
   941visibility = ["//visibility:public"],
   942)
   943""",
   944    )

View as plain text