All Projects → AATHITH → kubesort

AATHITH / kubesort

Licence: other
`KUBESORT` simplified sorting for kubectl

Programming Languages

shell
77523 projects

Projects that are alternatives of or similar to kubesort

picsort
Organize your photos by date in one click 👏
Stars: ✭ 22 (-48.84%)
Mutual labels:  sorting
node-object-hash
Node.js object hash library with properties/arrays sorting to provide constant hashes. It also provides a method that returns sorted object strings that can be used for object comparison without hashes.
Stars: ✭ 69 (+60.47%)
Mutual labels:  sorting
Data-Structures-and-Algorithms
Implementation of various Data Structures and algorithms - Linked List, Stacks, Queues, Binary Search Tree, AVL tree,Red Black Trees, Trie, Graph Algorithms, Sorting Algorithms, Greedy Algorithms, Dynamic Programming, Segment Trees etc.
Stars: ✭ 144 (+234.88%)
Mutual labels:  sorting
kubectl-iexec
Kubectl plugin to interactively exec into a pod
Stars: ✭ 102 (+137.21%)
Mutual labels:  kubectl
DynamicExpressions
A dynamic expression builder that can be used to dynamically sort and/or filter LINQ/EF queries
Stars: ✭ 29 (-32.56%)
Mutual labels:  sorting
kube-dump
Backup a Kubernetes cluster as a yaml manifest
Stars: ✭ 142 (+230.23%)
Mutual labels:  kubectl
priora
An Object Prioritization Utility for Ruby
Stars: ✭ 30 (-30.23%)
Mutual labels:  sorting
openebsctl
`openebsctl` is a kubectl plugin to manage OpenEBS storage components.
Stars: ✭ 23 (-46.51%)
Mutual labels:  kubectl
kubectl-gopass
Plugin for kubectl to support reading and writing secrets directly from/to gopass
Stars: ✭ 28 (-34.88%)
Mutual labels:  kubectl
kui
A hybrid command-line/UI development experience for cloud-native development
Stars: ✭ 2,137 (+4869.77%)
Mutual labels:  kubectl
big-sorter
Java library that sorts very large files of records by splitting into smaller sorted files and merging
Stars: ✭ 49 (+13.95%)
Mutual labels:  sorting
ki
Manage multiple kubeconfigs easily
Stars: ✭ 34 (-20.93%)
Mutual labels:  kubectl
admission-webhook-example-with-openfaas
Use OpenFaaS functions as Kubernetes Validating Admission Webhook
Stars: ✭ 24 (-44.19%)
Mutual labels:  kubectl
JRCLUST
JRCLUST
Stars: ✭ 32 (-25.58%)
Mutual labels:  sorting
kube-s
A lightweight CLI for quickly finding specific k8s resources (by pattern matching Names) across all clusters available to kubectl.
Stars: ✭ 23 (-46.51%)
Mutual labels:  kubectl
JqueryDataTablesServerSideDemo
Jquery DataTables with Asp.Net Core server side multi column sorting and searching Demo Project.
Stars: ✭ 43 (+0%)
Mutual labels:  sorting
refmt
Reformat HCL ⇄ JSON ⇄ YAML.
Stars: ✭ 19 (-55.81%)
Mutual labels:  kubectl
ember-sort-filter-table
A sortable/searchable table addon for ember cli
Stars: ✭ 13 (-69.77%)
Mutual labels:  sorting
kubectl-images
🕸 Show container images used in the cluster.
Stars: ✭ 153 (+255.81%)
Mutual labels:  kubectl
alvito
Alvito - An Algorithm Visualization Tool for Python
Stars: ✭ 52 (+20.93%)
Mutual labels:  sorting

What is this KUBESORT?

This a Bash Script that will help you forget the kubectl's default, difficult to remember, sorting feature by making it simpler.
kubectl has its own --sort-by=json-path feature for sorting but kubesort will makes the sorting easier.

Why you need KUBESORT?

  1. It's simple and beginner-friendly.
  2. Helps you sort the results from kubectl easily.
  3. You don't have to type the long command kubectl --sort-by=.status.containerStatuses[0].restartcount get po to sort the pod by their RESTART count, just type kubesort in front of your kubectl get cmd like this kubesort kubectl get po restart, that's it.

