• Kubernetes Submit Queue's avatar
    Merge pull request #67211 from juanvallejo/jvallejo/prototype-sorter · c6824961
    Kubernetes Submit Queue authored
    Automatic merge from submit-queue (batch tested with PRs 68051, 68130, 67211, 68065, 68117). If you want to cherry-pick this change to another branch, please follow the instructions here: https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md.
    
    Update `kubectl get` sorter to deal with server-side printing
    
    **Release note**:
    ```release-note
    NONE
    ```
    
    ### Why?
    
    Currently, we default to non-server-side printing when sorting items in `kubectl get`. This means that instead of taking advantage of having the server tell `kubectl` how to display information, `kubectl` falls back to using hardcoded resource types to figure out how to print its output. This does not really work with resources that `kubectl` does not know about, and it goes against our goal of snipping any dependencies that `kubectl` has on the core repo.
    
    This patch adds a sorter capable of dealing with Table objects sent by the server when using "server-side printing".
    
    A few things left to take care of:
    
    - ~~[ ] When printing `all` resources, this implementation does not handle sorting every single Table object, but rather _only_ the rows in each object. As a result, output will contain sorted resources of the same _kind_, but the overall list of mixed resources will _not_ itself be sorted. Example:~~
    
    ```bash
    $ kubectl get all --sort-by .metadata.name
    NAME            READY     STATUS    RESTARTS   AGE
    # pods here will be sorted:
    pod/bar         0/2       Pending   0          31m
    pod/foo         1/1       Running   0          37m
    
    NAME                        DESIRED   CURRENT   READY     AGE
    # replication controllers here will be sorted as well:
    replicationcontroller/baz   1         1         1         37m
    replicationcontroller/buz   1         1         1         37m
    
    # ... but the overall mixed list of rc's and pods will not be sorted
    ```
    This occurs because each Table object received from the server contains all rows for that resource _kind_. We would need a way to build an ambiguous Table object containing all rows for all objects regardless of their type to have a fully sorted mixed-object output.
    
    - [ ] handle sorting by column-names, rather than _only_ with jsonpaths (Tracked in https://github.com/kubernetes/kubernetes/issues/68027)
    
    cc @soltysh @kubernetes/sig-cli-maintainers @seans3 @mengqiy
    c6824961
Name
Last commit
Last update
..
api Loading commit data...
apis Loading commit data...
auth Loading commit data...
capabilities Loading commit data...
client Loading commit data...
cloudprovider Loading commit data...
controller Loading commit data...
credentialprovider Loading commit data...
features Loading commit data...
fieldpath Loading commit data...
generated Loading commit data...
kubeapiserver Loading commit data...
kubectl Loading commit data...
kubelet Loading commit data...
kubemark Loading commit data...
master Loading commit data...
printers Loading commit data...
probe Loading commit data...
proxy Loading commit data...
quota Loading commit data...
registry Loading commit data...
routes Loading commit data...
scheduler Loading commit data...
security Loading commit data...
securitycontext Loading commit data...
serviceaccount Loading commit data...
ssh Loading commit data...
util Loading commit data...
version Loading commit data...
volume Loading commit data...
watch/json Loading commit data...
windows/service Loading commit data...
.import-restrictions Loading commit data...
BUILD Loading commit data...
OWNERS Loading commit data...