Commit Graph

2561 Commits (master)

Author SHA1 Message Date
Nir Soffer b66888d972
vfkit: Use EFI booloader (#20833)
* vfkit: Log serial console to file

To make debugging easier, add virtio-serial device logging serial
console to file:

    ~/.minikube/machines/NAME/serial.log

To enable logging, we need to enable the console in the kernel command
line, since we still use direct kernel boot.

Example log:

    % cat /Users/nir/.minikube/machines/vfkit/vfkig.log
    [    0.896094] cacheinfo: Unable to detect cache hierarchy for CPU 0
    [    0.897186] loop: module loaded
    [    0.897670] virtio_blk virtio2: [vda] 840488 512-byte logical blocks (430 MB/410 MiB)
    [    0.897733] vda: detected capacity change from 0 to 430329856
    [    0.898460] virtio_blk virtio3: [vdb] 40960000 512-byte logical blocks (21.0 GB/19.5 GiB)
    [    0.898533] vdb: detected capacity change from 0 to 20971520000
    ...
    [    1.794714] systemd[1]: Detected virtualization vm-other.
    [    1.794752] systemd[1]: Detected architecture arm64.

    Welcome to Buildroot 2025.02!

    [    1.794944] systemd[1]: Hostname set to <minikube>.
    [    1.795011] systemd[1]: Initializing machine ID from random generator.
    ...
    [  OK  ] Started Container Runtime Interface for OCI (CRI-O).
    [  OK  ] Reached target Multi-User System.

    Welcome to minikube
    vfkit login: [    6.681578] systemd-ssh-generator[630]: Binding SSH to AF_UNIX socket /run/ssh-unix-local/socket.

* vfkit: Use EFI bootloader

With the fixed iso, we can simplify the driver using the EFI bootloader
option[1] instead of the legacy and deprecated --kernel, --kernel-cmdline,
and --initrd options[2].

Example run:

    % minikube start -p vfkit --driver vfkit --container-runtime containerd --network vmnet-shared
    😄  [vfkit] minikube v1.36.0 on Darwin 15.5 (arm64)
      Using the vfkit driver based on user configuration
    👍  Starting "vfkit" primary control-plane node in "vfkit" cluster
    🔥  Creating vfkit VM (CPUs=2, Memory=6000MB, Disk=20000MB) ...
    📦  Preparing Kubernetes v1.33.1 on containerd 1.7.23 ...
        ▪ Generating certificates and keys ...
        ▪ Booting up control plane ...
        ▪ Configuring RBAC rules ...
    🔗  Configuring bridge CNI (Container Networking Interface) ...
    🔎  Verifying Kubernetes components...
        ▪ Using image gcr.io/k8s-minikube/storage-provisioner:v5
    🌟  Enabled addons: default-storageclass, storage-provisioner
    🏄  Done! kubectl is now configured to use "vfkit" cluster and "default" namespace by default

Comparing direct kernel boot and --bootloader efi shows that it is little bit faster and boot time is more consistent.

    % hyperfine -r 10 -C "minikube delete" \
        "vfkit-efi/out/minikube start --driver vfkit --network vmnet-shared --container-runtime containerd --no-kubernetes" \
        "vfkit-direct/out/minikube start --driver vfkit --network vmnet-shared --container-runtime containerd --no-kubernetes"
    Benchmark 1: vfkit-efi/out/minikube start --driver vfkit --network vmnet-shared --container-runtime containerd --no-kubernetes
      Time (mean ± σ):     10.205 s ±  0.656 s    [User: 0.381 s, System: 0.266 s]
      Range (min … max):    9.106 s … 11.254 s    10 runs

    Benchmark 2: vfkit-direct/out/minikube start --driver vfkit --network vmnet-shared --container-runtime containerd --no-kubernetes
      Time (mean ± σ):     10.933 s ±  1.616 s    [User: 0.402 s, System: 0.406 s]
      Range (min … max):    9.155 s … 14.168 s    10 runs

    Summary
      vfkit-efi/out/minikube start --driver vfkit --network vmnet-shared --container-runtime containerd --no-kubernetes ran
        1.07 ± 0.17 times faster than vfkit-direct/out/minikube start --driver vfkit --network vmnet-shared --container-runtime containerd --no-kubernetes

[1] https://github.com/crc-org/vfkit/blob/main/doc/usage.md#efi-bootloader
[2] https://github.com/crc-org/vfkit/blob/main/doc/usage.md#deprecated-options

* docs: Update vfkit driver documentation

- Separate vfkit requirements and vmnet-shared requirements
- Update minimal macOS version required for --bootloader efi
- Simplify vfkit upgrade, it is available in brew now
2025-06-10 10:21:10 -07:00
minikube-bot a61c304fed
Update auto-generated docs and translations (#20897) 2025-06-06 16:08:09 -07:00
minikube-bot 0e12a7d541
Update yearly leaderboard (#20864) 2025-06-02 14:32:24 -07:00
minikube-bot 64552bad4c
site: Update docsy version to v0.12.0 (#20875) 2025-06-02 14:23:04 -07:00
minikube-bot 97cc0cab23
Update auto-generated docs and translations (#20861) 2025-05-29 18:21:47 -07:00
Nir Soffer c306a0fbd6
docs: Fix instructions for building iso (#20830)
Testing shows that we need changes changes:
- x86_64 cpu
- Ubuntu 22.04
- docker is required even if building without docker
- python2 instead of python
- genisoimage (for mkisofs)
- Installing Go manually (Ubuntu 22.04 have only Go 1.18)
- Target should be minikube-iso-aarch64 or minikube-iso-x86_64. Using
  arm64 and amd64 fails.

I also cleaned up a little bit the formatting to make it easier to
maintain (one package per line).

Tested building:
- minikube-iso-aarch64
- minikube-iso-x86_64

I did not test the built iso images.
2025-05-27 14:06:31 -07:00
minikube-bot f89d46d8a2
add time-to-k8s benchmark for v1.36.0 (#20825) 2025-05-23 10:19:44 -07:00
minikube-bot 1df6e76107
Add leaderboard for v1.36.0 (#20823) 2025-05-23 10:17:06 -07:00
minikube-bot 11420854dc
Update releases.json & releases-v2.json to include v1.36.0 (#20824) 2025-05-22 11:54:08 -07:00
minikube-bot 012dc3cba9
Release: Update kicbase to v0.0.47 (#20819) 2025-05-22 00:42:03 -07:00
minikube-bot 5e88fb0f1a
Update auto-generated docs and translations (#20817) 2025-05-21 22:12:29 -07:00
Nir Soffer 56ed2662b0
vfkit: Minor docs, test, and help fixes (#20815)
* vfkit: Fix help text for --extra-disks

vfkit can use extra disks but we forgot to mention it in the help text.

* vfkit: Remove stale tap

vfkit in cfergeau/crc will no longer be updated now that it’s in the main repo.

* vfkit: Fix status in index

The vfkit driver is preferred now.
2025-05-21 20:30:26 -07:00
Nir Soffer e9f13e56a9
site: Add example to ingress tutorial (#20814)
We show how to connect to redis with telnet, so let's show some commands
to make it more interesting.

This is modified example from redis docs:
https://redis.io/docs/latest/develop/get-started/data-store/#store-and-retrieve-data
2025-05-21 11:34:12 -07:00
Cosmic Oppai 42fa39b108
improved invoke-webrequest command (#20574) 2025-05-20 15:26:34 -07:00
minikube-bot 2943611b81
bump default/newest kubernetes versions (#20784) 2025-05-19 12:30:08 -07:00
minikube-bot 9171dbbc18
Kicbase/ISO: Update cni-plugins from v1.6.2 to v1.7.1 (#20771)
* Kicbase/ISO: Update cni-plugins from v1.6.2 to v1.7.1

* Updating kicbase image to v0.0.46-1747341282-20771

* Updating ISO to v1.35.0-1747341198-20771
2025-05-16 11:31:38 -07:00
Anthony Holloman b0a0695082
Update qemu.md docs for homebrew/services decommission (#20685)
`brew tap homebrew/services` is now unnecessary.

Previous Tap:
https://github.com/Homebrew/homebrew-services

New Tap:
https://github.com/Homebrew/brew
2025-05-15 11:13:29 -07:00
minikube-bot be7dd7c518
Kicbase/ISO: Update runc from v1.2.6 to v1.3.0 (#20764)
* Kicbase/ISO: Update runc from v1.2.6 to v1.3.0

* Updating kicbase image to v0.0.46-1747264594-20764

* Updating ISO to v1.35.0-1747264512-20764
2025-05-15 10:38:52 -07:00
minikube-bot a141f42521
Kicbase/ISO: Update cri-dockerd from v0.3.15 to v0.4.0 (#20747)
* Kicbase/ISO: Update cri-dockerd from v0.3.15 to v0.4.0

* Updating kicbase image to v0.0.46-1747166185-20747

* Updating ISO to v1.35.0-1747160120-20747
2025-05-14 14:49:05 -07:00
minikube-bot cc8d0d14e6
Update auto-generated docs and translations (#20754) 2025-05-13 13:07:10 -07:00
Sri Panyam 7b97f424c7
New flag to allow option for passing a config file for addon configure command. (#20255)
* Addon configuration now takes an optional config file to load from
instead of forcing prompts

Fixes #20124

* Using a rarer value for default instead of changeme so it has less chance to interfere with other possible user defaults

* Fixing expected values of test cases

* making addonConfigFile private

* Keeping registry_creds configs together.

* Starting a typed AddonConfig struct so each addon con loads its
  configs in a typed way.
* Started configs for RegistryCreds using this convention and moved
  registry_creds config processing to its own file
  (configure_registry_creds.go)

* Making registry creds structs private and other PR feedback cleanups

* Changing default value back to 'changeme'

* Simplifying duplicate consts

* Adding missed comma

* lint fixes

* Generating docs

* Copyright for new file
2025-05-13 11:05:48 -07:00
minikube-bot 47f7a18efc
Kicbase: Bump ubuntu:jammy from 20250126 to 20250415.1 (#20718)
* Kicbase: Bump ubuntu:jammy from 20250126 to 20250415.1

* Updating kicbase image to v0.0.46-1746731792-20718
2025-05-09 11:38:19 -07:00
minikube-bot 57f12b1c10
Update yearly leaderboard (#20690) 2025-05-08 12:07:34 -07:00
minikube-bot eba8fc9e50
Update auto-generated docs and translations (#20687) 2025-05-01 13:49:57 -04:00
Nir Soffer 55b88a6763
Shared network for vfkit driver using vmnet-helper (#20501)
* vfkit: Remove temporary variable

Remove temporary and unneeded mac variable. It is easier to follow the
code when we use d.MACAddress.

* vfkit: Promote state change to INFO level

System state changes should be more visible to make debugging easier.

* vmnet: Add vmnet package

The package manages the vmnet-helper[1] child process, providing
connection to the vmnet network without running the guest as root.

We will use vmnet-helper for the vfkit driver, which does not have a way
to use shared network, when guests can access other guest in the
network.  We can use it later with the qemu driver as alternative to
socket_vmnet.

[1] https://github.com/nirs/vmnet-helper

* vfkit: add vmnet-shared network

Add new network option for vfkit "vmnet-shared", connecting vfkit to the
vmnet shared network. Clusters using this network can access other
clusters in the same network, similar to socket_vmnet with QEMU driver.

If network is not specified, we default to the "nat" network, keeping
the previous behavior. If network is "vmnet-shared", the vfkit driver
manages 2 processes: vfkit and vmnet-helper.

Like vfkit, vmnet-helper is started in the background, in a new process
group, so it not terminated if the minikube process group is terminate.

Since vmnet-helper requires root to start the vmnet interface, we start
it with sudo, creating 2 child processes. vmnet-helper drops privileges
immediately after starting the vmnet interface, and run as the user and
group running minikube.

Stopping the cluster will stop sudo, which will stop the vmnet-helper
process. Deleting the cluster kill both sudo and vmnet-helper by killing
the process group.

This change is not complete, but it is good enough to play with the new
shared network.

Example usage:

1. Install vmnet-helper:
   https://github.com/nirs/vmnet-helper?tab=readme-ov-file#installation

2. Setup vmnet-helper sudoers rule:
   https://github.com/nirs/vmnet-helper?tab=readme-ov-file#granting-permission-to-run-vmnet-helper

3. Start 2 clusters with vmnet-shared network:

    % minikube start -p c1 --driver vfkit --network vmnet-shared
    ...

    % minikube start -p c2 --driver vfkit --network vmnet-shared
    ...

    % minikube ip -p c1
    192.168.105.18

    % minikube ip -p c2
    192.168.105.19

4. Both cluster can access the other cluster:

    % minikube -p c1 ssh -- ping -c 3 192.168.105.19
    PING 192.168.105.19 (192.168.105.19): 56 data bytes
    64 bytes from 192.168.105.19: seq=0 ttl=64 time=0.621 ms
    64 bytes from 192.168.105.19: seq=1 ttl=64 time=0.989 ms
    64 bytes from 192.168.105.19: seq=2 ttl=64 time=0.490 ms

    --- 192.168.105.19 ping statistics ---
    3 packets transmitted, 3 packets received, 0% packet loss
    round-trip min/avg/max = 0.490/0.700/0.989 ms

    % minikube -p c2 ssh -- ping -c 3 192.168.105.18
    PING 192.168.105.18 (192.168.105.18): 56 data bytes
    64 bytes from 192.168.105.18: seq=0 ttl=64 time=0.289 ms
    64 bytes from 192.168.105.18: seq=1 ttl=64 time=0.798 ms
    64 bytes from 192.168.105.18: seq=2 ttl=64 time=0.993 ms

    --- 192.168.105.18 ping statistics ---
    3 packets transmitted, 3 packets received, 0% packet loss
    round-trip min/avg/max = 0.289/0.693/0.993 ms

* reason: Remove trailing whitepsace

Trailing whitespace is removed by some editors or displayed as a
warning. Clean up to make it easy to make maintain this file.

* start: Validate vfkit --network option

The vfkit driver supports now `nat` and `vmnet-shared` network options.
The `nat` option provides the best performance and is always available,
so it is the default network option. The `vmnet-shared` option provides
access between machines with lower performance compared to `nat`.

If `vment-shared` option is selected, we verify that vmnet-helper is
available. The check ensure that vmnet-helper is installed and sudoers
configuration allows the current user to run vment-helper without a
password.

If validating vment-helper failed, we return a new NotFoundVmnetHelper
reason pointing to vment-helper installation docs or recommending to use
`nat`. This is based on how we treat missing socket_vmnet for QEMU
driver.

* site: Document vfkit network options
2025-05-01 13:26:48 -04:00
minikube-bot 908f7d5dac
bump default/newest kubernetes versions (#20661) 2025-04-30 14:56:05 -04:00
minikube-bot 49bb44034d
Update auto-generated docs and translations (#20672) 2025-04-28 15:49:35 -04:00
minikube-bot fe470c1679
Kicbase/ISO: Update runc from v1.2.5 to v1.2.6 (#20604)
* Kicbase/ISO: Update runc from v1.2.5 to v1.2.6

* Updating kicbase image to v0.0.46-1744107393-20604
2025-04-10 14:15:59 -07:00
minikube-bot 709f200e9b
Kicbase/ISO: Update docker from 28.0.1 to 28.0.4 (#20591)
* Kicbase/ISO: Update docker from 28.0.1 to 28.0.4

* Updating kicbase image to v0.0.46-1743675393-20591
2025-04-04 12:07:07 -07:00
minikube-bot 3b71fa646c
Update yearly leaderboard (#20590) 2025-04-02 09:47:43 -07:00
minikube-bot 802ce44801
Kicbase/ISO: Update docker from 28.0.0 to 28.0.1 (#20523)
* Kicbase/ISO: Update docker from 28.0.0 to 28.0.1

* Updating kicbase image to v0.0.46-1741860993-20523
2025-03-13 16:46:47 -07:00
minikube-bot 7512311745
Update go from 1.23.4 to 1.24.0 (#20510)
* Update go from 1.23.4 to 1.24.0

* Updating kicbase image to v0.0.46-1741597657-20510
2025-03-10 10:37:40 -07:00
minikube-bot 3332297bfe
Update yearly leaderboard (#20479) 2025-03-02 20:06:16 -08:00
minikube-bot c551e9aeda
Kicbase/ISO: Update docker from 27.4.0 to 28.0.0 (#20436)
* Kicbase/ISO: Update docker from 27.4.0 to 28.0.0

* Updating kicbase image to v0.0.46-1740046583-20436
2025-02-20 14:41:42 -08:00
minikube-bot 7395b1d110
bump default/newest kubernetes versions (#20417) 2025-02-18 10:15:29 -08:00
minikube-bot 15b614c7cd
Kicbase/ISO: Update runc from v1.2.3 to v1.2.5 (#20433)
* Kicbase/ISO: Update runc from v1.2.3 to v1.2.5

* Updating kicbase image to v0.0.46-1739873784-20433
2025-02-18 10:14:25 -08:00
minikube-bot ce6428950e Updating kicbase image to v0.0.46-1739182054-20387 2025-02-10 10:27:07 +00:00
minikube-bot d8acfdc942 Update yearly leaderboard 2025-02-02 00:04:45 +00:00
錦南路之花 abdbc5b3a3 Apply suggestions from code review
Co-authored-by: Steven Powell <44844360+spowelljr@users.noreply.github.com>
2025-01-28 11:42:51 -08:00
锦南路之花 1edaec55f4 test: allow running functional tests for different k8s versions 2025-01-28 11:42:51 -08:00
锦南路之花 876297cea5 fix: fix slack link on minikube website 2025-01-22 19:02:00 +00:00
minikube-bot 667e53b87e bump default/newest kubernetes versions 2025-01-22 18:37:50 +00:00
minikube-bot d3804e6f10 Update releases.json & releases-v2.json to include v1.35.0 2025-01-16 08:59:05 -08:00
minikube-bot a2abb68df1 Add leaderboard for v1.35.0 2025-01-16 08:58:35 -08:00
minikube-bot 79bdb3c228 add time-to-k8s benchmark for v1.35.0 2025-01-16 08:58:06 -08:00
锦南路之花 bfc2436dda fix: add missing latest rpm and deb links and packages 2025-01-15 12:04:07 -08:00
minikube-bot feaa4d9486 Release: Update kicbase to v0.0.46 2025-01-14 11:46:24 -08:00
minikube-bot cbd4945d16
Kicbase/ISO: Update cni-plugins from v1.6.1 to v1.6.2 (#20236)
* Kicbase/ISO: Update cni-plugins from v1.6.1 to v1.6.2

* Updating kicbase image to v0.0.45-1736763277-20236

* Updating ISO to v1.34.0-1736762773-20236
2025-01-13 08:26:04 -08:00
minikube-bot aa60809cd4
Update yearly leaderboard (#20193) 2025-01-06 10:11:06 -08:00
Hello World d352083403
fix(install): fix minikube-linux-amd64 download URL error (#20198)
the linux amd64 download url error
2025-01-06 08:28:37 -08:00