2 Step Installation:

Linux: Since kubesort is written in Bash, KUBESORT is expected to run on any POSIX environment that has Bash installed.

  1. Download the kubesort scripts:
    git clone https://github.com/aathith/kubesort /usr/local/bin/kubesort
  2. Make the script executable:
    chmod +x /usr/local/bin/kubesort

Usage:

SYNTAX: kubesort kubectl get option1 option2 option3
AVAILABLE OPTIONS:
        option1:
        (po/pod/pods), (deployments/deployment/deploy), (svc/service/services)

                option2(po/pod/pods):
                name, status, restarts, age, ip, node

                option2(deployments/deployment/deploy):
                name, uptodate, available, age, containers, images

                option2(svc/service/services):
                name, type, clusterIP, externalIP, ports, age

                        option3: namespace-name or all

Samples

Sorting Pod

root@k8-master-01:~/kubesort# kubesort kubectl get po restarts kube-system
NAME                                                     READY   STATUS    RESTARTS   AGE
etcd-k8-master-01                                        1/1     Running   0          58d
tiller-deploy-688ddc6c9-h6424                            1/1     Running   0          26d
kube-apiserver-k8-master-01                              1/1     Running   0          58d
kube-controller-manager-k8-master-01                     1/1     Running   1          58d
kube-scheduler-k8-master-01                              1/1     Running   1          58d
kube-proxy-sclt9                                         1/1     Running   2          56d
kube-flannel-ds-amd64-l579g                              1/1     Running   2          56d
kube-proxy-l592g                                         1/1     Running   7          93d
coredns-5c98db65d4-tw75g                                 1/1     Running   8          60d
kube-flannel-ds-amd64-8krvm                              1/1     Running   9          93d
metricbeat-5rcb4                                         1/1     Running   13         88d
kube-proxy-mlnrc                                         1/1     Running   13         93d
kube-flannel-ds-amd64-lbxbr                              1/1     Running   14         93d
filebeat-9hh95                                           1/1     Running   55         23d

root@k8-master-01:~/kubesort# kubesort kubectl get po restart kubernetes-dashboard
NAME                                         READY   STATUS    RESTARTS   AGE
dashboard-metrics-scraper-6c554969c6-8x2fc   1/1     Running   0          40d
kubernetes-dashboard-56c5f95c6b-8c89b        1/1     Running   3          40d

root@k8-master-01:~/kubesort# kubesort kubectl get po age all
NAMESPACE              NAME                                                     READY   STATUS    RESTARTS   AGE
kube-system            kube-proxy-l592g                                         1/1     Running   7          93d
kube-system            metricbeat-5rcb4                                         1/1     Running   13         88d
kube-system            etcd-k8-master-01                                        1/1     Running   0          58d
kube-system            coredns-5c98db65d4-tw75g                                 1/1     Running   8          60d
kubernetes-dashboard   kubernetes-dashboard-56c5f95c6b-8c89b                    1/1     Running   3          40d
kubernetes-dashboard   dashboard-metrics-scraper-6c554969c6-8x2fc               1/1     Running   0          40d
my-prometheus          prometheus-operator-5bcd9f9d5c-9kwvg                     1/1     Running   0          35d
kube-system            filebeat-7wg6k                                           1/1     Running   55         23d
default                prometheus-784586f976-fq6q8                              1/1     Running   0          9d
dev                    hello-app-5f9d7479bd-kc4kr                               1/1     Running   0          2d6h
olm                    catalog-operator-5bdf7fc7b-52qhw                         1/1     Running   0          5h21m

root@k8-master-01:~/kubesort# kubesort kubectl get po name dev
NAME                         READY   STATUS    RESTARTS   AGE
hello-app-5f9d7479bd-5mzmc   1/1     Running   0          2d6h
hello-app-5f9d7479bd-db9s2   1/1     Running   0          2d6h
hello-app-5f9d7479bd-kc4kr   1/1     Running   0          2d6h

Sorting Deployments

