* add vfkit functional test
* trigger the test
* fix post mortem logs not showing when status is running with warning
* revert dot
* bump time-out
* detect time outs
* debug
* no bash 0
* detect timeout and exit failure on timeout
* refactor the end results to use funcs
* dont rename setup-go
* more refacor
* time elapsed
* fix time_elapsed not being set
* try capture run exit code
* revert unneeded changes
* remove time duration dupolicate
* remove wait-timeout as extra arg
* bump timeout for all jobs to reduce flakes for timeout
* remove extrafile
* add path to ignore for smoke test to avoid spam smoke test
* limnit smoke test to one active per PR
* add path ignore for functional test
* rename
* update all minor improvment
* break down lint job to 3 jobs
* experiment yaml anchors for path ignores
* yaml anhors
* add matrixfying
* ensure matrix jobs run after build binaries job
* use echo instead of helper
* setup-go needs go version
* make binaries executables
* chmod +x for test binaries
* install conntrack and socat for baremetal
* cancel preivous commits jobs in favor of latest job
* limit to 7 digits of sha for gopogh file
* echo gopogh url
* add run id to gopogh filename
* fix indent
* rename to build-test-binaries
* list skipped files too
* kubectl test better
* use short run id
* imrove error tet
* download kubectl to a tmp folder and remove leftover
* produce job summary
* fix names
* better results summary
* publish gopogh url in summary
* format better
* wordings
* add a new job unit test
* comment
* unit test script mkdir for coverage folder for widnows
* try to fix unit test for windows
* dont fix windows tests in this PR
* add lint job
* fix name
* separate boilerplate and add go modtidy
* install libvirt for lint
* name
* go mod tidy
* dont repeat name functional twice
* rename step
* fix comment
* fix run id
* delete debug
* adjust timeouts and treat 0 pass as failure icon
* rename job
* fix name
The --mount-string argument defaults to `/Users` on darwin, and
homedir.Homedir() on other platforms (e.g. $HOME on unix).
This is wrong in many ways:
- `/Users` is not HOME on darwin (the right path is `/Users/$USER`).
Using the default mount we cannot access anything inside the guest in
the user home directory. We can access the special `/Users/Shared`
directory, but this should not be a default mount.
- Mounting the user home directory inside the guest in read-write mode
is a horrible default. This exposes the users private keys in .ssh/ to
the guest, any sensitive files in the user home directory, and allows
the guest to change any file on the host.
- Using the `--mount` option mount the default mount directory silently.
This is unexpected, surprising, and not documented in the minikube
handbook[1].
Example access to user private key from the guest with the default
mount:
$ minikube start --mount
$ minikube ssh cat /minikube-host/.ssh/id_ed25519
-----BEGIN OPENSSH PRIVATE KEY-----
...
-----END OPENSSH PRIVATE KEY-----
Fixed by removing the default mount directory and changing mount logic
to check for non-empty mount-string instead of the mount flag.
The mount flag is kept for backward compatibility, but its value is
ignored. In the next release we want to use this flag for supporting
multiple mounts.
Example usage before:
minikube start --mount --mount-string ~/models:/mnt/models
Example usage after:
minikube start --mount-string ~/models:/mnt/models
Breaking changes:
User depending the default mount will have to replace the command:
minikube start --mount
With:
minikube start --mount-string $HOME:/minikube-host
[1] https://minikube.sigs.k8s.io/docs/handbook/mount/
* add qemu functional test to github action on macos13
* remove memory arg
* add higher wait time for qemu and nested in integration test for pvc
* higher mins for qemu/vfkit nested
* use maxwait
* add same workflow for master jobs
* bump wait
Add special case handlers in get_version.go for components that require
non-standard version extraction methods:
- docsy: Extract git submodule commit hash
- kubernetes: Read DefaultKubernetesVersion from constants
- kubeadm-constants: Parse latest version from kubeadm images map
- kubernetes-versions-list: Count and summarize supported versions
- site-node: Use existing node version extraction from netlify.toml
Remove all entries from noVersionCheck map in update_all.go to enable
before/after version comparison for these components.
This allows 'DEP=component make get-dependency-version' commands to work
for all components, improving the auto-updater workflow.
Move all files and packages which are not a driver to the drivers/common
package. This helps to understand the structure of the code.
While moving, move the iso_test.iso into testdata/test.iso to separate
code and test data.
While fixing the test iso path fix few bugs in the tests using wrong iso
path. The test failed because the iso path was wrong instead of issue
with source or destination path.
New directory structure:
% tree -L1 pkg/drivers
pkg/drivers
├── common
├── hyperkit
├── kic
├── krunkit
├── kvm
├── none
├── qemu
├── ssh
└── vfkit
Running the function tests creates a licenses directory and checks out
the "github.com/hooklift/iso9660" module, which imports
"github.com/c4milo/gotoolkit".
% git status
...
Untracked files:
(use "git add <file>..." to include in what will be committed)
test/integration/licenses/
At this point running go mod tidy will add the gotoolkit module:
% go mod tidy --diff
diff current/go.mod tidy/go.mod
--- current/go.mod
+++ tidy/go.mod
@@ -13,6 +13,7 @@
github.com/Xuanwo/go-locale v1.1.3
github.com/blang/semver/v4 v4.0.0
github.com/briandowns/spinner v1.23.2
+ github.com/c4milo/gotoolkit v0.0.0-20190525173301-67483a18c17a
github.com/cenkalti/backoff/v4 v4.3.0
github.com/cheggaaa/pb/v3 v3.1.7
github.com/cloudevents/sdk-go/v2 v2.16.0
...
"github.com/hooklift/iso9660" does not have a go.mod file, so `go mod
tidy` treats is as part of the main module and update go.mod.
We should find a better place to check out the licenses, maybe a test
temporary directory, but let's start with quick fix: ignore the license
directory, and include it in `make clean`.
getWindowsVolumeNameCmd uses the deprecated wmic.exe.
See https://learn.microsoft.com/en-us/windows/win32/wmisdk/wmic for
details.
Replace the implementation with a call to the Powershell equivalent.
Look in path and system environment vars to locate Powershell.
Improve Powershell discovery