{"id":13522004,"url":"https://github.com/bmcustodio/kubectl-topology","last_synced_at":"2025-04-23T04:36:46.189Z","repository":{"id":44587374,"uuid":"240540693","full_name":"bmcustodio/kubectl-topology","owner":"bmcustodio","description":"A 'kubectl' plugin that provides insight into the topology of a Kubernetes cluster.","archived":false,"fork":false,"pushed_at":"2023-01-14T14:04:10.000Z","size":39,"stargazers_count":35,"open_issues_count":3,"forks_count":8,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-02T08:35:55.222Z","etag":null,"topics":["krew","krew-plugin","kubectl","kubectl-plugin","kubectl-plugins","kubernetes"],"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/bmcustodio.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":"2020-02-14T15:35:56.000Z","updated_at":"2024-01-01T19:34:51.000Z","dependencies_parsed_at":"2023-02-09T19:45:30.874Z","dependency_job_id":null,"html_url":"https://github.com/bmcustodio/kubectl-topology","commit_stats":null,"previous_names":["bmcstdio/kubectl-topology"],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bmcustodio%2Fkubectl-topology","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bmcustodio%2Fkubectl-topology/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bmcustodio%2Fkubectl-topology/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bmcustodio%2Fkubectl-topology/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bmcustodio","download_url":"https://codeload.github.com/bmcustodio/kubectl-topology/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250372528,"owners_count":21419719,"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":["krew","krew-plugin","kubectl","kubectl-plugin","kubectl-plugins","kubernetes"],"created_at":"2024-08-01T06:00:40.872Z","updated_at":"2025-04-23T04:36:45.841Z","avatar_url":"https://github.com/bmcustodio.png","language":"Go","funding_links":[],"categories":["kubernetes","kubectl Plugins"],"sub_categories":["Installing plugins via awesome-kubectl-plugins"],"readme":"# kubectl-topology\n\nA `kubectl` plugin that provides insight into the topology of a Kubernetes cluster.\n\n![Release](https://img.shields.io/github/v/release/bmcustodio/kubectl-topology)\n![Downloads](https://img.shields.io/github/downloads/bmcustodio/kubectl-topology/total?color=green)\n[![Build](https://img.shields.io/travis/com/bmcustodio/kubectl-topology)](https://travis-ci.com/bmcustodio/kubectl-topology)\n![License](https://img.shields.io/github/license/bmcustodio/kubectl-topology)\n\n## Introduction\n\n`kubectl-topology` provides insight into the topology of a Kubernetes cluster.\nAt the moment, this essentially means the distribution of nodes and pods across regions and zones:\n\n```shell\n$ kubectl topology pod --all-namespaces\nNAMESPACE     NAME                                     NODE                          REGION         ZONE\nkube-system   kube-dns-5f886bf8d8-s7pcc                gke-gke-1-p-1-50120dfc-26gm   europe-west1   europe-west1-d\nkube-system   kube-dns-5f886bf8d8-zhm42                gke-gke-1-p-1-8e1077f6-17st   europe-west1   europe-west1-b\nkube-system   kube-dns-autoscaler-8687c64fc-d5jvm      gke-gke-1-p-1-8e1077f6-17st   europe-west1   europe-west1-b\nkube-system   kube-proxy-gke-gke-1-p-1-50120dfc-26gm   gke-gke-1-p-1-50120dfc-26gm   europe-west1   europe-west1-d\nkube-system   kube-proxy-gke-gke-1-p-1-7023cbca-cz4b   gke-gke-1-p-1-7023cbca-cz4b   europe-west1   europe-west1-c\nkube-system   kube-proxy-gke-gke-1-p-1-8e1077f6-17st   gke-gke-1-p-1-8e1077f6-17st   europe-west1   europe-west1-b\nkube-system   l7-default-backend-8f479dd9-dkspg        gke-gke-1-p-1-50120dfc-26gm   europe-west1   europe-west1-d\nkube-system   metrics-server-v0.3.1-5c6fbf777-z7jxq    gke-gke-1-p-1-8e1077f6-17st   europe-west1   europe-west1-b\nns-1          nginx                                    gke-gke-1-p-1-7023cbca-cz4b   europe-west1   europe-west1-c\n```\n\n`kubectl-topology` requires nodes to be adequately labeled with the\n\n```text\ntopology.kubernetes.io/{region,zone}\n```\n\nlabels, or with their deprecated (as of Kubernetes 1.17) equivalents,\n\n```\nfailure-domain.beta.kubernetes.io/{region,zone}\n```\n\n\n## Installation\n\n`kubectl-topology` can be installed using [Krew](https://github.com/kubernetes-sigs/krew):\n\n```shell\n$ kubectl krew install topology\n```\n\nAlternatively, `kubectl-topology` can be installed by running\n\n```shell\n$ go get github.com/bmcustodio/kubectl-topology/cmd/kubectl-topology\n```\n\nor by cloning this repository, running\n\n```shell\n$ make build\n```\n\nand copying `./bin/kubectl-topology` to a directory in your `$PATH`.\n\n## Usage \u0026 examples\n\n### Node topology\n\nTo list nodes by zone and region, run\n\n```shell\n$ kubectl topology node\nNAME                          REGION         ZONE\ngke-gke-1-p-1-50120dfc-26gm   europe-west1   europe-west1-d\ngke-gke-1-p-1-7023cbca-cz4b   europe-west1   europe-west1-c\ngke-gke-1-p-1-8e1077f6-17st   europe-west1   europe-west1-b\n```\n\nTo list nodes in a specific zone (e.g. `europe-west1-b`), run\n\n```shell\n$ kubectl topology node --zone europe-west1-b\nNAME                          REGION         ZONE\ngke-gke-1-p-1-8e1077f6-17st   europe-west1   europe-west1-b\n```\n\nTo list nodes in a specific region (e.g. `europe-west1`), run\n\n```shell\n$ kubectl topology node --region europe-west1\nNAME                          REGION         ZONE\ngke-gke-1-p-1-50120dfc-26gm   europe-west1   europe-west1-d\ngke-gke-1-p-1-7023cbca-cz4b   europe-west1   europe-west1-c\ngke-gke-1-p-1-8e1077f6-17st   europe-west1   europe-west1-b\n```\n\n**NOTE:** `--region` and `--zone` are mutually exclusive.\n\n### Pod topology\n\nTo list pods across all namespaces and the region and zones they are in, run\n\n```shell\n$ kubectl topology pod --all-namespaces\nNAMESPACE     NAME                                     NODE                          REGION         ZONE\nkube-system   kube-dns-5f886bf8d8-s7pcc                gke-gke-1-p-1-50120dfc-26gm   europe-west1   europe-west1-d\nkube-system   kube-dns-5f886bf8d8-zhm42                gke-gke-1-p-1-8e1077f6-17st   europe-west1   europe-west1-b\nkube-system   kube-dns-autoscaler-8687c64fc-d5jvm      gke-gke-1-p-1-8e1077f6-17st   europe-west1   europe-west1-b\nkube-system   kube-proxy-gke-gke-1-p-1-50120dfc-26gm   gke-gke-1-p-1-50120dfc-26gm   europe-west1   europe-west1-d\nkube-system   kube-proxy-gke-gke-1-p-1-7023cbca-cz4b   gke-gke-1-p-1-7023cbca-cz4b   europe-west1   europe-west1-c\nkube-system   kube-proxy-gke-gke-1-p-1-8e1077f6-17st   gke-gke-1-p-1-8e1077f6-17st   europe-west1   europe-west1-b\nkube-system   l7-default-backend-8f479dd9-dkspg        gke-gke-1-p-1-50120dfc-26gm   europe-west1   europe-west1-d\nkube-system   metrics-server-v0.3.1-5c6fbf777-z7jxq    gke-gke-1-p-1-8e1077f6-17st   europe-west1   europe-west1-b\nns-1          nginx                                    gke-gke-1-p-1-7023cbca-cz4b   europe-west1   europe-west1-c\n```\n\nTo list pods in the `europe-west1-b` zone across all namespaces, run\n\n```shell\n$ kubectl topology pod --all-namespaces --zone europe-west1-b\nNAMESPACE     NAME                                     NODE                          REGION         ZONE\nkube-system   kube-dns-5f886bf8d8-zhm42                gke-gke-1-p-1-8e1077f6-17st   europe-west1   europe-west1-b\nkube-system   kube-dns-autoscaler-8687c64fc-d5jvm      gke-gke-1-p-1-8e1077f6-17st   europe-west1   europe-west1-b\nkube-system   kube-proxy-gke-gke-1-p-1-8e1077f6-17st   gke-gke-1-p-1-8e1077f6-17st   europe-west1   europe-west1-b\nkube-system   metrics-server-v0.3.1-5c6fbf777-z7jxq    gke-gke-1-p-1-8e1077f6-17st   europe-west1   europe-west1-b\n```\n\nTo list pods in the `europe-west1` region across all namespaces, run\n\n```shell\n$ kubectl topology pod --all-namespaces --region europe-west1\nNAMESPACE     NAME                                     NODE                          REGION         ZONE\nkube-system   kube-dns-5f886bf8d8-s7pcc                gke-gke-1-p-1-50120dfc-26gm   europe-west1   europe-west1-d\nkube-system   kube-dns-5f886bf8d8-zhm42                gke-gke-1-p-1-8e1077f6-17st   europe-west1   europe-west1-b\nkube-system   kube-dns-autoscaler-8687c64fc-d5jvm      gke-gke-1-p-1-8e1077f6-17st   europe-west1   europe-west1-b\nkube-system   kube-proxy-gke-gke-1-p-1-50120dfc-26gm   gke-gke-1-p-1-50120dfc-26gm   europe-west1   europe-west1-d\nkube-system   kube-proxy-gke-gke-1-p-1-7023cbca-cz4b   gke-gke-1-p-1-7023cbca-cz4b   europe-west1   europe-west1-c\nkube-system   kube-proxy-gke-gke-1-p-1-8e1077f6-17st   gke-gke-1-p-1-8e1077f6-17st   europe-west1   europe-west1-b\nkube-system   l7-default-backend-8f479dd9-dkspg        gke-gke-1-p-1-50120dfc-26gm   europe-west1   europe-west1-d\nkube-system   metrics-server-v0.3.1-5c6fbf777-z7jxq    gke-gke-1-p-1-8e1077f6-17st   europe-west1   europe-west1-b\nns-1          nginx                                    gke-gke-1-p-1-7023cbca-cz4b   europe-west1   europe-west1-c\n```\n\nTo list pods in the `europe-west1-c` zone and in `ns-1` only, run\n\n```shell\n$ kubectl topology pod --namespace ns-1 --zone europe-west1\nNAMESPACE   NAME    NODE                          REGION         ZONE\nns-1        nginx   gke-gke-1-p-1-7023cbca-cz4b   europe-west1   europe-west1-c\n```\n\n**NOTE:** `--region` and `--zone` are mutually exclusive.\n\n## License\n\nCopyright 2020 bmcustodio\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbmcustodio%2Fkubectl-topology","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbmcustodio%2Fkubectl-topology","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbmcustodio%2Fkubectl-topology/lists"}