blob: 4214f1602e853c8fb0d04176f57aff5dc6d8abb0 [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 Windelschmidtb6308cd2023-10-10 21:19:03 +02002
3go_library(
4 name = "equinix_lib",
5 srcs = [
6 "main.go",
7 "provider.go",
8 "provider_config.go",
9 "updater.go",
10 ],
11 importpath = "source.monogon.dev/cloud/shepherd/provider/equinix",
12 visibility = ["//visibility:private"],
13 deps = [
14 "//cloud/bmaas/bmdb",
15 "//cloud/bmaas/bmdb/metrics",
16 "//cloud/bmaas/bmdb/model",
17 "//cloud/bmaas/bmdb/webug",
18 "//cloud/equinix/wrapngo",
19 "//cloud/lib/component",
20 "//cloud/lib/sinbin",
21 "//cloud/shepherd",
22 "//cloud/shepherd/manager",
Tim Windelschmidt5f5f3302024-02-22 23:50:24 +010023 "//go/net/ssh",
Tim Windelschmidtb6308cd2023-10-10 21:19:03 +020024 "//metropolis/cli/pkg/context",
25 "@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",
51 "@org_golang_x_time//rate",
52 ],
53)
54
55go_binary(
56 name = "equinix",
57 embed = [":equinix_lib"],
58 visibility = ["//visibility:public"],
59)
60
Tim Windelschmidt0974b222024-01-16 14:04:15 +010061load("@rules_pkg//pkg:tar.bzl", "pkg_tar")
62
63pkg_tar(
Tim Windelschmidtb6308cd2023-10-10 21:19:03 +020064 name = "equinix_layer",
Tim Windelschmidt0974b222024-01-16 14:04:15 +010065 srcs = [":equinix"],
Tim Windelschmidtb6308cd2023-10-10 21:19:03 +020066)
67
Tim Windelschmidt0974b222024-01-16 14:04:15 +010068load("@rules_oci//oci:defs.bzl", "oci_image")
69
70oci_image(
71 name = "equinix_image",
72 base = "@distroless_base",
73 entrypoint = ["/equinix"],
Tim Windelschmidtb6308cd2023-10-10 21:19:03 +020074 tars = [
75 ":equinix_layer",
Tim Windelschmidt79ffbbe2024-02-22 19:15:51 +010076 "//cloud/agent/takeover:takeover_layer",
Tim Windelschmidtb6308cd2023-10-10 21:19:03 +020077 ],
78 visibility = ["//visibility:public"],
79 workdir = "/app",
80)