{"id":50666263,"url":"https://github.com/alicefr/bink","last_synced_at":"2026-06-08T06:35:58.237Z","repository":{"id":359107429,"uuid":"1244284329","full_name":"alicefr/bink","owner":"alicefr","description":"Bootc in Kubernetes, tool for creating bootc kuberntes clusters","archived":false,"fork":false,"pushed_at":"2026-05-28T12:36:34.000Z","size":7425,"stargazers_count":3,"open_issues_count":15,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2026-05-28T13:25:17.932Z","etag":null,"topics":["bootc","kubernetes"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/alicefr.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2026-05-20T06:05:26.000Z","updated_at":"2026-05-28T12:33:58.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/alicefr/bink","commit_stats":null,"previous_names":["alicefr/bink"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/alicefr/bink","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alicefr%2Fbink","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alicefr%2Fbink/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alicefr%2Fbink/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alicefr%2Fbink/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/alicefr","download_url":"https://codeload.github.com/alicefr/bink/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alicefr%2Fbink/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34051771,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-08T02:00:07.615Z","response_time":111,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["bootc","kubernetes"],"created_at":"2026-06-08T06:34:30.030Z","updated_at":"2026-06-08T06:35:58.231Z","avatar_url":"https://github.com/alicefr.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# bink\n\nA CLI tool for creating Kubernetes dev clusters from bootc images.\n\nIts primary audience is K8s developers who want a \"real enough\" Kubernetes\ncluster running on real bootc hosts for hacking and CI. It's easy to use, fast,\nand runs unprivileged. It includes a local OCI registry for sharing images with\nthe cluster, networking for seamless cross-node communications, and HAProxy for\nthe API server.\n\n## Prerequisites\n\nBink uses the Podman client API. Make sure you have a Podman socket (e.g.\n`systemctl --user start podman.socket`) or remote connection available (via\n`CONTAINER_HOST`).\n\n## Installation\n\n```bash\ngo install ./cmd/bink\n```\n\n(We're working on making bink run as a container as well!)\n\n## Running via Container\n\nInstead of building the binary locally, you can run bink directly from a container image:\n\n```bash\n# Start a cluster (mount host Podman socket)\npodman run --rm -ti --network=host --security-opt label=disable \\\n  -v $XDG_RUNTIME_DIR/podman/podman.sock:/run/podman/podman.sock \\\n  -e CONTAINER_HOST=unix:///run/podman/podman.sock \\\n  -v $(pwd):/output \\\n  ghcr.io/alicefr/bink/bink:latest \\\n  cluster start\n\n# Expose the API (kubeconfig is written to the mounted directory)\npodman run --rm -ti --network=host --security-opt label=disable \\\n  -v $XDG_RUNTIME_DIR/podman/podman.sock:/run/podman/podman.sock \\\n  -e CONTAINER_HOST=unix:///run/podman/podman.sock \\\n  -v $(pwd):/output \\\n  ghcr.io/alicefr/bink/bink:latest \\\n  api expose\n```\n\nFor convenience, create a shell alias:\n```bash\nalias bink='podman run --rm -ti --network=host --security-opt label=disable \\\n  -v $XDG_RUNTIME_DIR/podman/podman.sock:/run/podman/podman.sock \\\n  -e CONTAINER_HOST=unix:///run/podman/podman.sock \\\n  -v $(pwd):/output \\\n  ghcr.io/alicefr/bink/bink:latest'\n```\n\nThen use it like the native binary: `bink cluster start`, `bink api expose`, etc.\n\n### Nested containerization (no socket mount)\n\nIf you don't want to mount the host podman socket, bink can run podman inside the container. The container starts a podman service and all bink commands are run via `podman exec`:\n\n```bash\n# Start the bink container (runs podman service in the background)\npodman run -d --name bink --privileged \\\n  --device /dev/kvm \\\n  -v bink-storage:/var/lib/containers \\\n  -v $(pwd):/output \\\n  ghcr.io/alicefr/bink/bink:latest\n\n# Wait for podman service to be ready inside the container\nuntil podman exec bink podman info \u0026\u003e/dev/null; do sleep 0.5; done\n\n# Run bink commands\npodman exec bink bink cluster start\npodman exec bink bink api expose\npodman exec bink bink cluster list\n\n# Use kubectl from inside the bink container\npodman exec bink kubectl --kubeconfig /output/kubeconfig-podman get nodes\n\n# Stop and remove when done\npodman exec bink bink cluster stop --remove-data\npodman rm -f bink\n```\n\nThe `bink-storage` volume persists container images across runs so they don't need to be re-downloaded each time.\n\n**Note:** In nested mode the cluster and its API ports live inside the bink container. Use `kubectl` from inside the container, or use the socket-mount mode for host-level access.\n\n## Create a Cluster\n\n```bash\n# Create cluster with control plane\nbink cluster start\n\n# Access the cluster\nbink api expose\nexport KUBECONFIG=$PWD/kubeconfig-podman\nkubectl get pods -A\n\n# Add worker nodes (optional)\nbink node add node2\nbink node add node3\nkubectl get nodes\n```\n\n## List Clusters\n\n```bash\n# List all running clusters\nbink cluster list\n```\n\n## Delete a Cluster\n\n```bash\n# Stop and remove all nodes\nbink cluster stop\n\n# Stop and also remove persistent data (SSH keys, kubeconfig)\nbink cluster stop --remove-data\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falicefr%2Fbink","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Falicefr%2Fbink","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falicefr%2Fbink/lists"}