{"id":37180467,"url":"https://github.com/amimof/multikube","last_synced_at":"2026-01-14T20:58:53.153Z","repository":{"id":85981274,"uuid":"205858133","full_name":"amimof/multikube","owner":"amimof","description":"A modern HTTP reverse proxy for kube-apiserver","archived":false,"fork":false,"pushed_at":"2020-05-13T18:30:42.000Z","size":11058,"stargazers_count":20,"open_issues_count":2,"forks_count":4,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-11-17T12:04:27.783Z","etag":null,"topics":["cloud","containers","docker","golang","jwt","kube-apiserver","kubectl","kubernetes","oidc"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/amimof.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-09-02T13:00:31.000Z","updated_at":"2025-08-27T14:01:03.000Z","dependencies_parsed_at":null,"dependency_job_id":"c137c6e8-d00e-4c3f-846f-10b6f07ea0d7","html_url":"https://github.com/amimof/multikube","commit_stats":null,"previous_names":[],"tags_count":11,"template":false,"template_full_name":null,"purl":"pkg:github/amimof/multikube","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/amimof%2Fmultikube","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/amimof%2Fmultikube/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/amimof%2Fmultikube/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/amimof%2Fmultikube/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/amimof","download_url":"https://codeload.github.com/amimof/multikube/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/amimof%2Fmultikube/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28434500,"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":["cloud","containers","docker","golang","jwt","kube-apiserver","kubectl","kubernetes","oidc"],"created_at":"2026-01-14T20:58:52.408Z","updated_at":"2026-01-14T20:58:53.145Z","avatar_url":"https://github.com/amimof.png","language":"Go","readme":"# multikube\n[![Build Status](https://travis-ci.org/amimof/multikube.svg?branch=master)](https://travis-ci.org/amimof/multikube) [![huego](https://godoc.org/github.com/amimof/multikube?status.svg)](https://godoc.org/github.com/amimof/multikube) [![Go Report Card](https://goreportcard.com/badge/github.com/amimof/multikube)](https://goreportcard.com/report/github.com/amimof/multikube) [![codecov](https://codecov.io/gh/amimof/multikube/branch/master/graph/badge.svg)](https://codecov.io/gh/amimof/multikube)\n\nMultikube is a modern HTTP reverse proxy for [Kubernetes](http://kubernetes.io/) API server. \n\n## Features\n* Validates JSON Web Tokens (JWT) \n* OIDC (OpenID Connect) provider support\n* Off-loads API calls by re-using connections and serving data from cache\n* Split network security domains\n* Total transparency means compatibility with any kubectl command\n* Minimal configuration required\n* Audit logs \n* Prometheus metrics\n* No database or dependencies makes scaling multikube a breeze \n* Configured with a kubeconfig\n\n## Overview\n\nA client, wether it is kubectl, cURL or a browser, may make requests to Multikube as if it was a Kubernetes API. Multikube will validate the client access token and intelligently route the request to an upstream API-server, impersonating that user. The client can target a cluster, or *context*, using either a URL path or an HTTP header. \n\nMultikube communicates with Kubernetes clusters over separate TCP connections than those established from clients to Multikube. This means that connections can be re-used, shared and cached for better performance. It also means that client connections are never used to communicate with the Kubernetes API. \n\nAs an example, kubectl uses a context that is configured to use the server `https://127.0.0.1:6443/k8s-dev-cluster` which happens to be Multikube running locally. Note the leading path in the URL which is the context name. Multikube will try to match that path with a context in it's kubeconfig. All traffic from kubectl will be routed through Multikube to the apiserver k8s-dev-cluster. \n\n## Getting started\n\nDownload the latest binary from the [release page](https://github.com/amimof/multikube/releases) for your target platform. Below is for Linux.\n```\ncurl -LOs https://github.com/amimof/multikube/releases/latest/download/multikube-linux-amd64\n``` \n\nOr use the official Docker scratch image\n```\ndocker pull amimof/multikube:latest\n```\n\n## Configuration\n\nYou configure Multikube on the command line. There is no configuration file. However Multikube needs a [kubeconfig](https://kubernetes.io/docs/concepts/configuration/organize-cluster-access-kubeconfig/) in order to communicate with upstream API servers. The kubeconfig is where you will configure the clusters (contexts) that Multikube will use for routing. \n\n## Examples\n\nExamples are found under [docs/examples](https://github.com/amimof/multikube/blob/master/docs/examples)\n\n## Contributing\n\nMultikube has not yet exited alpha. It is still under heavy development. All help in any form is highly appreciated and your are welcome participate in developing together. To contribute submit a Pull Request. If you want to provide feedback, open up a Github Issue or contact me personally.","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Famimof%2Fmultikube","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Famimof%2Fmultikube","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Famimof%2Fmultikube/lists"}