Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

kvm: recover from minikube-net network left over failures #9641

Merged
merged 2 commits into from
Nov 10, 2020

Conversation

prezha
Copy link
Contributor

@prezha prezha commented Nov 9, 2020

fixes: #9610
fixes: #9049
fixes: #8952

as explained in original issues, cluster with minikube-net network for kvm driver might fail because eg, the network is inactive or already in use, and this pr tries to handle those situations by either trying to avoid race conditions between ops in the first place, then fix the issue, or recreate the network as the last resort

example for safely recreating minikube-net network (if all else fails)

step 1 - create cluster with kvm2 driver:

$ minikube start --driver=kvm2

step 2 - stop the cluster:

$ minikube stop

✋  Stopping node "minikube"  ...
🛑  1 nodes stopped.

step 3 - check networks:

# virsh net-list --all
 Name           State    Autostart   Persistent
-------------------------------------------------
 default        active   yes         yes
 minikube-net   active   yes         yes

step 4 - 'break' minikube-net network:

# virsh net-destroy minikube-net 
Network minikube-net destroyed

step 5 - check networks:

# virsh net-list --all
 Name           State      Autostart   Persistent
---------------------------------------------------
 default        active     yes         yes
 minikube-net   inactive   yes         yes

step 6 - disable 'easy fix' (reactivate inactive network) in kvm.setupNetwork()

step 7 - start the cluster (and see the network being safely recreated, and cluster brought up successfully):

$ minikube start --alsologtostderr -v=99

relevant output sections:

...
I1109 02:14:34.527197  733246 fix.go:107] recreateIfNeeded on minikube: state=Stopped err=<nil>
I1109 02:14:34.527215  733246 main.go:119] libmachine: (minikube) Calling .DriverName
W1109 02:14:34.527311  733246 fix.go:133] unexpected machine state, will restart: <nil>
I1109 02:14:34.535671  733246 out.go:110] 🔄  Restarting existing kvm2 VM for "minikube" ...
🔄  Restarting existing kvm2 VM for "minikube" ...
I1109 02:14:34.535689  733246 main.go:119] libmachine: (minikube) Calling .Start
I1109 02:14:34.535795  733246 main.go:119] libmachine: (minikube) Ensuring networks are active...
I1109 02:14:34.537807  733246 main.go:119] libmachine: (minikube) Ensuring network default is active
I1109 02:14:34.538136  733246 main.go:119] libmachine: (minikube) Ensuring network minikube-net is active
I1109 02:14:34.538402  733246 main.go:119] libmachine: (minikube) DBG | Network minikube-net is inoperable, will try to recreate it: network minikube-net inactive
I1109 02:14:34.539801  733246 main.go:119] libmachine: (minikube) DBG | Checking if network minikube-net exists...
I1109 02:14:34.539815  733246 main.go:119] libmachine: (minikube) DBG | Network minikube-net exists
I1109 02:14:34.539827  733246 main.go:119] libmachine: (minikube) DBG | Trying to list all domains...
I1109 02:14:34.539904  733246 main.go:119] libmachine: (minikube) DBG | Listed all domains: total of 6 domains
I1109 02:14:34.539920  733246 main.go:119] libmachine: (minikube) DBG | Trying to get name of domain...
I1109 02:14:34.539932  733246 main.go:119] libmachine: (minikube) DBG | Got domain name: minikube
I1109 02:14:34.539941  733246 main.go:119] libmachine: (minikube) DBG | Skipping domain as it is us...
I1109 02:14:34.539951  733246 main.go:119] libmachine: (minikube) DBG | Trying to get name of domain...
I1109 02:14:34.539960  733246 main.go:119] libmachine: (minikube) DBG | Got domain name: Dom1
I1109 02:14:34.539973  733246 main.go:119] libmachine: (minikube) DBG | Getting XML for domain Dom1...
I1109 02:14:34.540178  733246 main.go:119] libmachine: (minikube) DBG | Got XML for domain Dom1
I1109 02:14:34.540724  733246 main.go:119] libmachine: (minikube) DBG | Unmarshaled XML for domain Dom1: kvm.result{Name:"Dom1", Interfaces:[]kvm.iface{kvm.iface{Source:kvm.source{Network:"default"}}}}
I1109 02:14:34.540736  733246 main.go:119] libmachine: (minikube) DBG | domain Dom1 does not use network minikube-net
I1109 02:14:34.540749  733246 main.go:119] libmachine: (minikube) DBG | Trying to get name of domain...
I1109 02:14:34.540757  733246 main.go:119] libmachine: (minikube) DBG | Got domain name: opensuse15.2
I1109 02:14:34.540768  733246 main.go:119] libmachine: (minikube) DBG | Getting XML for domain opensuse15.2...
I1109 02:14:34.540873  733246 main.go:119] libmachine: (minikube) DBG | Got XML for domain opensuse15.2
I1109 02:14:34.541428  733246 main.go:119] libmachine: (minikube) DBG | Unmarshaled XML for domain opensuse15.2: kvm.result{Name:"opensuse15.2", Interfaces:[]kvm.iface{kvm.iface{Source:kvm.source{Network:"default"}}}}
I1109 02:14:34.541444  733246 main.go:119] libmachine: (minikube) DBG | domain opensuse15.2 does not use network minikube-net
I1109 02:14:34.541456  733246 main.go:119] libmachine: (minikube) DBG | Trying to get name of domain...
I1109 02:14:34.541464  733246 main.go:119] libmachine: (minikube) DBG | Got domain name: opensuse15.2-clone
I1109 02:14:34.541476  733246 main.go:119] libmachine: (minikube) DBG | Getting XML for domain opensuse15.2-clone...
I1109 02:14:34.541564  733246 main.go:119] libmachine: (minikube) DBG | Got XML for domain opensuse15.2-clone
I1109 02:14:34.542111  733246 main.go:119] libmachine: (minikube) DBG | Unmarshaled XML for domain opensuse15.2-clone: kvm.result{Name:"opensuse15.2-clone", Interfaces:[]kvm.iface{kvm.iface{Source:kvm.source{Network:"default"}}}}
I1109 02:14:34.542130  733246 main.go:119] libmachine: (minikube) DBG | domain opensuse15.2-clone does not use network minikube-net
I1109 02:14:34.542142  733246 main.go:119] libmachine: (minikube) DBG | Trying to get name of domain...
I1109 02:14:34.542149  733246 main.go:119] libmachine: (minikube) DBG | Got domain name: Dom2
I1109 02:14:34.542161  733246 main.go:119] libmachine: (minikube) DBG | Getting XML for domain Dom2...
I1109 02:14:34.542272  733246 main.go:119] libmachine: (minikube) DBG | Got XML for domain Dom2
I1109 02:14:34.542775  733246 main.go:119] libmachine: (minikube) DBG | Unmarshaled XML for domain Dom2: kvm.result{Name:"Dom2", Interfaces:[]kvm.iface{kvm.iface{Source:kvm.source{Network:"default"}}}}
I1109 02:14:34.542792  733246 main.go:119] libmachine: (minikube) DBG | domain Dom2 does not use network minikube-net
I1109 02:14:34.542805  733246 main.go:119] libmachine: (minikube) DBG | Trying to get name of domain...
I1109 02:14:34.542815  733246 main.go:119] libmachine: (minikube) DBG | Got domain name: Dom3
I1109 02:14:34.542826  733246 main.go:119] libmachine: (minikube) DBG | Getting XML for domain Dom3...
I1109 02:14:34.542926  733246 main.go:119] libmachine: (minikube) DBG | Got XML for domain Dom3
I1109 02:14:34.543397  733246 main.go:119] libmachine: (minikube) DBG | Unmarshaled XML for domain Dom3: kvm.result{Name:"Dom3", Interfaces:[]kvm.iface{kvm.iface{Source:kvm.source{Network:"default"}}}}
I1109 02:14:34.543412  733246 main.go:119] libmachine: (minikube) DBG | domain Dom3 does not use network minikube-net
I1109 02:14:34.543424  733246 main.go:119] libmachine: (minikube) DBG | Trying to destroy network minikube-net...
I1109 02:14:34.543507  733246 main.go:119] libmachine: (minikube) DBG | Trying to reactivate network minikube-net first...
I1109 02:14:34.778054  733246 main.go:119] libmachine: (minikube) DBG | Trying to undefine network minikube-net...
I1109 02:14:34.779608  733246 main.go:119] libmachine: (minikube) DBG | Successfully deleted minikube-net network
I1109 02:14:34.900222  733246 main.go:119] libmachine: (minikube) DBG | Successfully recreated minikube-net network
I1109 02:14:34.900776  733246 main.go:119] libmachine: (minikube) DBG | Successfully activated minikube-net network
I1109 02:14:34.900955  733246 main.go:119] libmachine: (minikube) Getting domain xml...
I1109 02:14:34.903049  733246 main.go:119] libmachine: (minikube) Creating domain...
I1109 02:14:35.202168  733246 main.go:119] libmachine: (minikube) Waiting to get IP...
I1109 02:14:35.206868  733246 main.go:119] libmachine: (minikube) DBG | Waiting for machine to come up 0/40
I1109 02:14:38.211570  733246 main.go:119] libmachine: (minikube) DBG | Waiting for machine to come up 1/40
I1109 02:14:41.226804  733246 main.go:119] libmachine: (minikube) DBG | Waiting for machine to come up 2/40
I1109 02:14:44.242477  733246 main.go:119] libmachine: (minikube) DBG | Waiting for machine to come up 3/40
I1109 02:14:47.248240  733246 main.go:119] libmachine: (minikube) DBG | Getting to WaitForSSH function...
I1109 02:14:47.248289  733246 main.go:119] libmachine: (minikube) Found IP for machine: 192.168.39.42
I1109 02:14:47.248347  733246 main.go:119] libmachine: (minikube) Waiting for SSH to be available...
I1109 02:14:47.253140  733246 main.go:119] libmachine: (minikube) DBG | Using SSH client type: external
I1109 02:14:47.253172  733246 main.go:119] libmachine: (minikube) DBG | Using SSH private key: /home/prezha/.minikube/machines/minikube/id_rsa (-rw-------)
I1109 02:14:47.253229  733246 main.go:119] libmachine: (minikube) DBG | &{[-F /dev/null -o ConnectionAttempts=3 -o ConnectTimeout=10 -o ControlMaster=no -o ControlPath=none -o LogLevel=quiet -o PasswordAuthentication=no -o ServerAliveInterval=60 -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null [email protected] -o IdentitiesOnly=yes -i /home/prezha/.minikube/machines/minikube/id_rsa -p 22] /usr/bin/ssh <nil>}
I1109 02:14:47.253252  733246 main.go:119] libmachine: (minikube) DBG | About to run SSH command:
I1109 02:14:47.253269  733246 main.go:119] libmachine: (minikube) DBG | exit 0
I1109 02:14:47.375267  733246 main.go:119] libmachine: (minikube) DBG | SSH cmd err, output: <nil>: 
I1109 02:14:47.375481  733246 main.go:119] libmachine: (minikube) Calling .GetConfigRaw
I1109 02:14:47.375947  733246 main.go:119] libmachine: (minikube) Calling .GetIP
...
I1109 02:15:22.129948  733246 out.go:110] 🌟  Enabled addons: storage-provisioner, default-storageclass
🌟  Enabled addons: storage-provisioner, default-storageclass
I1109 02:15:22.129969  733246 addons.go:373] enableAddons completed in 593.04175ms
I1109 02:15:22.160877  733246 start.go:461] kubectl: 1.19.3, cluster: 1.19.2 (minor skew: 0)
I1109 02:15:22.165854  733246 out.go:110] 🏄  Done! kubectl is now configured to use "minikube" cluster and "default" namespace by default
🏄  Done! kubectl is now configured to use "minikube" cluster and "default" namespace by default

