blob: 23502b365c27c1a6882bea2363e3ef443cbbde28 [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 Windelschmidt5f5f3302024-02-22 23:50:24 +010025 "//go/net/ssh",
Tim Windelschmidtb6308cd2023-10-10 21:19:03 +020026 "@com_github_packethost_packngo//:packngo",
27 "@io_k8s_klog_v2//:klog",
28 "@org_golang_x_crypto//ssh",
29 ],
30)
31
32go_test(
33 name = "equinix_test",
34 srcs = [
35 "fakequinix_test.go",
36 "initializer_test.go",
37 "provisioner_test.go",
38 "recoverer_test.go",
39 "updater_test.go",
40 ],
41 data = [
42 "@cockroach",
43 ],
44 embed = [":equinix_lib"],
45 deps = [
46 "//cloud/bmaas/bmdb",
47 "//cloud/bmaas/bmdb/model",
48 "//cloud/lib/component",
49 "//cloud/shepherd/manager",
50 "@com_github_google_uuid//:uuid",
51 "@com_github_packethost_packngo//:packngo",
52 "@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)