{"id":16148296,"url":"https://github.com/chanwit/f0x","last_synced_at":"2026-01-20T18:56:26.105Z","repository":{"id":51070645,"uuid":"341629660","full_name":"chanwit/f0x","owner":"chanwit","description":"Frictionless GitOps anywhere","archived":false,"fork":false,"pushed_at":"2021-05-25T05:44:39.000Z","size":28,"stargazers_count":2,"open_issues_count":4,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-02-13T19:51:20.275Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/chanwit.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-02-23T17:11:01.000Z","updated_at":"2023-06-23T19:06:30.000Z","dependencies_parsed_at":"2022-09-15T16:41:19.287Z","dependency_job_id":null,"html_url":"https://github.com/chanwit/f0x","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chanwit%2Ff0x","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chanwit%2Ff0x/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chanwit%2Ff0x/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chanwit%2Ff0x/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/chanwit","download_url":"https://codeload.github.com/chanwit/f0x/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247704514,"owners_count":20982292,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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-10-10T00:32:31.838Z","updated_at":"2026-01-20T18:56:26.089Z","avatar_url":"https://github.com/chanwit.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# The f0x project\nRunning Flux effortlessly anywhere\n\n## Implementations\n\n### Rootless Flux\n\nRootless Flux is a F0x implementation deployed as a StatefulSet along with a side-car K8s API server. \nThis similar technique has been used recently in other virtual K8s cluster implementations, such as KCP and vcluster. \nBut Rootless Flux's controlplane is optimized just to run Flux.\n\n#### Why Rootless Flux is important?\n\nIn corporate Kubernetes clusters, users normally are allowed to use their namespaces with limited access. No ClusterAdmin. No CRDs are allowed.\nRootless Flux solves this problem by offering a rootless Flux controlplane, which is able to run in those limited namespaces without requiring ClusterAdmin nor CRDs installed on the host cluster. The controlplane is pre-loaded CRDs and other resources for Flux.\n\nRootless Flux allows GitOps to run anywhere even in a restricted cluster environment, like OpenShift Dev Sandbox.  \n\n### Flux for Docker\n\nF0x in this mode runs GitOps Toolkit components in Docker containers without requiring a Kubernetes cluster. F0x uses only the API and `etcd` servers to help GOTK components talk to each others. The current implementation uses Docker-Compose to up and running F0x with a simple Docker bridge network. Current F0x supports running Source Controller and Kustomization Controller only.\n\nTo make F0x useable, we require a usecase-specific controller and CRDs. See example.\n\n## Use cases\n\nF0x could be applied for:\n  - Rootless Flux - running F0x as an independent Flux cluster inside a restricted Kubernete namespace\n  - Edge-computing use cases\n  - Standalone GitOps applications\n  - etc.\n\n## Limitation\n  - No pod deployment and we don't have any Kubernetes node in this implementation\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchanwit%2Ff0x","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fchanwit%2Ff0x","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchanwit%2Ff0x/lists"}