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