{"id":44454169,"url":"https://github.com/onmetal/kolm","last_synced_at":"2026-02-12T17:08:40.437Z","repository":{"id":36949943,"uuid":"488542700","full_name":"onmetal/kolm","owner":"onmetal","description":"kolm - Kubernetes on your local machine","archived":false,"fork":false,"pushed_at":"2023-03-02T16:03:54.000Z","size":315,"stargazers_count":6,"open_issues_count":13,"forks_count":0,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-03-05T01:35:28.619Z","etag":null,"topics":["development","kubernetes","local"],"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/onmetal.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":"2022-05-04T10:22:20.000Z","updated_at":"2022-05-19T13:29:18.000Z","dependencies_parsed_at":"2023-02-11T06:00:58.797Z","dependency_job_id":null,"html_url":"https://github.com/onmetal/kolm","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/onmetal/kolm","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/onmetal%2Fkolm","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/onmetal%2Fkolm/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/onmetal%2Fkolm/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/onmetal%2Fkolm/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/onmetal","download_url":"https://codeload.github.com/onmetal/kolm/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/onmetal%2Fkolm/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29373841,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-12T08:51:36.827Z","status":"ssl_error","status_checked_at":"2026-02-12T08:51:26.849Z","response_time":55,"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":["development","kubernetes","local"],"created_at":"2026-02-12T17:08:40.316Z","updated_at":"2026-02-12T17:08:40.432Z","avatar_url":"https://github.com/onmetal.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# kolm - Kubernetes on your local machine\n\n[![Pull Request Code test](https://github.com/onmetal/kolm/actions/workflows/test.yml/badge.svg?branch=main)](https://github.com/onmetal/kolm/actions/workflows/test.yml)\n[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](https://makeapullrequest.com)\n[![GitHub License](https://img.shields.io/static/v1?label=License\u0026message=Apache-2.0\u0026color=blue\u0026style=flat-square)](LICENSE)\n\nkolm is a tool for running a Kubernetes 'cluster' consisting of an `etcd` and a `kube-apiserver` on your local\nmachine. The primary use of kolm is for testing aggregated api servers, as debugging aggregated api servers\nin-cluster is a complex and troublesome task.\n\n\u003e ⚠️ kolm is a *testing-only* tool. Practices employed in this tool are inherently unsafe and should\n\u003e never be used in production and is plumbing-only.\n\n## Installation\n\nTo install kolm, simply run\n\n```shell\ngo install github.com/onmetal/kolm/cmd/kolm@latest\n```\n\n\u003e 👆 For now, kolm also requires `etcd` and `kube-apiserver` to be on your path.\n\u003e This will change in the future with automated binary management but wasn't implemented\n\u003e in the initial scope.\n\n## Usage\n\n### Controlling your `api`s\n\nkolm has the primary type called `api`. An `api` is the previously mentioned 'cluster' with only a\n`kube-apiserver` and `etcd`.\n\nThe create such an `api`, simply run\n\n```shell\nkolm create api\n```\n\nThis will create an `api` called `kolm`. Your kubeconfig will be modified to contain an entry pointing\ntowards the new `kolm` cluster.\n\nOnce created, you can now start the `api`:\n\n```shell\nkolm start api\n```\n\nThis runs the `etcd` and `kube-apiserver`. Both are running until terminated or the user interrupts via\n`ctrl-c`.\n\nTo remove an `api`, simply run\n\n```shell\nkolm delete api\n```\n\nAll the previously described steps can also be done in a one-shot manner with:\n\n```shell\nkolm run api --rm\n```\n\n### Using your `api` with an aggregated api server\n\nIf you have an aggregated api server \u0026 its `APIService`s at hand, you can let them 'join' your `api`.\nTo do so, in a new terminal, first install your `APIService`s:\n\n```shell\nkolm apply apiservices \u003cpath-to-apiservices-directory\u003e\n```\n\nThen, start your api server with flags similar to the following:\n\n```shell\n\u003cmy-server\u003e \\\n  --etcd-servers=$(kolm get etcd-address) \\\n  --kubeconfig=$HOME/.kube/config \\\n  --authentication-kubeconfig=$HOME/.kube/config \\\n  --authorization-kubeconfig=$HOME/.kube/config \\\n  --tls-private-key-file $(kolm get host-key) \\\n  --tls-cert-file $(kolm get host-cert) \\\n  --secure-port=6443 \\\n  --feature-gates=APIPriorityAndFairness=false\n```\n\nAfter a short while, your api server should have joined the `api`.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fonmetal%2Fkolm","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fonmetal%2Fkolm","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fonmetal%2Fkolm/lists"}