-
Notifications
You must be signed in to change notification settings - Fork 4.9k
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
Recently built minikube fails to start with vmware driver #16221
Comments
Sorry about that, it needs to use the ssh key as provided in the image.
It seems to be created correctly (in the tar), in the vmware driver: |
The automounter will pick the information up, from the disk: After that, the ssh key is supposed to be installed and work.
|
Thank you for the pointers and confirming the regression. Noted about needing to rewrite the vmware driver to support injecting the SSH key via cloud-init. The use of the docker login appears to be inherited from the older Docker machine vmwarefusion driver to inject the SSH keys. As the docker login was documented in the original boot2docker project, are there any other machine drivers that rely on this same behavior that might be broken with the minikube 1.30 release? |
it is possible, but I couldn't find any use of "password" in the other drivers from a casual lookthrough right now (grep).
You are right that it was inherited from boot2docker, which in turn inherited the login from tinycore (thus the T.C.) |
Either using cloud-init and the There is no support for cloud-init in minikube, so I guess that would be mostly for docker-machine ? The ubuntu cloud images should come with support, for adding the user and the key with config. |
VMWare is not our officially supported/tested driver but it seems like this can be fixed by adding it to the machine driver lib. till then the only solution for vmware drivers would be downgrading to an older minikube version. |
You might want to update the docs to reflect this unsupported status - https://minikube.sigs.k8s.io/docs/drivers/vmware/ . I'd just gone through the guide to use this, only to find at the cli that the unsupported message came up. |
I'm interested in fixing this. @afbjorklund @medyagh Please correct me if I'm wrong, but from what I understand, with only looking at the error logs in the issue description and reading the comments, the issue is with provisioning That being said, can you please explain the approach / point me to the code of a working driver where the |
I was also thinking, instead of disabling the password in the ISO, can't we keep it, and disable it first thing, as part of VM initialization? |
It is inserted into the disk image, like so: https://github.com/kubernetes/minikube/blob/v1.30.1/pkg/drivers/qemu/qemu.go#L643 Then it is extracted, during the automount: |
@lbogdan: I made PR to move the external driver in That should make it faster to iterate, since it doesn't need an external The last release from https://github.com/machine-drivers/docker-machine-driver-vmware was from 2021 |
I think it should be possible to format and mount the vmdk, with something like FAT32 similar to a cidata.iso Then you could extract the userdata.tar from this temporary partition, before reformatting the whole "disk"? |
So basically the automounter expects the first 4096 bytes of the raw partition to be Unfortunately, I don't think we can doctor a |
No, it would need a separate code path. Then again, it seemed like it already had one ? (in the automounter, that is) |
Ancient history, I think. Deprecated since 3.0 (2001) |
Yeah, but that's assuming the Note that is supports a cloud-init config drive ( What about my other suggestion?
|
Hm, I might have found a way to create a
It's a bit convoluted, but it should work. |
Did the whole process manually, attached the disk to an existing VM, and lo and behold, it works!
|
@afbjorklund So where should this be fixed? Even with #16687 , it looks like the changes would still have to go to upstream https://github.com/machine-drivers/docker-machine-driver-vmware ? |
Well, it would have to go to a fork of that repo. If you want to go all-in (for developing), you could copy stuff: We want to drop the dependency on docker-machine, so that we are free to evolve the "libmachine" API The code/binary in docker-machine-driver-vmware, is supposed to work with both docker-machine and minikube |
@lbogdan how do you go about writing the tar stream to the beginning of test-flat.vmdk |
I did that manually, but I guess the same as overwriting (part of) a file? Open, seek to the beginning, write bytes, close. |
Was there any progress on this? If not, I'm planning on working on it this weekend. |
What Happened?
Build both minikube and the amd64 ISO with recent changes and it fails to start with the vmware driver.
From the logs this appears to be due to the docker user account being removed. Looking at commit history, it was removed via Disable plain text login for ISO by @medyagh.
Attach the log file
The text was updated successfully, but these errors were encountered: