-
Notifications
You must be signed in to change notification settings - Fork 49
Decouple Lokomotive versioning from lokoctl #312
Comments
I have some ideas how to address that. |
TL;DR I'd like to try implementing decoupling using Go plugins and this comment will be dump for my findings:
|
So, the main thing I struggle right now with Go plugins implementation is fact, that This turns out to be surprisingly difficult because of the way our code is structured. The fact that CLI code currently implements most of the cluster operations logic rather than just being a gate to trigger it is a problem. We also have many tiny imports, which additionally clutters the dependencies tree and we still use #630 in too many places, which makes it more difficult to move code around. |
To finish isolation of CLI code, we move anonymouse imports from cli/cmd package to cluster package and we make cmd/cli rely only on cli/cmd/cluster package for Lokomotive interactions. This is a required step if we decide to implement #312 using Go modules. Signed-off-by: Mateusz Gozdek <mateusz@kinvolk.io>
To finish isolation of CLI code, we move anonymouse imports from cli/cmd package to cluster package and we make cmd/cli rely only on cli/cmd/cluster package for Lokomotive interactions. This is a required step if we decide to implement #312 using Go modules. Signed-off-by: Mateusz Gozdek <mateusz@kinvolk.io>
To finish isolation of CLI code, we move anonymouse imports from cli/cmd package to cluster package and we make cmd/cli rely only on cli/cmd/cluster package for Lokomotive interactions. This is a required step if we decide to implement #312 using Go modules. Signed-off-by: Mateusz Gozdek <mateusz@kinvolk.io>
To finish isolation of CLI code, we move anonymouse imports from cli/cmd package to cluster package and we make cmd/cli rely only on cli/cmd/cluster package for Lokomotive interactions. This is a required step if we decide to implement #312 using Go modules. Signed-off-by: Mateusz Gozdek <mateusz@kinvolk.io>
To finish isolation of CLI code, we move anonymouse imports from cli/cmd package to cluster package and we make cmd/cli rely only on cli/cmd/cluster package for Lokomotive interactions. This is a required step if we decide to implement #312 using Go modules. Signed-off-by: Mateusz Gozdek <mateusz@kinvolk.io>
To finish isolation of CLI code, we move anonymouse imports from cli/cmd package to cluster package and we make cmd/cli rely only on cli/cmd/cluster package for Lokomotive interactions. This is a required step if we decide to implement #312 using Go modules. Signed-off-by: Mateusz Gozdek <mateusz@kinvolk.io>
To finish isolation of CLI code, we move anonymous imports from cli/cmd package to cluster package and we make cmd/cli rely only on cli/cmd/cluster package for Lokomotive interactions. This is a required step if we decide to implement #312 using Go modules. Signed-off-by: Mateusz Gozdek <mateusz@kinvolk.io>
Currently the Lokomotive version is embedded in the
lokoctl
binary. That is, to update Lokomotive you need to get the newlokoctl
binary and runlokoctl cluster apply
.We should consider decoupling the Lokomotive version from
lokoctl
and have some kind of release manifest.The text was updated successfully, but these errors were encountered: