-
Story
-
Resolution: Done
-
Normal
-
None
-
False
-
False
-
Undefined
-
-
Workloads Sprint 207, Workloads Sprint 208, Workloads Sprint 210, Workloads Sprint 211, Workloads Sprint 212, Workloads Sprint 214
Goal:
As a user, I want a CLI manager for various CLIs available for OpenShift and related services so that I can simply discover, install and upgrade them
As an example, if openshift-cli were to be the plugin manager, the following shows the usage:
# list available CLIs $ openshift-cli addons list NAME DESC LATEST INSTALLED ----- ----- ----- ----- openshift-installer OpenShift Installer CLI 4.1 4.1 kubectl Kubernetes CLI 1.15 1.13 oc OpenShift CLI 4.0.24 4.0.12 odo OpenShift Developer CLI 1.0 Not Installed kn Knative CLI 0.4 Not Installed tkn Tekton CLI 0.2 Not Installed $ openshift-cli addons install odo $ openshift-cli addons install kn $ openshift-cli addons update oc $ openshift-cli addons remove kn
Problem:
As more services are created on top of OpenShift, more and more CLIs are introduced to simplify interaction with these services (e.g. istio, knative, developer, etc) while at the same time making it difficult for users to discover which CLIs exist, where to download them from and which version they should download. As an example, there at least 5 CLI tools for interacting with various parts of OpenShift, which is not immediately obvious even to avid superusers.
Solution:
provide a single CLI manager that knows all the other CLIs that exist for OpenShift and services that run on top of OpenShift, and enables downloading, upgrading and removing these plugins via simple commands.
Prioritized epics + deliverables (in scope / not in scope):
- R&D on a CLI manager for OpenShift
- List available CLI plugins, their latest version and the installed version
- Install the appropriate version of the CLI for a given cluster
- Update my installed version of a given CLI if updates are available
Previous Work
- kubectl plugin manager
https://github.com/GoogleContainerTools/krew/ - "Uc" (PoC by Hiram)
https://github.com/chirino/uc
Why It is important:
- In order to drive adoption, we need to simplify interaction with services on OpenShift. Building on primitives implemented upstream in SIG-CLI allows us to have a broader scope of supported platforms and tools we will be able to deliver to customers.