root@k8-master-01:~# kubesort kubectl get deployment name
NAME              READY   UP-TO-DATE   AVAILABLE   AGE    CONTAINERS        IMAGES                                      SELECTOR
alert-checker     1/1     1            1           155d   alert-checker     aathith/testing:alert-checker               app=alert-checker
prom-trail        1/1     1            1           113d   prom-trail        aathith/testing:prometheus-url-annotation   app=prom-trail
prometheus        1/1     1            1           115d   prometheus        prom/prometheus                             app=prometheus-server

root@k8-master-01:~# kubesort kubectl get deployment name all
NAMESPACE              NAME                                    READY   UP-TO-DATE   AVAILABLE   AGE    CONTAINERS                              IMAGES                                                      SELECTOR
default                alert-checker                           1/1     1            1           155d   alert-checker                           aathith/testing:alert-checker                               app=alert-checker
kube-system            coredns                                 2/2     2            2           169d   coredns                                 k8s.gcr.io/coredns:1.6.5                                    k8s-app=kube-dns
kubernetes-dashboard   dashboard-metrics-scraper               1/1     1            1           57d    dashboard-metrics-scraper               kubernetesui/metrics-scraper:v1.0.1                         k8s-app=dashboard-metrics-scraper
kube-system            digitalocean-cloud-controller-manager   1/1     1            1           168d   digitalocean-cloud-controller-manager   digitalocean/digitalocean-cloud-controller-manager:v0.1.6   app=digitalocean-cloud-controller-manager
kubernetes-dashboard   kubernetes-dashboard                    1/1     1            1           57d    kubernetes-dashboard                    kubernetesui/dashboard:v2.0.0-beta5                         k8s-app=kubernetes-dashboard
kube-system            metrics-server                          1/1     1            1           151d   metrics-server                          k8s.gcr.io/metrics-server-amd64:v0.3.6                      k8s-app=metrics-server
nginx-ingress          nginx-ingress                           1/1     1            1           57d    nginx-ingress                           nginx/nginx-ingress:1.6.3                                   app=nginx-ingress
default                prom-trail                              1/1     1            1           113d   prom-trail                              aathith/testing:prometheus-url-annotation                   app=prom-trail
default                prometheus                              1/1     1            1           115d   prometheus                              prom/prometheus                                             app=prometheus-server

root@k8-master-01:~# kubesort kubectl get deployment containers all
NAMESPACE              NAME                                    READY   UP-TO-DATE   AVAILABLE   AGE    CONTAINERS                              IMAGES                                                      SELECTOR
default                alert-checker                           1/1     1            1           155d   alert-checker                           aathith/testing:alert-checker                               app=alert-checker
kube-system            coredns                                 2/2     2            2           169d   coredns                                 k8s.gcr.io/coredns:1.6.5                                    k8s-app=kube-dns
kubernetes-dashboard   dashboard-metrics-scraper               1/1     1            1           57d    dashboard-metrics-scraper               kubernetesui/metrics-scraper:v1.0.1                         k8s-app=dashboard-metrics-scraper
kube-system            digitalocean-cloud-controller-manager   1/1     1            1           168d   digitalocean-cloud-controller-manager   digitalocean/digitalocean-cloud-controller-manager:v0.1.6   app=digitalocean-cloud-controller-manager
kubernetes-dashboard   kubernetes-dashboard                    1/1     1            1           57d    kubernetes-dashboard                    kubernetesui/dashboard:v2.0.0-beta5                         k8s-app=kubernetes-dashboard
kube-system            metrics-server                          1/1     1            1           151d   metrics-server                          k8s.gcr.io/metrics-server-amd64:v0.3.6                      k8s-app=metrics-server
nginx-ingress          nginx-ingress                           1/1     1            1           57d    nginx-ingress                           nginx/nginx-ingress:1.6.3                                   app=nginx-ingress
default                prom-trail                              1/1     1            1           113d   prom-trail                              aathith/testing:prometheus-url-annotation                   app=prom-trail
default                prometheus                              1/1     1            1           115d   prometheus                              prom/prometheus                                             app=prometheus-server