step 8 - finally, check networks again:

# virsh net-list --all
 Name           State    Autostart   Persistent
-------------------------------------------------
 default        active   yes         yes
 minikube-net   active   yes         yes

@k8s-ci-robot k8s-ci-robot added cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. needs-ok-to-test Indicates a PR that requires an org member to verify it is safe to test. labels Nov 9, 2020
@k8s-ci-robot
Copy link
Contributor

Hi @prezha. Thanks for your PR.

I'm waiting for a kubernetes member to verify that this patch is reasonable to test. If it is, they should reply with /ok-to-test on its own line. Until that is done, I will not automatically test new commits in this PR, but the usual testing commands by org members will still work. Regular contributors should join the org to skip this step.

Once the patch is verified, the new status will be reflected by the ok-to-test label.

I understand the commands that are listed here.

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

@k8s-ci-robot k8s-ci-robot added the size/M Denotes a PR that changes 30-99 lines, ignoring generated files. label Nov 9, 2020
@TravisBuddy
Copy link

Travis tests have failed

Hey @prezha,
Please read the following log in order to understand the failure reason.
It'll be awesome if you fix what's wrong and commit the changes.

1st Build

View build log

make test
PATH="/home/travis/gopath/bin:/home/travis/.gimme/versions/go1.15.2.linux.amd64/bin:/home/travis/bin:/home/travis/bin:/home/travis/.local/bin:/usr/local/lib/jvm/openjdk11/bin:/opt/pyenv/shims:/home/travis/.phpenv/shims:/home/travis/perl5/perlbrew/bin:/home/travis/.nvm/versions/node/v8.12.0/bin:/home/travis/.rvm/gems/ruby-2.5.3/bin:/home/travis/.rvm/gems/ruby-2.5.3@global/bin:/home/travis/.rvm/rubies/ruby-2.5.3/bin:/home/travis/gopath/bin:/home/travis/.gimme/versions/go1.11.1.linux.amd64/bin:/usr/local/maven-3.6.3/bin:/usr/local/cmake-3.12.4/bin:/usr/local/clang-7.0.0/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin:/home/travis/.rvm/bin:/home/travis/.phpenv/bin:/opt/pyenv/bin:/home/travis/.yarn/bin:/home/travis/gopath/bin" go-bindata -nomemcopy -o pkg/minikube/assets/assets.go -pkg assets deploy/addons/...
gofmt -s -w pkg/minikube/assets/assets.go
PATH="/home/travis/gopath/bin:/home/travis/.gimme/versions/go1.15.2.linux.amd64/bin:/home/travis/bin:/home/travis/bin:/home/travis/.local/bin:/usr/local/lib/jvm/openjdk11/bin:/opt/pyenv/shims:/home/travis/.phpenv/shims:/home/travis/perl5/perlbrew/bin:/home/travis/.nvm/versions/node/v8.12.0/bin:/home/travis/.rvm/gems/ruby-2.5.3/bin:/home/travis/.rvm/gems/ruby-2.5.3@global/bin:/home/travis/.rvm/rubies/ruby-2.5.3/bin:/home/travis/gopath/bin:/home/travis/.gimme/versions/go1.11.1.linux.amd64/bin:/usr/local/maven-3.6.3/bin:/usr/local/cmake-3.12.4/bin:/usr/local/clang-7.0.0/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin:/home/travis/.rvm/bin:/home/travis/.phpenv/bin:/opt/pyenv/bin:/home/travis/.yarn/bin:/home/travis/gopath/bin" go-bindata -nomemcopy -o pkg/minikube/translate/translations.go -pkg translate translations/...
gofmt -s -w pkg/minikube/translate/translations.go
MINIKUBE_LDFLAGS="-X k8s.io/minikube/pkg/version.version=v1.14.2 -X k8s.io/minikube/pkg/version.isoVersion=v1.14.0 -X k8s.io/minikube/pkg/version.isoPath=minikube/iso -X k8s.io/minikube/pkg/version.gitCommitID="5768d105a3cdb98c2733ba117b4a19c1e9be0286" -X k8s.io/minikube/pkg/version.storageProvisionerVersion=v3" ./test.sh
= schema_check ==========================================================
go: downloading github.com/xeipuuv/gojsonschema v0.0.0-20180618132009-1d523034197f
go: downloading github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415
go: downloading github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f
ok
= go test ===============================================================
go: downloading github.com/phayes/freeport v0.0.0-20180830031419-95f893ade6f2
go: downloading github.com/machine-drivers/machine v0.7.1-0.20200810185219-7d42fed1b770
go: downloading golang.org/x/crypto v0.0.0-20200820211705-5c72a883971a
go: downloading github.com/hooklift/iso9660 v0.0.0-20170318115843-1cf07e5970d8
go: downloading k8s.io/client-go v0.17.3
go: downloading github.com/golang-collections/collections v0.0.0-20130729185459-604e922904d3
go: downloading github.com/spf13/cobra v1.0.0
go: downloading k8s.io/apimachinery v0.17.3
go: downloading golang.org/x/sync v0.0.0-20200317015054-43a5402ce75a
go: downloading github.com/google/uuid v1.1.1
go: downloading github.com/spf13/pflag v1.0.5
go: downloading k8s.io/kubernetes v1.18.5
go: downloading k8s.io/kubectl v0.17.3
go: downloading github.com/shirou/gopsutil v2.18.12+incompatible
go: downloading github.com/cheggaaa/pb v1.0.27
go: downloading github.com/blang/semver v3.5.0+incompatible
go: downloading github.com/cheggaaa/pb/v3 v3.0.1
go: downloading k8s.io/api v0.17.3
go: downloading github.com/docker/go-units v0.4.0
go: downloading github.com/olekukonko/tablewriter v0.0.4
go: downloading github.com/juju/mutex v0.0.0-20180619145857-d21b13acf4bf
go: downloading github.com/gogo/protobuf v1.3.1
go: downloading github.com/mattn/go-colorable v0.1.6
go: downloading github.com/docker/docker v1.4.2-0.20190924003213-a8608b5b67c7
go: downloading github.com/intel-go/cpuid v0.0.0-20181003105527-1a4a6f06a1c6
go: downloading github.com/spf13/viper v1.7.0
go: downloading github.com/VividCortex/ewma v1.1.1
go: downloading github.com/pkg/profile v0.0.0-20161223203901-3a8809bd8a80
go: downloading github.com/otiai10/copy v1.0.2
go: downloading github.com/mattn/go-runewidth v0.0.7
go: downloading github.com/machine-drivers/docker-machine-driver-vmware v0.1.1
go: downloading github.com/cloudevents/sdk-go/v2 v2.1.0
go: downloading github.com/spf13/afero v1.2.2
go: downloading gopkg.in/yaml.v2 v2.3.0
go: downloading github.com/afbjorklund/go-getter v1.4.1-0.20201020145846-c0da14b4bffe
go: downloading gopkg.in/ini.v1 v1.56.0
go: downloading github.com/magiconair/properties v1.8.1
go: downloading github.com/sayboras/dockerclient v1.0.0
go: downloading github.com/afbjorklund/go-containerregistry v0.0.0-20200902152226-fbad78ec2813
go: downloading github.com/c4milo/gotoolkit v0.0.0-20170318115440-bcc06269efa9
go: downloading google.golang.org/api v0.25.0
go: downloading github.com/fatih/color v1.9.0
go: downloading github.com/pkg/errors v0.9.1
go: downloading github.com/juju/clock v0.0.0-20190205081909-9c5c9712527c
go: downloading github.com/aws/aws-sdk-go v1.31.6
go: downloading github.com/MakeNowJust/heredoc v0.0.0-20170808103936-bb23615498cd
go: downloading github.com/imdario/mergo v0.3.9
go: downloading golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d
go: downloading golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6
go: downloading github.com/hashicorp/go-safetemp v1.0.0
go: downloading github.com/davecgh/go-spew v1.1.1
go: downloading cloud.google.com/go v0.57.0
go: downloading go.opencensus.io v0.22.3
go: downloading go.uber.org/zap v1.10.0
go: downloading github.com/subosito/gotenv v1.2.0
go: downloading github.com/russross/blackfriday v1.5.3-0.20200218234912-41c5fccfd6f6
go: downloading golang.org/x/text v0.3.2
go: downloading github.com/docker/cli v0.0.0-20200303162255-7d407207c304
go: downloading k8s.io/klog v1.0.0
go: downloading github.com/docker/go-connections v0.4.0
go: downloading github.com/hashicorp/go-version v1.2.1
go: downloading github.com/modern-go/reflect2 v1.0.1
go: downloading github.com/spf13/jwalterweatherman v1.1.0
go: downloading k8s.io/klog/v2 v2.4.0
go: downloading github.com/pkg/browser v0.0.0-20160118053552-9302be274faa
go: downloading github.com/libvirt/libvirt-go v3.4.0+incompatible
go: downloading golang.org/x/net v0.0.0-20200520182314-0ba52f642ac2
go: downloading cloud.google.com/go/storage v1.8.0
go: downloading go.uber.org/multierr v1.1.0
go: downloading github.com/mitchellh/go-homedir v1.1.0
go: downloading golang.org/x/sys v0.0.0-20200523222454-059865788121
go: downloading github.com/pelletier/go-toml v1.8.0
go: downloading github.com/google/gofuzz v1.1.0
go: downloading github.com/fsnotify/fsnotify v1.4.9
go: downloading github.com/docker/distribution v2.7.1+incompatible
go: downloading github.com/mattn/go-isatty v0.0.12
go: downloading github.com/googleapis/gax-go v2.0.2+incompatible
go: downloading k8s.io/utils v0.0.0-20200324210504-a9aa75ae1b89
go: downloading github.com/googleapis/gax-go/v2 v2.0.5
go: downloading github.com/google/slowjam v0.0.0-20200530021616-df27e642fe7b
go: downloading github.com/googleapis/gnostic v0.3.0
go: downloading github.com/cloudfoundry-attic/jibber_jabber v0.0.0-20151120183258-bcc4c8345a21
go: downloading gopkg.in/inf.v0 v0.9.1
go: downloading github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd
go: downloading github.com/bgentry/go-netrc v0.0.0-20140422174119-9fd32a8b3d3d
go: downloading github.com/cenkalti/backoff v2.2.1+incompatible
go: downloading github.com/google/go-github v17.0.0+incompatible
go: downloading github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51
go: downloading github.com/mitchellh/go-testing-interface v1.0.0
go: downloading github.com/google/go-cmp v0.5.2
go: downloading github.com/hashicorp/go-cleanhttp v0.5.1
go: downloading github.com/containerd/containerd v1.3.1-0.20191213020239-082f7e3aed57
go: downloading github.com/json-iterator/go v1.1.9
go: downloading github.com/spf13/cast v1.3.1
go: downloading github.com/docker/docker-credential-helpers v0.6.3
go: downloading github.com/sirupsen/logrus v1.6.0
go: downloading github.com/lightstep/tracecontext.go v0.0.0-20181129014701-1757c391b1ac
go: downloading golang.org/x/time v0.0.0-20200416051211-89c76fbcd5d1
go: downloading github.com/google/go-querystring v1.0.0
go: downloading google.golang.org/genproto v0.0.0-20200527145253-8367513e4ece
go: downloading github.com/opencontainers/image-spec v1.0.1
go: downloading sigs.k8s.io/sig-storage-lib-external-provisioner v4.0.0+incompatible
go: downloading k8s.io/component-base v0.17.3
go: downloading github.com/golang/protobuf v1.4.2
go: downloading sigs.k8s.io/sig-storage-lib-external-provisioner/v5 v5.0.0
go: downloading github.com/hashicorp/hcl v1.0.0
go: downloading go.uber.org/atomic v1.4.0
go: downloading google.golang.org/grpc v1.29.1
go: downloading google.golang.org/protobuf v1.24.0
go: downloading github.com/opencontainers/go-digest v1.0.0-rc1
go: downloading github.com/juju/errors v0.0.0-20190806202954-0232dcc7464d
go: downloading github.com/prometheus/client_golang v1.4.1
go: downloading github.com/mitchellh/go-ps v0.0.0-20190716172923-621e5597135b
go: downloading sigs.k8s.io/yaml v1.2.0
go: downloading github.com/go-logr/logr v0.3.0
go: downloading github.com/mitchellh/mapstructure v1.3.1
go: downloading github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e
go: downloading github.com/prometheus/common v0.9.1
go: downloading github.com/prometheus/client_model v0.2.0
go: downloading github.com/prometheus/procfs v0.0.8
go: downloading k8s.io/cluster-bootstrap v0.17.3
go: downloading github.com/matttproud/golang_protobuf_extensions v1.0.1
go: downloading github.com/cespare/xxhash v1.1.0
go: downloading github.com/mitchellh/go-wordwrap v1.0.0
go: downloading github.com/miekg/dns v1.1.27
go: downloading github.com/ulikunitz/xz v0.5.7
go: downloading github.com/beorn7/perks v1.0.1
go: downloading github.com/docker/spdystream v0.0.0-20160310174837-449fdfce4d96
go: downloading github.com/hashicorp/golang-lru v0.5.3
go: downloading github.com/cpuguy83/go-md2man v1.0.10
go: downloading github.com/jmespath/go-jmespath v0.3.0
go: downloading github.com/cpuguy83/go-md2man/v2 v2.0.0
go: downloading github.com/cespare/xxhash/v2 v2.1.1
go: downloading k8s.io/kube-openapi v0.0.0-20200410145947-61e04a5be9a6
go: downloading github.com/russross/blackfriday/v2 v2.0.1
go: downloading github.com/shurcooL/sanitized_anchor_name v1.0.0
go: downloading github.com/pmezard/go-difflib v1.0.0
go: downloading golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543
go: downloading github.com/evanphx/json-patch v4.5.0+incompatible
--- FAIL: TestGenerateDocs (0.03s)
    --- FAIL: TestGenerateDocs/addons (0.00s)
        generate-docs_test.go:47: Docs are not updated. Please run `make generate-docs` to update commands documentation:   (
              	"""
              	... // 17 identical lines
              	```
              	
            - 	### Options
            + 	### Options inherited from parent commands
              	
              	```
            - 	  -h, --help   help for addons
            - 	```
            - 	
            - 	### Options inherited from parent commands
            - 	
            - 	```
              	      --add_dir_header                   If true, adds the file directory to the header of the log messages
              	      --alsologtostderr                  log to standard error as well as files
              	  -b, --bootstrapper string              The name of the cluster bootstrapper that will set up the Kubernetes cluster. (default "kubeadm")
            + 	  -h, --help                             
              	      --log_backtrace_at traceLocation   when logging hits line file:N, emit a stack trace (default :0)
              	      --log_dir string                   If non-empty, write log files in this directory
              	... // 22 identical lines
              	```
              	
            - 	### Options
            + 	### Options inherited from parent commands
              	
              	```
            - 	  -h, --help   help for configure
            - 	```
            - 	
            - 	### Options inherited from parent commands
            - 	
            - 	```
              	      --add_dir_header                   If true, adds the file directory to the header of the log messages
              	      --alsologtostderr                  log to standard error as well as files
              	  -b, --bootstrapper string              The name of the cluster bootstrapper that will set up the Kubernetes cluster. (default "kubeadm")
            + 	  -h, --help                             
              	      --log_backtrace_at traceLocation   when logging hits line file:N, emit a stack trace (default :0)
              	      --log_dir string                   If non-empty, write log files in this directory
              	... // 22 identical lines
              	```
              	
            - 	### Options
            + 	### Options inherited from parent commands
              	
              	```
            - 	  -h, --help   help for disable
            - 	```
            - 	
            - 	### Options inherited from parent commands
            - 	
            - 	```
              	      --add_dir_header                   If true, adds the file directory to the header of the log messages
              	      --alsologtostderr                  log to standard error as well as files
              	  -b, --bootstrapper string              The name of the cluster bootstrapper that will set up the Kubernetes cluster. (default "kubeadm")
            + 	  -h, --help                             
              	      --log_backtrace_at traceLocation   when logging hits line file:N, emit a stack trace (default :0)
              	      --log_dir string                   If non-empty, write log files in this directory
              	... // 17 identical lines
              	
              	Enables the addon w/ADDON_NAME within minikube (example: minikube addons enable dashboard). For a list of available addons use: minikube addons list 
            - 	
            - 	```
            - 	minikube addons enable ADDON_NAME [flags]
            - 	```
            - 	
            - 	### Options
              	... // 132 identical, 15 removed, and 11 inserted lines
              	"""
              )
    --- FAIL: TestGenerateDocs/cache (0.00s)
        generate-docs_test.go:47: Docs are not updated. Please run `make generate-docs` to update commands documentation:   (
              	"""
              	... // 13 identical lines
              	Add, delete, or push a local image into minikube
              	
            - 	### Options
            + 	### Options inherited from parent commands
              	
              	```
            - 	  -h, --help   help for cache
            - 	```
            - 	
            - 	### Options inherited from parent commands
            - 	
            - 	```
              	      --add_dir_header                   If true, adds the file directory to the header of the log messages
              	      --alsologtostderr                  log to standard error as well as files
              	  -b, --bootstrapper string              The name of the cluster bootstrapper that will set up the Kubernetes cluster. (default "kubeadm")
            + 	  -h, --help                             
              	      --log_backtrace_at traceLocation   when logging hits line file:N, emit a stack trace (default :0)
              	      --log_dir string                   If non-empty, write log files in this directory
              	... // 22 identical lines
              	```
              	
            - 	### Options
            + 	### Options inherited from parent commands
              	
              	```
            - 	  -h, --help   help for add
            - 	```
            - 	
            - 	### Options inherited from parent commands
            - 	
            - 	```
              	      --add_dir_header                   If true, adds the file directory to the header of the log messages
              	      --alsologtostderr                  log to standard error as well as files
              	  -b, --bootstrapper string              The name of the cluster bootstrapper that will set up the Kubernetes cluster. (default "kubeadm")
            + 	  -h, --help                             
              	      --log_backtrace_at traceLocation   when logging hits line file:N, emit a stack trace (default :0)
              	      --log_dir string                   If non-empty, write log files in this directory
              	... // 22 identical lines
              	```
              	
            - 	### Options
            + 	### Options inherited from parent commands
              	
              	```
            - 	  -h, --help   help for delete
            - 	```
            - 	
            - 	### Options inherited from parent commands
            - 	
            - 	```
              	      --add_dir_header                   If true, adds the file directory to the header of the log messages
              	      --alsologtostderr                  log to standard error as well as files
              	  -b, --bootstrapper string              The name of the cluster bootstrapper that will set up the Kubernetes cluster. (default "kubeadm")
            + 	  -h, --help                             
              	      --log_backtrace_at traceLocation   when logging hits line file:N, emit a stack trace (default :0)
              	      --log_dir string                   If non-empty, write log files in this directory
              	... // 15 identical lines
              	
              	### Synopsis
            - 	
            - 	Help provides help for any command in the application.
            - 	Simply type cache help [path to command] for full details.
            - 	
            - 	```
            - 	minikube cache help [command] [flags]
            - 	```
              	... // 92 identical, 14 removed, and 11 inserted lines
              	"""
              )
    --- FAIL: TestGenerateDocs/completion (0.00s)
        generate-docs_test.go:47: Docs are not updated. Please run `make generate-docs` to update commands documentation:   (
              	"""
              	... // 38 identical lines
              	```
              	
            - 	### Options
            - 	
            - 	```
            - 	  -h, --help   help for completion
            - 	```
            - 	
              	### Options inherited from parent commands
              	
              	... // 2 identical lines
              	      --alsologtostderr                  log to standard error as well as files
              	  -b, --bootstrapper string              The name of the cluster bootstrapper that will set up the Kubernetes cluster. (default "kubeadm")
            + 	  -h, --help                             
              	      --log_backtrace_at traceLocation   when logging hits line file:N, emit a stack trace (default :0)
              	      --log_dir string                   If non-empty, write log files in this directory
              	... // 13 identical lines
              	"""
              )
    --- FAIL: TestGenerateDocs/config (0.00s)
        generate-docs_test.go:47: Docs are not updated. Please run `make generate-docs` to update commands documentation:   (
              	"""
              	... // 47 identical lines
              	```
              	
            - 	### Options
            + 	### Options inherited from parent commands
              	
              	```
            - 	  -h, --help   help for config
            - 	```
            - 	
            - 	### Options inherited from parent commands
            - 	
            - 	```
              	      --add_dir_header                   If true, adds the file directory to the header of the log messages
              	      --alsologtostderr                  log to standard error as well as files
              	  -b, --bootstrapper string              The name of the cluster bootstrapper that will set up the Kubernetes cluster. (default "kubeadm")
            + 	  -h, --help                             
              	      --log_backtrace_at traceLocation   when logging hits line file:N, emit a stack trace (default :0)
              	      --log_dir string                   If non-empty, write log files in this directory
              	... // 28 identical lines
              	
              	```
            - 	  -h, --help            help for defaults
              	      --output string   Output format. Accepted values: [json]
              	```
              	... // 5 identical lines
              	      --alsologtostderr                  log to standard error as well as files
              	  -b, --bootstrapper string              The name of the cluster bootstrapper that will set up the Kubernetes cluster. (default "kubeadm")
            + 	  -h, --help                             
              	      --log_backtrace_at traceLocation   when logging hits line file:N, emit a stack trace (default :0)
              	      --log_dir string                   If non-empty, write log files in this directory
              	... // 22 identical lines
              	```
              	
            - 	### Options
            + 	### Options inherited from parent commands
              	
              	```
            - 	  -h, --help   help for get
            - 	```
            - 	
            - 	### Options inherited from parent commands
            - 	
            - 	```
              	      --add_dir_header                   If true, adds the file directory to the header of the log messages
              	      --alsologtostderr                  log to standard error as well as files
              	  -b, --bootstrapper string              The name of the cluster bootstrapper that will set up the Kubernetes cluster. (default "kubeadm")
            + 	  -h, --help                             
              	      --log_backtrace_at traceLocation   when logging hits line file:N, emit a stack trace (default :0)
              	      --log_dir string                   If non-empty, write log files in this directory
              	... // 23 identical lines
              	```
              	
            - 	### Options
            + 	### Options inherited from parent commands
              	
              	```
            - 	  -h, --help   help for help
            - 	```
            - 	
            - 	### Options inherited from parent commands
            - 	
            - 	```
              	      --add_dir_header                   If true, adds the file directory to the header of the log messages
              	      --alsologtostderr                  log to standard error as well as files
              	  -b, --bootstrapper string              The name of the cluster bootstrapper that will set up the Kubernetes cluster. (default "kubeadm")
            + 	  -h, --help                             
              	      --log_backtrace_at traceLocation   when logging hits line file:N, emit a stack trace (default :0)
              	      --log_dir string                   If non-empty, write log files in this directory
              	... // 15 identical lines
              	
              	### Synopsis
            - 	
            - 	Sets the PROPERTY_NAME config value to PROPERTY_VALUE
            - 		These values can be overwritten by flags or environment variables at runtime.
            - 	
            - 	```
            - 	minikube config set PROPERTY_NAME PROPERTY_VALUE [flags]
            - 	```
              	... // 92 identical, 14 removed, and 11 inserted lines
              	"""
              )
    --- FAIL: TestGenerateDocs/dashboard (0.00s)
        generate-docs_test.go:47: Docs are not updated. Please run `make generate-docs` to update commands documentation:   strings.Join({
              	... // 20 identical lines
              	"",
              	"```",
            - 	"  -h, --help   help for dashboard",
            - 	"      --url    Display dashboard URL instead of opening a browser",
            + 	"      --url   Display dashboard URL instead of opening a browser",
              	"```",
              	"",
              	... // 4 identical lines
              	"      --alsologtostderr                  log to standard error as well as files",
              	`  -b, --bootstrapper string              The name of the cluster bootstrapper that will set up the Kubernetes cluster. (default "kubeadm")`,
            + 	"  -h, --help                             ",
              	"      --log_backtrace_at traceLocation   when logging hits line file:N, emit a stack trace (default :0)",
              	"      --log_dir string                   If non-empty, write log files in this directory",
              	... // 13 identical lines
              }, "\n")
    --- FAIL: TestGenerateDocs/delete (0.00s)
        generate-docs_test.go:47: Docs are not updated. Please run `make generate-docs` to update commands documentation:   (
              	"""
              	... // 22 identical lines
              	```
              	      --all     Set flag to delete all profiles
            - 	  -h, --help    help for delete
              	      --purge   Set this flag to delete the '.minikube' folder from your user directory.
              	```
              	... // 5 identical lines
              	      --alsologtostderr                  log to standard error as well as files
              	  -b, --bootstrapper string              The name of the cluster bootstrapper that will set up the Kubernetes cluster. (default "kubeadm")
            + 	  -h, --help                             
              	      --log_backtrace_at traceLocation   when logging hits line file:N, emit a stack trace (default :0)
              	      --log_dir string                   If non-empty, write log files in this directory
              	... // 13 identical lines
              	"""
              )
    --- FAIL: TestGenerateDocs/docker-env (0.00s)
        generate-docs_test.go:47: Docs are not updated. Please run `make generate-docs` to update commands documentation:   (
              	"""
              	... // 20 identical lines
              	
              	```
            - 	  -h, --help           help for docker-env
              	      --no-proxy       Add machine IP to NO_PROXY environment variable
              	      --shell string   Force environment to be configured for a specified shell: [fish, cmd, powershell, tcsh, bash, zsh], default is auto-detect
              	... // 7 identical lines
              	      --alsologtostderr                  log to standard error as well as files
              	  -b, --bootstrapper string              The name of the cluster bootstrapper that will set up the Kubernetes cluster. (default "kubeadm")
            + 	  -h, --help                             
              	      --log_backtrace_at traceLocation   when logging hits line file:N, emit a stack trace (default :0)
              	      --log_dir string                   If non-empty, write log files in this directory
              	... // 13 identical lines
              	"""
              )
    --- FAIL: TestGenerateDocs/ip (0.00s)
        generate-docs_test.go:47: Docs are not updated. Please run `make generate-docs` to update commands documentation:   (
              	"""
              	... // 17 identical lines
              	```
              	
            - 	### Options
            - 	
            - 	```
            - 	  -h, --help   help for ip
            - 	```
            - 	
              	### Options inherited from parent commands
              	
              	... // 2 identical lines
              	      --alsologtostderr                  log to standard error as well as files
              	  -b, --bootstrapper string              The name of the cluster bootstrapper that will set up the Kubernetes cluster. (default "kubeadm")
            + 	  -h, --help                             
              	      --log_backtrace_at traceLocation   when logging hits line file:N, emit a stack trace (default :0)
              	      --log_dir string                   If non-empty, write log files in this directory
              	... // 13 identical lines
              	"""
              )
    --- FAIL: TestGenerateDocs/kubectl (0.00s)
        generate-docs_test.go:47: Docs are not updated. Please run `make generate-docs` to update commands documentation:   (
              	"""
              	... // 21 identical lines
              	```
              	
            - 	### Options
            - 	
            - 	```
            - 	  -h, --help   help for kubectl
            - 	```
            - 	
              	### Options inherited from parent commands
              	
              	... // 2 identical lines
              	      --alsologtostderr                  log to standard error as well as files
              	  -b, --bootstrapper string              The name of the cluster bootstrapper that will set up the Kubernetes cluster. (default "kubeadm")
            + 	  -h, --help                             
              	      --log_backtrace_at traceLocation   when logging hits line file:N, emit a stack trace (default :0)
              	      --log_dir string                   If non-empty, write log files in this directory
              	... // 13 identical lines
              	"""
              )
    --- FAIL: TestGenerateDocs/logs (0.00s)
        generate-docs_test.go:47: Docs are not updated. Please run `make generate-docs` to update commands documentation:   (
              	"""
              	... // 21 identical lines
              	```
              	  -f, --follow        Show only the most recent journal entries, and continuously print new entries as they are appended to the journal.
            - 	  -h, --help          help for logs
              	  -n, --length int    Number of lines back to go within the log (default 60)
              	      --node string   The node to get logs from. Defaults to the primary control plane.
              	... // 7 identical lines
              	      --alsologtostderr                  log to standard error as well as files
              	  -b, --bootstrapper string              The name of the cluster bootstrapper that will set up the Kubernetes cluster. (default "kubeadm")
            + 	  -h, --help                             
              	      --log_backtrace_at traceLocation   when logging hits line file:N, emit a stack trace (default :0)
              	      --log_dir string                   If non-empty, write log files in this directory
              	... // 13 identical lines
              	"""
              )
    --- FAIL: TestGenerateDocs/mount (0.00s)
        generate-docs_test.go:47: Docs are not updated. Please run `make generate-docs` to update commands documentation:   (
              	"""
              	... // 22 identical lines
              	      --9p-version string   Specify the 9p version that the mount should use (default "9p2000.L")
              	      --gid string          Default group id used for the mount (default "docker")
            - 	  -h, --help                help for mount
              	      --ip string           Specify the ip that the mount should be setup on
              	      --kill                Kill the mount process spawned by minikube start
              	... // 11 identical lines
              	      --alsologtostderr                  log to standard error as well as files
              	  -b, --bootstrapper string              The name of the cluster bootstrapper that will set up the Kubernetes cluster. (default "kubeadm")
            + 	  -h, --help                             
              	      --log_backtrace_at traceLocation   when logging hits line file:N, emit a stack trace (default :0)
              	      --log_dir string                   If non-empty, write log files in this directory
              	... // 13 identical lines
              	"""
              )
    --- FAIL: TestGenerateDocs/node (0.01s)
        generate-docs_test.go:47: Docs are not updated. Please run `make generate-docs` to update commands documentation:   (
              	"""
              	... // 17 identical lines
              	```
              	
            - 	### Options
            + 	### Options inherited from parent commands
              	
              	```
            - 	  -h, --help   help for node
            - 	```
            - 	
            - 	### Options inherited from parent commands
            - 	
            - 	```
              	      --add_dir_header                   If true, adds the file directory to the header of the log messages
              	      --alsologtostderr                  log to standard error as well as files
              	  -b, --bootstrapper string              The name of the cluster bootstrapper that will set up the Kubernetes cluster. (default "kubeadm")
            + 	  -h, --help                             
              	      --log_backtrace_at traceLocation   when logging hits line file:N, emit a stack trace (default :0)
              	      --log_dir string                   If non-empty, write log files in this directory
              	... // 27 identical lines
              	      --control-plane       If true, the node added will also be a control plane in addition to a worker.
              	      --delete-on-failure   If set, delete the current cluster if start fails and try again. Defaults to false.
            - 	  -h, --help                help for add
              	      --worker              If true, the added node will be marked for work. Defaults to true. (default true)
              	```
              	... // 5 identical lines
              	      --alsologtostderr                  log to standard error as well as files
              	  -b, --bootstrapper string              The name of the cluster bootstrapper that will set up the Kubernetes cluster. (default "kubeadm")
            + 	  -h, --help                             
              	      --log_backtrace_at traceLocation   when logging hits line file:N, emit a stack trace (default :0)
              	      --log_dir string                   If non-empty, write log files in this directory
              	... // 22 identical lines
              	```
              	
            - 	### Options
            + 	### Options inherited from parent commands
              	
              	```
            - 	  -h, --help   help for delete
            - 	```
            - 	
            - 	### Options inherited from parent commands
            - 	
            - 	```
              	      --add_dir_header                   If true, adds the file directory to the header of the log messages
              	      --alsologtostderr                  log to standard error as well as files
              	  -b, --bootstrapper string              The name of the cluster bootstrapper that will set up the Kubernetes cluster. (default "kubeadm")
            + 	  -h, --help                             
              	      --log_backtrace_at traceLocation   when logging hits line file:N, emit a stack trace (default :0)
              	      --log_dir string                   If non-empty, write log files in this directory
              	... // 23 identical lines
              	```
              	
            - 	### Options
            + 	### Options inherited from parent commands
              	
              	```
            - 	  -h, --help   help for help
            - 	```
            - 	
            - 	### Options inherited from parent commands
            - 	
            - 	```
              	      --add_dir_header                   If true, adds the file directory to the header of the log messages
              	      --alsologtostderr                  log to standard error as well as files
              	  -b, --bootstrapper string              The name of the cluster bootstrapper that will set up the Kubernetes cluster. (default "kubeadm")
            + 	  -h, --help                             
              	      --log_backtrace_at traceLocation   when logging hits line file:N, emit a stack trace (default :0)
              	      --log_dir string                   If non-empty, write log files in this directory
              	... // 11 identical lines
              	
              	## minikube node list
            - 	
            - 	List nodes.
            - 	
            - 	### Synopsis
              	... // 94 identical, 17 removed, and 11 inserted lines
              	"""
              )
    --- FAIL: TestGenerateDocs/pause (0.00s)
        generate-docs_test.go:47: Docs are not updated. Please run `make generate-docs` to update commands documentation:   (
              	"""
              	... // 22 identical lines
              	  -n, ----namespaces strings   namespaces to pause (default [kube-system,kubernetes-dashboard,storage-gluster,istio-operator])
              	  -A, --all-namespaces         If set, pause all namespaces
            - 	  -h, --help                   help for pause
              	  -o, --output string          Format to print stdout in. Options include: [text,json] (default "text")
              	```
              	... // 5 identical lines
              	      --alsologtostderr                  log to standard error as well as files
              	  -b, --bootstrapper string              The name of the cluster bootstrapper that will set up the Kubernetes cluster. (default "kubeadm")
            + 	  -h, --help                             
              	      --log_backtrace_at traceLocation   when logging hits line file:N, emit a stack trace (default :0)
              	      --log_dir string                   If non-empty, write log files in this directory
              	... // 13 identical lines
              	"""
              )
    --- FAIL: TestGenerateDocs/podman-env (0.00s)
        generate-docs_test.go:47: Docs are not updated. Please run `make generate-docs` to update commands documentation:   (
              	"""
              	... // 20 identical lines
              	
              	```
            - 	  -h, --help           help for podman-env
              	      --shell string   Force environment to be configured for a specified shell: [fish, cmd, powershell, tcsh, bash, zsh], default is auto-detect
              	  -u, --unset          Unset variables instead of setting them
              	... // 6 identical lines
              	      --alsologtostderr                  log to standard error as well as files
              	  -b, --bootstrapper string              The name of the cluster bootstrapper that will set up the Kubernetes cluster. (default "kubeadm")
            + 	  -h, --help                             
              	      --log_backtrace_at traceLocation   when logging hits line file:N, emit a stack trace (default :0)
              	      --log_dir string                   If non-empty, write log files in this directory
              	... // 13 identical lines
              	"""
              )
    --- FAIL: TestGenerateDocs/profile (0.00s)
        generate-docs_test.go:47: Docs are not updated. Please run `make generate-docs` to update commands documentation:   (
              	"""
              	... // 17 identical lines
              	```
              	
            - 	### Options
            + 	### Options inherited from parent commands
              	
              	```
            - 	  -h, --help   help for profile
            - 	```
            - 	
            - 	### Options inherited from parent commands
            - 	
            - 	```
              	      --add_dir_header                   If true, adds the file directory to the header of the log messages
              	      --alsologtostderr                  log to standard error as well as files
              	  -b, --bootstrapper string              The name of the cluster bootstrapper that will set up the Kubernetes cluster. (default "kubeadm")
            + 	  -h, --help                             
              	      --log_backtrace_at traceLocation   when logging hits line file:N, emit a stack trace (default :0)
              	      --log_dir string                   If non-empty, write log files in this directory
              	... // 15 identical lines
              	
              	### Synopsis
            - 	
            - 	Help provides help for any command in the application.
            - 	Simply type profile help [path to command] for full details.
            - 	
            - 	```
            - 	minikube profile help [command] [flags]
            - 	```
              	
            - 	### Options
            + 	Help provides help for any command in the application.
            + 	Simply type profile help [path to command] for full details.
              	
              	```
            - 	  -h, --help   help for help
            + 	minikube profile help [command] [flags]
              	```
              	
              	... // 4 identical lines
              	      --alsologtostderr                  log to standard error as well as files
              	  -b, --bootstrapper string              The name of the cluster bootstrapper that will set up the Kubernetes cluster. (default "kubeadm")
            + 	  -h, --help                             
              	      --log_backtrace_at traceLocation   when logging hits line file:N, emit a stack trace (default :0)
              	      --log_dir string                   If non-empty, write log files in this directory
              	... // 25 identical lines
              	
              	```
            - 	  -h, --help            help for list
              	  -o, --output string   The output format. One of 'json', 'table' (default "table")
              	```
              	... // 5 identical lines
              	      --alsologtostderr                  log to standard error as well as files
              	  -b, --bootstrapper string              The name of the cluster bootstrapper that will set up the Kubernetes cluster. (default "kubeadm")
            + 	  -h, --help                             
              	      --log_backtrace_at traceLocation   when logging hits line file:N, emit a stack trace (default :0)
              	      --log_dir string                   If non-empty, write log files in this directory
              	... // 13 identical lines
              	"""
              )
    --- FAIL: TestGenerateDocs/service (0.00s)
        generate-docs_test.go:47: Docs are not updated. Please run `make generate-docs` to update commands documentation:   (
              	"""
              	... // 21 identical lines
              	```
              	      --format string      Format to output service URL in. This format will be applied to each url individually and they will be printed one at a time. (default "http://{{.IP}}:{{.Port}}")
            - 	  -h, --help               help for service
              	      --https              Open the service URL with https instead of http (defaults to "false")
              	      --interval int       The initial time interval for each check that wait performs in seconds (default 1)
              	... // 9 identical lines
              	      --alsologtostderr                  log to standard error as well as files
              	  -b, --bootstrapper string              The name of the cluster bootstrapper that will set up the Kubernetes cluster. (default "kubeadm")
            + 	  -h, --help                             
              	      --log_backtrace_at traceLocation   when logging hits line file:N, emit a stack trace (default :0)
              	      --log_dir string                   If non-empty, write log files in this directory
              	... // 23 identical lines
              	```
              	
            - 	### Options
            - 	
            - 	```
            - 	  -h, --help   help for help
            - 	```
            - 	
              	### Options inherited from parent commands
              	
              	... // 3 identical lines
              	  -b, --bootstrapper string              The name of the cluster bootstrapper that will set up the Kubernetes cluster. (default "kubeadm")
              	      --format string                    Format to output service URL in. This format will be applied to each url individually and they will be printed one at a time. (default "http://{{.IP}}:{{.Port}}")
            + 	  -h, --help                             
              	      --log_backtrace_at traceLocation   when logging hits line file:N, emit a stack trace (default :0)
              	      --log_dir string                   If non-empty, write log files in this directory
              	... // 25 identical lines
              	
              	```
            - 	  -h, --help               help for list
              	  -n, --namespace string   The services namespace
              	```
              	... // 6 identical lines
              	  -b, --bootstrapper string              The name of the cluster bootstrapper that will set up the Kubernetes cluster. (default "kubeadm")
              	      --format string                    Format to output service URL in. This format will be applied to each url individually and they will be printed one at a time. (default "http://{{.IP}}:{{.Port}}")
            + 	  -h, --help                             
              	      --log_backtrace_at traceLocation   when logging hits line file:N, emit a stack trace (default :0)
              	      --log_dir string                   If non-empty, write log files in this directory
              	... // 13 identical lines
              	"""
              )
    --- FAIL: TestGenerateDocs/ssh (0.00s)
        generate-docs_test.go:47: Docs are not updated. Please run `make generate-docs` to update commands documentation:   (
              	"""
              	... // 20 identical lines
              	
              	```
            - 	  -h, --help          help for ssh
              	      --native-ssh    Use native Golang SSH client (default true). Set to 'false' to use the command line 'ssh' command when accessing the docker machine. Useful for the machine drivers when they will not start with 'Waiting for SSH'. (default true)
              	  -n, --node string   The node to ssh into. Defaults to the primary control plane.
              	... // 6 identical lines
              	      --alsologtostderr                  log to standard error as well as files
              	  -b, --bootstrapper string              The name of the cluster bootstrapper that will set up the Kubernetes cluster. (default "kubeadm")
            + 	  -h, --help                             
              	      --log_backtrace_at traceLocation   when logging hits line file:N, emit a stack trace (default :0)
              	      --log_dir string                   If non-empty, write log files in this directory
              	... // 13 identical lines
              	"""
              )
    --- FAIL: TestGenerateDocs/ssh-key (0.00s)
        generate-docs_test.go:47: Docs are not updated. Please run `make generate-docs` to update commands documentation:   (
              	"""
              	... // 17 identical lines
              	```
              	
            - 	### Options
            - 	
            - 	```
            - 	  -h, --help   help for ssh-key
            - 	```
            - 	
              	### Options inherited from parent commands
              	
              	... // 2 identical lines
              	      --alsologtostderr                  log to standard error as well as files
              	  -b, --bootstrapper string              The name of the cluster bootstrapper that will set up the Kubernetes cluster. (default "kubeadm")
            + 	  -h, --help                             
              	      --log_backtrace_at traceLocation   when logging hits line file:N, emit a stack trace (default :0)
              	      --log_dir string                   If non-empty, write log files in this directory
              	... // 13 identical lines
              	"""
              )
    --- FAIL: TestGenerateDocs/start (0.00s)
        generate-docs_test.go:47: Docs are not updated. Please run `make generate-docs` to update commands documentation:   (
              	"""
              	... // 51 identical lines
              	      --force                             Force minikube to perform possibly dangerous operations
              	      --force-systemd                     If set, force the container runtime to use sytemd as cgroup manager. Currently available for docker and crio. Defaults to false.
            - 	  -h, --help                              help for start
              	      --host-dns-resolver                 Enable host resolver for NAT DNS requests (virtualbox driver only) (default true)
              	      --host-only-cidr string             The CIDR to be used for the minikube VM (virtualbox driver only) (default "192.168.99.1/24")
              	... // 45 identical lines
              	      --alsologtostderr                  log to standard error as well as files
              	  -b, --bootstrapper string              The name of the cluster bootstrapper that will set up the Kubernetes cluster. (default "kubeadm")
            + 	  -h, --help                             
              	      --log_backtrace_at traceLocation   when logging hits line file:N, emit a stack trace (default :0)
              	      --log_dir string                   If non-empty, write log files in this directory
              	... // 13 identical lines
              	"""
              )
    --- FAIL: TestGenerateDocs/status (0.00s)
        generate-docs_test.go:47: Docs are not updated. Please run `make generate-docs` to update commands documentation:   (
              	"""
              	... // 24 identical lines
              	  -f, --format string   Go template format string for the status output.  The format for Go templates can be found here: https://golang.org/pkg/text/template/
              	                        For the list accessible variables for the template, see the struct values here: https://godoc.org/k8s.io/minikube/cmd/minikube/cmd#Status (default "{{.Name}}\ntype: Control Plane\nhost: {{.Host}}\nkubelet: {{.Kubelet}}\napiserver: {{.APIServer}}\nkubeconfig: {{.Kubeconfig}}\n\n")
            - 	  -h, --help            help for status
              	  -l, --layout string   output layout (EXPERIMENTAL, JSON only): 'nodes' or 'cluster' (default "nodes")
              	  -n, --node string     The node to check status for. Defaults to control plane. Leave blank with default format for status on all nodes.
              	... // 7 identical lines
              	      --alsologtostderr                  log to standard error as well as files
              	  -b, --bootstrapper string              The name of the cluster bootstrapper that will set up the Kubernetes cluster. (default "kubeadm")
            + 	  -h, --help                             
              	      --log_backtrace_at traceLocation   when logging hits line file:N, emit a stack trace (default :0)
              	      --log_dir string                   If non-empty, write log files in this directory
              	... // 13 identical lines
              	"""
              )
    --- FAIL: TestGenerateDocs/stop (0.00s)
        generate-docs_test.go:47: Docs are not updated. Please run `make generate-docs` to update commands documentation:   (
              	"""
              	... // 21 identical lines
              	```
              	      --all                   Set flag to stop all profiles (clusters)
            - 	  -h, --help                  help for stop
              	      --keep-context-active   keep the kube-context active after cluster is stopped. Defaults to false.
              	  -o, --output string         Format to print stdout in. Options include: [text,json] (default "text")
              	... // 6 identical lines
              	      --alsologtostderr                  log to standard error as well as files
              	  -b, --bootstrapper string              The name of the cluster bootstrapper that will set up the Kubernetes cluster. (default "kubeadm")
            + 	  -h, --help                             
              	      --log_backtrace_at traceLocation   when logging hits line file:N, emit a stack trace (default :0)
              	      --log_dir string                   If non-empty, write log files in this directory
              	... // 13 identical lines
              	"""
              )
    --- FAIL: TestGenerateDocs/tunnel (0.00s)
        generate-docs_test.go:47: Docs are not updated. Please run `make generate-docs` to update commands documentation:   (
              	"""
              	... // 21 identical lines
              	```
              	  -c, --cleanup   call with cleanup=true to remove old tunnels (default true)
            - 	  -h, --help      help for tunnel
              	```
              	
              	... // 4 identical lines
              	      --alsologtostderr                  log to standard error as well as files
              	  -b, --bootstrapper string              The name of the cluster bootstrapper that will set up the Kubernetes cluster. (default "kubeadm")
            + 	  -h, --help                             
              	      --log_backtrace_at traceLocation   when logging hits line file:N, emit a stack trace (default :0)
              	      --log_dir string                   If non-empty, write log files in this directory
              	... // 13 identical lines
              	"""
              )
    --- FAIL: TestGenerateDocs/unpause (0.00s)
        generate-docs_test.go:47: Docs are not updated. Please run `make generate-docs` to update commands documentation:   (
              	"""
              	... // 22 identical lines
              	  -n, ----namespaces strings   namespaces to unpause (default [kube-system,kubernetes-dashboard,storage-gluster,istio-operator])
              	  -A, --all-namespaces         If set, unpause all namespaces
            - 	  -h, --help                   help for unpause
              	  -o, --output string          Format to print stdout in. Options include: [text,json] (default "text")
              	```
              	... // 5 identical lines
              	      --alsologtostderr                  log to standard error as well as files
              	  -b, --bootstrapper string              The name of the cluster bootstrapper that will set up the Kubernetes cluster. (default "kubeadm")
            + 	  -h, --help                             
              	      --log_backtrace_at traceLocation   when logging hits line file:N, emit a stack trace (default :0)
              	      --log_dir string                   If non-empty, write log files in this directory
              	... // 13 identical lines
              	"""
              )
    --- FAIL: TestGenerateDocs/update-check (0.00s)
        generate-docs_test.go:47: Docs are not updated. Please run `make generate-docs` to update commands documentation:   (
              	"""
              	... // 17 identical lines
              	```
              	
            - 	### Options
            - 	
            - 	```
            - 	  -h, --help   help for update-check
            - 	```
            - 	
              	### Options inherited from parent commands
              	
              	... // 2 identical lines
              	      --alsologtostderr                  log to standard error as well as files
              	  -b, --bootstrapper string              The name of the cluster bootstrapper that will set up the Kubernetes cluster. (default "kubeadm")
            + 	  -h, --help                             
              	      --log_backtrace_at traceLocation   when logging hits line file:N, emit a stack trace (default :0)
              	      --log_dir string                   If non-empty, write log files in this directory
              	... // 13 identical lines
              	"""
              )
    --- FAIL: TestGenerateDocs/update-context (0.00s)
        generate-docs_test.go:47: Docs are not updated. Please run `make generate-docs` to update commands documentation:   (
              	"""
              	... // 18 identical lines
              	```
              	
            - 	### Options
            - 	
            - 	```
            - 	  -h, --help   help for update-context
            - 	```
            - 	
              	### Options inherited from parent commands
              	
              	... // 2 identical lines
              	      --alsologtostderr                  log to standard error as well as files
              	  -b, --bootstrapper string              The name of the cluster bootstrapper that will set up the Kubernetes cluster. (default "kubeadm")
            + 	  -h, --help                             
              	      --log_backtrace_at traceLocation   when logging hits line file:N, emit a stack trace (default :0)
              	      --log_dir string                   If non-empty, write log files in this directory
              	... // 13 identical lines
              	"""
              )
    --- FAIL: TestGenerateDocs/version (0.00s)
        generate-docs_test.go:47: Docs are not updated. Please run `make generate-docs` to update commands documentation:   (
              	"""
              	... // 20 identical lines
              	
              	```
            - 	  -h, --help            help for version
              	  -o, --output string   One of 'yaml' or 'json'.
              	      --short           Print just the version number.
              	... // 6 identical lines
              	      --alsologtostderr                  log to standard error as well as files
              	  -b, --bootstrapper string              The name of the cluster bootstrapper that will set up the Kubernetes cluster. (default "kubeadm")
            + 	  -h, --help                             
              	      --log_backtrace_at traceLocation   when logging hits line file:N, emit a stack trace (default :0)
              	      --log_dir string                   If non-empty, write log files in this directory
              	... // 13 identical lines
              	"""
              )
