Tim Windelschmidt | b6308cd | 2023-10-10 21:19:03 +0200 | [diff] [blame^] | 1 | load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library", "go_test") |
| 2 | load("@io_bazel_rules_docker//container:container.bzl", "container_image") |
| 3 | load("//build/static_binary_tarball:def.bzl", "static_binary_tarball") |
| 4 | |
| 5 | go_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 | |
| 32 | go_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 | |
| 56 | go_binary( |
| 57 | name = "equinix", |
| 58 | embed = [":equinix_lib"], |
| 59 | visibility = ["//visibility:public"], |
| 60 | ) |
| 61 | |
| 62 | static_binary_tarball( |
| 63 | name = "equinix_layer", |
| 64 | executable = ":equinix", |
| 65 | ) |
| 66 | |
| 67 | container_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 | ) |