kubernetes/pkg/kubectl
Kubernetes Submit Queue c682496197
Merge pull request #67211 from juanvallejo/jvallejo/prototype-sorter
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
2018-08-31 15:32:40 -07:00
..
apply Run hack/update-bazel.sh 2018-06-22 16:22:57 -07:00
apps Run hack/update-bazel.sh 2018-06-22 16:22:57 -07:00
cmd Merge pull request #67211 from juanvallejo/jvallejo/prototype-sorter 2018-08-31 15:32:40 -07:00
explain Run hack/update-bazel.sh 2018-06-22 16:22:57 -07:00
metricsutil Move validation dependency from pkg/apis/core/validation to staging 2018-08-09 15:52:59 -07:00
polymorphichelpers Create cli-runtime staging repository 2018-08-21 17:08:30 +02:00
proxy Enable kubectl proxy to set tcp keepalive 2018-06-25 11:03:05 +08:00
scheme Handle errors 2018-07-17 20:47:14 +10:00
util Log real file's name and line 2018-08-11 14:57:45 +02:00
validation Run hack/update-bazel.sh 2018-06-22 16:22:57 -07:00
.import-restrictions fix verify about import error 2018-07-28 07:54:16 +08:00
apply.go
autoscale.go
autoscale_test.go update the import file for move util/pointer to k8s.io/utils 2018-07-27 19:47:02 +08:00
BUILD add prototype sorting for table rows 2018-08-30 16:09:05 -04:00
clusterrolebinding.go
clusterrolebinding_test.go
conditions.go switching rolling update to external clients 2018-08-03 13:18:14 -04:00
configmap.go
configmap_test.go
deployment.go
deployment_test.go
doc.go
env_file.go
env_file_test.go
generate.go
generate_test.go K8s SCTP support implementation for the first pull request 2018-08-27 05:56:27 +00:00
history.go
history_test.go
interfaces.go
namespace.go
namespace_test.go
OWNERS add labels to kubectl OWNERS files 2018-08-22 00:40:54 +03:00
pdb.go
pdb_test.go
priorityclass.go fix kubectl create priorityclass failure bug 2018-07-02 15:03:22 +08:00
priorityclass_test.go fix kubectl create priorityclass failure bug 2018-07-02 15:03:22 +08:00
quota.go
quota_test.go
rolebinding.go
rolebinding_test.go
rollback.go return err when Unmarshal failed 2018-07-27 20:52:00 +08:00
rollback_test.go
rolling_updater.go switching rolling update to external clients 2018-08-03 13:18:14 -04:00
rolling_updater_test.go switching rolling update to external clients 2018-08-03 13:18:14 -04:00
rollout_status.go Better error message when checking rollout status for StatefulSet with OnDelete strategy type 2018-08-15 21:39:14 -07:00
rollout_status_test.go Better error message when checking rollout status for StatefulSet with OnDelete strategy type 2018-08-15 21:39:14 -07:00
run.go Remove an old TODO. 2018-06-11 13:04:32 -07:00
run_test.go Merge pull request #64938 from brendandburns/todo2 2018-06-21 04:15:08 -07:00
scale.go Adding scale error retries 2018-06-12 11:23:16 +02:00
scale_test.go Move dependency from k/k/pkg/apis/core to staging 2018-08-10 12:56:03 -07:00
secret.go
secret_for_docker_registry.go
secret_for_docker_registry_test.go
secret_for_tls.go Merge pull request #67713 from liggitt/process-substitution 2018-08-22 23:04:26 -07:00
secret_for_tls_test.go
secret_test.go
service.go
service_basic.go
service_basic_test.go
service_test.go K8s SCTP support implementation for the first pull request 2018-08-27 05:56:27 +00:00
serviceaccount.go
serviceaccount_test.go
sorter.go add prototype sorting for table rows 2018-08-30 16:09:05 -04:00
sorter_test.go