Add practical example showing how to build images directly in minikube
and deploy them to Kubernetes without needing a separate registry.
This demonstrates the key value proposition of the Docker API
compatibility approach.
Extend podman-env compatibility to support both crio and docker container
runtimes, providing users with more deployment flexibility while maintaining
the core Docker API compatibility approach that eliminates API version
conflicts.
This change allows podman-env to work with:
- Podman driver + crio runtime (original support)
- Podman driver + docker runtime (new support)
Both configurations use the same Docker API compatibility approach that
was implemented to address reviewer feedback about SSH-based connectivity
issues and API version mismatches.
- Change podman-env to use Docker client against Podman's Docker-compatible socket
- Remove SSH-based connectivity (Docker client doesn't support SSH keys)
- Simplify podman-env to use standard Docker environment variables
- Update tests to match new Docker API compatibility approach
- Update documentation to clarify Docker client usage
- Remove podman-specific test cases from docker-env_test.go
This addresses the core review feedback about API compatibility issues
and provides a cleaner separation between docker-env and podman-env.
- Remove DockerBackendDetector and DetectDockerBackend function
- Remove podman-specific logic from dockerEnvVars
- Simplify docker-env to only handle Docker API compatibility
* add update all go script
* add update all make target
* add update all make target
* standardize the component name for look up
* standardize amd amd component name
* rename all hack update go code to match component name to standardize
* delete extra folder
* update makefile with new standard filenames
* update component name amd
* fix amd gpu name
* skip amd for now till broken
* fix cilium helm update
* standard name for cloud spanner emulator
* standard crio name
* set max to 100
* delete old folder
* skip docsy for update all
* return error if fail to apply
* docsy versoin
* update files with go-github
* update file names
* move all make targets to same location
* standard name for golang comp
* skip istio addon
* skip kicbase version since it is not related
* skip kubeadm constant too
* skip kubernetes version too
* run components that dont support before/after
* update kubeadm constant
* skip kubeadm constant on non linux
* add kubernetes_versions_list to not support before/after
* list preload version as one of the internal jobs
* list preload version as one of the internal jobs
* simpllify the code
* use log for printing
* add boiler plates
* add gh workflow
* copy licenses to gh assests as well
* download licneses from github
* try head first to make code more simple
* remove debug
* fix extra dash
* create license directory if doesnt exist
* Apply suggestion from prezha
* Apply suggestion from prezha
* Apply suggestion from prezha
* Apply suggestion from prezha
* iso: Enable VirtioFS for x86_64 and aarch64
The Virtio Filesystem[1] allows guests to mount file systems from the
host.
Testing with krunkit show 10 times faster read throughput:
minikube krunkit - 9p:
$ time cp /mnt/models/mistral-7b-instruct-v0.2.Q4_K_M.gguf model
real 0m34.330s
user 0m0.019s
sys 0m1.959s
podman krunkit - virtiofs:
$ time cp /Users/nir/Downloads/models/mistral-7b-instruct-v0.2.Q4_K_M.gguf model
real 0m3.245s
user 0m0.006s
sys 0m1.035s
We must have virtiofs for playing with AI workload in krunkit. It can be
nice improvment for vfkti and qemu, and should be available in ohter
hypervisors.
[1] https://virtio-fs.gitlab.io/index.html
* Updating ISO to v1.36.0-1753487480-21147
---------
Co-authored-by: minikube-bot <minikube-bot@google.com>
I don't know why the linter did not complain in the CI, but running
locally revealed few issues:
% golangci-lint run ./pkg/drivers/krunkit
pkg/drivers/krunkit/krunkit.go:537:34: importShadow: shadow of
imported from 'github.com/docker/machine/libmachine/state' package
'state' (gocritic)
func (d *Driver) setKrunkitState(state string) error {
^
pkg/drivers/krunkit/krunkit.go:341:9: unnecessary-format:
unnecessary use of formatting function "fmt.Errorf", you can replace
it with "errors.New" (revive)
return fmt.Errorf("hosts without a driver cannot start docker")
^
pkg/drivers/krunkit/krunkit.go:345:9: unnecessary-format:
unnecessary use of formatting function "fmt.Errorf", you can replace
it with "errors.New" (revive)
return fmt.Errorf("hosts without a driver cannot stop docker")
^
pkg/drivers/krunkit/krunkit.go:444:18: func (*Driver).logfilePath is
unused (unused)
func (d *Driver) logfilePath() string {
^
Using go workspace breaks iso build, and may affect the builds in
unwanted ways, bringing dependencies from the hack module into the
minikube module.
Remove the go.work file and add a replace directive to the hack module,
so it can access minikube packages from the local directory.
Some programs working directory was the source directory. With this
change all programs and scripts in the hack module are run from the
hack directory. Paths updated to the programs can find files in the
minikube root directory.
Some updaters and benchmarks are broken in master and are still broken
with this change.
These updates fail to pull non-existing images:
- make update-istio-operator-version
- make update-amd-gpu-device-plugin-version
These try to install try to install in /usr/local/bin with sudo and
neede rewrite:
- make cpu-benchmark-idle
- make cpu-benchmark-autopause
- make time-to-k8s-benchmark