E1109 03:09:00.920117   12053 out.go:142] [unset errFile]: ! Local proxy ignored: not passing HTTP_PROXY=127.0.0.1:3128 to docker env.
E1109 03:09:00.920608   12053 out.go:142] [unset errFile]: ! Local proxy ignored: not passing HTTP_PROXY=127.0.0.1:3128 to docker env.
E1109 03:09:00.920731   12053 out.go:142] [unset errFile]: ! Local proxy ignored: not passing HTTP_PROXY=localhost:3128 to docker env.
E1109 03:09:00.920937   12053 out.go:142] [unset errFile]: ! Local proxy ignored: not passing HTTP_PROXY=localhost:3128 to docker env.
E1109 03:09:00.921058   12053 out.go:142] [unset errFile]: ! Local proxy ignored: not passing HTTP_PROXY=http://localhost:3128 to docker env.
E1109 03:09:00.921251   12053 out.go:142] [unset errFile]: ! Local proxy ignored: not passing HTTP_PROXY=http://localhost:3128 to docker env.
E1109 03:09:00.921344   12053 out.go:142] [unset errFile]: ! Local proxy ignored: not passing HTTP_PROXY=http://127.0.0.1:3128 to docker env.
E1109 03:09:00.921522   12053 out.go:142] [unset errFile]: ! Local proxy ignored: not passing HTTP_PROXY=http://127.0.0.1:3128 to docker env.
FAIL
coverage: 18.5% of statements
FAIL	k8s.io/minikube/cmd/minikube/cmd	4.504s
ok  	k8s.io/minikube/cmd/minikube/cmd/config	0.044s	coverage: 21.0% of statements
ok  	k8s.io/minikube/pkg/addons	0.081s	coverage: 50.9% of statements
ok  	k8s.io/minikube/pkg/drivers	0.011s	coverage: 19.6% of statements
ok  	k8s.io/minikube/pkg/drivers/hyperkit	0.008s	coverage: 77.3% of statements
ok  	k8s.io/minikube/pkg/drivers/kic/oci	0.021s	coverage: 6.4% of statements
ok  	k8s.io/minikube/pkg/drivers/kvm	0.052s	coverage: 2.3% of statements
ok  	k8s.io/minikube/pkg/minikube/bootstrapper	0.982s	coverage: 55.7% of statements
ok  	k8s.io/minikube/pkg/minikube/bootstrapper/bsutil	0.111s	coverage: 62.4% of statements
ok  	k8s.io/minikube/pkg/minikube/bootstrapper/bsutil/ktmpl	0.013s	coverage: 100.0% of statements
ok  	k8s.io/minikube/pkg/minikube/bootstrapper/images	0.018s	coverage: 82.0% of statements
ok  	k8s.io/minikube/pkg/minikube/cluster	0.076s	coverage: 14.5% of statements
ok  	k8s.io/minikube/pkg/minikube/command	0.031s	coverage: 4.2% of statements
ok  	k8s.io/minikube/pkg/minikube/config	0.183s	coverage: 68.1% of statements
ok  	k8s.io/minikube/pkg/minikube/cruntime	0.058s	coverage: 36.7% of statements
ok  	k8s.io/minikube/pkg/minikube/docker	0.031s	coverage: 20.8% of statements
ok  	k8s.io/minikube/pkg/minikube/driver	0.023s	coverage: 40.1% of statements
ok  	k8s.io/minikube/pkg/minikube/extract	0.006s	coverage: 58.6% of statements
ok  	k8s.io/minikube/pkg/minikube/image	0.041s	coverage: 3.0% of statements
ok  	k8s.io/minikube/pkg/minikube/kubeconfig	0.043s	coverage: 81.3% of statements
ok  	k8s.io/minikube/pkg/minikube/localpath	0.004s	coverage: 49.3% of statements
ok  	k8s.io/minikube/pkg/minikube/logs	0.046s	coverage: 1.3% of statements
ok  	k8s.io/minikube/pkg/minikube/machine	1.112s	coverage: 35.8% of statements
ok  	k8s.io/minikube/pkg/minikube/mustload	0.078s	coverage: 10.5% of statements
ok  	k8s.io/minikube/pkg/minikube/notify	0.022s	coverage: 92.9% of statements
ok  	k8s.io/minikube/pkg/minikube/out	0.018s	coverage: 66.0% of statements
ok  	k8s.io/minikube/pkg/minikube/out/register	0.011s	coverage: 54.5% of statements
ok  	k8s.io/minikube/pkg/minikube/perf	4.015s	coverage: 21.1% of statements
ok  	k8s.io/minikube/pkg/minikube/proxy	0.015s	coverage: 68.7% of statements
ok  	k8s.io/minikube/pkg/minikube/reason	0.011s	coverage: 80.0% of statements
ok  	k8s.io/minikube/pkg/minikube/registry	0.011s	coverage: 75.5% of statements
ok  	k8s.io/minikube/pkg/minikube/service	0.077s	coverage: 84.2% of statements
ok  	k8s.io/minikube/pkg/minikube/shell	0.011s	coverage: 97.1% of statements
ok  	k8s.io/minikube/pkg/minikube/storageclass	0.031s	coverage: 100.0% of statements
ok  	k8s.io/minikube/pkg/minikube/style	0.004s	coverage: 100.0% of statements
ok  	k8s.io/minikube/pkg/minikube/sysinit	0.029s	coverage: 6.5% of statements
ok  	k8s.io/minikube/pkg/minikube/translate	0.010s	coverage: 10.5% of statements
ok  	k8s.io/minikube/pkg/minikube/tunnel	1.798s	coverage: 64.2% of statements
ok  	k8s.io/minikube/pkg/util	0.785s	coverage: 75.7% of statements
ok  	k8s.io/minikube/pkg/util/lock	0.013s	coverage: 22.2% of statements
ok  	k8s.io/minikube/pkg/util/retry	0.004s	coverage: 0.0% of statements
FAIL
Makefile:315: recipe for target 'test' failed
make: *** [test] Error 32
TravisBuddy Request Identifier: 2599aa80-2239-11eb-b1e0-17a3b2b69400

