{"id":37172711,"url":"https://github.com/moshloop/platform-cli","last_synced_at":"2026-01-14T20:12:01.314Z","repository":{"id":57506247,"uuid":"228610958","full_name":"moshloop/platform-cli","owner":"moshloop","description":null,"archived":false,"fork":true,"pushed_at":"2023-03-29T23:32:17.000Z","size":2369,"stargazers_count":0,"open_issues_count":1,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-08-15T00:50:54.856Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Go","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"flanksource/karina","license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/moshloop.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":"2019-12-17T12:23:37.000Z","updated_at":"2020-06-05T08:28:30.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/moshloop/platform-cli","commit_stats":null,"previous_names":[],"tags_count":24,"template":false,"template_full_name":null,"purl":"pkg:github/moshloop/platform-cli","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/moshloop%2Fplatform-cli","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/moshloop%2Fplatform-cli/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/moshloop%2Fplatform-cli/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/moshloop%2Fplatform-cli/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/moshloop","download_url":"https://codeload.github.com/moshloop/platform-cli/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/moshloop%2Fplatform-cli/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28434418,"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":[],"created_at":"2026-01-14T20:12:00.447Z","updated_at":"2026-01-14T20:12:01.303Z","avatar_url":"https://github.com/moshloop.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n\n\u003ch1 align=\"center\"\u003e\u003cimg src=\"https://github.com/flanksource/karina/raw/master/docs/img/logo.png\"\u003e\u003c/i\u003e\u003c/h1\u003e\n  \u003cp align=\"center\"\u003eKubernetes Platform Toolkit\u003c/p\u003e\n\u003cp align=\"center\"\u003e\n\u003ca href=\"https://circleci.com/gh/flanksource/karina\"\u003e\u003cimg src=\"https://circleci.com/gh/flanksource/karina.svg?style=svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://goreportcard.com/report/github.com/flanksource/karina\"\u003e\u003cimg src=\"https://goreportcard.com/badge/github.com/flanksource/karina\"\u003e\u003c/a\u003e\n\u003cimg src=\"https://img.shields.io/badge/K8S-1.15%20%7C%201.16-lightgrey.svg\"/\u003e\n\u003cimg src=\"https://img.shields.io/badge/Infra-vSphere%20%7C%20Kind-lightgrey.svg\"/\u003e\n\u003cimg src=\"https://img.shields.io/github/license/flanksource/karina.svg?style=flat-square\"/\u003e\n\u003ca href=\"https://karina.docs.flanksource.com\"\u003e \u003cimg src=\"https://img.shields.io/badge/☰-Docs-lightgrey.svg\"/\u003e \u003c/a\u003e\n\u003c/p\u003e\n\n---\n\n**karina** is a toolkit for building and operating kubernetes based, multi-cluster platforms. It includes the following high level functions:\n\n* **Provisioning** clusters on vSphere and Kind\n  * `karina provision`\n* **Production Runtime**\n  * `karina deploy`\n* **Testing Framework** for testing the health of a cluster and the underlying runtime.\n  * `karina test`\n  * `karina conformance`\n* **Rolling Update and Restart** operations\n  * `karina rolling restart`\n  * `karina rolling update`\n* **API/CLI Wrappers** for day-2 operations (backup, restore, configuration) of runtime components including Harbor, Postgres, Consul, Vault and NSX-T/NCP\n  * `karina snapshot` dumps specs (excluding secrets), events and logs for troubleshooting\n  * `karina logs` exports logs from ElasticSearch using the paging API\n  * `karina nsx set-logs` updates runtime logging levels of all nsx components\n  * `karina ca generate` create CA key/cert pair suitable for bootstrapping\n  * `karina kubeconfig` generates kuebconfigs via the master CA or for use with OIDC based login\n  * `karina exec` executes a command in every matching pod\n  * `karina exec-node` executes a command on every matching node\n  * `karina dns` updates DNS\n  * `karina db`\n  * `karina consul`\n  * `karina backup/restore`\n\n\n### Getting Started\nTo get started provisioning see the quickstart's for [Kind](https://karina.docs.flanksource.com/admin-guide/provisioning/kind.md) and [vSphere](https://karina.docs.flanksource.com/admin-guide/provisioning/vsphere.md) \u003cbr\u003e\n\n### Production Runtime\n\n* **Docker Registry** (Harbor)\n* **Certificate Management** (Cert-Manager)\n* **Secret Management** (Sealed Secrets, Vault)\n* **Monitoring** (Grafana, Prometheus, Thanos)\n* **Logging** (ELK)\n* **Authentication** (Dex)\n* **Authorization \u0026 Policy Enforcement** (OPA)\n* **Multi-Tenancy** (Namespace Configurator, Cluster Quotas)\n* **Database as a Service** (Postgres)\n\n\n### Principles\n\n#### Easy for the operator\n\n#### Batteries Included\n\nFunctions are integrated but independant, After deploying the production runtime, the testing framework will test and verify, but it can also be used to to components deployed by other mechanisms. Likewise you can provision and deploy, or provision by other means and then deploy the runtime.\n\n#### Escape Hatches\n\nKarina is named after the [Carina Constellation](https://en.wikipedia.org/wiki/Carina_(constellation)) - latin for the hull or keel of a ship.\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmoshloop%2Fplatform-cli","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmoshloop%2Fplatform-cli","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmoshloop%2Fplatform-cli/lists"}