- Notifications
You must be signed in to change notification settings - Fork0
yangsoon/kufu
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
The project is currently under development, and interested users can star and watch to stay updated on its progress.
Kufu has a pronunciation similar to "kung fu" in English, and is a combination of Kubernetes and Fuse (user file system). As its name suggests, Kufu is an open-source project based on Kubernetes and Fuse user file system. It can synchronize native resources (Pod, Service, etc.) or CRD resources in Kubernetes cluster in real time to the user's local file system, allowing users to operate their Kubernetes cluster like a file system without having to search for and execute kubectl commands.
Kufu uses thekube project to listen for changes in Kubernetes cluster resources and synchronizes them in real time tosled (a local KV database written in Rust). The difference from the traditional controller development mode is that Kufu only list-watch resource changes but does not cache the monitored objects in memory, as Kufu is generally used on developers' local computers and tries not to occupy too much memory.
Thefuser library is used to mount the user file system to the user's computer, and each operation on the files in this file system is mapped to reading the contents of sled database and returned to the user.
InstallMacFuse
Clone the project
git clone https://github.com/yangsoon/kufu.git
Modify the
test/config
filemount:path:./test/k8s# Specify the mount location of the user file systemdata-path:./test/.data# Location to store sled database dataresources:# Specify the resource monitoring types -apiVersion:v1kind:Pod -apiVersion:v1kind:Namespacekube-configs:# Specify the kubeconfig location of the monitored cluster -config-path:~/.kube/config
Run the local
cargo run
- Verify POC
- Add workqueue mechanism to ensure that resource changes can eventually be stored locally
- Complete remaining fuse interface implementations
- Support monitoring of more native resources
- Improve the permission system
- Support permission system?
About
Manage K8S like managing local files