Merge branch 'master' into automateTimeToK8s

pull/11519/head
Steven Powell 2021-05-26 16:45:13 -07:00 committed by GitHub
commit ee5faa6fc4
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
29 changed files with 717 additions and 86 deletions

View File

@ -369,7 +369,7 @@ test: $(SOURCE_GENERATED) ## Trigger minikube test
.PHONY: generate-docs
generate-docs: extract out/minikube ## Automatically generate commands documentation.
out/minikube generate-docs --path ./site/content/en/docs/commands/ --test-path ./site/content/en/docs/contrib/tests.en.md
out/minikube generate-docs --path ./site/content/en/docs/commands/ --test-path ./site/content/en/docs/contrib/tests.en.md --code-path ./site/content/en/docs/contrib/errorcodes.en.md
.PHONY: gotest
gotest: $(SOURCE_GENERATED) ## Trigger minikube test

View File

@ -29,6 +29,7 @@ import (
var docsPath string
var testPath string
var codePath string
// generateDocs represents the generate-docs command
var generateDocs = &cobra.Command{
@ -45,16 +46,18 @@ var generateDocs = &cobra.Command{
}
// generate docs
if err := generate.Docs(RootCmd, docsPath, testPath); err != nil {
if err := generate.Docs(RootCmd, docsPath, testPath, codePath); err != nil {
exit.Error(reason.InternalGenerateDocs, "Unable to generate docs", err)
}
out.Step(style.Documentation, "Docs have been saved at - {{.path}}", out.V{"path": docsPath})
out.Step(style.Documentation, "Test docs have been saved at - {{.path}}", out.V{"path": testPath})
out.Step(style.Documentation, "Error code docs have been saved at - {{.path}}", out.V{"path": codePath})
},
}
func init() {
generateDocs.Flags().StringVar(&docsPath, "path", "", "The path on the file system where the docs in markdown need to be saved")
generateDocs.Flags().StringVar(&testPath, "test-path", "", "The path on the file system where the testing docs in markdown need to be saved")
generateDocs.Flags().StringVar(&codePath, "code-path", "", "The path on the file system where the error code docs in markdown need to be saved")
RootCmd.AddCommand(generateDocs)
}

View File

@ -1510,5 +1510,8 @@ func exitGuestProvision(err error) {
if errors.Cause(err) == oci.ErrInsufficientDockerStorage {
exit.Message(reason.RsrcInsufficientDockerStorage, "preload extraction failed: \"No space left on device\"")
}
if errors.Cause(err) == oci.ErrGetSSHPortContainerNotRunning {
exit.Message(reason.GuestProvisionContainerExited, "Docker container exited prematurely after it was created, consider investigating Docker's performance/health.")
}
exit.Error(reason.GuestProvision, "error provisioning host", err)
}

View File

@ -147,7 +147,7 @@ func initMinikubeFlags() {
startCmd.Flags().String(containerRuntime, constants.DefaultContainerRuntime, fmt.Sprintf("The container runtime to be used (%s).", strings.Join(cruntime.ValidRuntimes(), ", ")))
startCmd.Flags().Bool(createMount, false, "This will start the mount daemon and automatically mount files into minikube.")
startCmd.Flags().String(mountString, constants.DefaultMountDir+":/minikube-host", "The argument to pass the minikube mount command on start.")
startCmd.Flags().StringSliceVar(&config.AddonList, "addons", nil, "Enable addons. see `minikube addons list` for a list of valid addon names.")
startCmd.Flags().StringSlice(config.AddonListFlag, nil, "Enable addons. see `minikube addons list` for a list of valid addon names.")
startCmd.Flags().String(criSocket, "", "The cri socket path to be used.")
startCmd.Flags().String(networkPlugin, "", "Kubelet network plug-in to use (default: auto)")
startCmd.Flags().Bool(enableDefaultCNI, false, "DEPRECATED: Replaced by --cni=bridge")

8
go.mod
View File

@ -52,7 +52,7 @@ require (
github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51
github.com/klauspost/cpuid v1.2.0
github.com/libvirt/libvirt-go v3.9.0+incompatible
github.com/machine-drivers/docker-machine-driver-vmware v0.1.1
github.com/machine-drivers/docker-machine-driver-vmware v0.1.3
github.com/mattbaird/jsonpatch v0.0.0-20200820163806-098863c1fc24
github.com/mattn/go-isatty v0.0.12
github.com/mitchellh/go-ps v1.0.0
@ -82,13 +82,13 @@ require (
golang.org/x/crypto v0.0.0-20201002170205-7f63de1d35b0
golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6
golang.org/x/mod v0.4.2
golang.org/x/oauth2 v0.0.0-20210427180440-81ed05c6b58c
golang.org/x/oauth2 v0.0.0-20210514164344-f6687ab2804c
golang.org/x/sync v0.0.0-20210220032951-036812b2e83c
golang.org/x/sys v0.0.0-20210503080704-8803ae5d1324
golang.org/x/sys v0.0.0-20210514084401-e8d321eab015
golang.org/x/term v0.0.0-20210406210042-72f3dc4e9b72
golang.org/x/text v0.3.6
gonum.org/v1/plot v0.9.0
google.golang.org/api v0.46.0
google.golang.org/api v0.47.0
gopkg.in/mgo.v2 v2.0.0-20190816093944-a6b53ec6cb22 // indirect
gopkg.in/yaml.v2 v2.4.0
gotest.tools/v3 v3.0.3 // indirect

36
go.sum
View File

@ -689,8 +689,8 @@ github.com/lucas-clemente/aes12 v0.0.0-20171027163421-cd47fb39b79f/go.mod h1:JpH
github.com/lucas-clemente/quic-clients v0.1.0/go.mod h1:y5xVIEoObKqULIKivu+gD/LU90pL73bTdtQjPBvtCBk=
github.com/lucas-clemente/quic-go v0.10.2/go.mod h1:hvaRS9IHjFLMq76puFJeWNfmn+H70QZ/CXoxqw9bzao=
github.com/lucas-clemente/quic-go-certificates v0.0.0-20160823095156-d2f86524cced/go.mod h1:NCcRLrOTZbzhZvixZLlERbJtDtYsmMw8Jc4vS8Z0g58=
github.com/machine-drivers/docker-machine-driver-vmware v0.1.1 h1:+E1IKKk+6kaQrCPg6edJZ/zISZijuZTPnzy6RE4C/Ho=
github.com/machine-drivers/docker-machine-driver-vmware v0.1.1/go.mod h1:ej014C83EmSnxJeJ8PtVb8OLJ91PJKO1Q8Y7sM5CK0o=
github.com/machine-drivers/docker-machine-driver-vmware v0.1.3 h1:CIdHhp5vSr+7i3DYmXyJHjVOeo27AGWtvq5SfmjyMVs=
github.com/machine-drivers/docker-machine-driver-vmware v0.1.3/go.mod h1:p2hY99UqqG4FNLvAotM0K5kPlShyQ486ymrkNqv1NiA=
github.com/machine-drivers/machine v0.7.1-0.20210306082426-fcb2ad5bcb17 h1:fQoDTuCuJ30R+D6TSB9SALB+J3jUMa8ID8YPfmSDA20=
github.com/machine-drivers/machine v0.7.1-0.20210306082426-fcb2ad5bcb17/go.mod h1:79Uwa2hGd5S39LDJt58s8JZcIhGEK6pkq9bsuTbFWbk=
github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ=
@ -924,6 +924,7 @@ github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeV
github.com/sirupsen/logrus v1.0.4-0.20170822132746-89742aefa4b2/go.mod h1:pMByvHTf9Beacp5x1UXfOR9xyW/9antXMhjMPG0dEzc=
github.com/sirupsen/logrus v1.0.6/go.mod h1:pMByvHTf9Beacp5x1UXfOR9xyW/9antXMhjMPG0dEzc=
github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo=
github.com/sirupsen/logrus v1.3.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo=
github.com/sirupsen/logrus v1.4.1/go.mod h1:ni0Sbl8bgC9z8RoU9G6nDWqqs/fq4eDPysMBDgk/93Q=
github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE=
github.com/sirupsen/logrus v1.6.0/go.mod h1:7uNnSEd1DgxDLC74fIahvMZmmYsHGZGEOFrfsX/uA88=
@ -1022,6 +1023,7 @@ github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9de
github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k=
github.com/yvasiyarov/go-metrics v0.0.0-20140926110328-57bccd1ccd43/go.mod h1:aX5oPXxHm3bOH+xeAttToC8pqch2ScQN/JoXYupl6xs=
github.com/yvasiyarov/gorelic v0.0.0-20141212073537-a9bba5b9ab50/go.mod h1:NUSPSUX/bi6SeDMUh6brw0nXpxHnc96TguQh0+r/ssA=
github.com/yvasiyarov/newrelic_platform_go v0.0.0-20140908184405-b21fdbd4370f/go.mod h1:GlGEuHIJweS1mbCqG+7vt2nvWLzLLnRHbXz5JKd/Qbg=
@ -1067,6 +1069,7 @@ golang.org/x/crypto v0.0.0-20171113213409-9f005a07e0d3/go.mod h1:6SG95UA2DQfeDnf
golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
golang.org/x/crypto v0.0.0-20181009213950-7c1a557ab941/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
golang.org/x/crypto v0.0.0-20181029021203-45a5f77698d3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
golang.org/x/crypto v0.0.0-20190103213133-ff983b9c42bc/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
golang.org/x/crypto v0.0.0-20190123085648-057139ce5d2b/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
golang.org/x/crypto v0.0.0-20190211182817-74369b46fc67/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
golang.org/x/crypto v0.0.0-20190228161510-8dd112bcdc25/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
@ -1119,8 +1122,9 @@ golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHl
golang.org/x/lint v0.0.0-20191125180803-fdd1cda4f05f/go.mod h1:5qLYkcX4OjUUV8bRuDixDT3tpyyb+LUpUlRWLxfhWrs=
golang.org/x/lint v0.0.0-20200130185559-910be7a94367/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY=
golang.org/x/lint v0.0.0-20200302205851-738671d3881b/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY=
golang.org/x/lint v0.0.0-20201208152925-83fdc39ff7b5 h1:2M3HP5CCK1Si9FQhwnzYhXdG6DXeebvUHFpre8QvbyI=
golang.org/x/lint v0.0.0-20201208152925-83fdc39ff7b5/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY=
golang.org/x/lint v0.0.0-20210508222113-6edffad5e616 h1:VLliZ0d+/avPrXXH+OakdXhpJuEoBZuwh1m2j7U6Iug=
golang.org/x/lint v0.0.0-20210508222113-6edffad5e616/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY=
golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE=
golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o=
golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc=
@ -1186,6 +1190,7 @@ golang.org/x/net v0.0.0-20201224014010-6772e930b67b/go.mod h1:m0MpNAwzfU5UDzcl9v
golang.org/x/net v0.0.0-20210119194325-5f4716e94777/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
golang.org/x/net v0.0.0-20210316092652-d523dce5a7f4/go.mod h1:RBQZq4jEuRlivfhVLdyRGr576XBO4/greRjx4P4O3yc=
golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM=
golang.org/x/net v0.0.0-20210503060351-7fd8e65b6420 h1:a8jGStKg0XqKDlKqjLrXn0ioF5MH36pT7Z0BRTqLhbk=
golang.org/x/net v0.0.0-20210503060351-7fd8e65b6420/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
@ -1201,8 +1206,8 @@ golang.org/x/oauth2 v0.0.0-20210218202405-ba52d332ba99/go.mod h1:KelEdhl1UZF7XfJ
golang.org/x/oauth2 v0.0.0-20210220000619-9bb904979d93/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
golang.org/x/oauth2 v0.0.0-20210313182246-cd4f82c27b84/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
golang.org/x/oauth2 v0.0.0-20210413134643-5e61552d6c78/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
golang.org/x/oauth2 v0.0.0-20210427180440-81ed05c6b58c h1:SgVl/sCtkicsS7psKkje4H9YtjdEl3xsYh7N+5TDHqY=
golang.org/x/oauth2 v0.0.0-20210427180440-81ed05c6b58c/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
golang.org/x/oauth2 v0.0.0-20210514164344-f6687ab2804c h1:pkQiBZBvdos9qq4wBAHqlzuZHEXo07pqV06ef90u1WI=
golang.org/x/oauth2 v0.0.0-20210514164344-f6687ab2804c/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
golang.org/x/perf v0.0.0-20180704124530-6e6d33e29852/go.mod h1:JLpeXjPJfIyPr5TlbXLkXWLhP8nz10XfvxElABhCtcw=
golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
@ -1223,6 +1228,7 @@ golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5h
golang.org/x/sys v0.0.0-20181026203630-95b1ffbd15a5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20190115152922-a457fd036447/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20190124100055-b90733256f2e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20190209173611-3b5209105503/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
@ -1300,11 +1306,13 @@ golang.org/x/sys v0.0.0-20210304124612-50617c2ba197/go.mod h1:h1NjWce9XRLGQEsW7w
golang.org/x/sys v0.0.0-20210305230114-8fe3ee5dd75b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210315160823-c6e025ad8005/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210320140829-1e4c9ba3b0c4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210403161142-5e06dd20ab57/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210412220455-f1c623a9e750/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210503080704-8803ae5d1324 h1:pAwJxDByZctfPwzlNGrDN2BQLsdPb9NkhoTJtUkAO28=
golang.org/x/sys v0.0.0-20210503080704-8803ae5d1324/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20210514084401-e8d321eab015 h1:hZR0X1kPW+nwyJ9xRxqZk1vx5RUObAPBdKVvXPDUH/E=
golang.org/x/sys v0.0.0-20210514084401-e8d321eab015/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
golang.org/x/term v0.0.0-20210406210042-72f3dc4e9b72 h1:VqE9gduFZ4dbR7XoL77lHFp0/DyDUBKSXK7CMFkVcV0=
golang.org/x/term v0.0.0-20210406210042-72f3dc4e9b72/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
@ -1389,8 +1397,9 @@ golang.org/x/tools v0.0.0-20201201161351-ac6f37ff4c2a/go.mod h1:emZCQorbCU4vsT4f
golang.org/x/tools v0.0.0-20201208233053-a543418bbed2/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
golang.org/x/tools v0.0.0-20210105154028-b0ab187a4818/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
golang.org/x/tools v0.1.0 h1:po9/4sTYwZU9lPhi1tOrb4hCv3qrhiQ77LZfGa2OjwY=
golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0=
golang.org/x/tools v0.1.1 h1:wGiQel/hW0NnEkJUk8lbzkX2gFJU6PFxf1v5OlCfuOs=
golang.org/x/tools v0.1.1/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
@ -1431,8 +1440,8 @@ google.golang.org/api v0.40.0/go.mod h1:fYKFpnQN0DsDSKRVRcQSDQNtqWPfM9i+zNPxepjR
google.golang.org/api v0.41.0/go.mod h1:RkxM5lITDfTzmyKFPt+wGrCJbVfniCr2ool8kTBzRTU=
google.golang.org/api v0.43.0/go.mod h1:nQsDGjRXMo4lvh5hP0TKqF244gqhGcr/YSIykhUk/94=
google.golang.org/api v0.45.0/go.mod h1:ISLIJCedJolbZvDfAk+Ctuq5hf+aJ33WgtUsfyFoLXA=
google.golang.org/api v0.46.0 h1:jkDWHOBIoNSD0OQpq4rtBVu+Rh325MPjXG1rakAp8JU=
google.golang.org/api v0.46.0/go.mod h1:ceL4oozhkAiTID8XMmJBsIxID/9wMXJVVFXPg4ylg3I=
google.golang.org/api v0.47.0 h1:sQLWZQvP6jPGIP4JGPkJu4zHswrv81iobiyszr3b/0I=
google.golang.org/api v0.47.0/go.mod h1:Wbvgpq1HddcWVtzsVLyfLp8lDg6AA241LmgIL59tHXo=
google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM=
google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
@ -1490,8 +1499,8 @@ google.golang.org/genproto v0.0.0-20210319143718-93e7006c17a6/go.mod h1:FWY/as6D
google.golang.org/genproto v0.0.0-20210402141018-6c239bbf2bb1/go.mod h1:9lPAdzaEmUacj36I+k7YKbEc5CXzPIeORRgDAUOu28A=
google.golang.org/genproto v0.0.0-20210413151531-c14fb6ef47c3/go.mod h1:P3QM42oQyzQSnHPnZ/vqoCdDmzH28fzWByN9asMeM8A=
google.golang.org/genproto v0.0.0-20210420162539-3c870d7478d2/go.mod h1:P3QM42oQyzQSnHPnZ/vqoCdDmzH28fzWByN9asMeM8A=
google.golang.org/genproto v0.0.0-20210429181445-86c259c2b4ab h1:dkb90hr43A2Q5as5ZBphcOF2II0+EqfCBqGp7qFSpN4=
google.golang.org/genproto v0.0.0-20210429181445-86c259c2b4ab/go.mod h1:P3QM42oQyzQSnHPnZ/vqoCdDmzH28fzWByN9asMeM8A=
google.golang.org/genproto v0.0.0-20210513213006-bf773b8c8384 h1:z+j74wi4yV+P7EtK9gPLGukOk7mFOy9wMQaC0wNb7eY=
google.golang.org/genproto v0.0.0-20210513213006-bf773b8c8384/go.mod h1:P3QM42oQyzQSnHPnZ/vqoCdDmzH28fzWByN9asMeM8A=
google.golang.org/grpc v0.0.0-20160317175043-d3ddb4469d5a/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw=
google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38=
@ -1515,8 +1524,9 @@ google.golang.org/grpc v1.34.0/go.mod h1:WotjhfgOW/POjDeRt8vscBtXq+2VjORFy659qA5
google.golang.org/grpc v1.35.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU=
google.golang.org/grpc v1.36.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU=
google.golang.org/grpc v1.36.1/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU=
google.golang.org/grpc v1.37.0 h1:uSZWeQJX5j11bIQ4AJoj+McDBo29cY1MCoC1wO3ts+c=
google.golang.org/grpc v1.37.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM=
google.golang.org/grpc v1.37.1 h1:ARnQJNWxGyYJpdf/JXscNlQr/uv607ZPU9Z7ogHi+iI=
google.golang.org/grpc v1.37.1/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM=
google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8=
google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0=
google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM=

View File

@ -65,5 +65,10 @@ echo ""
AWK_ISSUE_COMMENTS='NR>1{arr[$4] += $7}END{for (a in arr) printf "%d %s\n", arr[a], a}'
"${DIR}/pullsheet" issue-comments --since "$recent_date" --repos kubernetes/minikube --token-path $DIR/gh_token.txt --logtostderr=false --stderrthreshold=2 | awk -F ',' "$AWK_ISSUE_COMMENTS" | sort -k1nr -k2d | awk -F ' ' "$AWK_FORMAT_ITEM" | head -n 5
if [[ "$recent" != *"beta"* ]]; then
echo ""
echo "Check out our [contributions leaderboard](https://minikube.sigs.k8s.io/docs/contrib/leaderboard/$recent/) for this release!"
fi
echo ""
echo "Don't forget to run `make update-leaderboard` & `make time-to-k8s-benchmark`!"

View File

@ -20,6 +20,7 @@ import (
"fmt"
"strconv"
"github.com/spf13/viper"
"k8s.io/minikube/pkg/minikube/assets"
"k8s.io/minikube/pkg/minikube/config"
"k8s.io/minikube/pkg/minikube/cruntime"
@ -63,7 +64,8 @@ func IsVolumesnapshotsEnabled(cc *config.ClusterConfig, _, value string) error {
isCsiDriverEnabled, _ := strconv.ParseBool(value)
// assets.Addons[].IsEnabled() returns the current status of the addon or default value.
// config.AddonList contains list of addons to be enabled.
isVolumesnapshotsEnabled := assets.Addons[volumesnapshotsAddon].IsEnabled(cc) || contains(config.AddonList, volumesnapshotsAddon)
addonList := viper.GetStringSlice(config.AddonListFlag)
isVolumesnapshotsEnabled := assets.Addons[volumesnapshotsAddon].IsEnabled(cc) || contains(addonList, volumesnapshotsAddon)
if isCsiDriverEnabled && !isVolumesnapshotsEnabled {
// just print out a warning directly, we don't want to return any errors since
// that would prevent the addon from being enabled (callbacks wouldn't be run)

View File

@ -69,6 +69,12 @@ var ErrNetworkGatewayTaken = errors.New("network gateway is taken")
// ErrNetworkInUse is when trying to delete a network which is attached to another container
var ErrNetworkInUse = errors.New("unable to delete a network that is attached to a running container")
// ErrGetSSHPortContainerNotRunning happens when you try to inspect a container (in order to get SSH port) that "exists" but is no longer running
var ErrGetSSHPortContainerNotRunning = errors.New("unable to inspect a not running container to get SSH port")
// ErrGetPortContainerNotRunning happens when you try to inspect a container (in order to get Port) that "exists" but is no longer running
var ErrGetPortContainerNotRunning = errors.New("unable to inspect a not running container to get port")
// LogContainerDebug will print relevant docker/podman infos after a container fails
func LogContainerDebug(ociBin string, name string) string {
rr, err := containerInspect(ociBin, name)

View File

@ -28,6 +28,7 @@ import (
"github.com/pkg/errors"
"k8s.io/klog/v2"
"k8s.io/minikube/pkg/minikube/constants"
)
// RoutableHostIPFromInside returns the ip/dns of the host that container lives on
@ -150,6 +151,14 @@ func ForwardedPort(ociBin string, ociID string, contPort int) (int, error) {
} else {
rr, err = runCmd(exec.Command(ociBin, "container", "inspect", "-f", fmt.Sprintf("'{{(index (index .NetworkSettings.Ports \"%d/tcp\") 0).HostPort}}'", contPort), ociID))
if err != nil {
// Error: "Template parsing error: template: :1:3: executing "" at <index (index .NetworkSettings.Ports "22/tcp") 0>: error calling index: index of untyped nil"
if strings.Contains(rr.Output(), `<index (index .NetworkSettings.Ports "22/tcp") 0>: error calling index: index of untyped nil`) && contPort == constants.SSHPort {
return 0, ErrGetSSHPortContainerNotRunning
}
if strings.Contains(rr.Output(), "error calling index: index of untyped nil") {
return 0, ErrGetPortContainerNotRunning
}
return 0, errors.Wrapf(err, "get port %d for %q", contPort, ociID)
}
}

View File

@ -32,7 +32,7 @@ import (
)
// Docs generates docs for minikube command
func Docs(root *cobra.Command, path string, testPath string) error {
func Docs(root *cobra.Command, path string, testPath string, codePath string) error {
cmds := root.Commands()
for _, c := range cmds {
if c.Hidden {
@ -47,7 +47,12 @@ func Docs(root *cobra.Command, path string, testPath string) error {
return errors.Wrapf(err, "saving doc for %s", c.Name())
}
}
return TestDocs(testPath, "test/integration")
err := TestDocs(testPath, "test/integration")
if err != nil {
return errors.Wrap(err, "failed to generate test docs")
}
return ErrorCodes(codePath, []string{"pkg/minikube/reason/exitcodes.go", "pkg/minikube/reason/reason.go"})
}
// DocForCommand returns the specific doc for that command

126
pkg/generate/errorcodes.go Normal file
View File

@ -0,0 +1,126 @@
/*
Copyright 2021 The Kubernetes Authors All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
package generate
import (
"bytes"
"fmt"
"go/ast"
"go/parser"
"go/token"
"io/ioutil"
"strings"
"time"
"github.com/pkg/errors"
"k8s.io/minikube/pkg/minikube/out"
)
func ErrorCodes(docPath string, pathsToCheck []string) error {
buf := bytes.NewBuffer([]byte{})
date := time.Now().Format("2006-01-02")
title := out.Fmt(title, out.V{"Command": "Error Codes", "Description": "minikube error codes and strings", "Date": date})
_, err := buf.Write([]byte(title))
if err != nil {
return err
}
fset := token.NewFileSet()
for _, pathToCheck := range pathsToCheck {
r, err := ioutil.ReadFile(pathToCheck)
if err != nil {
return errors.Wrap(err, fmt.Sprintf("error reading file %s", pathToCheck))
}
file, err := parser.ParseFile(fset, "", r, parser.ParseComments)
if err != nil {
return errors.Wrap(err, fmt.Sprintf("error parsing file %s", pathToCheck))
}
if strings.Contains(pathToCheck, "exitcodes.go") {
buf.WriteString("## Error Codes\n\n")
currentGroup := ""
currentError := ""
ast.Inspect(file, func(x ast.Node) bool {
if c, ok := x.(*ast.Comment); ok {
// Start a new group of errors
comment := c.Text
if !strings.HasPrefix(comment, "// Error codes specific") {
return true
}
currentGroup = strings.Replace(comment, "//", "###", 1)
buf.WriteString("\n" + currentGroup + "\n")
}
if id, ok := x.(*ast.Ident); ok {
// This is the name of the error, e.g. ExGuestError
currentError = id.Name
}
if s, ok := x.(*ast.BasicLit); ok {
// Filter out random strings that aren't error codes
if currentError == "" {
return true
}
// No specific group means generic errors
if currentGroup == "" {
currentGroup = "### Generic Errors"
buf.WriteString("\n" + currentGroup + "\n")
}
// This is the numeric code of the error, e.g. 80 for ExGuest Error
code := s.Value
buf.WriteString(fmt.Sprintf("%s: %s \n", code, currentError))
}
return true
})
buf.WriteString("\n\n")
}
if strings.Contains(pathToCheck, "reason.go") {
buf.WriteString("## Error Strings\n\n")
currentNode := ""
currentID := ""
currentComment := ""
ast.Inspect(file, func(x ast.Node) bool {
if id, ok := x.(*ast.Ident); ok {
currentNode = id.Name
if strings.HasPrefix(currentNode, "Ex") && currentNode != "ExitCode" {
// We have all the info we're going to get on this error, print it out
buf.WriteString(fmt.Sprintf("%s (Exit code %v) \n", currentID, currentNode))
if currentComment != "" {
buf.WriteString(currentComment + " \n")
}
buf.WriteString("\n")
currentComment = ""
currentID = ""
currentNode = ""
}
}
if s, ok := x.(*ast.BasicLit); ok {
if currentNode == "ID" {
currentID = s.Value
}
}
if c, ok := x.(*ast.Comment); ok {
currentComment = c.Text[3:]
}
return true
})
}
}
return ioutil.WriteFile(docPath, buf.Bytes(), 0o644)
}

View File

@ -56,6 +56,8 @@ const (
AddonImages = "addon-images"
// AddonRegistries stores custom addon images config
AddonRegistries = "addon-registries"
// AddonListFlag represents the key for addons parameter
AddonListFlag = "addons"
)
var (
@ -67,8 +69,6 @@ var (
DockerOpt []string
// ExtraOptions contains extra options (if any)
ExtraOptions ExtraOptionSlice
// AddonList contains the list of addons
AddonList []string
)
// ErrNotExist is the error returned when a config does not exist

View File

@ -32,6 +32,8 @@ func TestDownload(t *testing.T) {
t.Run("PreloadDownloadPreventsMultipleDownload", testPreloadDownloadPreventsMultipleDownload)
t.Run("ImageToCache", testImageToCache)
t.Run("ImageToDaemon", testImageToDaemon)
t.Run("PreloadNotExists", testPreloadNotExists)
t.Run("PreloadChecksumMismatch", testPreloadChecksumMismatch)
}
// Returns a mock function that sleeps before incrementing `downloadsCounter` and creates the requested file.
@ -85,14 +87,14 @@ func testPreloadDownloadPreventsMultipleDownload(t *testing.T) {
return nil, nil
}
checkPreloadExists = func(k8sVersion, containerRuntime string, forcePreload ...bool) bool { return true }
getChecksum = func(k8sVersion, containerRuntime string) (string, error) { return "check", nil }
ensureChecksumValid = func(k8sVersion, containerRuntime, path string) error { return nil }
getChecksum = func(k8sVersion, containerRuntime string) ([]byte, error) { return []byte("check"), nil }
ensureChecksumValid = func(k8sVersion, containerRuntime, path string, checksum []byte) error { return nil }
var group sync.WaitGroup
group.Add(2)
dlCall := func() {
if err := Preload(constants.DefaultKubernetesVersion, constants.DefaultContainerRuntime); err != nil {
t.Errorf("Failed to download preload: %+v", err)
t.Logf("Failed to download preload: %+v (may be ok)", err)
}
group.Done()
}
@ -107,6 +109,45 @@ func testPreloadDownloadPreventsMultipleDownload(t *testing.T) {
}
}
func testPreloadNotExists(t *testing.T) {
downloadNum := 0
DownloadMock = mockSleepDownload(&downloadNum)
checkCache = func(file string) (fs.FileInfo, error) { return nil, fmt.Errorf("cache not found") }
checkPreloadExists = func(k8sVersion, containerRuntime string, forcePreload ...bool) bool { return false }
getChecksum = func(k8sVersion, containerRuntime string) ([]byte, error) { return []byte("check"), nil }
ensureChecksumValid = func(k8sVersion, containerRuntime, path string, checksum []byte) error { return nil }
err := Preload(constants.DefaultKubernetesVersion, constants.DefaultContainerRuntime)
if err != nil {
t.Errorf("Expected no error when preload exists")
}
if downloadNum != 0 {
t.Errorf("Expected no download attempt but got %v!", downloadNum)
}
}
func testPreloadChecksumMismatch(t *testing.T) {
downloadNum := 0
DownloadMock = mockSleepDownload(&downloadNum)
checkCache = func(file string) (fs.FileInfo, error) { return nil, fmt.Errorf("cache not found") }
checkPreloadExists = func(k8sVersion, containerRuntime string, forcePreload ...bool) bool { return true }
getChecksum = func(k8sVersion, containerRuntime string) ([]byte, error) { return []byte("check"), nil }
ensureChecksumValid = func(k8sVersion, containerRuntime, path string, checksum []byte) error {
return fmt.Errorf("checksum mismatch")
}
err := Preload(constants.DefaultKubernetesVersion, constants.DefaultContainerRuntime)
expectedErrMsg := "checksum mismatch"
if err == nil {
t.Errorf("Expected error when checksum mismatches")
} else if err.Error() != expectedErrMsg {
t.Errorf("Expected error to be %s, got %s", expectedErrMsg, err.Error())
}
}
func testImageToCache(t *testing.T) {
downloadNum := 0
DownloadMock = mockSleepDownload(&downloadNum)

View File

@ -163,15 +163,16 @@ func Preload(k8sVersion, containerRuntime string) error {
return errors.Wrap(err, "tempfile")
}
targetPath = tmp.Name()
} else if checksum != "" {
url += "?checksum=" + checksum
} else if checksum != nil {
// add URL parameter for go-getter to automatically verify the checksum
url += fmt.Sprintf("?checksum=md5:%s", hex.EncodeToString(checksum))
}
if err := download(url, targetPath); err != nil {
return errors.Wrapf(err, "download failed: %s", url)
}
if err := ensureChecksumValid(k8sVersion, containerRuntime, targetPath); err != nil {
if err := ensureChecksumValid(k8sVersion, containerRuntime, targetPath, checksum); err != nil {
return err
}
@ -199,23 +200,19 @@ func getStorageAttrs(name string) (*storage.ObjectAttrs, error) {
return attrs, nil
}
var getChecksum = func(k8sVersion, containerRuntime string) (string, error) {
// getChecksum returns the MD5 checksum of the preload tarball
var getChecksum = func(k8sVersion, containerRuntime string) ([]byte, error) {
klog.Infof("getting checksum for %s ...", TarballName(k8sVersion, containerRuntime))
attrs, err := getStorageAttrs(TarballName(k8sVersion, containerRuntime))
if err != nil {
return "", err
return nil, err
}
md5 := hex.EncodeToString(attrs.MD5)
return fmt.Sprintf("md5:%s", md5), nil
return attrs.MD5, nil
}
func saveChecksumFile(k8sVersion, containerRuntime string) error {
// saveChecksumFile saves the checksum to a local file for later verification
func saveChecksumFile(k8sVersion, containerRuntime string, checksum []byte) error {
klog.Infof("saving checksum for %s ...", TarballName(k8sVersion, containerRuntime))
attrs, err := getStorageAttrs(TarballName(k8sVersion, containerRuntime))
if err != nil {
return err
}
checksum := attrs.MD5
return ioutil.WriteFile(PreloadChecksumPath(k8sVersion, containerRuntime), checksum, 0o644)
}
@ -243,8 +240,8 @@ func verifyChecksum(k8sVersion, containerRuntime, path string) error {
}
// ensureChecksumValid saves and verifies local binary checksum matches remote binary checksum
var ensureChecksumValid = func(k8sVersion, containerRuntime, targetPath string) error {
if err := saveChecksumFile(k8sVersion, containerRuntime); err != nil {
var ensureChecksumValid = func(k8sVersion, containerRuntime, targetPath string, checksum []byte) error {
if err := saveChecksumFile(k8sVersion, containerRuntime, checksum); err != nil {
return errors.Wrap(err, "saving checksum file")
}

View File

@ -48,6 +48,7 @@ var exclude = []string{
"- {{.profile}}",
" - {{.profile}}",
"test/integration",
"pkg/minikube/reason/exitcodes.go",
}
// ErrMapFile is a constant to refer to the err_map file, which contains the Advice strings.
@ -298,7 +299,6 @@ func checkIdentForStringValue(i *ast.Ident) string {
if rhs, ok := as.Rhs[0].(*ast.BasicLit); ok {
s = rhs.Value
}
}
// This Identifier is part of the const or var declaration

View File

@ -171,12 +171,13 @@ func Start(starter Starter, apiServer bool) (*kubeconfig.Settings, error) {
}()
// enable addons, both old and new!
addonList := viper.GetStringSlice(config.AddonListFlag)
if starter.ExistingAddons != nil {
if viper.GetBool("force") {
addons.Force = true
}
wg.Add(1)
go addons.Start(&wg, starter.Cfg, starter.ExistingAddons, config.AddonList)
go addons.Start(&wg, starter.Cfg, starter.ExistingAddons, addonList)
}
if apiServer {
@ -480,7 +481,7 @@ func startMachine(cfg *config.ClusterConfig, node *config.Node, delOnFail bool)
if err != nil {
return runner, preExists, m, host, errors.Wrap(err, "Failed to get machine client")
}
host, preExists, err = startHost(m, cfg, node, delOnFail)
host, preExists, err = startHostInternal(m, cfg, node, delOnFail)
if err != nil {
return runner, preExists, m, host, errors.Wrap(err, "Failed to start host")
}
@ -503,8 +504,8 @@ func startMachine(cfg *config.ClusterConfig, node *config.Node, delOnFail bool)
return runner, preExists, m, host, err
}
// startHost starts a new minikube host using a VM or None
func startHost(api libmachine.API, cc *config.ClusterConfig, n *config.Node, delOnFail bool) (*host.Host, bool, error) {
// startHostInternal starts a new minikube host using a VM or None
func startHostInternal(api libmachine.API, cc *config.ClusterConfig, n *config.Node, delOnFail bool) (*host.Host, bool, error) {
host, exists, err := machine.StartHost(api, cc, n)
if err == nil {
return host, exists, nil

View File

@ -56,7 +56,6 @@ const (
// navailableOff = 9 // (~EX_UNAVAILABLE)
// Error codes specific to the minikube program
ExProgramError = 10 // generic error
ExProgramUsage = 14 // bad command-line options
ExProgramConflict = 11 // can't do what you want because of existing data
@ -65,7 +64,6 @@ const (
ExProgramConfig = 18 // bad configuration specified
// Error codes specific to resource limits (exit code layout follows no rules)
ExResourceError = 20
ExInsufficientMemory = 23
ExInsufficientStorage = 26
@ -73,7 +71,6 @@ const (
ExInsufficientCores = 29
// Error codes specific to the host
ExHostError = 30
ExHostConflict = 31
ExHostTimeout = 32
@ -84,7 +81,6 @@ const (
ExHostConfig = 38
// Error codes specific to remote networking
ExInternetError = 40
ExInternetConflict = 41
ExInternetTimeout = 42
@ -93,7 +89,6 @@ const (
ExInternetUnavailable = 49
// Error codes specific to the libmachine driver
ExDriverError = 50
ExDriverConflict = 51
ExDriverTimeout = 52
@ -105,7 +100,6 @@ const (
ExDriverUnavailable = 59
// Error codes specific to the driver provider
ExProviderError = 60
ExProviderConflict = 61
ExProviderTimeout = 62
@ -120,7 +114,6 @@ const (
ExProviderUnavailable = 69 // In common use
// Error codes specific to local networking
ExLocalNetworkError = 70
ExLocalNetworkConflict = 71
ExLocalNetworkTimeout = 72
@ -130,7 +123,6 @@ const (
ExLocalNetworkUnavailable = 79
// Error codes specific to the guest host
ExGuestError = 80
ExGuestConflict = 81
ExGuestTimeout = 82
@ -142,14 +134,12 @@ const (
ExGuestUnavailable = 89
// Error codes specific to the container runtime
ExRuntimeError = 90
ExRuntimeNotRunning = 93
ExRuntimeNotFound = 95
ExRuntimeUnavailable = 99
// Error codes specific to the Kubernetes control plane
ExControlPlaneError = 100
ExControlPlaneConflict = 101
ExControlPlaneTimeout = 102
@ -160,7 +150,6 @@ const (
ExControlPlaneUnavailable = 109
// Error codes specific to a Kubernetes service
ExSvcError = 110
ExSvcConflict = 111
ExSvcTimeout = 112

View File

@ -56,7 +56,9 @@ func (k *Kind) IssueURLs() []string {
// Sections are ordered roughly by stack dependencies
var (
Usage = Kind{ID: "MK_USAGE", ExitCode: ExProgramUsage}
// minikube has been passed an incorrect parameter
Usage = Kind{ID: "MK_USAGE", ExitCode: ExProgramUsage}
// minikube has no current cluster running
UsageNoProfileRunning = Kind{ID: "MK_USAGE_NO_PROFILE", ExitCode: ExProgramUsage,
Advice: `You can create one using 'minikube start'.
`,
@ -229,32 +231,33 @@ var (
DrvNeedsRoot = Kind{ID: "DRV_NEEDS_ROOT", ExitCode: ExDriverPermission}
DrvNeedsAdministrator = Kind{ID: "DRV_NEEDS_ADMINISTRATOR", ExitCode: ExDriverPermission}
GuestCacheLoad = Kind{ID: "GUEST_CACHE_LOAD", ExitCode: ExGuestError}
GuestCert = Kind{ID: "GUEST_CERT", ExitCode: ExGuestError}
GuestCpConfig = Kind{ID: "GUEST_CP_CONFIG", ExitCode: ExGuestConfig}
GuestDeletion = Kind{ID: "GUEST_DELETION", ExitCode: ExGuestError}
GuestImageList = Kind{ID: "GUEST_IMAGE_LIST", ExitCode: ExGuestError}
GuestImageLoad = Kind{ID: "GUEST_IMAGE_LOAD", ExitCode: ExGuestError}
GuestImageRemove = Kind{ID: "GUEST_IMAGE_REMOVE", ExitCode: ExGuestError}
GuestImageBuild = Kind{ID: "GUEST_IMAGE_BUILD", ExitCode: ExGuestError}
GuestLoadHost = Kind{ID: "GUEST_LOAD_HOST", ExitCode: ExGuestError}
GuestMount = Kind{ID: "GUEST_MOUNT", ExitCode: ExGuestError}
GuestMountConflict = Kind{ID: "GUEST_MOUNT_CONFLICT", ExitCode: ExGuestConflict}
GuestNodeAdd = Kind{ID: "GUEST_NODE_ADD", ExitCode: ExGuestError}
GuestNodeDelete = Kind{ID: "GUEST_NODE_DELETE", ExitCode: ExGuestError}
GuestNodeProvision = Kind{ID: "GUEST_NODE_PROVISION", ExitCode: ExGuestError}
GuestNodeRetrieve = Kind{ID: "GUEST_NODE_RETRIEVE", ExitCode: ExGuestNotFound}
GuestNodeStart = Kind{ID: "GUEST_NODE_START", ExitCode: ExGuestError}
GuestPause = Kind{ID: "GUEST_PAUSE", ExitCode: ExGuestError}
GuestProfileDeletion = Kind{ID: "GUEST_PROFILE_DELETION", ExitCode: ExGuestError}
GuestProvision = Kind{ID: "GUEST_PROVISION", ExitCode: ExGuestError}
GuestStart = Kind{ID: "GUEST_START", ExitCode: ExGuestError}
GuestStatus = Kind{ID: "GUEST_STATUS", ExitCode: ExGuestError}
GuestStopTimeout = Kind{ID: "GUEST_STOP_TIMEOUT", ExitCode: ExGuestTimeout}
GuestUnpause = Kind{ID: "GUEST_UNPAUSE", ExitCode: ExGuestError}
GuestCheckPaused = Kind{ID: "GUEST_CHECK_PAUSED", ExitCode: ExGuestError}
GuestDrvMismatch = Kind{ID: "GUEST_DRIVER_MISMATCH", ExitCode: ExGuestConflict, Style: style.Conflict}
GuestMissingConntrack = Kind{ID: "GUEST_MISSING_CONNTRACK", ExitCode: ExGuestUnsupported}
GuestCacheLoad = Kind{ID: "GUEST_CACHE_LOAD", ExitCode: ExGuestError}
GuestCert = Kind{ID: "GUEST_CERT", ExitCode: ExGuestError}
GuestCpConfig = Kind{ID: "GUEST_CP_CONFIG", ExitCode: ExGuestConfig}
GuestDeletion = Kind{ID: "GUEST_DELETION", ExitCode: ExGuestError}
GuestImageList = Kind{ID: "GUEST_IMAGE_LIST", ExitCode: ExGuestError}
GuestImageLoad = Kind{ID: "GUEST_IMAGE_LOAD", ExitCode: ExGuestError}
GuestImageRemove = Kind{ID: "GUEST_IMAGE_REMOVE", ExitCode: ExGuestError}
GuestImageBuild = Kind{ID: "GUEST_IMAGE_BUILD", ExitCode: ExGuestError}
GuestLoadHost = Kind{ID: "GUEST_LOAD_HOST", ExitCode: ExGuestError}
GuestMount = Kind{ID: "GUEST_MOUNT", ExitCode: ExGuestError}
GuestMountConflict = Kind{ID: "GUEST_MOUNT_CONFLICT", ExitCode: ExGuestConflict}
GuestNodeAdd = Kind{ID: "GUEST_NODE_ADD", ExitCode: ExGuestError}
GuestNodeDelete = Kind{ID: "GUEST_NODE_DELETE", ExitCode: ExGuestError}
GuestNodeProvision = Kind{ID: "GUEST_NODE_PROVISION", ExitCode: ExGuestError}
GuestNodeRetrieve = Kind{ID: "GUEST_NODE_RETRIEVE", ExitCode: ExGuestNotFound}
GuestNodeStart = Kind{ID: "GUEST_NODE_START", ExitCode: ExGuestError}
GuestPause = Kind{ID: "GUEST_PAUSE", ExitCode: ExGuestError}
GuestProfileDeletion = Kind{ID: "GUEST_PROFILE_DELETION", ExitCode: ExGuestError}
GuestProvision = Kind{ID: "GUEST_PROVISION", ExitCode: ExGuestError}
GuestProvisionContainerExited = Kind{ID: "GUEST_PROVISION_CONTAINER_EXITED", ExitCode: ExGuestError}
GuestStart = Kind{ID: "GUEST_START", ExitCode: ExGuestError}
GuestStatus = Kind{ID: "GUEST_STATUS", ExitCode: ExGuestError}
GuestStopTimeout = Kind{ID: "GUEST_STOP_TIMEOUT", ExitCode: ExGuestTimeout}
GuestUnpause = Kind{ID: "GUEST_UNPAUSE", ExitCode: ExGuestError}
GuestCheckPaused = Kind{ID: "GUEST_CHECK_PAUSED", ExitCode: ExGuestError}
GuestDrvMismatch = Kind{ID: "GUEST_DRIVER_MISMATCH", ExitCode: ExGuestConflict, Style: style.Conflict}
GuestMissingConntrack = Kind{ID: "GUEST_MISSING_CONNTRACK", ExitCode: ExGuestUnsupported}
IfHostIP = Kind{ID: "IF_HOST_IP", ExitCode: ExLocalNetworkError}
IfMountIP = Kind{ID: "IF_MOUNT_IP", ExitCode: ExLocalNetworkError}

View File

@ -0,0 +1,409 @@
---
title: "Error Codes"
description: >
minikube error codes and strings
---
## Error Codes
### Generic Errors
1: ExFailure
2: ExInterrupted
### Error codes specific to the minikube program
10: ExProgramError
14: ExProgramUsage
11: ExProgramConflict
15: ExProgramNotFound
16: ExProgramUnsupported
18: ExProgramConfig
### Error codes specific to resource limits (exit code layout follows no rules)
20: ExResourceError
23: ExInsufficientMemory
26: ExInsufficientStorage
27: ExInsufficientPermission
29: ExInsufficientCores
### Error codes specific to the host
30: ExHostError
31: ExHostConflict
32: ExHostTimeout
34: ExHostUsage
35: ExHostNotFound
38: ExHostUnsupported
37: ExHostPermission
38: ExHostConfig
### Error codes specific to remote networking
40: ExInternetError
41: ExInternetConflict
42: ExInternetTimeout
45: ExInternetNotFound
48: ExInternetConfig
49: ExInternetUnavailable
### Error codes specific to the libmachine driver
50: ExDriverError
51: ExDriverConflict
52: ExDriverTimeout
54: ExDriverUsage
55: ExDriverNotFound
56: ExDriverUnsupported
57: ExDriverPermission
58: ExDriverConfig
59: ExDriverUnavailable
### Error codes specific to the driver provider
60: ExProviderError
61: ExProviderConflict
62: ExProviderTimeout
63: ExProviderNotRunning
65: ExProviderNotFound
66: ExProviderUnsupported
67: ExProviderPermission
68: ExProviderConfig
69: ExProviderUnavailable
### Error codes specific to local networking
70: ExLocalNetworkError
71: ExLocalNetworkConflict
72: ExLocalNetworkTimeout
75: ExLocalNetworkNotFound
77: ExLocalNetworkPermission
78: ExLocalNetworkConfig
79: ExLocalNetworkUnavailable
### Error codes specific to the guest host
80: ExGuestError
81: ExGuestConflict
82: ExGuestTimeout
83: ExGuestNotRunning
85: ExGuestNotFound
86: ExGuestUnsupported
87: ExGuestPermission
88: ExGuestConfig
89: ExGuestUnavailable
### Error codes specific to the container runtime
90: ExRuntimeError
93: ExRuntimeNotRunning
95: ExRuntimeNotFound
99: ExRuntimeUnavailable
### Error codes specific to the Kubernetes control plane
100: ExControlPlaneError
101: ExControlPlaneConflict
102: ExControlPlaneTimeout
103: ExControlPlaneNotRunning
105: ExControlPlaneNotFound
106: ExControlPlaneUnsupported
108: ExControlPlaneConfig
109: ExControlPlaneUnavailable
### Error codes specific to a Kubernetes service
110: ExSvcError
111: ExSvcConflict
112: ExSvcTimeout
113: ExSvcNotRunning
115: ExSvcNotFound
116: ExSvcUnsupported
117: ExSvcPermission
118: ExSvcConfig
119: ExSvcUnavailable
## Error Strings
"MK_USAGE" (Exit code ExProgramUsage)
minikube has been passed an incorrect parameter
"MK_USAGE_NO_PROFILE" (Exit code ExProgramUsage)
minikube has no current cluster running
"MK_INTERRUPTED" (Exit code ExProgramConflict)
"MK_WRONG_BINARY_WSL" (Exit code ExProgramUnsupported)
"MK_WRONG_BINARY_M1" (Exit code ExProgramUnsupported)
"MK_NEW_APICLIENT" (Exit code ExProgramError)
"MK_ADDON_ENABLE" (Exit code ExProgramError)
"MK_ADD_CONFIG" (Exit code ExProgramError)
"MK_BIND_FLAGS" (Exit code ExProgramError)
"MK_BOOTSTRAPPER" (Exit code ExProgramError)
"MK_CACHE_LIST" (Exit code ExProgramError)
"MK_CACHE_LOAD" (Exit code ExProgramError)
"MK_COMMAND_RUNNER" (Exit code ExProgramError)
"MK_COMPLETION" (Exit code ExProgramError)
"MK_CONFIG_SET" (Exit code ExProgramError)
"MK_CONFIG_UNSET" (Exit code ExProgramError)
"MK_CONFIG_VIEW" (Exit code ExProgramError)
"MK_DEL_CONFIG" (Exit code ExProgramError)
"MK_DISABLE" (Exit code ExProgramError)
"MK_DOCKER_SCRIPT" (Exit code ExProgramError)
"MK_ENABLE" (Exit code ExProgramError)
"MK_FLAGS_BIND" (Exit code ExProgramError)
"MK_FLAGS_SET" (Exit code ExProgramError)
"MK_FORMAT_USAGE" (Exit code ExProgramError)
"MK_GENERATE_DOCS" (Exit code ExProgramError)
"MK_JSON_MARSHAL" (Exit code ExProgramError)
"MK_K8S_CLIENT" (Exit code ExControlPlaneUnavailable)
"MK_LIST_CONFIG" (Exit code ExProgramError)
"MK_LOGTOSTDERR_FLAG" (Exit code ExProgramError)
"MK_LOG_FOLLOW" (Exit code ExProgramError)
"MK_NEW_RUNTIME" (Exit code ExProgramError)
"MK_OUTPUT_USAGE" (Exit code ExProgramError)
"MK_RUNTIME" (Exit code ExProgramError)
"MK_RESERVED_PROFILE" (Exit code ExProgramConflict)
"MK_ENV_SCRIPT" (Exit code ExProgramError)
"MK_SHELL_DETECT" (Exit code ExProgramError)
"MK_STATUS_JSON" (Exit code ExProgramError)
"MK_STATUS_TEXT" (Exit code ExProgramError)
"MK_UNSET_SCRIPT" (Exit code ExProgramError)
"MK_VIEW_EXEC" (Exit code ExProgramError)
"MK_VIEW_TMPL" (Exit code ExProgramError)
"MK_YAML_MARSHAL" (Exit code ExProgramError)
"MK_CREDENTIALS_NOT_FOUND" (Exit code ExProgramNotFound)
"MK_CREDENTIALS_NOT_NEEDED" (Exit code ExProgramNotFound)
"MK_SEMVER_PARSE" (Exit code ExProgramError)
"MK_DAEMONIZE" (Exit code ExProgramError)
"RSRC_INSUFFICIENT_CORES" (Exit code ExInsufficientCores)
"RSRC_DOCKER_CORES" (Exit code ExInsufficientCores)
"RSRC_DOCKER_CORES" (Exit code ExInsufficientCores)
"RSRC_INSUFFICIENT_REQ_MEMORY" (Exit code ExInsufficientMemory)
"RSRC_INSUFFICIENT_SYS_MEMORY" (Exit code ExInsufficientMemory)
"RSRC_INSUFFICIENT_CONTAINER_MEMORY" (Exit code ExInsufficientMemory)
"RSRC_DOCKER_MEMORY" (Exit code ExInsufficientMemory)
"RSRC_DOCKER_MEMORY" (Exit code ExInsufficientMemory)
"RSRC_DOCKER_STORAGE" (Exit code ExInsufficientStorage)
"RSRC_PODMAN_STORAGE" (Exit code ExInsufficientStorage)
"RSRC_INSUFFICIENT_STORAGE" (Exit code ExInsufficientStorage)
"HOST_HOME_MKDIR" (Exit code ExHostPermission)
"HOST_HOME_CHOWN" (Exit code ExHostPermission)
"HOST_BROWSER" (Exit code ExHostError)
"HOST_CONFIG_LOAD" (Exit code ExHostConfig)
"HOST_HOME_PERMISSION" (Exit code ExHostPermission)
"HOST_CURRENT_USER" (Exit code ExHostConfig)
"HOST_DEL_CACHE" (Exit code ExHostError)
"HOST_KILL_MOUNT_PROC" (Exit code ExHostError)
"HOST_KUBECNOFIG_UNSET" (Exit code ExHostConfig)
"HOST_KUBECONFIG_UPDATE" (Exit code ExHostConfig)
"HOST_KUBECONFIG_DELETE_CTX" (Exit code ExHostConfig)
"HOST_KUBECTL_PROXY" (Exit code ExHostError)
"HOST_MOUNT_PID" (Exit code ExHostError)
"HOST_PATH_MISSING" (Exit code ExHostNotFound)
"HOST_PATH_STAT" (Exit code ExHostError)
"HOST_PURGE" (Exit code ExHostError)
"HOST_SAVE_PROFILE" (Exit code ExHostConfig)
"PROVIDER_NOT_FOUND" (Exit code ExProviderNotFound)
"PROVIDER_UNAVAILABLE" (Exit code ExProviderNotFound)
"DRV_CP_ENDPOINT" (Exit code ExDriverError)
"DRV_PORT_FORWARD" (Exit code ExDriverError)
"DRV_UNSUPPORTED_MULTINODE" (Exit code ExDriverConflict)
"DRV_UNSUPPORTED_OS" (Exit code ExDriverUnsupported)
"DRV_UNSUPPORTED_PROFILE" (Exit code ExDriverUnsupported)
"DRV_NOT_FOUND" (Exit code ExDriverNotFound)
"DRV_NOT_DETECTED" (Exit code ExDriverNotFound)
"DRV_AS_ROOT" (Exit code ExDriverPermission)
"DRV_NEEDS_ROOT" (Exit code ExDriverPermission)
"DRV_NEEDS_ADMINISTRATOR" (Exit code ExDriverPermission)
"GUEST_CACHE_LOAD" (Exit code ExGuestError)
"GUEST_CERT" (Exit code ExGuestError)
"GUEST_CP_CONFIG" (Exit code ExGuestConfig)
"GUEST_DELETION" (Exit code ExGuestError)
"GUEST_IMAGE_LIST" (Exit code ExGuestError)
"GUEST_IMAGE_LOAD" (Exit code ExGuestError)
"GUEST_IMAGE_REMOVE" (Exit code ExGuestError)
"GUEST_IMAGE_BUILD" (Exit code ExGuestError)
"GUEST_LOAD_HOST" (Exit code ExGuestError)
"GUEST_MOUNT" (Exit code ExGuestError)
"GUEST_MOUNT_CONFLICT" (Exit code ExGuestConflict)
"GUEST_NODE_ADD" (Exit code ExGuestError)
"GUEST_NODE_DELETE" (Exit code ExGuestError)
"GUEST_NODE_PROVISION" (Exit code ExGuestError)
"GUEST_NODE_RETRIEVE" (Exit code ExGuestNotFound)
"GUEST_NODE_START" (Exit code ExGuestError)
"GUEST_PAUSE" (Exit code ExGuestError)
"GUEST_PROFILE_DELETION" (Exit code ExGuestError)
"GUEST_PROVISION" (Exit code ExGuestError)
"GUEST_START" (Exit code ExGuestError)
"GUEST_STATUS" (Exit code ExGuestError)
"GUEST_STOP_TIMEOUT" (Exit code ExGuestTimeout)
"GUEST_UNPAUSE" (Exit code ExGuestError)
"GUEST_CHECK_PAUSED" (Exit code ExGuestError)
"GUEST_DRIVER_MISMATCH" (Exit code ExGuestConflict)
"GUEST_MISSING_CONNTRACK" (Exit code ExGuestUnsupported)
"IF_HOST_IP" (Exit code ExLocalNetworkError)
"IF_MOUNT_IP" (Exit code ExLocalNetworkError)
"IF_MOUNT_PORT" (Exit code ExLocalNetworkError)
"IF_SSH_CLIENT" (Exit code ExLocalNetworkError)
"INET_CACHE_BINARIES" (Exit code ExInternetError)
"INET_CACHE_KUBECTL" (Exit code ExInternetError)
"INET_CACHE_TAR" (Exit code ExInternetError)
"INET_GET_VERSIONS" (Exit code ExInternetError)
"INET_REPO" (Exit code ExInternetError)
"INET_REPOS_UNAVAILABLE" (Exit code ExInternetError)
"INET_VERSION_UNAVAILABLE" (Exit code ExInternetUnavailable)
"INET_VERSION_EMPTY" (Exit code ExInternetConfig)
"RUNTIME_ENABLE" (Exit code ExRuntimeError)
"RUNTIME_CACHE" (Exit code ExRuntimeError)
"RUNTIME_RESTART" (Exit code ExRuntimeError)
"SVC_CHECK_TIMEOUT" (Exit code ExSvcTimeout)
"SVC_TIMEOUT" (Exit code ExSvcTimeout)
"SVC_LIST" (Exit code ExSvcError)
"SVC_TUNNEL_START" (Exit code ExSvcError)
"SVC_TUNNEL_STOP" (Exit code ExSvcError)
"SVC_URL_TIMEOUT" (Exit code ExSvcTimeout)
"SVC_NOT_FOUND" (Exit code ExSvcNotFound)
"ENV_DRIVER_CONFLICT" (Exit code ExDriverConflict)
"ENV_MULTINODE_CONFLICT" (Exit code ExGuestConflict)
"ENV_DOCKER_UNAVAILABLE" (Exit code ExRuntimeUnavailable)
"ENV_PODMAN_UNAVAILABLE" (Exit code ExRuntimeUnavailable)
"SVC_ADDON_UNSUPPORTED" (Exit code ExSvcUnsupported)
"SVC_ADDON_NOT_ENABLED" (Exit code ExProgramConflict)
"K8S_INSTALL_FAILED" (Exit code ExControlPlaneError)
"K8S_INSTALL_FAILED_CONTAINER_RUNTIME_NOT_RUNNING" (Exit code ExRuntimeNotRunning)
"K8S_OLD_UNSUPPORTED" (Exit code ExControlPlaneUnsupported)
"K8S_DOWNGRADE_UNSUPPORTED" (Exit code ExControlPlaneUnsupported)

View File

@ -99,6 +99,12 @@ Presentations about the minikube project, mostly from the Kubernetes blog and th
* _No results found for minikube_
### KubeCon EU 2021 (Online, Europe) - Virtual
* <http://www.youtube.com/watch?v=nqKYgeUtk8s> (32:48)
* "Minikube and Three Different Local Kubernetes Learning Environments"
* Anders Björklund & Predrag Rogic
## Other conferences
### Helm Summit EU 2019 (Amsterdam, The Netherlands)

View File

@ -178,6 +178,7 @@
"Environment variables to pass to the Docker daemon. (format: key=value)": "Umgebungsvariablen, die an den Docker-Daemon übergeben werden. (Format: Schlüssel = Wert)",
"Environment variables to pass to the build. (format: key=value)": "",
"Error checking driver version: {{.error}}": "Fehler beim Prüfen der Treiberversion: {{.error}}",
"Error code docs have been saved at - {{.path}}": "",
"Error creating minikube directory": "",
"Error creating view template": "",
"Error detecting shell": "",
@ -642,6 +643,7 @@
"The number of nodes to spin up. Defaults to 1.": "",
"The output format. One of 'json', 'table'": "",
"The path on the file system where the docs in markdown need to be saved": "",
"The path on the file system where the error code docs in markdown need to be saved": "",
"The path on the file system where the testing docs in markdown need to be saved": "",
"The podman service within '{{.cluster}}' is not active": "",
"The podman-env command is incompatible with multi-node clusters. Use the 'registry' add-on: https://minikube.sigs.k8s.io/docs/handbook/registry/": "",

View File

@ -183,6 +183,7 @@
"Environment variables to pass to the Docker daemon. (format: key=value)": "Variables de entorno que se transferirán al daemon de Docker. Formato: clave=valor",
"Environment variables to pass to the build. (format: key=value)": "",
"Error checking driver version: {{.error}}": "No se ha podido comprobar la versión del controlador: {{.error}}",
"Error code docs have been saved at - {{.path}}": "",
"Error creating minikube directory": "Error al crear el directorio minikube",
"Error creating view template": "Error al crear la plantilla de vista",
"Error detecting shell": "Error al detectar la shell",
@ -647,6 +648,7 @@
"The number of nodes to spin up. Defaults to 1.": "",
"The output format. One of 'json', 'table'": "",
"The path on the file system where the docs in markdown need to be saved": "",
"The path on the file system where the error code docs in markdown need to be saved": "",
"The path on the file system where the testing docs in markdown need to be saved": "",
"The podman service within '{{.cluster}}' is not active": "",
"The podman-env command is incompatible with multi-node clusters. Use the 'registry' add-on: https://minikube.sigs.k8s.io/docs/handbook/registry/": "",

View File

@ -180,6 +180,7 @@
"Environment variables to pass to the Docker daemon. (format: key=value)": "Variables d'environment à transmettre au daemon Docker (format : clé = valeur).",
"Environment variables to pass to the build. (format: key=value)": "",
"Error checking driver version: {{.error}}": "Erreur lors de la vérification de la version du driver : {{.error}}",
"Error code docs have been saved at - {{.path}}": "",
"Error creating minikube directory": "",
"Error creating view template": "",
"Error detecting shell": "",
@ -645,6 +646,7 @@
"The number of nodes to spin up. Defaults to 1.": "",
"The output format. One of 'json', 'table'": "",
"The path on the file system where the docs in markdown need to be saved": "",
"The path on the file system where the error code docs in markdown need to be saved": "",
"The path on the file system where the testing docs in markdown need to be saved": "",
"The podman service within '{{.cluster}}' is not active": "",
"The podman-env command is incompatible with multi-node clusters. Use the 'registry' add-on: https://minikube.sigs.k8s.io/docs/handbook/registry/": "",

View File

@ -172,6 +172,7 @@
"Ensure your {{.driver_name}} is running and is healthy.": "",
"Environment variables to pass to the Docker daemon. (format: key=value)": "Docker デーモンに渡す環境変数(形式: Key=Value",
"Environment variables to pass to the build. (format: key=value)": "",
"Error code docs have been saved at - {{.path}}": "",
"Error creating minikube directory": "minikube のディレクトリ作成中にエラーが発生しました",
"Error creating view template": "表示用のテンプレートを作成中にエラーが発生しました",
"Error detecting shell": "シェルの確認中にエラーが発生しました",
@ -641,6 +642,7 @@
"The number of nodes to spin up. Defaults to 1.": "",
"The output format. One of 'json', 'table'": "",
"The path on the file system where the docs in markdown need to be saved": "",
"The path on the file system where the error code docs in markdown need to be saved": "",
"The path on the file system where the testing docs in markdown need to be saved": "",
"The podman service within '{{.cluster}}' is not active": "",
"The podman-env command is incompatible with multi-node clusters. Use the 'registry' add-on: https://minikube.sigs.k8s.io/docs/handbook/registry/": "",

View File

@ -188,6 +188,7 @@
"Environment variables to pass to the Docker daemon. (format: key=value)": "",
"Environment variables to pass to the build. (format: key=value)": "",
"Error adding node to cluster": "클러스터에 노드 추가 오류",
"Error code docs have been saved at - {{.path}}": "",
"Error creating minikube directory": "minikube 폴더 생성 오류",
"Error creating view template": "",
"Error detecting shell": "shell 탐지 오류",
@ -654,6 +655,7 @@
"The number of nodes to spin up. Defaults to 1.": "",
"The output format. One of 'json', 'table'": "",
"The path on the file system where the docs in markdown need to be saved": "",
"The path on the file system where the error code docs in markdown need to be saved": "",
"The path on the file system where the testing docs in markdown need to be saved": "",
"The podman service within '{{.cluster}}' is not active": "",
"The podman-env command is incompatible with multi-node clusters. Use the 'registry' add-on: https://minikube.sigs.k8s.io/docs/handbook/registry/": "",

View File

@ -188,6 +188,7 @@
"Environment variables to pass to the Docker daemon. (format: key=value)": "Zmienne środowiskowe do przekazania do demona docker (format: klucz-wartość)",
"Environment variables to pass to the build. (format: key=value)": "",
"Error checking driver version: {{.error}}": "Błąd podczas sprawdzania wersji sterownika : {{.error}}",
"Error code docs have been saved at - {{.path}}": "",
"Error creating minikube directory": "",
"Error creating view template": "",
"Error detecting shell": "",
@ -662,6 +663,7 @@
"The number of nodes to spin up. Defaults to 1.": "",
"The output format. One of 'json', 'table'": "",
"The path on the file system where the docs in markdown need to be saved": "",
"The path on the file system where the error code docs in markdown need to be saved": "",
"The path on the file system where the testing docs in markdown need to be saved": "",
"The podman service within '{{.cluster}}' is not active": "",
"The podman-env command is incompatible with multi-node clusters. Use the 'registry' add-on: https://minikube.sigs.k8s.io/docs/handbook/registry/": "",

View File

@ -168,6 +168,7 @@
"Ensure your {{.driver_name}} is running and is healthy.": "",
"Environment variables to pass to the Docker daemon. (format: key=value)": "",
"Environment variables to pass to the build. (format: key=value)": "",
"Error code docs have been saved at - {{.path}}": "",
"Error creating minikube directory": "",
"Error creating view template": "",
"Error detecting shell": "",
@ -600,6 +601,7 @@
"The number of nodes to spin up. Defaults to 1.": "",
"The output format. One of 'json', 'table'": "",
"The path on the file system where the docs in markdown need to be saved": "",
"The path on the file system where the error code docs in markdown need to be saved": "",
"The path on the file system where the testing docs in markdown need to be saved": "",
"The podman service within '{{.cluster}}' is not active": "",
"The podman-env command is incompatible with multi-node clusters. Use the 'registry' add-on: https://minikube.sigs.k8s.io/docs/handbook/registry/": "",

View File

@ -216,6 +216,7 @@
"Environment variables to pass to the Docker daemon. (format: key=value)": "传递给 Docker 守护进程的环境变量。(格式:键值对)",
"Environment variables to pass to the build. (format: key=value)": "",
"Error checking driver version: {{.error}}": "检查驱动程序版本时出错:{{.error}}",
"Error code docs have been saved at - {{.path}}": "",
"Error converting status to json": "转换状态为 json 时出错",
"Error creating list template": "创建 list template 时出错",
"Error creating minikube directory": "创建 minikube 目录时出错",
@ -749,6 +750,7 @@
"The number of nodes to spin up. Defaults to 1.": "",
"The output format. One of 'json', 'table'": "输出的格式。'json' 或者 'table'",
"The path on the file system where the docs in markdown need to be saved": "",
"The path on the file system where the error code docs in markdown need to be saved": "",
"The path on the file system where the testing docs in markdown need to be saved": "",
"The podman service within '{{.cluster}}' is not active": "",
"The podman-env command is incompatible with multi-node clusters. Use the 'registry' add-on: https://minikube.sigs.k8s.io/docs/handbook/registry/": "",