Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fork the machine driver "generic" to minikube, prepare for renaming it #9583

Closed
afbjorklund opened this issue Oct 29, 2020 · 5 comments
Closed
Assignees
Labels
co/generic-driver help wanted Denotes an issue that needs help from a contributor. Must meet "help wanted" guidelines. kind/feature Categorizes issue or PR as related to a new feature. priority/important-longterm Important over the long term, but may not be staffed and/or may need multiple releases to complete.
Milestone

Comments

@afbjorklund
Copy link
Collaborator

afbjorklund commented Oct 29, 2020

Previously we have forked the docker-machine (libmachine) driver called "none":

https://github.com/docker/machine/blob/master/drivers/none/driver.go

https://github.com/kubernetes/minikube/blob/master/pkg/drivers/none/none.go

We want to do the same thing for the driver called "generic", as used in PR #9545

https://github.com/docker/machine/blob/master/drivers/generic/generic.go

https://github.com/kubernetes/minikube/blob/master/pkg/drivers/generic/generic.go

Once it is in our "drivers" code base, we can rename it as see fit...

Possibly to something like "remote", to be decided (see #7772)

@afbjorklund afbjorklund added help wanted Denotes an issue that needs help from a contributor. Must meet "help wanted" guidelines. kind/feature Categorizes issue or PR as related to a new feature. priority/important-longterm Important over the long term, but may not be staffed and/or may need multiple releases to complete. co/generic-driver labels Oct 29, 2020
@medyagh
Copy link
Member

medyagh commented Oct 29, 2020

sounds good !

@afbjorklund
Copy link
Collaborator Author

afbjorklund commented Oct 29, 2020

We might end up moving the other drivers as well, it's mostly cloud drivers so the only ones we use are "fake" and "err"...

amazonec2
azure
digitalocean
driverutil
errdriver
exoscale
fakedriver
generic
google
hyperv
none
openstack
rackspace
softlayer
virtualbox
vmwarefusion
vmwarevcloudair
vmwarevsphere

And of course the "virtualbox" driver. The "hyperv" is already modified, and "hyperkit" and "kvm" are external to libmachine.

 drivers/hyperv/hyperv.go     | 71 ++++++++++++++++++++++++++++++++++++++++++++---------------------------
 drivers/hyperv/powershell.go |  4 ++--
 2 files changed, 46 insertions(+), 29 deletions(-)

"driverutil" only has one function and "generic_test" only has one test.

package driverutil

func SplitPortProto(raw string) (port string, protocol string)
=== RUN   TestSetConfigFromFlags
--- PASS: TestSetConfigFromFlags (0.00s)

Not needed.

@afbjorklund
Copy link
Collaborator Author

We probably want to keep the external API unless we have a good reason to change it.

This in order to keep it compatible with e.g. "vmware" and "parallels" external drivers still

@afbjorklund
Copy link
Collaborator Author

We should remove the "vmwarefusion" driver, it is deprecated in favor of "vmware".

We have already removed the "xhyve" (for hyperkit) and "kvm" (for kvm2) drivers.

@afbjorklund
Copy link
Collaborator Author

afbjorklund commented Oct 29, 2020

The best would be to move all the extra drivers out of the main minikube code base:

  • hyperkit
  • libvirt (kvm2)

And to some structure that we control, separate from machine and machine-drivers:

  • vmware
  • parallels

Having them in the same git repo complicates the release process and build process.

We end up installing unnecessary things like xgo-1.12.x and libvirt-dev for them...

They should be stand-alone (from minikube), since they produce stand-alone binaries.

Most likely we would need some github organization, different from kubernetes or users.


https://minikube.sigs.k8s.io/docs/contrib/roadmap/

Prototype post-libmachine implementation of minikube

https://minikube.sigs.k8s.io/docs/drivers/

Built-in:

  • virtualbox
  • hyperv (win)
  • none
  • generic

Containers:

  • docker (linux)
  • docker (win, VM)
  • docker (mac, VM)
  • podman (linux)

External: (download on-demand)

  • docker-machine-driver-hyperkit (mac)
  • docker-machine-driver-kvm2 (linux)
  • docker-machine-driver-vmware
  • docker-machine-driver-parallels

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
co/generic-driver help wanted Denotes an issue that needs help from a contributor. Must meet "help wanted" guidelines. kind/feature Categorizes issue or PR as related to a new feature. priority/important-longterm Important over the long term, but may not be staffed and/or may need multiple releases to complete.
Projects
None yet
Development

No branches or pull requests

2 participants