blob: e0333b1ebf6240d4f5e90d1ef39bba3ea61976ac [file] [log] [blame]
Tim Windelschmidtb6308cd2023-10-10 21:19:03 +02001load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library", "go_test")
Tim Windelschmidt156248b2025-01-10 00:27:45 +01002load("@rules_oci//oci:defs.bzl", "oci_image")
3load("@rules_pkg//pkg:tar.bzl", "pkg_tar")
Tim Windelschmidtb6308cd2023-10-10 21:19:03 +02004
5go_library(
6 name = "equinix_lib",
7 srcs = [
8 "main.go",
9 "provider.go",
10 "provider_config.go",
11 "updater.go",
12 ],
13 importpath = "source.monogon.dev/cloud/shepherd/provider/equinix",
14 visibility = ["//visibility:private"],
15 deps = [
16 "//cloud/bmaas/bmdb",
17 "//cloud/bmaas/bmdb/metrics",
18 "//cloud/bmaas/bmdb/model",
19 "//cloud/bmaas/bmdb/webug",
20 "//cloud/equinix/wrapngo",
21 "//cloud/lib/component",
22 "//cloud/lib/sinbin",
23 "//cloud/shepherd",
24 "//cloud/shepherd/manager",
Tim Windelschmidtb6308cd2023-10-10 21:19:03 +020025 "@com_github_packethost_packngo//:packngo",
26 "@io_k8s_klog_v2//:klog",
27 "@org_golang_x_crypto//ssh",
28 ],
29)
30
31go_test(
32 name = "equinix_test",
33 srcs = [
34 "fakequinix_test.go",
35 "initializer_test.go",
36 "provisioner_test.go",
37 "recoverer_test.go",
38 "updater_test.go",
39 ],
40 data = [
41 "@cockroach",
42 ],
43 embed = [":equinix_lib"],
44 deps = [
45 "//cloud/bmaas/bmdb",
46 "//cloud/bmaas/bmdb/model",
47 "//cloud/lib/component",
48 "//cloud/shepherd/manager",
49 "@com_github_google_uuid//:uuid",
50 "@com_github_packethost_packngo//:packngo",
Jan Schär0175d7a2025-03-26 12:57:23 +000051 "@org_golang_x_crypto//ssh",
Tim Windelschmidtb6308cd2023-10-10 21:19:03 +020052 "@org_golang_x_time//rate",
53 ],
54)
55
56go_binary(
57 name = "equinix",
58 embed = [":equinix_lib"],
59 visibility = ["//visibility:public"],
60)
61
Tim Windelschmidt0974b222024-01-16 14:04:15 +010062pkg_tar(
Tim Windelschmidtb6308cd2023-10-10 21:19:03 +020063 name = "equinix_layer",
Tim Windelschmidt0974b222024-01-16 14:04:15 +010064 srcs = [":equinix"],
Tim Windelschmidtb6308cd2023-10-10 21:19:03 +020065)
66
Tim Windelschmidt0974b222024-01-16 14:04:15 +010067oci_image(
68 name = "equinix_image",
69 base = "@distroless_base",
70 entrypoint = ["/equinix"],
Tim Windelschmidtb6308cd2023-10-10 21:19:03 +020071 tars = [
72 ":equinix_layer",
Tim Windelschmidt79ffbbe2024-02-22 19:15:51 +010073 "//cloud/agent/takeover:takeover_layer",
Tim Windelschmidtb6308cd2023-10-10 21:19:03 +020074 ],
75 visibility = ["//visibility:public"],
76 workdir = "/app",
77)