Commit Graph

8767 Commits (medyagh-patch-3)

Author SHA1 Message Date
minikube-bot 43b6ee1672
HA (multi-control plane): Update kube-vip from v0.9.1 to v0.9.2 (#20999) 2025-07-01 14:25:15 -07:00
minikube-bot a3dfbe589d
Addon kong: Update kong image from 3.9.0 to 3.9.1 (#20966) 2025-07-01 14:24:31 -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
Nir Soffer 804c01a7fb
vmnet: Support offloading for krunkit (#20831)
libkrun virtio-net driver enables TSO offloading and checksum
offloading by default, so we must use vment-helper --enable-tso and
--enable-checksum-offload with krunkit. These options do not work with
vfkit.
2025-06-30 11:09:50 -07:00
minikube-bot 4b06829b8b
Update go-github from v72.0.0 to v73.0.0 (#21000) 2025-06-30 10:55:33 -07:00
minikube-bot 24d5c736e5
update image constants for kubeadm images (#20996) 2025-06-30 10:39:18 -07:00
minikube-bot 7a2dfb41d1
update Kubernetes versions list (#20997) 2025-06-30 10:38:53 -07:00
gopherorg 28b0c9fa29
chore: fix some function names in comment (#20990)
Signed-off-by: gopherorg <gopherworld@icloud.com>
2025-06-27 12:24:44 -07:00
minikube-bot 24faef8b2d
CNI: Update cilium from v1.17.4 to v1.17.5 (#20968) 2025-06-25 12:18:32 -07:00
minikube-bot 30d0c5f4ea
Addon kong: Update kong/kubernetes-ingress-controller image from 3.4.6 to 3.4.7 (#20969) 2025-06-25 11:31:17 -07:00
minikube-bot b3a45b3f39
bump default/newest kubernetes versions (#20963) 2025-06-25 11:02:15 -07:00
minikube-bot 157a99d7a8
update Kubernetes versions list (#20961) 2025-06-25 11:00:41 -07:00
minikube-bot 64e40c6190
Addon cloud-spanner: Update cloud-spanner-emulator/emulator image from 1.5.34 to 1.5.35 (#20976) 2025-06-23 12:01:30 -07:00
minikube-bot db95e211d1
update image constants for kubeadm images (#20960) 2025-06-23 11:59:59 -07:00
minikube-bot 989a077ac4
CNI: Update calico from v3.30.1 to v3.30.2 (#20971) 2025-06-23 11:59:41 -07:00
minikube-bot bea459a7c4
Addon kubevirt: Update bitnami/kubectl image from 1.33.1 to 1.33.1 (#20939) 2025-06-17 10:58:35 -07:00
minikube-bot eaa7f46e72
Addon kong: Update kong/kubernetes-ingress-controller image from 3.4.5 to 3.4.6 (#20908) 2025-06-12 11:14:50 -07:00
Tian 1c9097f218
fix: YAML file escape error problem (#20904) 2025-06-11 11:42:18 -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 1cdd1e2334
CNI: Update flannel from v0.26.7 to v0.27.0 (#20907) 2025-06-10 09:46:34 -07:00
minikube-bot 0cf4a80c74
Addon kubevirt: Update bitnami/kubectl image from 1.33.1 to 1.33.1 (#20911) 2025-06-10 09:44:39 -07:00
minikube-bot 93289780e7
Addon ingress: Update ingress-nginx/controller image from v1.12.2 to v1.12.3 (#20909) 2025-06-10 09:38:34 -07:00
Nir Soffer 57dd4b3d17
iso: Disable grub timeout speeding up vm start by 5 seconds (#20895)
* iso: Disable grub timeout

This speeds up machine boot by 5 seconds. The timeout may be helpful for
debugging boot issues but we don't have a way to access the serial
console for debugging currently.

Testing shows about ~5 seconds speedup.

| driver     | timeout | start time |
|------------|---------|------------|
| vfkit[1]   |     5.0 |      24.01 |
| vfkit[1]   |     0.0 |      19.90 |
| qemu       |     5.0 |      29.46 |
| qemu       |     0.0 |      24.28 |
| krunkit[2] |     5.0 |      25.14 |
| krunkit[2] |     0.0 |      20.51 |

[1] Tested with #20833, booting using iso instead of direct kernel
    boot. Direct kernel boot is little bit faster (e.g. 18.x).
[2] Tested with #20826

* Updating ISO to v1.36.0-1749153077-20895

---------

Co-authored-by: minikube-bot <minikube-bot@google.com>
2025-06-06 16:07:50 -07:00
Nir Soffer 10fb3bb8f4
qemu: Add serial log (#20894)
Log serial console to ~/.minikube/machines/NAME/serial.log to make
it easy to debug boot issues.
2025-06-06 10:29:10 -07:00
Nir Soffer da0839e79d
iso: Fix console for vfkit/krunkit (#20832)
* iso: Fix console for vfkit/krunkit

The serial console name depends on the driver. We had setting for qemu
that does not work for vfkit and krunkit, breaking boot from minikube
iso.

Fixed by using 2 console= options, one is known to work for qemu, and
one for vfkit and krunkit. With this we can use the same iso image with
qemu, vfkit, and krunkit.

This will allow simplifying vfkit driver. Previously we had to extract
the kernel and initrd and start it using the legacy --kernel,
--kernel-cmdline and --initrd options.

I tested this by building the iso with this fix and running with
--iso-url.

Example run with qemu:

    % minikube start -p qemu --driver qemu --container-runtime containerd \
        --iso-url file://$PWD/minikube-arm64.iso
    😄  [qemu] minikube v1.36.0 on Darwin 15.5 (arm64)
      Using the qemu2 driver based on user configuration
    🌐  Automatically selected the socket_vmnet network
    👍  Starting "qemu" primary control-plane node in "qemu" cluster
    🔥  Creating qemu2 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 "qemu" cluster and "default" namespace by default

Example run with krunkit:

    % minikube start -p krunkit --driver krunkit --container-runtime containerd \
        --iso-url file://$PWD/minikube-arm64.iso
    😄  [krunkit] minikube v1.36.0 on Darwin 15.5 (arm64)
      Using the krunkit (experimental) driver based on user configuration
    👍  Starting "krunkit" primary control-plane node in "krunkit" cluster
    🔥  Creating krunkit 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 "krunkit" cluster and "default" namespace by default

* Updating ISO to v1.36.0-1749066232-20832

---------

Co-authored-by: minikube-bot <minikube-bot@google.com>
2025-06-05 10:54:58 -07:00
Andres Morey 60212f165f
new: add kubetail addon (#20345)
Signed-off-by: Andres Morey <andresmarcel@gmail.com>
2025-06-05 10:39:36 -07:00
Predrag Rogic 4da3cedc84
Fix KVM driver (tests) timeouts (#20852)
* Fix KVM driver tests timeouts

Rewrite KVM driver waiting logic for domain start, getting ip address
and shutting domain down. Add more config/state outputs to aid future
debugging.

Bump go/libvirt to v1.11002.0 and set the minimum memory required for
running all tests to 3GB to avoid some really weird system behaviour.

* revert reduction of timelimit for TestCert tests run

* set memory and debug output in TestNoKubernetes tests

* extend kvm waitForStaticIP timeout

* add console log to debug output

* Updating ISO to v1.36.0-1748823857-20852

---------

Co-authored-by: minikube-bot <minikube-bot@google.com>
2025-06-03 15:07:48 -07:00
minikube-bot 2ca8686064
CNI: Update calico from v3.30.0 to v3.30.1 (#20871) 2025-06-03 12:42:47 -07:00
minikube-bot b12050d946
Addon inspektor-gadget: Update inspektor-gadget image from v0.40.0 to v0.41.0 (#20873) 2025-06-03 12:17:07 -07:00
minikube-bot 5d2e31172a
Addon Volcano: Update volcano images from v1.11.2 to v1.12.1 (#20868) 2025-06-02 14:31:47 -07:00
Tian 3cf1e63e21
build: address all lint issues by v2 (#20804)
* fix QF1011: could omit type *os.File from declaration; it will be inferred from the right-hand side

* fix QF1012: Use fmt.Fprintf(x, ...) instead of x.Write(fmt.Sprintf(...))

* fix QF1001: could apply De Morgan's law

* fix QF1003: could use tagged switch

* fix weakCond: suspicious ; nil check may not be enough, check for len (gocritic)

* fix docStub: silencing go lint doc-comment warnings is unadvised

* fix builtinShadow: shadowing of predeclared identifier: error

* fix importShadow: shadow of imported package

* fix nestingReduce: invert if cond, replace body with , move old body after the statement

* useless-break: useless break in case clause (revive)

* Clear the redundant content in golangci.yaml file
2025-05-23 17:31:28 -07:00
minikube-bot 012dc3cba9
Release: Update kicbase to v0.0.47 (#20819) 2025-05-22 00:42:03 -07:00
minikube-bot cc5eacb23d
Release: Update ISO to v1.36.0 (#20816) 2025-05-21 20:33:46 -07:00
Nir Soffer 3496901b73
vfkit: Change priority to Preferred (#20808)
vfkit is using the native virtualization framework, provides good best
performance and all the features needed by minikube. It is also well
maintained and used by other projects like podman.

This fixes the automatic driver selection. When we start minikube on a
system with both vfkit and qemu, vfkit is selected:

    % minikube start
    😄  minikube v1.35.0 on Darwin 15.5 (arm64)
      Automatically selected the vfkit driver. Other choices: qemu2, ssh, podman (experimental)
    👍  Starting "minikube" primary control-plane node in "minikube" cluster
    🔥  Creating vfkit VM (CPUs=2, Memory=6000MB, Disk=20000MB) ...
    🐳  Preparing Kubernetes v1.33.1 on Docker 28.0.4 ...
        ▪ 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 "minikube" cluster and "default" namespace by default
2025-05-21 11:33:52 -07:00
minikube-bot 38a80fee9d
Addon ingress: Update ingress-nginx/controller image from v1.11.3 to v1.12.2 (#20789) 2025-05-19 14:35:25 -07:00
minikube-bot e19892000c
CNI: Update cilium from v1.17.3 to v1.17.4 (#20787) 2025-05-19 12:37:09 -07:00
minikube-bot b798463301
Addon kubevirt: Update bitnami/kubectl image from 1.33.0 to 1.33.1 (#20790) 2025-05-19 12:36:46 -07:00
minikube-bot fce7bcfabb
Addon cloud-spanner: Update cloud-spanner-emulator/emulator image from 1.5.33 to 1.5.34 (#20795) 2025-05-19 12:33:39 -07:00
minikube-bot 6b62b027d7
Addon nvidia-device-plugin: Update nvidia/k8s-device-plugin image from v0.17.1 to v0.17.2 (#20786) 2025-05-19 12:30:35 -07:00
minikube-bot 2943611b81
bump default/newest kubernetes versions (#20784) 2025-05-19 12:30:08 -07:00
minikube-bot 3b65dada09
Addon kong: Update kong/kubernetes-ingress-controller image from 3.4.4 to 3.4.5 (#20788) 2025-05-19 12:29:28 -07:00
minikube-bot 8c643248af
update Kubernetes versions list (#20783) 2025-05-19 12:28:42 -07:00
minikube-bot 588145e85f
update image constants for kubeadm images (#20782) 2025-05-19 12:28:13 -07:00
minikube-bot 43ef17cc35
CNI: Update kindnetd from v20250214-acbabc1a to v20250512-df8de77b (#20797) 2025-05-19 11:00:31 -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
Victor Ubahakwe 0810e7b51c
Update service tests to use discoveryv1.EndpointSlice instead of deprecated core.Endpoints (#20679)
* Update service tests to use-
discoveryv1.EndpointSlice instead of deprecated core.Endpoints

This PR addresses the deprecation warnings for core.Endpoints which is deprecated in Kubernetes v1.33+ in favor of discoveryv1.EndpointSlice.

Changes:
- Replaced all core.Endpoints references with discoveryv1.EndpointSlice
- Updated mock interfaces and test data structures to use the new API
- Maintained all existing test functionality and assertions
- No behavioral changes - just API modernization

Fixes #20677

* fixed lint issue

- make lint now runs without error

* Fix multiple panics in pkg/minikube/service tests by improving mock client initialization

This commit addresses a series of nil pointer dereference panics in the test suite for pkg/minikube/service, ensuring all tests pass reliably. The changes focus on improving the initialization of mock Kubernetes clients to prevent nil pointer dereferences in the fake client's `Invokes` method. The fixes include:

1. **TestPrintURLsForService/throw_error_without_template Panic**:
   - Issue: A panic occurred due to an uninitialized `FakeCoreV1` field in `MockCoreClient`, causing a nil pointer dereference when `Services().Get` was called.
   - Fix: Initialized `FakeCoreV1` with `Fake: &testing_fake.Fake{}` in the `TestPrintURLsForService` setup, ensuring the fake client is properly configured.

2. **TestGetServiceURLs/correctly_return_serviceURLs Panic**:
   - Issue: A similar panic occurred in `GetServiceURLs` due to the `FakeCoreV1` field not being initialized in `MockCoreClient` returned by `MockClientGetter`.
   - Fix: Updated `MockClientGetter.GetCoreClient` to initialize `FakeCoreV1` with `Fake: &testing_fake.Fake{}`, ensuring all tests using `MockClientGetter` have a properly initialized client.

3. **TestDeleteSecret/ok Panic**:
   - Issue: A panic occurred in `DeleteSecret` when calling `secrets.Delete` for the `foo` namespace, as `secretsNamespaces` lacked an entry for `foo`, returning a nil interface.
   - Fix: Added a `MockSecretInterface` for the `foo` namespace to `secretsNamespaces`, ensuring `client.Secrets("foo")` returns a valid interface. Updated `initializeMockObjects` to verify the `Fake` field for the new entry.

Additional improvements:
- Ensured `initializeMockObjects` consistently initializes `Fake` fields across all mock interfaces (`serviceNamespaces`, `serviceNamespaceOther`, `endpointSliceNamespaces`, and `secretsNamespaces`).
- Verified that all test setups align with mock configurations, preventing similar issues in other tests (e.g., `TestCreateSecret`, `TestWaitAndMaybeOpenService`).
- Confirmed no linting issues with `make lint` and validated all tests pass with `go test -v ./pkg/minikube/service/...`.
2025-05-15 11:16:38 -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
VerlorenerReisender 4072869ecf
fix bug in parsing proxies with dashes (#20648)
* fix: fix bug in  MaskProxyPassword

* remove company names
2025-05-13 12:58:10 -07:00
minikube-bot bc4a5b8276
Update go-github from v71.0.0 to v72.0.0 (#20729) 2025-05-13 10:08:46 -07:00