Commit Graph

2416 Commits (master)

Author SHA1 Message Date
minikube-bot 67329baf6d
Update yearly leaderboard (#21216) 2025-08-01 20:10:20 -07:00
minikube-bot 0afbdc5371
Kicbase/ISO: Update crun from 1.19 to 1.23 (#21198)
* Kicbase/ISO: Update crun from 1.19 to 1.23

* Updating kicbase image to v0.0.47-1753871403-21198
2025-07-30 13:12:07 -07:00
minikube-bot 8400e87c61
Update auto-generated docs and translations (#21202) 2025-07-30 12:04:29 -07:00
minikube-bot 0af3ac99ab
Update auto-generated docs and translations (#21108) 2025-07-21 13:31:33 -07:00
Nir Soffer 56975bc752
Add krunkit driver supporting GPU acceleration on macOS (#20826)
* krunkit: Add krunkit driver

krunkit is a tool to launch configurable virtual machines using the
libkrun platform, optimized for GPU accelerated virtual machines and AI
workloads on Apple silicon.

It is mostly compatible with vfkit; the driver is a simplified copy of
the vfkit driver. Unlike vfkit, krunkit is available only on Apple
silicon.

Changes compared to vfkit driver:
- krunkit requires unix socket for networking, so we must use
  vment-helper.
- krunkit does not support HardStop, so we kill it using SIGKILL.
- We must enable vmnet offloading, required for krunkit.
- The code was simplified since vmnet-helper is always used
- Code was cleaned up to use .ResolveStorePath()
- Unused Upgrade() function was removed
- Types and functions that should not be public made private

We require krunkit 0.2.2, supporting --restul-uri=unix://.

* reason: Make vment-helper error driver agnostic

Previously it was used only for vfkit, so we suggested to fallback to
the `nat` network. This advice is not relevant to krunkit or to qemu
(which can also use vmnet-helper).

Change the error to recommend installing vment-helper. We need to think
how we can recommend other networks for vfkit and qemu. Another solution
is to create error for every driver+network combination but this seems
hard to manage.

* hack: Add krunkit integration test

This is the same way that we test vfkit. This test is not running in the
CI.

Issues:
- Need to install and configure vment-helper (requires root).

* site: Add krunkit driver documentation
2025-07-21 12:59:28 -07:00
Nir Soffer b973335449
docs: Update vment-helper installation (#21085)
vment-helper 0.6.0 simplified the installation by removing the version
from the tarball.
2025-07-17 16:01:17 -07:00
minikube-bot dce184900f
Kicbase/ISO: Update docker from 28.0.4 to 28.3.2 (#21053)
* Kicbase/ISO: Update docker from 28.0.4 to 28.3.2

* Updating kicbase image to v0.0.47-1752142599-21053

* Updating ISO to v1.36.0-1752142514-21053
2025-07-14 14:03:14 -07:00
minikube-bot 9e10635b90
Update yearly leaderboard (#21010) 2025-07-02 10:14:11 -07:00
Nir Soffer 77b44f9269
iso: Improve build and clean up configuration (#20991)
* iso: Extract buildroot target

Beofre we can build the iso, we need to clone and configure buildroot.
This is required to run iso-menuconfig-{arch}.

* iso: Extract iso-prepare-% target

This target prepare for building an iso or running menuconfig. With this
change we can run the {iso,linux}-menuconfig-{x86_64,aarch64} targets
without buidling the entire iso.

* iso: Fix linux-menuconfig-% target

Previouly it worked only after building the entire iso. Now we make this
target without building the iso or running iso-menuconfig.

On the first run this downloads and builds lot for packages required to
run the linux-menuconfig target, but it is much shorter than buidling
the entire iso.

* iso: Simplify linux-menuconfig-%

Preveviously we copied the defconfig manauly to the beoard config file.
This can be done using the special linux-update-defconfig target.

With this change we don't need to keep KERNEL_VERSION in the Makefile,
making future upgrade easier.

* iso: Update buildroot configuration for aarch64

Run `make iso-menuconfig-aarch64` without making any changes updates the
buildroot config. It seems that there were manual changes in the config
which are overwritten when running iso-menuconfig. Removing the manual
changes to make it easier to edit the configuration with kconfig.

* iso: Update buildroot configuration for x86_64

Same as the aarch64 change to make it easier to configure using kconfig.

* iso: Update linux configuration for aarch64

Same as iso-menuconfig-aarch64, run `make linux-menuconfig-aarch64` and
exit without any change to update the config. This seems to change the
order, removing manual changes from the config. This will make it easier
to configure using kconfig in the future.

* iso: Update linux configuration for x86_64

Same as the aarch64 changes to make it easier to configure using kconfig
in the future.

* iso: Disable all platform for aarch64

We run on qemu virt machine or apple virtualization so we don't need
support for all kinds of embeded Arm boards. This reduces the arm64 iso
size from 410 MiB to 392 MiB.

* Updating ISO to v1.36.0-1751221996-20991

* Updating ISO to v1.36.0-1751315722-20991

---------

Co-authored-by: minikube-bot <minikube-bot@google.com>
2025-07-01 14:21:57 -07:00
Imran Pochi 12752de516
docs: update mDNS reload instructions (#20955)
Signed-off-by: Imran Pochi <imranpochi@microsoft.com>
2025-06-25 11:17:03 -07:00
minikube-bot b3a45b3f39
bump default/newest kubernetes versions (#20963) 2025-06-25 11:02:15 -07:00
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 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