Description
Component:
'salt', 'kubectl-plugin', 'solutions'
Why this is needed:
Centralized CLI
What should be done:
MetalK8s add solution to environment command of solution should be part of metalk8s
Go kubectl plugin
kubectl metalk8s add solution <name> --version <version> --environment <environment> --namespace <namespace>
Namespace is not mandatory, if no namespace then a "random" namespace will be pick in the chosen environment.
Name, version, and environment are not mandatory if you provide a file using -f
, --filename
containing information about the resource.
Implementation proposal (strongly recommended):
This command will have the same behavior as the current add-solution command from the solution bash script.
Except that it will be written in Go and should not use salt binaries at all, only interact directly with Salt API and should be able to run from outside of the cluster (check design documentation about Centralized CLI for more detail).
Follow kubectl best practice as much as possible.