Bartosz Bierkowski - Low dose cloud

Changes in oc client from OpenShift v3.10 to v3.11

With each new version of command line tool, especially one so dynamically evolving like OpenShift client, I am always curious what are new features added.

The new API objects are mapped into new commands, but usually there are more changes under the hood.
So, I ran a little diff between top level commands of oc 3.10 and oc 3.11.

There are many changes in the descriptions of commands and their parameters. There are many repetitions for --output, --timeout, but I am not going to cover that. There seem to be a new command called wait.
A similar parameter --wait has been added to several other commands:

  • oc delete
  • oc apply
  • oc replace
  • oc run

It allows waiting on a resources to be deleted. So, it is no longer asynchronous “fire & forget” operation, but a blocking one. It could be a good solution for any type of automation that has to wait for the resources state to be changed.

Nice addition is parameter --field-selector, which allows querying objects with specific fields. The downside is that not all fields are queryable, so the usage is limited and still most of filtering needs to be done on client side.
Commands that support the field selector:

  • oc get
  • oc label
  • oc annotate
  • oc delete

One example where it will speed up my searches is oc get pod --field-selector status.phase==RUNNING

Filtering on servers side is a powerful thing. Ideally with API like graphql, all fields could be queried or filtered out separately. I would be very happy having a SQL for REST APIs supporting multiple target endpoints. Do you know anything like that?

I did not find many changes in the top level commands. There are many updates in descriptions. It becomes more and more clear and readable. The updated documentation for various commands and parameters is very appreciated.