cloud: split shepherd up
Change-Id: I8e386d9eaaf17543743e1e8a37a8d71426910d59
Reviewed-on: https://review.monogon.dev/c/monogon/+/2213
Reviewed-by: Serge Bazanski <serge@monogon.tech>
Tested-by: Jenkins CI
diff --git a/cloud/shepherd/provider/equinix/BUILD.bazel b/cloud/shepherd/provider/equinix/BUILD.bazel
new file mode 100644
index 0000000..3363d7f
--- /dev/null
+++ b/cloud/shepherd/provider/equinix/BUILD.bazel
@@ -0,0 +1,77 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library", "go_test")
+load("@io_bazel_rules_docker//container:container.bzl", "container_image")
+load("//build/static_binary_tarball:def.bzl", "static_binary_tarball")
+
+go_library(
+ name = "equinix_lib",
+ srcs = [
+ "main.go",
+ "provider.go",
+ "provider_config.go",
+ "updater.go",
+ ],
+ importpath = "source.monogon.dev/cloud/shepherd/provider/equinix",
+ visibility = ["//visibility:private"],
+ deps = [
+ "//cloud/bmaas/bmdb",
+ "//cloud/bmaas/bmdb/metrics",
+ "//cloud/bmaas/bmdb/model",
+ "//cloud/bmaas/bmdb/webug",
+ "//cloud/equinix/wrapngo",
+ "//cloud/lib/component",
+ "//cloud/lib/sinbin",
+ "//cloud/shepherd",
+ "//cloud/shepherd/manager",
+ "//metropolis/cli/pkg/context",
+ "@com_github_packethost_packngo//:packngo",
+ "@io_k8s_klog_v2//:klog",
+ "@org_golang_x_crypto//ssh",
+ ],
+)
+
+go_test(
+ name = "equinix_test",
+ srcs = [
+ "fakequinix_test.go",
+ "initializer_test.go",
+ "provisioner_test.go",
+ "recoverer_test.go",
+ "updater_test.go",
+ ],
+ data = [
+ "@cockroach",
+ ],
+ embed = [":equinix_lib"],
+ deps = [
+ "//cloud/bmaas/bmdb",
+ "//cloud/bmaas/bmdb/model",
+ "//cloud/lib/component",
+ "//cloud/shepherd/manager",
+ "@com_github_google_uuid//:uuid",
+ "@com_github_packethost_packngo//:packngo",
+ "@org_golang_x_time//rate",
+ ],
+)
+
+go_binary(
+ name = "equinix",
+ embed = [":equinix_lib"],
+ visibility = ["//visibility:public"],
+)
+
+static_binary_tarball(
+ name = "equinix_layer",
+ executable = ":equinix",
+)
+
+container_image(
+ name = "equinix_container",
+ base = "@go_image_base//image",
+ entrypoint = ["/app/cloud/shepherd/provider/equinix/equinix_/equinix"],
+ tars = [
+ ":equinix_layer",
+ "//cloud/takeover:takeover_layer",
+ ],
+ visibility = ["//visibility:public"],
+ workdir = "/app",
+)