@minikube-bot
Copy link
Collaborator

Can one of the admins verify this patch?

pkg/drivers/kvm/network.go Outdated Show resolved Hide resolved
@k8s-ci-robot k8s-ci-robot added size/L Denotes a PR that changes 100-499 lines, ignoring generated files. and removed size/M Denotes a PR that changes 30-99 lines, ignoring generated files. labels Nov 9, 2020
@sharifelgamal
Copy link
Collaborator

/ok-to-test

@k8s-ci-robot k8s-ci-robot added ok-to-test Indicates a non-member PR verified by an org member that is safe to test. and removed needs-ok-to-test Indicates a PR that requires an org member to verify it is safe to test. labels Nov 9, 2020
@kubernetes kubernetes deleted a comment from minikube-pr-bot Nov 9, 2020
@minikube-pr-bot
Copy link

kvm2 Driver
error collecting results for kvm2 driver: timing run 0 with Minikube (PR 9641): timing cmd: [/home/performance-monitor/.minikube/minikube-binaries/9641/minikube start --driver=kvm2]: starting cmd: fork/exec /home/performance-monitor/.minikube/minikube-binaries/9641/minikube: exec format error
docker Driver
error collecting results for docker driver: timing run 0 with Minikube (PR 9641): timing cmd: [/home/performance-monitor/.minikube/minikube-binaries/9641/minikube start --driver=docker]: starting cmd: fork/exec /home/performance-monitor/.minikube/minikube-binaries/9641/minikube: exec format error

