{"id":13523042,"url":"https://github.com/ripta/kubectl-plugins","last_synced_at":"2025-04-23T04:19:28.392Z","repository":{"id":57572224,"uuid":"158935768","full_name":"ripta/kubectl-plugins","owner":"ripta","description":"These be collection of kubectl plugins!","archived":false,"fork":false,"pushed_at":"2025-02-17T20:23:17.000Z","size":8748,"stargazers_count":2,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-23T04:19:22.926Z","etag":null,"topics":["golang","hyperbinary","kubectl","kubectl-plugins","kubernetes"],"latest_commit_sha":null,"homepage":null,"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/ripta.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-11-24T12:48:43.000Z","updated_at":"2025-02-17T20:22:19.000Z","dependencies_parsed_at":"2022-08-24T06:00:35.268Z","dependency_job_id":"4b50df6a-87fe-4ac6-900d-852ca8bfa5d6","html_url":"https://github.com/ripta/kubectl-plugins","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ripta%2Fkubectl-plugins","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ripta%2Fkubectl-plugins/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ripta%2Fkubectl-plugins/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ripta%2Fkubectl-plugins/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ripta","download_url":"https://codeload.github.com/ripta/kubectl-plugins/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250366758,"owners_count":21418778,"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","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":["golang","hyperbinary","kubectl","kubectl-plugins","kubernetes"],"created_at":"2024-08-01T06:00:54.953Z","updated_at":"2025-04-23T04:19:28.374Z","avatar_url":"https://github.com/ripta.png","language":"Go","funding_links":[],"categories":["kubectl Plugins"],"sub_categories":["Collection of kubectl plugins"],"readme":"\nkubectl 1.12 or newer is required. Place the plugin binaries in your `$PATH`,\nand kubectl plugin commands will Just Work™.\n\n\n## Installation\n\nTo install a specific plugin, e.g., `kubectl-dynaward`:\n\n```\ngo install github.com/ripta/kubectl-plugins/cmd/kubectl-dynaward\n```\n\nTo install **all plugins** as separate binaries:\n\n```\ngo install github.com/ripta/kubectl-plugin/cmd/...\n```\n\n\n## `kubectl-dynaward`\n\nDynaward (dynamic port-forward) is an experimental HTTP proxy that allows you\nto refer to `.cluster.local` addresses from outside of the cluster. It relies\non service names and performs its own mapping to pod names.\n\nThere is connection pooling, in that you will only incur lookup and connection\ntime for the first request to a hostname.\n\nRouting is based on `Service` names and ports:\n\n```\n❯ kubectl -n echo get po\nNAME                          READY   STATUS    RESTARTS   AGE\nechoserver-5ccf76f46b-kmtmg   1/1     Running   0          3d4h\nechoserver-5ccf76f46b-vqjtn   1/1     Running   0          3d4h\n\n❯ kubectl -n echo get svc\nNAME         TYPE        CLUSTER-IP     EXTERNAL-IP   PORT(S)   AGE\nechoserver   ClusterIP   10.52.21.129   \u003cnone\u003e        80/TCP    5y54d\n```\n\nStart up dynaward, which starts a proxy on `localhost:3128` by default:\n\n```\n❯ kubectl dynaward\n{\"time\":\"2024-03-04T01:20:50.628468-08:00\",\"level\":\"INFO\",\"msg\":\"Listening\",\"addr\":\"localhost:3128\"}\n```\n\nThen set your HTTP proxy (e.g., by setting `http_proxy` environment variable,\nor by explicitly configuring your HTTP client). On curl, this is `-x`, while on\napachebench, it's `-X`:\n\n```\n❯ curl -x localhost:3128 echoserver.echo.svc.cluster.local:80\n\n❯ ab -n 100 -c 5 -X localhost:3128 http://echoserver.echo.svc.cluster.local/\n```\n\nusing `ab` on macOS, you may need to use `127.0.0.1` instead of `localhost`.\n\nLimitations of dynaward:\n\n1. does not yet detect disappearing pods\n2. does not balance across multiple pods in a service\n3. no control over internals\n4. unaware of DNS, so it does not support pod A/AAAA records, pod hostnames, or\n   pod subdomains\n5. does not technically support custom cluster domains, but because dynaward\n   looks at the first two segments of the hostname, it doesn't actually\n   validate the cluster domain.\n6. currently HTTP-only, and does not yet support CONNECT.\n\n## Hyperbinary\n\nAll plugins are also available as a single hyperbinary that you can name\nwhatever you want. In the following example, it's installed as `$HYPERBINARY`:\n\n```\nHYPERBINARY=$HOME/bin/hypercmd\ngo install -o $HYPERBINARY github.com/ripta/kubectl-plugin/hyperbinary\n```\n\nOptionally, you can install symlinks to each command:\n\n```\nhypercmd --make-symlinks\n```\n\nEach symlink will be placed in the current working directory. Some help and\nexample pages may be wonky, e.g., examples will not be aware that it is in a\nhyperbinary.\n\n\n## Development\n\n### Updating Dependencies\n\n```\nmake update\nmake build\ngit add .\n```\n\n## Contributions\n\nAll contributions are welcome. Open a pull request, love 😘\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fripta%2Fkubectl-plugins","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fripta%2Fkubectl-plugins","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fripta%2Fkubectl-plugins/lists"}