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

Move machine and drivers to minikube repositories #9952

Closed
3 of 6 tasks
afbjorklund opened this issue Dec 13, 2020 · 8 comments
Closed
3 of 6 tasks

Move machine and drivers to minikube repositories #9952

afbjorklund opened this issue Dec 13, 2020 · 8 comments
Labels
area/build-release kind/feature Categorizes issue or PR as related to a new feature. lifecycle/frozen Indicates that an issue or PR should not be auto-closed due to staleness. priority/backlog Higher priority than priority/awaiting-more-evidence.

Comments

@afbjorklund
Copy link
Collaborator

afbjorklund commented Dec 13, 2020

We don't know how long the docker/machine and machine-drivers organization will stay active.

Both docker/machine and boot2docker/boot2docker are deprecated and dead since 2019.

So there is no release for Docker 20.10 and later releases, and eventually they might disappear.

We need to maintain our own fork of the git repos, until it can be integrated more into minikube.

This affect the current repositories:

  • github.com/docker/machine -->
    github.com/machine-drivers/machine

  • github.com/boot2docker/boot2docker -->
    github.com/machine-drivers/boot2docker

  • github.com/dhiltgen/docker-machine-kvm -->
    github.com/machine-drivers/docker-machine-kvm
    github.com/machine-drivers/docker-machine-driver-libvirt

  • github.com/machine-drivers/docker-machine-driver-hyperkit

  • github.com/docker/machine/drivers/vmwarefusion
    github.com/machine-drivers/docker-machine-driver-vmware

  • github.com/Parallels/docker-machine-parallels -->
    github.com/machine-drivers/docker-machine-parallels

See also #9805 about different architectures

We are currently in the process of converting all the drivers to (incompatible) minikube versions.
So far we have done the "kvm" and the "none" drivers, and are about to do the "generic" driver.
We also have patches to the "hyperv" and "hyperkit" drivers, so they are not identical either...
At some point, we need to stop naming the binaries as docker-machine-driver whatsoever.

We should break out the kvm and hyperkit drivers from the "minikube" source code repository,
and set them up with build infrastructure like these other two external (not compiled in) drivers.
Currently they are making the Makefile and other files for minikube needlessly complicated,
since they need to be cross-compiled and add dependencies to native libraries and so on.

See #9583


Internal drivers:

  • virtualbox
  • hyperv
  • none (local)
  • generic (remote)

External drivers:

  • kvm
  • hyperkit
  • vmware
  • parallels

Note that docker and podman are not (real) libmachine drivers.

All minikube driver names are hardcoded into the main binary.

@afbjorklund afbjorklund added priority/important-longterm Important over the long term, but may not be staffed and/or may need multiple releases to complete. area/build-release labels Dec 13, 2020
@afbjorklund
Copy link
Collaborator Author

afbjorklund commented Dec 13, 2020

Since we download the drivers ourselves now, users don't actually need to notice much.

We just have to make sure to use the same feature, also for "vmware" and "parallels".

@priyawadhwa priyawadhwa added the kind/support Categorizes issue or PR as a support question. label Dec 28, 2020
@afbjorklund afbjorklund added kind/feature Categorizes issue or PR as related to a new feature. and removed kind/support Categorizes issue or PR as a support question. labels Jan 8, 2021
@afbjorklund
Copy link
Collaborator Author

We probably need a separate github organization for this, just for minikube ?

Could also be used to gather some of the personal repositories currently used.

@medyagh
Copy link
Member

medyagh commented Jan 8, 2021

I am okay with moving it to minikube, it would be less complicated release and code review

@fejta-bot
Copy link

Issues go stale after 90d of inactivity.
Mark the issue as fresh with /remove-lifecycle stale.
Stale issues rot after an additional 30d of inactivity and eventually close.

If this issue is safe to close now please do so with /close.

Send feedback to sig-contributor-experience at kubernetes/community.
/lifecycle stale

@k8s-ci-robot k8s-ci-robot added the lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. label Apr 8, 2021
@fejta-bot
Copy link

Stale issues rot after 30d of inactivity.
Mark the issue as fresh with /remove-lifecycle rotten.
Rotten issues close after an additional 30d of inactivity.

If this issue is safe to close now please do so with /close.

Send feedback to sig-contributor-experience at kubernetes/community.
/lifecycle rotten

@k8s-ci-robot k8s-ci-robot added lifecycle/rotten Denotes an issue or PR that has aged beyond stale and will be auto-closed. and removed lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. labels May 8, 2021
@sharifelgamal sharifelgamal added lifecycle/frozen Indicates that an issue or PR should not be auto-closed due to staleness. and removed lifecycle/rotten Denotes an issue or PR that has aged beyond stale and will be auto-closed. labels May 26, 2021
@spowelljr spowelljr added priority/backlog Higher priority than priority/awaiting-more-evidence. and removed priority/important-longterm Important over the long term, but may not be staffed and/or may need multiple releases to complete. labels Sep 15, 2021
@seguins
Copy link

seguins commented Jun 29, 2022

I'm not sure to fully understand the target.
Is the target to :

  • move / duplicate all drivers in the repo
  • move / duplicate all drivers in the machine-drivers organization
  • move / duplicate all drivers in a new repo or organization

Can you provide an update about this issue ?

@afbjorklund
Copy link
Collaborator Author

afbjorklund commented Dec 18, 2022

Current patches for the "virtualbox" driver:

* 154c4e8d drivers/virtualbox: Follow symlinks on FreeBSD
* 3a0d9357 Fix broken IsVTXDisabled detection on AMD CPU

https://github.com/machine-drivers/machine/tree/master/drivers/virtualbox

Current patches for the "hyperv" driver:

* 6bdd70a8 check resp length as well
* 37dc244c don't panic if hyper-v isn't enabled
* fa999bcf Added selection of default VSwitch to config
* af52a576 Fix HyperV Administrator check
* 21bd2f51 Use switch ID to match default switch
* 2438fc95 Hyper-V: Use Default Switch vSwitch by default
* 6f34be40 Allow localized names for Virtual Switch

https://github.com/machine-drivers/machine/tree/master/drivers/hyperv

The "none" driver has been forked, to the "none" driver.

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

The "generic" driver has been forked, to the "ssh" driver.

https://github.com/kubernetes/minikube/tree/master/pkg/drivers/ssh

@afbjorklund
Copy link
Collaborator Author

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/build-release kind/feature Categorizes issue or PR as related to a new feature. lifecycle/frozen Indicates that an issue or PR should not be auto-closed due to staleness. priority/backlog Higher priority than priority/awaiting-more-evidence.
Projects
None yet
Development

No branches or pull requests

8 participants