@medyagh
Copy link
Member

medyagh commented Nov 9, 2020

/ok-to-test

@prezha
Copy link
Contributor Author

prezha commented Nov 9, 2020

	I1109 12:39:41.282188    7689 main.go:119] libmachine: Creating machine...
	I1109 12:39:41.282207    7689 main.go:119] libmachine: (addons-20201109123941-5883) Calling .Create
	I1109 12:39:41.282391    7689 main.go:119] libmachine: (addons-20201109123941-5883) Creating KVM machine...
	I1109 12:39:41.314722    7689 main.go:119] libmachine: (addons-20201109123941-5883) DBG | Trying to create network minikube-net...
	I1109 12:39:41.315623    7689 main.go:119] libmachine: (addons-20201109123941-5883) DBG | I1109 12:39:41.315222    7715 retry.go:31] will retry after 263.082536ms: virError(Code=1, Domain=0, Message='internal error: Network is already in use by interface br-f912846614e5')

this should never happen (during Creating machine) - probably some leftovers from other runs: i'm looking at it now and will amend pr

@prezha
Copy link
Contributor Author

prezha commented Nov 9, 2020

but even with that, it should still work: i've intentionally avoided calling deleteNetwork() from createNetwork() in Create(), as it looked awkward and also we have ensureNetwork() call later on in Start() that would check and fix any unexpected deviations (ie, delete/recreate network if needed), and it's working as expected - from logs:

	I1109 12:40:01.670900    7689 main.go:119] libmachine: (addons-20201109123941-5883) Calling .Start
	I1109 12:40:01.671206    7689 main.go:119] libmachine: (addons-20201109123941-5883) Ensuring networks are active...
	I1109 12:40:01.674523    7689 main.go:119] libmachine: (addons-20201109123941-5883) Ensuring network default is active
	I1109 12:40:01.675041    7689 main.go:119] libmachine: (addons-20201109123941-5883) Ensuring network minikube-net is active
	I1109 12:40:01.676143    7689 main.go:119] libmachine: (addons-20201109123941-5883) DBG | Network minikube-net is inoperable, will try to recreate it: starting network minikube-net: virError(Code=1, Domain=0, Message='internal error: Network is already in use by interface br-f912846614e5')
	I1109 12:40:01.678796    7689 main.go:119] libmachine: (addons-20201109123941-5883) DBG | Checking if network minikube-net exists...
	I1109 12:40:01.679042    7689 main.go:119] libmachine: (addons-20201109123941-5883) DBG | Network minikube-net exists
	I1109 12:40:01.679074    7689 main.go:119] libmachine: (addons-20201109123941-5883) DBG | Trying to list all domains...
	I1109 12:40:01.679262    7689 main.go:119] libmachine: (addons-20201109123941-5883) list of domains is 0 length
	I1109 12:40:01.679288    7689 main.go:119] libmachine: (addons-20201109123941-5883) DBG | Listed all domains: total of 0 domains
	I1109 12:40:01.679307    7689 main.go:119] libmachine: (addons-20201109123941-5883) DBG | Trying to reactivate network minikube-net first (if needed)...
	I1109 12:40:01.680134    7689 main.go:119] libmachine: (addons-20201109123941-5883) DBG | I1109 12:40:01.679888    7737 retry.go:31] will retry after 263.082536ms: virError(Code=1, Domain=0, Message='internal error: Network is already in use by interface br-f912846614e5')
...
	I1109 12:40:11.603278    7689 main.go:119] libmachine: (addons-20201109123941-5883) DBG | I1109 12:40:11.603122    7737 retry.go:31] will retry after 3.36678925s: virError(Code=1, Domain=0, Message='internal error: Network is already in use by interface br-f912846614e5')
	I1109 12:40:14.971837    7689 main.go:119] libmachine: (addons-20201109123941-5883) DBG | Reactivating network minikube-net failed, will continue anyway...
	I1109 12:40:14.971900    7689 main.go:119] libmachine: (addons-20201109123941-5883) DBG | Trying to destroy network minikube-net...
	I1109 12:40:14.972050    7689 main.go:119] libmachine: (addons-20201109123941-5883) DBG | I1109 12:40:14.971944    7737 retry.go:31] will retry after 214.282984ms: virError(Code=55, Domain=19, Message='Requested operation is not valid: network 'minikube-net' is not active')
...
	X Exiting due to GUEST_PROVISION: Failed to start host: driver start: ensuring active networks: deleting inoperable network minikube-net: destroying network: virError(Code=55, Domain=19, Message='Requested operation is not valid: network 'minikube-net' is not active')

so, we've correctly detected that there is the previous minikube-net that is in inactive state, but we could not activate it and therefore (expectably) we could not destroy (and finally undefine) it

