{"id":16880024,"url":"https://github.com/aledbf/coreos-mesos-zookeeper","last_synced_at":"2025-10-11T11:17:46.178Z","repository":{"id":32214197,"uuid":"35788051","full_name":"aledbf/coreos-mesos-zookeeper","owner":"aledbf","description":"Services and images to start mesos and zookeeper in coreos","archived":false,"fork":false,"pushed_at":"2015-05-29T02:58:40.000Z","size":628,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-06-28T00:05:21.355Z","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":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/aledbf.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":"2015-05-18T00:05:21.000Z","updated_at":"2015-09-24T18:35:28.000Z","dependencies_parsed_at":"2022-08-29T01:40:51.227Z","dependency_job_id":null,"html_url":"https://github.com/aledbf/coreos-mesos-zookeeper","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/aledbf/coreos-mesos-zookeeper","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aledbf%2Fcoreos-mesos-zookeeper","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aledbf%2Fcoreos-mesos-zookeeper/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aledbf%2Fcoreos-mesos-zookeeper/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aledbf%2Fcoreos-mesos-zookeeper/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/aledbf","download_url":"https://codeload.github.com/aledbf/coreos-mesos-zookeeper/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aledbf%2Fcoreos-mesos-zookeeper/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279007034,"owners_count":26084227,"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","status":"online","status_checked_at":"2025-10-11T02:00:06.511Z","response_time":55,"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":[],"created_at":"2024-10-13T15:57:00.369Z","updated_at":"2025-10-11T11:17:46.147Z","avatar_url":"https://github.com/aledbf.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# coreos-mesos-zookeeper\n\nServices and images to start mesos and zookeeper in coreos\n\n- [X] zookeeper\n  - [X] use alpine linux\n  - [X] service unit\n  - [X] add node to the cluster on start\n  - [X] remove node from the cluster on restart\n\n- [X] mesos\n  - [X] master\n  - [X] service unit\n  - [X] slave using global\n  - [X] service unit\n- [X] marathon\n\n### Why zookeeper 3.5.0-alpha?\nStarting in 3.5.0 is possible to resize the zookeeper cluster using [dynamic reconfiguration](http://zookeeper.apache.org/doc/trunk/zookeeperReconfig.html#ch_reconfig_dyn)\n\n### Required fleet metadata for zookeeper\nAny node where is possible to rung zookeeper must have the `zookeeper=true` metadata.\n\n```\n  - name: fleet.service\n    command: start\n    content: |\n      [Unit]\n      Description=fleet\n      Requires=etcd.service\n      After=etcd.service\n\n      [Service]\n      Environment=\"FLEET_METADATA=zookeeper=true\"\n      ExecStart=/usr/bin/fleetd\n```\n\n### Steps to start the zookeeper cluster\n\nThe folder units contains the required services to run the service.\nThe file `zookeeper@1.service` is the template required to run the zookeeper server in one node.\nTo run the zookeeper cluster is required at least 3 nodes.\nCopy the template `zookeeper@1.service` to `zookeeper@2.service` and `zookeeper@3.service` and submit the units to `fleet`:\n\n```\nfleetctl submit zookeeper@1.service zookeeper@2.service zookeeper@3.service\n```\n\nand start the services\n\n```\nfleetctl start zookeeper@1.service zookeeper@2.service zookeeper@3.service\n\n```\n\nThis will add the next key/values to etcd:\n```\n/zookeeper\n/zookeeper/nodes\n/zookeeper/nodes/\u003cip node 1\u003e\n/zookeeper/nodes/\u003cip node 1\u003e/id\n/zookeeper/nodes/\u003cip node 2\u003e\n/zookeeper/nodes/\u003cip node 2\u003e/id\n/zookeeper/nodes/\u003cip node 3\u003e\n/zookeeper/nodes/\u003cip node 3\u003e/id\n```\n\nWhy?\nZookeeper need unique identifiers for every node so when the container starts it will check if this \"mapping\" exists or it will create a new one. This keys do not use any TTL (are permanent).\n\n\n### Restarting zookeeper nodes\nDuring the start of the zookeeper service in the node it will register the information in the cluster if it does not exists and during the stop it will remove the node from the cluster.\nThe information to register follows the format defined [here](http://zookeeper.apache.org/doc/trunk/zookeeperReconfig.html#sc_reconfig_clientport):\n```\nserver.$NODE_ID=$HOST_IP:2181:2888:participant;$HOST_IP:3888\"\n```\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faledbf%2Fcoreos-mesos-zookeeper","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faledbf%2Fcoreos-mesos-zookeeper","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faledbf%2Fcoreos-mesos-zookeeper/lists"}