{"id":41363541,"url":"https://github.com/platform9/cctl","last_synced_at":"2026-01-23T08:10:33.336Z","repository":{"id":57500668,"uuid":"135640123","full_name":"platform9/cctl","owner":"platform9","description":null,"archived":false,"fork":false,"pushed_at":"2019-05-09T19:46:04.000Z","size":25997,"stargazers_count":47,"open_issues_count":47,"forks_count":8,"subscribers_count":42,"default_branch":"master","last_synced_at":"2024-06-20T10:19:25.141Z","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":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/platform9.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}},"created_at":"2018-05-31T22:11:30.000Z","updated_at":"2024-06-20T10:19:25.142Z","dependencies_parsed_at":"2022-08-30T20:10:24.523Z","dependency_job_id":null,"html_url":"https://github.com/platform9/cctl","commit_stats":null,"previous_names":["platform9/pf9-clusteradm"],"tags_count":14,"template":false,"template_full_name":null,"purl":"pkg:github/platform9/cctl","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/platform9%2Fcctl","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/platform9%2Fcctl/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/platform9%2Fcctl/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/platform9%2Fcctl/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/platform9","download_url":"https://codeload.github.com/platform9/cctl/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/platform9%2Fcctl/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28684015,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-23T05:48:07.525Z","status":"ssl_error","status_checked_at":"2026-01-23T05:48:07.129Z","response_time":59,"last_error":"SSL_read: 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":[],"created_at":"2026-01-23T08:10:32.644Z","updated_at":"2026-01-23T08:10:33.329Z","avatar_url":"https://github.com/platform9.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# cctl\n\ncctl is a cluster lifecycle management tool that adopts the Kubernetes community's Cluster API and uses nodeadm and etcdadm to easily deploy and maintain highly-available Kubernetes clusters in on-premises, even air-gapped environments.  \n\nAlong with [etcdadm](https://github.com/kubernetes-sigs/etcdadm) and [nodeadm](https://github.com/platform9/nodeadm), this tool makes up _klusterkit_, which lets you create, scale, backup and restore your air-gapped, on-premise Kubernetes cluster.\n\n## Features\n* Highly-available Kubernetes control plane and etcd\n* Deploy \u0026 manage secure etcd clusters\n* Works in air-gapped environments\n* Rolling upgrade support with rollback capability\n* Flannel (vxlan) CNI backend with plans to support other CNI backends\n* Backup \u0026 recovery of etcd clusters from quorum loss\n* Control plane protection from low memory/cpu situations\n\n## Installation\n```\ngo get -u github.com/platform9/cctl\n```\n## Usage\n```\n$GOPATH/bin/cctl [command]\n```\n### Available Commands: \n```\n  backup      Create an archive with the current cctl state and an etcd snapshot from the cluster.\n  bundle      Used to create cctl bundle\n  create      Used to create resources\n  delete      Used to delete resources\n  deploy      Used to deploy app to the cluster\n  get         Display one or more resources\n  help        Help about any command\n  migrate     Migrate the state file to the current version\n  recover     Used to recover the cluster\n  restore     Restore the cctl state and etcd snapshot from an archive.\n  snapshot    Used to get a snapshot\n  status      Used to get status of the cluster\n  upgrade     Used to upgrade the cluster\n  version     Print version information\n```\n\n## Getting Started \n\nIf your setup has internet connectivity, follow these steps. For an airgapped environment, please see documentation [wiki](https://github.com/platform9/cctl/wiki).\n\nOn all nodes that will make up your Kubernetes cluster, ensure that:\n- The docker container runtime is installed and the docker daemon is running.\n- The `etcdadm` binary is in the `/var/cache/ssh-provider/etcdadm/\u003cversion\u003e/` directory, and the `nodeadm` binary is in `/var/cache/ssh-provider/nodeadm/\u003cversion\u003e/` directory. To find the versions required by the `cctl` release you use, see the [releases](https://github.com/platform9/cctl/releases) page.\n\nFirst, create the credentials used for the cluster.\n```\n$GOPATH/bin/cctl create credential --user root --private-key ~/.ssh/id_rsa\n```\n\nThen, create a cluster object. Use `--help` to see a list of supported flags. \n```\n$GOPATH/bin/cctl create cluster --pod-network 192.168.0.0/16 --service-network 192.169.0.0/24\n```\n\nFinally, create the first machine in your cluster.\n```\n$GOPATH/bin/cctl create machine --ip $MACHINE_IP --role master\n```\n\n\n#### For detailed documentation see [wiki](https://github.com/platform9/cctl/wiki)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fplatform9%2Fcctl","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fplatform9%2Fcctl","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fplatform9%2Fcctl/lists"}