{"id":37174445,"url":"https://github.com/flatcar/fleetlock","last_synced_at":"2026-01-14T20:23:01.490Z","repository":{"id":46283656,"uuid":"408864118","full_name":"flatcar/fleetlock","owner":"flatcar","description":"Go client implementation of FleetLock procotol","archived":false,"fork":false,"pushed_at":"2025-07-29T13:12:11.000Z","size":123,"stargazers_count":0,"open_issues_count":1,"forks_count":1,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-07-29T15:50:25.353Z","etag":null,"topics":["flatcar","hacktoberfest"],"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/flatcar.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":"code-of-conduct.md","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}},"created_at":"2021-09-21T14:59:43.000Z","updated_at":"2025-07-29T13:12:14.000Z","dependencies_parsed_at":"2024-06-19T21:13:18.910Z","dependency_job_id":"0846e99a-f125-4aca-92a9-d00f2ba1f926","html_url":"https://github.com/flatcar/fleetlock","commit_stats":null,"previous_names":["flatcar-linux/fleetlock"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/flatcar/fleetlock","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flatcar%2Ffleetlock","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flatcar%2Ffleetlock/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flatcar%2Ffleetlock/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flatcar%2Ffleetlock/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/flatcar","download_url":"https://codeload.github.com/flatcar/fleetlock/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flatcar%2Ffleetlock/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28434428,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-14T18:57:19.464Z","status":"ssl_error","status_checked_at":"2026-01-14T18:52:48.501Z","response_time":107,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: 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":["flatcar","hacktoberfest"],"created_at":"2026-01-14T20:23:00.575Z","updated_at":"2026-01-14T20:23:01.473Z","avatar_url":"https://github.com/flatcar.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv style=\"text-align: center\"\u003e\n\n[![Flatcar OS](https://img.shields.io/badge/Flatcar-Website-blue?logo=data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAyNi4wLjMsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjxzdmcgdmVyc2lvbj0iMS4wIiBpZD0ia2F0bWFuXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4Ig0KCSB2aWV3Qm94PSIwIDAgODAwIDYwMCIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgODAwIDYwMDsiIHhtbDpzcGFjZT0icHJlc2VydmUiPg0KPHN0eWxlIHR5cGU9InRleHQvY3NzIj4NCgkuc3Qwe2ZpbGw6IzA5QkFDODt9DQo8L3N0eWxlPg0KPHBhdGggY2xhc3M9InN0MCIgZD0iTTQ0MCwxODIuOGgtMTUuOXYxNS45SDQ0MFYxODIuOHoiLz4NCjxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik00MDAuNSwzMTcuOWgtMzEuOXYxNS45aDMxLjlWMzE3Ljl6Ii8+DQo8cGF0aCBjbGFzcz0ic3QwIiBkPSJNNTQzLjgsMzE3LjlINTEydjE1LjloMzEuOVYzMTcuOXoiLz4NCjxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik02NTUuMiw0MjAuOXYtOTUuNGgtMTUuOXY5NS40aC0xNS45VjI2MmgtMzEuOVYxMzQuOEgyMDkuNFYyNjJoLTMxLjl2MTU5aC0xNS45di05NS40aC0xNnY5NS40aC0xNS45djMxLjINCgloMzEuOXYxNS44aDQ3Ljh2LTE1LjhoMTUuOXYxNS44SDI3M3YtMTUuOGgyNTQuOHYxNS44aDQ3Ljh2LTE1LjhoMTUuOXYxNS44aDQ3Ljh2LTE1LjhoMzEuOXYtMzEuMkg2NTUuMnogTTQ4Ny44LDE1MWg3OS42djMxLjgNCgloLTIzLjZ2NjMuNkg1MTJ2LTYzLjZoLTI0LjJMNDg3LjgsMTUxTDQ4Ny44LDE1MXogTTIzMywyMTQuNlYxNTFoNjMuN3YyMy41aC0zMS45djE1LjhoMzEuOXYyNC4yaC0zMS45djMxLjhIMjMzVjIxNC42eiBNMzA1LDMxNy45DQoJdjE1LjhoLTQ3Ljh2MzEuOEgzMDV2NDcuN2gtOTUuNVYyODYuMUgzMDVMMzA1LDMxNy45eiBNMzEyLjYsMjQ2LjRWMTUxaDMxLjl2NjMuNmgzMS45djMxLjhMMzEyLjYsMjQ2LjRMMzEyLjYsMjQ2LjRMMzEyLjYsMjQ2LjR6DQoJIE00NDguMywzMTcuOXY5NS40aC00Ny44di00Ny43aC0zMS45djQ3LjdoLTQ3LjhWMzAyaDE1Ljl2LTE1LjhoOTUuNVYzMDJoMTUuOUw0NDguMywzMTcuOXogTTQ0MCwyNDYuNHYtMzEuOGgtMTUuOXYzMS44aC0zMS45DQoJdi03OS41aDE1Ljl2LTE1LjhoNDcuOHYxNS44aDE1Ljl2NzkuNUg0NDB6IE01OTEuNiwzMTcuOXY0Ny43aC0xNS45djE1LjhoMTUuOXYzMS44aC00Ny44di0zMS43SDUyOHYtMTUuOGgtMTUuOXY0Ny43aC00Ny44VjI4Ni4xDQoJaDEyNy4zVjMxNy45eiIvPg0KPC9zdmc+DQo=)](https://www.flatcar.org/)\n[![Matrix](https://img.shields.io/badge/Matrix-Chat%20with%20us!-green?logo=matrix)](https://app.element.io/#/room/#flatcar:matrix.org)\n[![Slack](https://img.shields.io/badge/Slack-Chat%20with%20us!-4A154B?logo=slack)](https://kubernetes.slack.com/archives/C03GQ8B5XNJ)\n[![Twitter Follow](https://img.shields.io/twitter/follow/flatcar?style=social)](https://x.com/flatcar)\n[![Mastodon Follow](https://img.shields.io/badge/Mastodon-Follow-6364FF?logo=mastodon)](https://hachyderm.io/@flatcar)\n[![Bluesky](https://img.shields.io/badge/Bluesky-Follow-0285FF?logo=bluesky)](https://bsky.app/profile/flatcar.org)\n\n\u003c/div\u003e\n\n## FleetLock client\n\n[![Go Reference](https://pkg.go.dev/badge/github.com/flatcar/fleetlock.svg)](https://pkg.go.dev/github.com/flatcar/fleetlock)\n[![Go](https://github.com/flatcar/fleetlock/actions/workflows/go.yml/badge.svg?branch=main)](https://github.com/flatcar/fleetlock/actions/workflows/go.yml)\n\nGo implementation of `FleetLock` protocol.\n\n### Example\n\nIt's possible to run a local `FleetLock` server backed by `etcd` using [`airlock`](https://github.com/coreos/airlock/):\n\n```shell\n$ cd examples\n$ docker-compose up -d\n```\nThere is only one slot for the `controllers` group:\n```\n$ fleetlockctl --url http://127.0.0.1:3333 --group controllers --id $(cat /etc/machine-id) recursive-lock\n```\n\nOn the `airlock` side:\n```\nDEBU[0117] processing client pre-reboot request          group=controllers id=41987...\nDEBU[0117] givin green-flag to pre-reboot request        group=controllers id=41987...\n```\n\nIt's not possible to get another lock, since there is only one slot:\n```\n$ fleetlockctl --url http://127.0.0.1:3333 --group controllers --id another-machine recursive-lock\nError: locking: fleetlock error: all 1 semaphore slots currently locked (failed_lock)\n```\n\nIt's possible to release the lock:\n```\n./fleetlockctl --url http://127.0.0.1:3333 --group controllers --id $(cat /etc/machine-id) unlock-if-held\n```\n\n`another-machine` can now request a lock:\n```\n$ fleetlockctl --url http://127.0.0.1:3333 --group controllers --id another-machine recursive-lock\n```\n\nOn the `airlock` side:\n```\nDEBU[0366] got pre-reboot request\nDEBU[0366] processing client pre-reboot request          group=controllers id=another-machine\nDEBU[0367] givin green-flag to pre-reboot request        group=controllers id=another-machine\n```\n\n### Build\n\nrequirements:\n  * `go` in the path\n\n```\n$ make\n```\n\nref: https://coreos.github.io/zincati/development/fleetlock/protocol/\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fflatcar%2Ffleetlock","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fflatcar%2Ffleetlock","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fflatcar%2Ffleetlock/lists"}