also, there are total of 0 domains found, so the minikube-net here is definitely a leftover of some previous instances (not cleaned up) that we cannot reuse and we also cannot do more with libvirt here, just the brute force (eg, calling host's net tools, which is not very portable solution...)

out of curiosity: are there any chances that minikube is run also under another account (ie, root)? that could explain why we cannot reactivate network as an ordinary user...
on a quick glance i've found:

KUBECONFIG=$(pwd)/testhome/kubeconfig MINIKUBE_HOME=$(pwd)/testhome sudo -E ./e2e-linux-amd64 -minikube-start-args=--driver=none -test.timeout=10m -test.v -timeout-multiplier=1.5 -test.run TestFunctional -binary=./minikube-linux-amd64 2>&1 | tee ./report/testout.txt

and
KUBECONFIG=$(pwd)/testhome/kubeconfig MINIKUBE_HOME=$(pwd)/testhome sudo -E ./e2e-linux-amd64 -minikube-start-args=--driver=none -test.timeout=10m -test.v -timeout-multiplier=1.5 -test.run TestFunctional -binary=./minikube-linux-amd64 2>&1 | tee ./report/testout.txt

note: in the example above in the description section, i've demonstrated that we now can reactivate inactive minikube-net network that was manipulated (ie, inactivated) under root account (using virsh), but that network was originally created under a regular user account, and here we might deal with the minikube-net that was created under root account and cannot be reactivated under regular account

@priyawadhwa
Copy link

@prezha that makes sense. I think we should do two things:

  1. If we detect that we can't activate the network because of user permissions, print out a smart error and the commands a user would need to run to fix the issue (kvm2: minikube start fails after host reboot: "network 'minikube-net' is not active' #2513 (comment) worked for me)
  2. Add a force cleanup of minikube-net to our jenkins script at the start of every integration test, which basically just runs those commands, so that we don't have to constantly manually fix the VM. Should go in this file: https://github.com/kubernetes/minikube/blob/master/hack/jenkins/linux_integration_tests_kvm.sh

Would you be comfortable adding one or both of those to this PR?

@prezha
Copy link
Contributor Author

prezha commented Nov 10, 2020

@prezha that makes sense. I think we should do two things:

  1. If we detect that we can't activate the network because of user permissions, print out a smart error and the commands a user would need to run to fix the issue (#2513 (comment) worked for me)
  2. Add a force cleanup of minikube-net to our jenkins script at the start of every integration test, which basically just runs those commands, so that we don't have to constantly manually fix the VM. Should go in this file: https://github.com/kubernetes/minikube/blob/master/hack/jenkins/linux_integration_tests_kvm.sh

Would you be comfortable adding one or both of those to this PR?

agree, i'm on it (both of them)

@codecov-io
Copy link

Codecov Report

Merging #9641 (9e11413) into master (16f9b26) will decrease coverage by 0.15%.
The diff coverage is 0.00%.

Impacted file tree graph

@@            Coverage Diff             @@
##           master    #9641      +/-   ##
==========================================
- Coverage   29.64%   29.49%   -0.16%     
==========================================
  Files         173      173              
  Lines       10791    10846      +55     
==========================================
  Hits         3199     3199              
- Misses       7143     7198      +55     
  Partials      449      449              
Impacted Files Coverage Δ
pkg/drivers/kvm/kvm.go 0.00% <0.00%> (ø)
pkg/drivers/kvm/network.go 5.88% <0.00%> (-1.91%) ⬇️
cmd/minikube/cmd/stop.go 5.66% <0.00%> (-0.11%) ⬇️
cmd/minikube/cmd/status.go 10.75% <0.00%> (-0.09%) ⬇️

@k8s-ci-robot
Copy link
Contributor

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: medyagh, prezha

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@k8s-ci-robot k8s-ci-robot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Nov 10, 2020
@medyagh
Copy link
Member

medyagh commented Nov 10, 2020

@prezha that makes sense. I think we should do two things:

  1. If we detect that we can't activate the network because of user permissions, print out a smart error and the commands a user would need to run to fix the issue (#2513 (comment) worked for me)
  2. Add a force cleanup of minikube-net to our jenkins script at the start of every integration test, which basically just runs those commands, so that we don't have to constantly manually fix the VM. Should go in this file: https://github.com/kubernetes/minikube/blob/master/hack/jenkins/linux_integration_tests_kvm.sh

Would you be comfortable adding one or both of those to this PR?

agree, i'm on it (both of them)

we can add the jenkins script in a follow up PR

@medyagh medyagh merged commit 0f5a2ca into kubernetes:master Nov 10, 2020
@medyagh
Copy link
Member

medyagh commented Nov 10, 2020

thank you verty much for this PR @prezha this will improve user's experience on kvm

@medyagh medyagh changed the title Fix minikube-net network failures for KVM driver KV: recover from minikube-net network left over failures Nov 10, 2020
@medyagh medyagh changed the title KV: recover from minikube-net network left over failures kvm: recover from minikube-net network left over failures Nov 10, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
approved Indicates a PR has been approved by an approver from all required OWNERS files. cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. ok-to-test Indicates a non-member PR verified by an org member that is safe to test. size/L Denotes a PR that changes 100-499 lines, ignoring generated files.
Projects
None yet
9 participants