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

go_library(
    name = "gce",
    srcs = [
        "doc.go",
        "gce.go",
        "gce_address_manager.go",
        "gce_addresses.go",
        "gce_alpha.go",
        "gce_annotations.go",
        "gce_backendservice.go",
        "gce_cert.go",
        "gce_clusterid.go",
        "gce_clusters.go",
        "gce_disks.go",
        "gce_fake.go",
        "gce_firewall.go",
        "gce_forwardingrule.go",
        "gce_healthchecks.go",
        "gce_instancegroup.go",
        "gce_instances.go",
        "gce_interfaces.go",
        "gce_loadbalancer.go",
        "gce_loadbalancer_external.go",
        "gce_loadbalancer_internal.go",
        "gce_loadbalancer_metrics.go",
        "gce_loadbalancer_naming.go",
        "gce_networkendpointgroup.go",
        "gce_networks.go",
        "gce_routes.go",
        "gce_securitypolicy.go",
        "gce_subnetworks.go",
        "gce_targetpool.go",
        "gce_targetproxy.go",
        "gce_tpu.go",
        "gce_urlmap.go",
        "gce_util.go",
        "gce_zones.go",
        "metrics.go",
        "support.go",
        "token_source.go",
    ],
    importpath = "k8s.io/cloud-provider-gcp/providers/gce",
    visibility = ["//visibility:public"],
    deps = [
        "//vendor/cloud.google.com/go/compute/metadata",
        "//vendor/github.com/GoogleCloudPlatform/k8s-cloud-provider/pkg/cloud",
        "//vendor/github.com/GoogleCloudPlatform/k8s-cloud-provider/pkg/cloud/filter",
        "//vendor/github.com/GoogleCloudPlatform/k8s-cloud-provider/pkg/cloud/meta",
        "//vendor/github.com/GoogleCloudPlatform/k8s-cloud-provider/pkg/cloud/mock",
        "//vendor/github.com/google/go-cmp/cmp",
        "//vendor/golang.org/x/oauth2",
        "//vendor/golang.org/x/oauth2/google",
        "//vendor/google.golang.org/api/compute/v0.alpha:v0_alpha",
        "//vendor/google.golang.org/api/compute/v0.beta:v0_beta",
        "//vendor/google.golang.org/api/compute/v1:compute",
        "//vendor/google.golang.org/api/container/v1:container",
        "//vendor/google.golang.org/api/googleapi",
        "//vendor/google.golang.org/api/option",
        "//vendor/google.golang.org/api/tpu/v1:tpu",
        "//vendor/gopkg.in/gcfg.v1:gcfg_v1",
        "//vendor/k8s.io/api/core/v1:core",
        "//vendor/k8s.io/apimachinery/pkg/api/resource",
        "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:meta",
        "//vendor/k8s.io/apimachinery/pkg/fields",
        "//vendor/k8s.io/apimachinery/pkg/runtime",
        "//vendor/k8s.io/apimachinery/pkg/types",
        "//vendor/k8s.io/apimachinery/pkg/util/errors",
        "//vendor/k8s.io/apimachinery/pkg/util/sets",
        "//vendor/k8s.io/apimachinery/pkg/util/wait",
        "//vendor/k8s.io/apimachinery/pkg/watch",
        "//vendor/k8s.io/client-go/applyconfigurations/core/v1:core",
        "//vendor/k8s.io/client-go/applyconfigurations/meta/v1:meta",
        "//vendor/k8s.io/client-go/informers",
        "//vendor/k8s.io/client-go/kubernetes",
        "//vendor/k8s.io/client-go/kubernetes/fake",
        "//vendor/k8s.io/client-go/kubernetes/scheme",
        "//vendor/k8s.io/client-go/kubernetes/typed/core/v1:core",
        "//vendor/k8s.io/client-go/pkg/version",
        "//vendor/k8s.io/client-go/tools/cache",
        "//vendor/k8s.io/client-go/tools/record",
        "//vendor/k8s.io/client-go/util/flowcontrol",
        "//vendor/k8s.io/cloud-provider",
        "//vendor/k8s.io/cloud-provider/service/helpers",
        "//vendor/k8s.io/cloud-provider/volume",
        "//vendor/k8s.io/cloud-provider/volume/errors",
        "//vendor/k8s.io/cloud-provider/volume/helpers",
        "//vendor/k8s.io/component-base/metrics",
        "//vendor/k8s.io/component-base/metrics/legacyregistry",
        "//vendor/k8s.io/klog/v2:klog",
        "//vendor/k8s.io/utils/net",
    ],
)

go_test(
    name = "gce_test",
    srcs = [
        "gce_address_manager_test.go",
        "gce_annotations_test.go",
        "gce_disks_test.go",
        "gce_instances_test.go",
        "gce_loadbalancer_external_test.go",
        "gce_loadbalancer_internal_test.go",
        "gce_loadbalancer_metrics_test.go",
        "gce_loadbalancer_test.go",
        "gce_loadbalancer_utils_test.go",
        "gce_test.go",
        "gce_util_test.go",
        "metrics_test.go",
    ],
    embed = [":gce"],
    deps = [
        "//vendor/github.com/GoogleCloudPlatform/k8s-cloud-provider/pkg/cloud",
        "//vendor/github.com/GoogleCloudPlatform/k8s-cloud-provider/pkg/cloud/meta",
        "//vendor/github.com/GoogleCloudPlatform/k8s-cloud-provider/pkg/cloud/mock",
        "//vendor/github.com/google/go-cmp/cmp",
        "//vendor/github.com/stretchr/testify/assert",
        "//vendor/github.com/stretchr/testify/require",
        "//vendor/golang.org/x/oauth2/google",
        "//vendor/google.golang.org/api/compute/v0.alpha:v0_alpha",
        "//vendor/google.golang.org/api/compute/v0.beta:v0_beta",
        "//vendor/google.golang.org/api/compute/v1:compute",
        "//vendor/google.golang.org/api/googleapi",
        "//vendor/k8s.io/api/core/v1:core",
        "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:meta",
        "//vendor/k8s.io/apimachinery/pkg/types",
        "//vendor/k8s.io/apimachinery/pkg/util/intstr",
        "//vendor/k8s.io/apimachinery/pkg/util/json",
        "//vendor/k8s.io/apimachinery/pkg/util/sets",
        "//vendor/k8s.io/client-go/tools/record",
        "//vendor/k8s.io/cloud-provider",
        "//vendor/k8s.io/cloud-provider/service/helpers",
        "//vendor/k8s.io/utils/net",
    ],
)

filegroup(
    name = "package-srcs",
    srcs = glob(["**"]),
    tags = ["automanaged"],
    visibility = ["//visibility:private"],
)

filegroup(
    name = "all-srcs",
    srcs = [
        ":package-srcs",
        "//providers/gce/gcpcredential:all-srcs",
    ],
    tags = ["automanaged"],
    visibility = ["//visibility:public"],
)
