load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")

go_library(
    name = "sequel",
    srcs = [
        "config.go",
        "controller.go",
        "doc.go",
        "reconciler.go",
        "user_controller.go",
    ],
    importpath = "edge-infra.dev/pkg/edge/controllers/sequel",
    visibility = ["//visibility:public"],
    deps = [
        "//pkg/edge/apis/sequel/k8s/v1alpha2",
        "//pkg/edge/controllers/sequel/dbctl",
        "//pkg/edge/controllers/sequel/internal",
        "//pkg/k8s/meta/status",
        "//pkg/k8s/runtime/conditions",
        "//pkg/k8s/runtime/controller",
        "//pkg/k8s/runtime/controller/metrics",
        "//pkg/k8s/runtime/controller/reconcile",
        "//pkg/k8s/runtime/controller/reconcile/recerr",
        "//pkg/k8s/runtime/inventory",
        "//pkg/k8s/runtime/patch",
        "//pkg/k8s/runtime/sap",
        "//pkg/k8s/unstructured",
        "//pkg/lib/fog",
        "//pkg/lib/gcp/cloudsql",
        "//pkg/lib/gcp/secretmanager",
        "//pkg/lib/runtime/version",
        "@com_github_googlecloudplatform_k8s_config_connector//pkg/clients/generated/apis/iam/v1beta1",
        "@com_github_googlecloudplatform_k8s_config_connector//pkg/clients/generated/apis/sql/v1beta1",
        "@com_github_peterbourgon_ff_v3//:ff",
        "@com_github_sethvargo_go_password//password",
        "@io_k8s_api//core/v1:core",
        "@io_k8s_apimachinery//pkg/runtime",
        "@io_k8s_apimachinery//pkg/runtime/schema",
        "@io_k8s_apimachinery//pkg/types",
        "@io_k8s_apimachinery//pkg/util/runtime",
        "@io_k8s_client_go//dynamic",
        "@io_k8s_client_go//kubernetes/scheme",
        "@io_k8s_sigs_cli_utils//pkg/kstatus/watcher",
        "@io_k8s_sigs_controller_runtime//:controller-runtime",
        "@io_k8s_sigs_controller_runtime//pkg/client",
        "@io_k8s_sigs_controller_runtime//pkg/controller",
        "@io_k8s_sigs_controller_runtime//pkg/controller/controllerutil",
        "@org_golang_google_api//option",
    ],
)

go_test(
    name = "sequel_test",
    srcs = [
        "controller_test.go",
        "user_controller_test.go",
    ],
    data = [
        "//hack/tools:etcd",
        "//hack/tools:kube-apiserver",
        "//hack/tools:kubectl",
    ],
    embed = [":sequel"],
    tags = [
        "integration",
        "needs-f2-refactor",
    ],
    visibility = ["//visibility:public"],
    deps = [
        "//pkg/edge/api/testutils/seededpostgres",
        "//pkg/edge/apis/sequel/k8s/v1alpha2",
        "//pkg/edge/controllers/sequel/dbctl",
        "//pkg/k8s/testing/kmp",
        "//pkg/lib/fog",
        "//pkg/lib/uuid",
        "//test/f2",
        "//test/f2/x/ktest",
        "@com_github_davecgh_go_spew//spew",
        "@com_github_googlecloudplatform_k8s_config_connector//pkg/clients/generated/apis/iam/v1beta1",
        "@com_github_googlecloudplatform_k8s_config_connector//pkg/clients/generated/apis/sql/v1beta1",
        "@com_github_stretchr_testify//assert",
        "@io_k8s_apimachinery//pkg/apis/meta/v1:meta",
        "@io_k8s_apimachinery//pkg/types",
        "@io_k8s_sigs_controller_runtime//:controller-runtime",
        "@io_k8s_sigs_controller_runtime//pkg/controller/controllerutil",
        "@org_golang_google_api//option",
        "@tools_gotest_v3//assert",
    ],
)