1load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
2load("//hack/tools/controller-gen:controller-gen.bzl", "gen_rbac")
3
4go_library(
5 name = "providerctl",
6 srcs = [
7 "provider_controller.go",
8 "provider_encryption_controller.go",
9 "provider_secret_controller.go",
10 ],
11 importpath = "edge-infra.dev/pkg/edge/iam/ctl/providerctl",
12 visibility = ["//visibility:public"],
13 deps = [
14 "//pkg/edge/constants",
15 "//pkg/edge/iam/api/v1alpha1",
16 "//pkg/edge/iam/config",
17 "//pkg/edge/iam/crypto",
18 "//pkg/edge/info",
19 "//pkg/k8s/runtime/conditions",
20 "//pkg/k8s/runtime/controller/metrics",
21 "//pkg/k8s/unstructured",
22 "//pkg/lib/featureflag",
23 "@com_github_external_secrets_external_secrets//apis/externalsecrets/v1beta1",
24 "@com_github_fluxcd_pkg_ssa//:ssa",
25 "@com_github_go_logr_logr//:logr",
26 "@com_github_google_uuid//:uuid",
27 "@com_github_ory_x//randx",
28 "@io_k8s_api//core/v1:core",
29 "@io_k8s_apimachinery//pkg/api/errors",
30 "@io_k8s_apimachinery//pkg/api/meta",
31 "@io_k8s_apimachinery//pkg/apis/meta/v1:meta",
32 "@io_k8s_apimachinery//pkg/apis/meta/v1/unstructured",
33 "@io_k8s_apimachinery//pkg/runtime",
34 "@io_k8s_apimachinery//pkg/types",
35 "@io_k8s_sigs_cli_utils//pkg/kstatus/polling",
36 "@io_k8s_sigs_controller_runtime//:controller-runtime",
37 "@io_k8s_sigs_controller_runtime//pkg/client",
38 "@io_k8s_sigs_controller_runtime//pkg/log",
39 "@io_k8s_sigs_kustomize_api//hasher",
40 "@io_k8s_sigs_kustomize_api//provider",
41 "@io_k8s_sigs_kustomize_api//resmap",
42 "@io_k8s_sigs_kustomize_api//resource",
43 "@io_k8s_sigs_kustomize_kyaml//resid",
44 ],
45)
46
47gen_rbac(
48 name = "gen_rbac",
49 outpath_relative_to_repo_root = True,
50 # "cmd/edge/edge-bootstrap"
51 pkg = "pkg/edge/iam/ctl/providerctl",
52 rbac_out_path = "config/components/edge-iam-v2/deploy/components/operator/providerctl",
53 role_name = "edge-iam-providerctl",
54)
55
56genrule(
57 name = "test_manifests",
58 srcs = ["//config/components/edge-iam-v2/targets/env/kind"],
59 outs = ["test/test_manifests.yaml"],
60 cmd = "cp $(location //config/components/edge-iam-v2/targets/env/kind:kind) $@",
61)
62
63go_test(
64 name = "providerctl_test",
65 srcs = [
66 "provider_controller_test.go",
67 "provider_encryption_controller_test.go",
68 ],
69 data = [
70 ":test_manifests",
71 "//config/components/edge-iam-v2/targets:target_files",
72 "//hack/tools:etcd",
73 "//hack/tools:kube-apiserver",
74 "//hack/tools:kubectl",
75 ],
76 embed = [":providerctl"],
77 deps = [
78 "//pkg/edge/constants",
79 "//pkg/edge/iam/api/v1alpha1",
80 "//pkg/k8s/runtime/conditions",
81 "//pkg/k8s/runtime/controller",
82 "//pkg/k8s/unstructured",
83 "//pkg/lib/fog",
84 "//test",
85 "//test/framework",
86 "//test/framework/k8s",
87 "//test/framework/k8s/envtest",
88 "@com_github_external_secrets_external_secrets//apis/externalsecrets/v1beta1",
89 "@com_github_stretchr_testify//assert",
90 "@com_github_stretchr_testify//suite",
91 "@io_k8s_api//core/v1:core",
92 "@io_k8s_apimachinery//pkg/api/errors",
93 "@io_k8s_apimachinery//pkg/apis/meta/v1:meta",
94 "@io_k8s_apimachinery//pkg/runtime",
95 "@io_k8s_apimachinery//pkg/types",
96 "@io_k8s_apimachinery//pkg/util/runtime",
97 "@io_k8s_sigs_controller_runtime//:controller-runtime",
98 "@io_k8s_sigs_controller_runtime//pkg/client",
99 ],
100)
View as plain text