{"id":42129703,"url":"https://github.com/mkenney/k8s-proxy","last_synced_at":"2026-01-26T15:32:36.360Z","repository":{"id":139001500,"uuid":"127684758","full_name":"mkenney/k8s-proxy","owner":"mkenney","description":"A simple, dynamic HTTP ingress service for Kubernetes development environments.","archived":false,"fork":false,"pushed_at":"2018-10-13T05:46:22.000Z","size":52182,"stargazers_count":0,"open_issues_count":1,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-04-22T19:19:05.066Z","etag":null,"topics":["go","golang","ingress","k8s","k8s-proxy","kubernetes","proxy","proxy-service"],"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/mkenney.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-04-02T01:01:46.000Z","updated_at":"2024-06-19T08:03:18.405Z","dependencies_parsed_at":"2023-10-03T23:55:52.032Z","dependency_job_id":null,"html_url":"https://github.com/mkenney/k8s-proxy","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/mkenney/k8s-proxy","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mkenney%2Fk8s-proxy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mkenney%2Fk8s-proxy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mkenney%2Fk8s-proxy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mkenney%2Fk8s-proxy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mkenney","download_url":"https://codeload.github.com/mkenney/k8s-proxy/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mkenney%2Fk8s-proxy/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28781484,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-26T13:55:28.044Z","status":"ssl_error","status_checked_at":"2026-01-26T13:55:26.068Z","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":["go","golang","ingress","k8s","k8s-proxy","kubernetes","proxy","proxy-service"],"created_at":"2026-01-26T15:32:36.266Z","updated_at":"2026-01-26T15:32:36.351Z","avatar_url":"https://github.com/mkenney.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# k8s-proxy\n\n\u003cp align=\"center\"\u003e\n\t\u003ca href=\"https://github.com/mkenney/k8s-proxy/blob/master/LICENSE\"\u003e\u003cimg src=\"https://img.shields.io/github/license/mkenney/k8s-proxy.svg\" alt=\"MIT License\"\u003e\u003c/a\u003e\n\t\u003ca href=\"https://github.com/mkenney/software-guides/blob/master/STABILITY-BADGES.md#alpha\"\u003e\u003cimg src=\"https://img.shields.io/badge/stability-alpha-f4d03f.svg\" alt=\"Beta\"\u003e\u003c/a\u003e\n\t\u003ca href=\"https://travis-ci.org/mkenney/k8s-proxy\"\u003e\u003cimg src=\"https://travis-ci.org/mkenney/k8s-proxy.svg?branch=master\" alt=\"Build status\"\u003e\u003c/a\u003e\n\t\u003ca href=\"https://codecov.io/gh/mkenney/k8s-proxy\"\u003e\u003cimg src=\"https://img.shields.io/codecov/c/github/mkenney/k8s-proxy/master.svg\" alt=\"Coverage status\"\u003e\u003c/a\u003e\n\t\u003ca href=\"https://goreportcard.com/report/github.com/mkenney/k8s-proxy\"\u003e\u003cimg src=\"https://goreportcard.com/badge/github.com/mkenney/k8s-proxy\" alt=\"Go Report Card\"\u003e\u003c/a\u003e\n\t\u003ca href=\"https://github.com/mkenney/k8s-proxy/issues\"\u003e\u003cimg src=\"https://img.shields.io/github/issues-raw/mkenney/k8s-proxy.svg\" alt=\"Github issues\"\u003e\u003c/a\u003e\n\t\u003ca href=\"https://github.com/mkenney/k8s-proxy/pulls\"\u003e\u003cimg src=\"https://img.shields.io/github/issues-pr/mkenney/k8s-proxy.svg\" alt=\"Github pull requests\"\u003e\u003c/a\u003e\n\t\u003ca href=\"https://godoc.org/github.com/mkenney/k8s-proxy\"\u003e\u003cimg src=\"https://godoc.org/github.com/mkenney/k8s-proxy?status.svg\" alt=\"GoDoc\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\nThis project provides a simple HTTP proxy service for easily working with multiple web services in a [Kubernetes](https://kubernetes.io/) development environment. A [Docker image](https://hub.docker.com/r/mkenney/k8s-proxy/) is available.\n\n## Overview\n\nThe `k8s-proxy` service will serve all traffic on ports `80` and `443`. SSL traffic on port `443` is encrypted using a self-signed certificate, with all of the associated issues that brings. The exposed ports are configurable in the [`k8s-proxy.yml`](https://github.com/mkenney/k8s-proxy/blob/master/k8s-proxy.yml) file. You must set both the exposed ports in the deployment and service, as well as the `K8S_PROXY_PORT` and `K8S_PROXY_SSLPORT` environment variables in the deployment. Exposing the ports allows them to receive traffic and defining the environment variables tells the proxy service which ports to listen on.\n\nThe proxy will route traffic by matching the domain being requested to a service running in the cluster. By default, this is done based on the service name. For example a request for `http://service1.any.host.here` would be routed to a service named 'service1', if it exists.\n\nThat is convenient but can be cumbersom in practice. You can also map a subdomain to a particular service by applying labels to the service. All labels are optional:\n```yaml\nkind: Service\n    apiVersion: v1\n    metadata:\n        name: ui_backend_service\n        labels:\n            - k8s-proxy-scheme: https     # HTTP scheme to use when addressing this service.\n            - k8s-proxy-port:   30021     # Port on the service to send traffic to.\n            - k8s-proxy-domain: api.myapp # Subdomain to map this service to.\n```\nUsing labels you can be sure that traffic to `http://api.myapp.any.host.here` and `https://api.myapp.any.host.here` (ssl) will be routed to your service.\n\n## Prerequisites\n\nA properly configured and accessible Kubernetes environment and the `start.sh` script expects the `kubectl` executable to be available in the `$PATH`. Your kube context should be set for the intended environment before executing the script.\n\n## Getting started\n\nStart or restart the proxy service. Listens on ports `80` and `443`.\n```\n./start.sh\n```\n\nOr manually apply the deployment and service.\n```\nkubectl apply -f k8s-proxy.yml\n```\n\nPorts can be configured in the k8s-proxy.yml deployment. You must set both the container ports and the `K8S_PROXY_PORT` and `K8S_PROXY_SSL_PORT` environment variables (which inform the proxy executable which ports to bind to).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmkenney%2Fk8s-proxy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmkenney%2Fk8s-proxy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmkenney%2Fk8s-proxy/lists"}