{"id":13645641,"url":"https://github.com/configurator/kubefs","last_synced_at":"2026-01-12T15:56:42.821Z","repository":{"id":57554699,"uuid":"259317458","full_name":"configurator/kubefs","owner":"configurator","description":"Mount kubernetes metadata storage as a filesystem","archived":false,"fork":false,"pushed_at":"2020-06-23T19:38:50.000Z","size":1748,"stargazers_count":94,"open_issues_count":0,"forks_count":4,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-04-21T14:32:00.632Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/configurator.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null},"funding":{"github":["configurator"]}},"created_at":"2020-04-27T12:50:49.000Z","updated_at":"2025-04-07T12:26:18.000Z","dependencies_parsed_at":"2022-09-26T18:51:25.108Z","dependency_job_id":null,"html_url":"https://github.com/configurator/kubefs","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/configurator/kubefs","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/configurator%2Fkubefs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/configurator%2Fkubefs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/configurator%2Fkubefs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/configurator%2Fkubefs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/configurator","download_url":"https://codeload.github.com/configurator/kubefs/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/configurator%2Fkubefs/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28341887,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-12T15:50:39.657Z","status":"ssl_error","status_checked_at":"2026-01-12T15:49:49.297Z","response_time":98,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-02T01:02:38.913Z","updated_at":"2026-01-12T15:56:42.805Z","avatar_url":"https://github.com/configurator.png","language":"Go","funding_links":["https://github.com/sponsors/configurator"],"categories":["Go","OPS","Storage \u0026 Data Management"],"sub_categories":[],"readme":"# kubefs\n\n![Build status](https://github.com/configurator/kubefs/workflows/Build/badge.svg)\n\nMount kubernetes's metadata object store as a file system\n\n![Screenshot](.screenshots/kubefs.screenshot.png)\n\n# Downloading\n\nThere are several options for downloading kubefs:\n\n- Download the [latest release from GitHub](https://github.com/configurator/kubefs/releases/latest)\n\n- Build it directly from source using `go get`:\n\n  ```shell\n  go get github.com/configurator/kubefs\n  ```\n\n  Note: this is often broken because it not only gets the `master` branch of this repository - but\n  also all the dependencies.\n\n- Build it directly from source by cloning this repository and running\n\n  ```shell\n  go build .\n  ```\n\n  to create a `kubefs` binary\n\n- Run it directly from source by cloning tihs repository and using\n\n  ```shell\n  go run . [\u003coptions\u003e] \u003cdir\u003e\n  ```\n\n  instead of a `kubefs` binary.\n\n# Dependencies\n\nFor MacOS you will need [osxfuse](https://github.com/osxfuse/osxfuse/releases):\n\nor you can install with brew formula:\n\n```shell\n$ brew cask install osxfuse\n```\n\nFor Windows you will need [WinFSP](http://www.secfs.net/winfsp/).\n\n# Usage\n\n```shell\nkubefs [\u003coptions\u003e] \u003cdir\u003e\n```\nMounts the default kubernetes cluster onto dir.\n\n#### Options\n\n- `-c`, `--kubeconfig`:\n\n  Like in `kubectl`, you can use the `--kubeconfig` flag to specify an alternate\n  `kube.config` file, or pass the `KUBECONFIG` environment flag. All contexts in the passed config\n  file will be available.\n\n- `--show-json-files`:\n\n  Show json files in directory listings. By default, they are there but hidden.\n\n- `--show-yaml-files=false`:\n\n  Hide yaml files in directory listings. If you don't combine this with `--show-json-files`,\n  directories will all be empty. Files are still readable, just not listed in directory listings.\n\n- `--pretty-json`:\n\n  When opening `.json` files, pretty-print them with newlines and indentation..\n  \n- `--readonly`\n\n  Mounts everything in read only mode so you'll feel safe (added in v0.4)\n\n# Files\n\nFiles in the mounted directory will have the following directory structure:\n\n- `/\u003ccontext\u003e`\n    - all contexts available from `kubeconfig` should appear here, allowing you to browse multiple\n      clusters without switching with `kube config use-context`.\n- `/\u003ccontext\u003e/\u003cobject-type\u003e`\n- `/\u003ccontext\u003e/\u003cobject-type\u003e/\u003cname\u003e.yaml`\n    - for global objects that have no namespace, such as `nodes`,`clusterroles` or `namespaces`\n      themselves\n- `/\u003ccontext\u003e/\u003cobject-type\u003e/\u003cnamespace\u003e`\n- `/\u003ccontext\u003e/\u003cobject-type\u003e/\u003cnamespace\u003e/\u003cname\u003e.yaml`\n    - for namespaced objects such as `pods`, `deployments`, etc.\n\nAll object files end in `.yaml`. However, the file system has a secret - the extension can be\nchanged to see the objects in different formats. Currently supported formats are:\n\n- `.yaml`\n- `.json`\n\nThese extra formats will not show up in directory listings, but are available to any application\nthat tries to read them. Omitting the extension also works and returns the default format, yaml.\n\n# Ideas for exploring\n\n- Use `find \u003cdir\u003e` to see an entire listing of all kubernetes objects.\n\n- Open the directory in an IDE to look around\n\n- Snapshot the entire kubernetes object store by copying directory contents - though restoring isn't\n  currently possible, you'd have a backup of each individual object.\n\n# Some more screenshots\n\n![Linux file listing](.screenshots/linux-file-list.jpg)\n\n![Browsing in IDE](.screenshots/vscode.jpg)\n\n![Looking at yaml and json](.screenshots/cat-file-types.jpg)\n\n# Roadmap\n\n- [x] List / get all kubernetes objects as files\n- [x] Linux support\n- [x] Mac support\n- [x] Windows support\n- [x] Delete objects\n- [x] Edit existing objects\n- [x] Create new objects\n- [ ] Support file system watchers, so IDEs know to reload the file after saving\n- [ ] Connect the file system watchers to kubernetes watchers so files can be reloaded when changed\n      on the server\n- [ ] When writing files fails, add a comment to the top explaining the failure\n- [ ] When reading a missing file, allow the read with some dummy data as a result,\n      which will help create new files in IDEs\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fconfigurator%2Fkubefs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fconfigurator%2Fkubefs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fconfigurator%2Fkubefs/lists"}