{"id":13509911,"url":"https://github.com/gravitational/planet","last_synced_at":"2025-03-30T15:30:26.593Z","repository":{"id":35116653,"uuid":"39307112","full_name":"gravitational/planet","owner":"gravitational","description":"Installable Kubernetes delivered in containers","archived":true,"fork":false,"pushed_at":"2023-06-28T21:42:27.000Z","size":98255,"stargazers_count":51,"open_issues_count":0,"forks_count":18,"subscribers_count":32,"default_branch":"master","last_synced_at":"2024-11-01T10:35:06.467Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"AutoMapper/AutoMapper","license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/gravitational.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2015-07-18T17:45:19.000Z","updated_at":"2023-10-29T10:35:04.000Z","dependencies_parsed_at":"2024-06-18T22:47:15.111Z","dependency_job_id":"639cb2c4-d324-4e09-b635-b9dc686fe907","html_url":"https://github.com/gravitational/planet","commit_stats":null,"previous_names":[],"tags_count":512,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gravitational%2Fplanet","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gravitational%2Fplanet/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gravitational%2Fplanet/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gravitational%2Fplanet/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gravitational","download_url":"https://codeload.github.com/gravitational/planet/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246338558,"owners_count":20761402,"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-08-01T02:01:16.809Z","updated_at":"2025-03-30T15:30:21.585Z","avatar_url":"https://github.com/gravitational.png","language":"Go","funding_links":[],"categories":["Go","others"],"sub_categories":[],"readme":"# Planet\n\n\u003e **Warning**\n\u003e Planet was archived 2023-07-01.\n\u003e\n\u003e Please see the [Gravity](https://github.com/gravitational/gravity) README.md for more information.\n\nPlanet is a containerized [Kubernetes](https://kubernetes.io/) environment. It is a self-containerizing Debian image with\nKubernetes services running inside. [Gravity](https://github.com/gravitational/gravity) is the\nrecommended way to deploy planet containers.\n\n## Installation\n\nPlanet images are automatically packaged by [Gravity](https://github.com/gravitational/gravity) - this is the easiest way to use and hack on planet.\nSee the development section below for details on how to build \u0026 hack on planet locally.\n\n## Details of Operation\n\nPlanet is a generic `container image` with executable entry points -- it is an archived [root filesystem](http://www.tldp.org/LDP/sag/html/root-fs.html)\nPlanet uses [libcontainer](https://github.com/opencontainers/runc/tree/master/libcontainer) to self-containerize.\nPlanet launches [systemd](http://www.freedesktop.org/wiki/Software/systemd/) inside the container as the main process which manages the\nlifetime of all the other services - [Kubernetes](https://github.com/kubernetes/kubernetes), among others.\nA `planet` binary is available within planet at `rootfs/usr/bin/planet`\n\nThat `planet` binary defines all entry points for this package. Here is a brief summary of the planet interface:\n```\nCommands:\n  help [\u003ccommand\u003e...]\n    Show help.\n\n  version\n    Print version information\n\n  start [\u003cflags\u003e]\n    Start Planet container\n\n  agent --leader-key=LEADER-KEY --election-key=ELECTION-KEY [\u003cflags\u003e]\n    Start Planet Agent\n\n  stop\n    Stop planet container\n\n  enter [\u003cflags\u003e] [\u003ccmd\u003e]\n    Enter running planet container\n\n  status [\u003cflags\u003e]\n    Query the planet cluster status\n\n  test --kube-addr=KUBE-ADDR [\u003cflags\u003e]\n    Run end-to-end tests on a running cluster\n\n  device add --data=DATA\n    Add new device to container\n\n  device remove --node=NODE\n    Remove device from container\n\n  etcd promote --name=NAME --initial-cluster=INITIAL-CLUSTER --initial-cluster-state=INITIAL-CLUSTER-STATE\n    Promote etcd running in proxy mode to a full member\n\n  leader pause\n    Pause leader election participation for this node\n\n  leader resume\n    Resume leader election participation for this node\n\n  leader view --leader-key=LEADER-KEY\n    Display the IP address of the active master\n```\n\n### Building (installing from source)\n\nPrerequisites for planet development are:\n - [docker](https://docker.com/) version \u003e= 1.8.2 is required. For development, you need to be\n   inside docker group and have the docker daemon running so the typical docker commands like `docker run`\n   do not require sudo permissions. Here's official [docker configuration](https://docs.docker.com/engine/articles/configuring/) reference.\n - (optional) [vagrant](https://www.vagrantup.com/) version \u003e= 1.7.4\n\nThe building process has been tested on `Debian 8` and `Ubuntu 15.04`.\n\nThe output of Planet build is a tarball that goes into `build/$TARGET`:\n\nFollowing are the most common targets:\n\n - `make production` - builds a planet image. These are the images used by Gravity.\n\nBuilding planet for the first time takes considerable amount of time since it has to download/build/configure\nquite a few dependencies:\n - Kubernetes\n - docker registry\n - [flannel](https://github.com/coreos/flannel\u003e)\n - [etcd](https://github.com/coreos/etcd)\n\nSubsequent builds are much faster because intermediate results are cached (in `build/assets` directory).\nTo clear and rebuild from scratch, run the `make clean`.\n\n### Upgrading dependencies\n\nIf your patch depends on new go packages, the dependencies must:\n\n- be licensed via Apache2 license\n- be approved by core Planet contributors ahead of time\n- be vendored via go modules\n\nNon-go (root fs) dependencies are encapsulated into their own build packages rooted\nat `build.assets`.\n\nFor instance, to upgrade etcd, edit build.assets/makefiles/etcd/etcd.mk:\n\n```Makefile\n...\nVER := v2.2.3\n...\n```\n\nThe version of Kubernetes is defined in the root makefile:\n\n```Makefile\n...\nKUBE_VER := v1.17.9\n...\n```\n\n## Planet Design\n\n### Planet Daemon\n\nOnce started, planet will continue running and waiting for the main systemd process to end.\nThe container environment is encapsulated by the [box](https://github.com/gravitational/planet/tree/master/lib/box) package.\nAs part of its operation, planet will also start a web server to enable remote process control.\nThe server listens on the unix socket (in a `/var/run/planet.sock` by default) and is capable of\nrunning commands inside the container on behalf of the client - this is how the commands `planet stop`\nand `planet enter` are implemented.\n\n### Planet Agent\n\nOne additional service is the agent. Agent is responsible for maintaining the health status\nof the cluster (obtainable with `planet status`) and implementing the master fail-over by\ndynamically promoting nodes to master should the active master fail.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgravitational%2Fplanet","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgravitational%2Fplanet","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgravitational%2Fplanet/lists"}