blob: 3363d7f433c65c0f580bea5e020f1cd58a7f8b5f [file] [log] [blame]
Tim Windelschmidtb6308cd2023-10-10 21:19:03 +02001load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library", "go_test")
2load("@io_bazel_rules_docker//container:container.bzl", "container_image")
3load("//build/static_binary_tarball:def.bzl", "static_binary_tarball")
4
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",
25 "//metropolis/cli/pkg/context",
26 "@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
62static_binary_tarball(
63 name = "equinix_layer",
64 executable = ":equinix",
65)
66
67container_image(
68 name = "equinix_container",
69 base = "@go_image_base//image",
70 entrypoint = ["/app/cloud/shepherd/provider/equinix/equinix_/equinix"],
71 tars = [
72 ":equinix_layer",
73 "//cloud/takeover:takeover_layer",
74 ],
75 visibility = ["//visibility:public"],
76 workdir = "/app",
77)