{"id":25403165,"url":"https://github.com/kowalczykbartek/bindlessk8sforwarder","last_synced_at":"2026-05-20T05:04:48.384Z","repository":{"id":277702794,"uuid":"933248384","full_name":"KowalczykBartek/bindlessk8sforwarder","owner":"KowalczykBartek","description":"basically kube-forwarder written in java ","archived":false,"fork":false,"pushed_at":"2025-02-15T14:14:59.000Z","size":197,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-07-03T08:47:34.993Z","etag":null,"topics":["bindless","java","k8s","kubernetes","port-forwarding"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/KowalczykBartek.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2025-02-15T14:10:16.000Z","updated_at":"2025-02-15T14:34:24.000Z","dependencies_parsed_at":"2025-02-15T15:25:36.622Z","dependency_job_id":"2593c33c-3a99-4549-97f7-2c6db2640363","html_url":"https://github.com/KowalczykBartek/bindlessk8sforwarder","commit_stats":null,"previous_names":["kowalczykbartek/bindlessk8sforwarder"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/KowalczykBartek/bindlessk8sforwarder","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KowalczykBartek%2Fbindlessk8sforwarder","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KowalczykBartek%2Fbindlessk8sforwarder/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KowalczykBartek%2Fbindlessk8sforwarder/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KowalczykBartek%2Fbindlessk8sforwarder/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/KowalczykBartek","download_url":"https://codeload.github.com/KowalczykBartek/bindlessk8sforwarder/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KowalczykBartek%2Fbindlessk8sforwarder/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":274560347,"owners_count":25308100,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-10T02:00:12.551Z","response_time":83,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["bindless","java","k8s","kubernetes","port-forwarding"],"created_at":"2025-02-16T02:28:10.297Z","updated_at":"2026-05-20T05:04:48.355Z","avatar_url":"https://github.com/KowalczykBartek.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"## about\nIt's a toy implementation of bindless port-forwarder written in Java (it even kinda works).\nBindless means, there is no socket bound on host's side, we are directly pushing to websocket connected to k8s api.\nBecause of that, single port (in our case: 80) can handle multiple request to different hosts (application in k8s).\n\n## how to build\nWe need JDK 21+\n```\nexport JAVA_HOME=/Users/.../jdk-21.0.1+12/Contents/Home\n./gradlew shadowJar   \n```\n\nLet's run\n```\nsudo $JAVA_HOME/bin/java -Dkubeconfig=/Users/kubeconfigs/kubeconfig.yaml -jar build/libs/bindlessk8sforwarder.jar\n```\n\nto forward traffic to appropriate POD. Sudo is required because of http is running on port 80.\nWhen forwarder is running, you can curl using kube-dns entries (curl -X GET http://your-app.namespace)\n\nTo make forwarder working, you need to add necessary entries in /etc/hosts. To handle following request:\n```\ncurl http://test-app1.namespace1/some/resource\n```\nadd\n```\n127.0.0.1 test-app1.namespace1\n```\nin /etc/hosts\n\n## how it works\nbasically that is how it works\n![howitworks](howitworks.png)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkowalczykbartek%2Fbindlessk8sforwarder","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkowalczykbartek%2Fbindlessk8sforwarder","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkowalczykbartek%2Fbindlessk8sforwarder/lists"}