Implement CSI node plugin
This implements a CSI node plugin with registration support
backed by bind mounts from our XFS data partition.
It supports online volume expansion (and technically shrinking,
but K8s does not support shrinking) and CSI statistics backed by fsquota
Test Plan: TBD
X-Origin-Diff: phab/D471
GitOrigin-RevId: 6bc37dac3726b39bd5d71cfddb2d53aeee0c8b4d
diff --git a/core/internal/kubernetes/BUILD.bazel b/core/internal/kubernetes/BUILD.bazel
index 166d13f..d58dec7 100644
--- a/core/internal/kubernetes/BUILD.bazel
+++ b/core/internal/kubernetes/BUILD.bazel
@@ -6,6 +6,7 @@
"apiserver.go",
"auth.go",
"controller-manager.go",
+ "csi.go",
"kubelet.go",
"reconcile.go",
"scheduler.go",
@@ -17,8 +18,12 @@
"//core/api/api:go_default_library",
"//core/internal/common/supervisor:go_default_library",
"//core/internal/consensus:go_default_library",
+ "//core/internal/storage:go_default_library",
"//core/pkg/fileargs:go_default_library",
+ "//core/pkg/fsquota:go_default_library",
"//core/pkg/logbuffer:go_default_library",
+ "@com_github_container_storage_interface_spec//lib/go/csi:go_default_library",
+ "@io_bazel_rules_go//proto/wkt:wrappers_go_proto",
"@io_etcd_go_etcd//clientv3:go_default_library",
"@io_k8s_api//core/v1:go_default_library",
"@io_k8s_api//policy/v1beta1:go_default_library",
@@ -28,8 +33,11 @@
"@io_k8s_client_go//tools/clientcmd:go_default_library",
"@io_k8s_client_go//tools/clientcmd/api:go_default_library",
"@io_k8s_kubelet//config/v1beta1:go_default_library",
+ "@io_k8s_kubelet//pkg/apis/pluginregistration/v1:go_default_library",
+ "@org_golang_google_grpc//:go_default_library",
"@org_golang_google_grpc//codes:go_default_library",
"@org_golang_google_grpc//status:go_default_library",
+ "@org_golang_x_sys//unix:go_default_library",
"@org_uber_go_zap//:go_default_library",
],
)