root@k8-master-01:~# kubesort kubectl get deployment age kube-system
NAME                                    READY   UP-TO-DATE   AVAILABLE   AGE    CONTAINERS                              IMAGES                                                      SELECTOR
coredns                                 2/2     2            2           169d   coredns                                 k8s.gcr.io/coredns:1.6.5                                    k8s-app=kube-dns
digitalocean-cloud-controller-manager   1/1     1            1           168d   digitalocean-cloud-controller-manager   digitalocean/digitalocean-cloud-controller-manager:v0.1.6   app=digitalocean-cloud-controller-manager
metrics-server                          1/1     1            1           151d   metrics-server                          k8s.gcr.io/metrics-server-amd64:v0.3.6                      k8s-app=metrics-server

Sorting Service

root@k8-master-01:~# kubesort kubectl get svc type
NAME              TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)                         AGE    SELECTOR
kubernetes        ClusterIP   10.96.0.1        <none>        443/TCP                         169d   <none>
alert-checker     NodePort    10.110.87.73     <none>        8080:31080/TCP                  155d   app=alert-checker
prom-trail        NodePort    10.97.208.221    <none>        8080:32445/TCP,1234:32446/TCP   115d   app=prom-trail
prometheus        NodePort    10.98.222.241    <none>        9090:31976/TCP                  117d   app=prometheus-server

root@k8-master-01:~# kubesort kubectl gett svc age kube-system
NAME             TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)                  AGE    SELECTOR
kube-dns         ClusterIP   10.96.0.10       <none>        53/UDP,53/TCP,9153/TCP   169d   k8s-app=kube-dns
tiller-deploy    ClusterIP   10.108.104.169   <none>        44134/TCP                165d   app=helm,name=tiller
metrics-server   ClusterIP   10.98.220.21     <none>        443/TCP                  162d   k8s-app=metrics-server
kubelet          ClusterIP   None             <none>        10250/TCP                117d   <none>
   
root@k8-master-01:~# kubesort kubectl get svc clusterip all
NAMESPACE              NAME                        TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)                         AGE    SELECTOR  
default                kubernetes                  ClusterIP   10.96.0.1        <none>        443/TCP                         169d   <none>
kube-system            kube-dns                    ClusterIP   10.96.0.10       <none>        53/UDP,53/TCP,9153/TCP          169d   k8s-app=kube-dns
default                prom-trail                  NodePort    10.97.208.221    <none>        8080:32445/TCP,1234:32446/TCP   115d   app=prom-trail
kubernetes-dashboard   kubernetes-dashboard        NodePort    10.98.9.79       <none>        443:30402/TCP                   57d    k8s-app=kubernetes-dashboard
kube-system            metrics-server              ClusterIP   10.98.220.21     <none>        443/TCP                         162d   k8s-app=metrics-server
default                prometheus                  NodePort    10.98.222.241    <none>        9090:31976/TCP                  117d   app=prometheus-server
kube-system            tiller-deploy               ClusterIP   10.108.104.169   <none>        44134/TCP                       165d   app=helm,name=tiller
kubernetes-dashboard   dashboard-metrics-scraper   ClusterIP   10.108.179.217   <none>        8000/TCP                        57d    k8s-app=dashboard-metrics-scraper
default                alert-checker               NodePort    10.110.87.73     <none>        8080:31080/TCP                  155d   app=alert-checker
nginx-ingress          nginx-ingress               NodePort    10.110.160.112   <none>        80:31372/TCP,443:31289/TCP      57d    app=nginx-ingress
kube-system            kubelet                     ClusterIP   None             <none>        10250/TCP                       117d   <none>

Roadmap:

  • Sort for resource pv, pvc, replicasets, replication controllers, ingress resources, nodes, namespaces will be included.
  • More options to install KUBESORT.
  • Video instruction on how to use KUBESORT.

Tried and Tested in:

k8s: v1.18.1
kubectl: v1.18.1
bash: v4.4.20

Contributions are welcomed here.

What can you contribute?

  1. Reduce the no. of lines of the code or simplify the code.
  2. Add things to match up with the Roadmap.

Who can contribute?

ANYONE WITH INTEREST.

Release notes

*** If KUBESORT interests you, Do Give this Project a Star ***

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].