load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test") load("//hack/tools/controller-gen:controller-gen.bzl", "gen_rbac") go_library( name = "providerctl", srcs = [ "provider_controller.go", "provider_encryption_controller.go", "provider_secret_controller.go", ], importpath = "edge-infra.dev/pkg/edge/iam/ctl/providerctl", visibility = ["//visibility:public"], deps = [ "//pkg/edge/constants", "//pkg/edge/iam/api/v1alpha1", "//pkg/edge/iam/config", "//pkg/edge/iam/crypto", "//pkg/edge/info", "//pkg/k8s/runtime/conditions", "//pkg/k8s/runtime/controller/metrics", "//pkg/k8s/unstructured", "//pkg/lib/featureflag", "@com_github_external_secrets_external_secrets//apis/externalsecrets/v1beta1", "@com_github_fluxcd_pkg_ssa//:ssa", "@com_github_go_logr_logr//:logr", "@com_github_google_uuid//:uuid", "@com_github_ory_x//randx", "@io_k8s_api//core/v1:core", "@io_k8s_apimachinery//pkg/api/errors", "@io_k8s_apimachinery//pkg/api/meta", "@io_k8s_apimachinery//pkg/apis/meta/v1:meta", "@io_k8s_apimachinery//pkg/apis/meta/v1/unstructured", "@io_k8s_apimachinery//pkg/runtime", "@io_k8s_apimachinery//pkg/types", "@io_k8s_sigs_cli_utils//pkg/kstatus/polling", "@io_k8s_sigs_controller_runtime//:controller-runtime", "@io_k8s_sigs_controller_runtime//pkg/client", "@io_k8s_sigs_controller_runtime//pkg/log", "@io_k8s_sigs_kustomize_api//hasher", "@io_k8s_sigs_kustomize_api//provider", "@io_k8s_sigs_kustomize_api//resmap", "@io_k8s_sigs_kustomize_api//resource", "@io_k8s_sigs_kustomize_kyaml//resid", ], ) gen_rbac( name = "gen_rbac", outpath_relative_to_repo_root = True, # "cmd/edge/edge-bootstrap" pkg = "pkg/edge/iam/ctl/providerctl", rbac_out_path = "config/components/edge-iam-v2/deploy/components/operator/providerctl", role_name = "edge-iam-providerctl", ) genrule( name = "test_manifests", srcs = ["//config/components/edge-iam-v2/targets/env/kind"], outs = ["test/test_manifests.yaml"], cmd = "cp $(location //config/components/edge-iam-v2/targets/env/kind:kind) $@", ) go_test( name = "providerctl_test", srcs = [ "provider_controller_test.go", "provider_encryption_controller_test.go", ], data = [ ":test_manifests", "//config/components/edge-iam-v2/targets:target_files", "//hack/tools:etcd", "//hack/tools:kube-apiserver", "//hack/tools:kubectl", ], embed = [":providerctl"], deps = [ "//pkg/edge/constants", "//pkg/edge/iam/api/v1alpha1", "//pkg/k8s/runtime/conditions", "//pkg/k8s/runtime/controller", "//pkg/k8s/unstructured", "//pkg/lib/fog", "//test", "//test/framework", "//test/framework/k8s", "//test/framework/k8s/envtest", "@com_github_external_secrets_external_secrets//apis/externalsecrets/v1beta1", "@com_github_stretchr_testify//assert", "@com_github_stretchr_testify//suite", "@io_k8s_api//core/v1:core", "@io_k8s_apimachinery//pkg/api/errors", "@io_k8s_apimachinery//pkg/apis/meta/v1:meta", "@io_k8s_apimachinery//pkg/runtime", "@io_k8s_apimachinery//pkg/types", "@io_k8s_apimachinery//pkg/util/runtime", "@io_k8s_sigs_controller_runtime//:controller-runtime", "@io_k8s_sigs_controller_runtime//pkg/client", ], )