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

go_library(
    name = "ipam",
    srcs = [
        "adapter.go",
        "cidr_allocator.go",
        "cloud_cidr_allocator.go",
        "cloud_cidr_allocator_metrics.go",
        "controller_legacyprovider.go",
        "doc.go",
        "multinetwork_cloud_cidr_allocator.go",
        "node_topology_syncer.go",
        "range_allocator.go",
        "task_queue.go",
        "timeout.go",
    ],
    importpath = "k8s.io/cloud-provider-gcp/pkg/controller/nodeipam/ipam",
    visibility = ["//visibility:public"],
    deps = [
        "//pkg/controller/nodeipam/ipam/cidrset",
        "//pkg/controller/nodeipam/ipam/sync",
        "//pkg/controllermetrics",
        "//pkg/util",
        "//pkg/util/node",
        "//pkg/util/taints",
        "//providers/gce",
        "//vendor/github.com/GoogleCloudPlatform/gke-networking-api/apis/network/v1:network",
        "//vendor/github.com/GoogleCloudPlatform/gke-networking-api/apis/nodetopology/v1:nodetopology",
        "//vendor/github.com/GoogleCloudPlatform/gke-networking-api/client/network/informers/externalversions/network/v1:network",
        "//vendor/github.com/GoogleCloudPlatform/gke-networking-api/client/network/listers/network/v1:network",
        "//vendor/github.com/GoogleCloudPlatform/gke-networking-api/client/nodetopology/clientset/versioned",
        "//vendor/google.golang.org/api/compute/v1:compute",
        "//vendor/k8s.io/api/core/v1:core",
        "//vendor/k8s.io/apimachinery/pkg/api/errors",
        "//vendor/k8s.io/apimachinery/pkg/api/meta",
        "//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/labels",
        "//vendor/k8s.io/apimachinery/pkg/types",
        "//vendor/k8s.io/apimachinery/pkg/util/runtime",
        "//vendor/k8s.io/apimachinery/pkg/util/sets",
        "//vendor/k8s.io/apimachinery/pkg/util/wait",
        "//vendor/k8s.io/client-go/informers/core/v1:core",
        "//vendor/k8s.io/client-go/kubernetes",
        "//vendor/k8s.io/client-go/kubernetes/scheme",
        "//vendor/k8s.io/client-go/kubernetes/typed/core/v1:core",
        "//vendor/k8s.io/client-go/listers/core/v1:core",
        "//vendor/k8s.io/client-go/tools/cache",
        "//vendor/k8s.io/client-go/tools/record",
        "//vendor/k8s.io/client-go/util/workqueue",
        "//vendor/k8s.io/cloud-provider",
        "//vendor/k8s.io/component-base/metrics",
        "//vendor/k8s.io/component-base/metrics/legacyregistry",
        "//vendor/k8s.io/component-helpers/node/util",
        "//vendor/k8s.io/klog/v2:klog",
        "//vendor/k8s.io/metrics/pkg/client/clientset/versioned/scheme",
        "//vendor/k8s.io/utils/net",
    ],
)

go_test(
    name = "ipam_test",
    srcs = [
        "cloud_cidr_allocator_test.go",
        "controller_test.go",
        "multinetwork_cloud_cidr_allocator_test.go",
        "node_topology_syncer_test.go",
        "range_allocator_test.go",
        "task_queue_test.go",
        "timeout_test.go",
    ],
    embed = [":ipam"],
    deps = [
        "//pkg/controller/nodeipam/ipam/cidrset",
        "//pkg/controller/nodeipam/ipam/test",
        "//pkg/controller/testutil",
        "//pkg/util/node",
        "//providers/gce",
        "//vendor/github.com/GoogleCloudPlatform/gke-networking-api/apis/network/v1:network",
        "//vendor/github.com/GoogleCloudPlatform/gke-networking-api/apis/nodetopology/v1:nodetopology",
        "//vendor/github.com/GoogleCloudPlatform/gke-networking-api/client/network/clientset/versioned/fake",
        "//vendor/github.com/GoogleCloudPlatform/gke-networking-api/client/network/informers/externalversions",
        "//vendor/github.com/GoogleCloudPlatform/gke-networking-api/client/nodetopology/clientset/versioned",
        "//vendor/github.com/GoogleCloudPlatform/gke-networking-api/client/nodetopology/clientset/versioned/fake",
        "//vendor/github.com/GoogleCloudPlatform/k8s-cloud-provider/pkg/cloud/meta",
        "//vendor/github.com/google/go-cmp/cmp",
        "//vendor/google.golang.org/api/compute/v1:compute",
        "//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/runtime/schema",
        "//vendor/k8s.io/apimachinery/pkg/util/wait",
        "//vendor/k8s.io/client-go/informers",
        "//vendor/k8s.io/client-go/informers/core/v1:core",
        "//vendor/k8s.io/client-go/kubernetes/fake",
        "//vendor/k8s.io/client-go/util/workqueue",
        "//vendor/k8s.io/component-base/metrics/testutil",
    ],
)
