From ef304f7c0588102b6870e179cef4a26b20324ca5 Mon Sep 17 00:00:00 2001 From: Sharif Elgamal Date: Wed, 19 May 2021 15:25:45 -0700 Subject: [PATCH 01/20] add error codes file --- pkg/generate/docs.go | 9 ++++-- pkg/generate/errorcodes.go | 60 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 67 insertions(+), 2 deletions(-) create mode 100644 pkg/generate/errorcodes.go diff --git a/pkg/generate/docs.go b/pkg/generate/docs.go index bb66b86aa8..8e1932909f 100644 --- a/pkg/generate/docs.go +++ b/pkg/generate/docs.go @@ -33,7 +33,7 @@ import ( // Docs generates docs for minikube command func Docs(root *cobra.Command, path string, testPath string) error { - cmds := root.Commands() + /*cmds := root.Commands() for _, c := range cmds { if c.Hidden { klog.Infof("Skipping generating doc for %s as it's a hidden command", c.Name()) @@ -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("./site/content/en/docs/contrib/errorcodes.en.md", "pkg/minikube/reason/known_issues.go") } // DocForCommand returns the specific doc for that command diff --git a/pkg/generate/errorcodes.go b/pkg/generate/errorcodes.go new file mode 100644 index 0000000000..fa74641839 --- /dev/null +++ b/pkg/generate/errorcodes.go @@ -0,0 +1,60 @@ +/* +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" + "reflect" + "time" + + "github.com/pkg/errors" + "k8s.io/minikube/pkg/minikube/out" +) + +func ErrorCodes(docPath string, pathToCheck 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 advice", "Date": date}) + _, err := buf.Write([]byte(title)) + if err != nil { + return err + } + + fset := token.NewFileSet() + 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)) + } + + ast.Inspect(file, func(x ast.Node) bool { + val := reflect.ValueOf(x) + if !val.IsZero() { + fmt.Print(val.Elem().Type().Name()) + } + return true + }) + return nil +} From 5a3843b07419317ec5e2f0ba43dd54fe4078ba5d Mon Sep 17 00:00:00 2001 From: Utkarsh Srivastava Date: Thu, 20 May 2021 21:39:07 +0530 Subject: [PATCH 02/20] replace addonList variable with viper provided data Signed-off-by: Utkarsh Srivastava --- cmd/minikube/cmd/start_flags.go | 2 +- pkg/addons/validations.go | 4 +++- pkg/minikube/config/config.go | 4 ++-- pkg/minikube/node/start.go | 3 ++- 4 files changed, 8 insertions(+), 5 deletions(-) diff --git a/cmd/minikube/cmd/start_flags.go b/cmd/minikube/cmd/start_flags.go index 4bed46dc26..e2c90541c8 100644 --- a/cmd/minikube/cmd/start_flags.go +++ b/cmd/minikube/cmd/start_flags.go @@ -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.AddonListName, 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") diff --git a/pkg/addons/validations.go b/pkg/addons/validations.go index aad44e3cf0..ed4dd9016a 100644 --- a/pkg/addons/validations.go +++ b/pkg/addons/validations.go @@ -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.AddonListName) + 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) diff --git a/pkg/minikube/config/config.go b/pkg/minikube/config/config.go index c359087740..d6e6b28712 100644 --- a/pkg/minikube/config/config.go +++ b/pkg/minikube/config/config.go @@ -56,6 +56,8 @@ const ( AddonImages = "addon-images" // AddonRegistries stores custom addon images config AddonRegistries = "addon-registries" + // AddonListName represents the key for addons parameter + AddonListName = "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 diff --git a/pkg/minikube/node/start.go b/pkg/minikube/node/start.go index 7a9f1e304f..9c2ed21ea7 100644 --- a/pkg/minikube/node/start.go +++ b/pkg/minikube/node/start.go @@ -171,12 +171,13 @@ func Start(starter Starter, apiServer bool) (*kubeconfig.Settings, error) { }() // enable addons, both old and new! + addonList := viper.GetStringSlice(config.AddonListName) 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 { From 69b30c06df60500a6dc96dca36c5c247c446f334 Mon Sep 17 00:00:00 2001 From: Utkarsh Srivastava Date: Thu, 20 May 2021 22:25:38 +0530 Subject: [PATCH 03/20] change variable name from addonListName to addonList Signed-off-by: Utkarsh Srivastava --- cmd/minikube/cmd/start_flags.go | 2 +- pkg/addons/validations.go | 2 +- pkg/minikube/config/config.go | 4 ++-- pkg/minikube/node/start.go | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/cmd/minikube/cmd/start_flags.go b/cmd/minikube/cmd/start_flags.go index e2c90541c8..88e6ab5c6a 100644 --- a/cmd/minikube/cmd/start_flags.go +++ b/cmd/minikube/cmd/start_flags.go @@ -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().StringSlice(config.AddonListName, nil, "Enable addons. see `minikube addons list` for a list of valid addon names.") + startCmd.Flags().StringSlice(config.AddonList, 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") diff --git a/pkg/addons/validations.go b/pkg/addons/validations.go index ed4dd9016a..c1f1058e21 100644 --- a/pkg/addons/validations.go +++ b/pkg/addons/validations.go @@ -64,7 +64,7 @@ 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. - addonList := viper.GetStringSlice(config.AddonListName) + addonList := viper.GetStringSlice(config.AddonList) 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 diff --git a/pkg/minikube/config/config.go b/pkg/minikube/config/config.go index d6e6b28712..0a96488b2f 100644 --- a/pkg/minikube/config/config.go +++ b/pkg/minikube/config/config.go @@ -56,8 +56,8 @@ const ( AddonImages = "addon-images" // AddonRegistries stores custom addon images config AddonRegistries = "addon-registries" - // AddonListName represents the key for addons parameter - AddonListName = "addons" + // AddonList represents the key for addons parameter + AddonList = "addons" ) var ( diff --git a/pkg/minikube/node/start.go b/pkg/minikube/node/start.go index 9c2ed21ea7..51abda0ef1 100644 --- a/pkg/minikube/node/start.go +++ b/pkg/minikube/node/start.go @@ -171,7 +171,7 @@ func Start(starter Starter, apiServer bool) (*kubeconfig.Settings, error) { }() // enable addons, both old and new! - addonList := viper.GetStringSlice(config.AddonListName) + addonList := viper.GetStringSlice(config.AddonList) if starter.ExistingAddons != nil { if viper.GetBool("force") { addons.Force = true From aa99526399ac54f1c96f9bbf4d038020b5590ada Mon Sep 17 00:00:00 2001 From: Utkarsh Srivastava Date: Fri, 21 May 2021 13:39:05 +0530 Subject: [PATCH 04/20] change variable name from addonList to addonListFlag Signed-off-by: Utkarsh Srivastava --- cmd/minikube/cmd/start_flags.go | 2 +- pkg/addons/validations.go | 2 +- pkg/minikube/config/config.go | 4 ++-- pkg/minikube/node/start.go | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/cmd/minikube/cmd/start_flags.go b/cmd/minikube/cmd/start_flags.go index 88e6ab5c6a..770d605cca 100644 --- a/cmd/minikube/cmd/start_flags.go +++ b/cmd/minikube/cmd/start_flags.go @@ -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().StringSlice(config.AddonList, 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") diff --git a/pkg/addons/validations.go b/pkg/addons/validations.go index c1f1058e21..9cefbe321f 100644 --- a/pkg/addons/validations.go +++ b/pkg/addons/validations.go @@ -64,7 +64,7 @@ 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. - addonList := viper.GetStringSlice(config.AddonList) + 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 diff --git a/pkg/minikube/config/config.go b/pkg/minikube/config/config.go index 0a96488b2f..f194099266 100644 --- a/pkg/minikube/config/config.go +++ b/pkg/minikube/config/config.go @@ -56,8 +56,8 @@ const ( AddonImages = "addon-images" // AddonRegistries stores custom addon images config AddonRegistries = "addon-registries" - // AddonList represents the key for addons parameter - AddonList = "addons" + // AddonListFlag represents the key for addons parameter + AddonListFlag = "addons" ) var ( diff --git a/pkg/minikube/node/start.go b/pkg/minikube/node/start.go index 51abda0ef1..9e3f59e9ed 100644 --- a/pkg/minikube/node/start.go +++ b/pkg/minikube/node/start.go @@ -171,7 +171,7 @@ func Start(starter Starter, apiServer bool) (*kubeconfig.Settings, error) { }() // enable addons, both old and new! - addonList := viper.GetStringSlice(config.AddonList) + addonList := viper.GetStringSlice(config.AddonListFlag) if starter.ExistingAddons != nil { if viper.GetBool("force") { addons.Force = true From e89aca810a1df85f2d2a536849f986608a2f20af Mon Sep 17 00:00:00 2001 From: Sharif Elgamal Date: Fri, 21 May 2021 11:07:59 -0700 Subject: [PATCH 05/20] Add list of error codes to documentation --- Makefile | 2 +- cmd/minikube/cmd/generate-docs.go | 5 +- pkg/generate/docs.go | 8 +- pkg/generate/errorcodes.go | 38 +++++- pkg/minikube/extract/extract.go | 1 + pkg/minikube/reason/exitcodes.go | 11 -- site/content/en/docs/contrib/errorcodes.en.md | 113 ++++++++++++++++++ translations/de.json | 2 + translations/es.json | 2 + translations/fr.json | 2 + translations/ja.json | 2 + translations/ko.json | 2 + translations/pl.json | 2 + translations/strings.txt | 2 + translations/zh-CN.json | 2 + 15 files changed, 172 insertions(+), 22 deletions(-) create mode 100644 site/content/en/docs/contrib/errorcodes.en.md diff --git a/Makefile b/Makefile index 8a6a34a83f..5cb7ae9fe0 100644 --- a/Makefile +++ b/Makefile @@ -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 diff --git a/cmd/minikube/cmd/generate-docs.go b/cmd/minikube/cmd/generate-docs.go index 74adef5eb5..8b9a847c7b 100644 --- a/cmd/minikube/cmd/generate-docs.go +++ b/cmd/minikube/cmd/generate-docs.go @@ -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) } diff --git a/pkg/generate/docs.go b/pkg/generate/docs.go index 8e1932909f..33fbbd54b9 100644 --- a/pkg/generate/docs.go +++ b/pkg/generate/docs.go @@ -32,8 +32,8 @@ import ( ) // Docs generates docs for minikube command -func Docs(root *cobra.Command, path string, testPath string) error { - /*cmds := root.Commands() +func Docs(root *cobra.Command, path string, testPath string, codePath string) error { + cmds := root.Commands() for _, c := range cmds { if c.Hidden { klog.Infof("Skipping generating doc for %s as it's a hidden command", c.Name()) @@ -50,9 +50,9 @@ func Docs(root *cobra.Command, path string, testPath string) error { err := TestDocs(testPath, "test/integration") if err != nil { return errors.Wrap(err, "failed to generate test docs") - }*/ + } - return ErrorCodes("./site/content/en/docs/contrib/errorcodes.en.md", "pkg/minikube/reason/known_issues.go") + return ErrorCodes(codePath, "pkg/minikube/reason/exitcodes.go") } // DocForCommand returns the specific doc for that command diff --git a/pkg/generate/errorcodes.go b/pkg/generate/errorcodes.go index fa74641839..175dbeb80d 100644 --- a/pkg/generate/errorcodes.go +++ b/pkg/generate/errorcodes.go @@ -23,7 +23,7 @@ import ( "go/parser" "go/token" "io/ioutil" - "reflect" + "strings" "time" "github.com/pkg/errors" @@ -49,12 +49,40 @@ func ErrorCodes(docPath string, pathToCheck string) error { return errors.Wrap(err, fmt.Sprintf("error parsing file %s", pathToCheck)) } + currentGroup := "" + currentError := "" ast.Inspect(file, func(x ast.Node) bool { - val := reflect.ValueOf(x) - if !val.IsZero() { - fmt.Print(val.Elem().Type().Name()) + switch x.(type) { + case *ast.Comment: + // Start a new group of errors + comment := x.(*ast.Comment).Text + if !strings.HasPrefix(comment, "// Error codes specific") { + return true + } + currentGroup = strings.Replace(comment, "//", "##", 1) + buf.WriteString("\n" + currentGroup + "\n") + case *ast.Ident: + // This is the name of the error, e.g. ExGuestError + currentError = x.(*ast.Ident).Name + case *ast.BasicLit: + // 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 := x.(*ast.BasicLit).Value + buf.WriteString(fmt.Sprintf("%s: %s\n", code, currentError)) + default: } return true }) - return nil + + return ioutil.WriteFile(docPath, buf.Bytes(), 0o644) } diff --git a/pkg/minikube/extract/extract.go b/pkg/minikube/extract/extract.go index 41ec27098e..17fe4ea395 100644 --- a/pkg/minikube/extract/extract.go +++ b/pkg/minikube/extract/extract.go @@ -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. diff --git a/pkg/minikube/reason/exitcodes.go b/pkg/minikube/reason/exitcodes.go index 2b5e807191..d776d76082 100644 --- a/pkg/minikube/reason/exitcodes.go +++ b/pkg/minikube/reason/exitcodes.go @@ -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 diff --git a/site/content/en/docs/contrib/errorcodes.en.md b/site/content/en/docs/contrib/errorcodes.en.md new file mode 100644 index 0000000000..57b75c8c54 --- /dev/null +++ b/site/content/en/docs/contrib/errorcodes.en.md @@ -0,0 +1,113 @@ +--- +title: "Error Codes" +description: > + minikube error codes and advice +--- + + + +## 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 diff --git a/translations/de.json b/translations/de.json index 17cea8384a..15c402b93a 100644 --- a/translations/de.json +++ b/translations/de.json @@ -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": "", @@ -639,6 +640,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/": "", diff --git a/translations/es.json b/translations/es.json index 456bd63922..16db54d73a 100644 --- a/translations/es.json +++ b/translations/es.json @@ -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", @@ -644,6 +645,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/": "", diff --git a/translations/fr.json b/translations/fr.json index a8d5ed46f6..568f0d96a5 100644 --- a/translations/fr.json +++ b/translations/fr.json @@ -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": "", @@ -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/": "", diff --git a/translations/ja.json b/translations/ja.json index 03ef3465e6..e5d2b659ad 100644 --- a/translations/ja.json +++ b/translations/ja.json @@ -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": "シェルの確認中にエラーが発生しました", @@ -638,6 +639,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/": "", diff --git a/translations/ko.json b/translations/ko.json index bd237a8bd1..73f4ae0f1e 100644 --- a/translations/ko.json +++ b/translations/ko.json @@ -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 탐지 오류", @@ -651,6 +652,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/": "", diff --git a/translations/pl.json b/translations/pl.json index 34d0ba69cf..4563814685 100644 --- a/translations/pl.json +++ b/translations/pl.json @@ -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": "", @@ -659,6 +660,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/": "", diff --git a/translations/strings.txt b/translations/strings.txt index abf26870a4..1b9133e760 100644 --- a/translations/strings.txt +++ b/translations/strings.txt @@ -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": "", @@ -597,6 +598,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/": "", diff --git a/translations/zh-CN.json b/translations/zh-CN.json index 852adfc7d1..adb2f93349 100644 --- a/translations/zh-CN.json +++ b/translations/zh-CN.json @@ -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 目录时出错", @@ -746,6 +747,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/": "", From 9c9934879cc7b22424425d02fd01341201e30a48 Mon Sep 17 00:00:00 2001 From: Medya Gh Date: Fri, 21 May 2021 13:03:17 -0700 Subject: [PATCH 06/20] break guest provision when container exists prematurely --- cmd/minikube/cmd/start.go | 3 ++ pkg/drivers/kic/oci/errors.go | 6 ++++ pkg/drivers/kic/oci/network.go | 9 ++++++ pkg/minikube/node/start.go | 6 ++-- pkg/minikube/reason/reason.go | 53 +++++++++++++++++----------------- 5 files changed, 48 insertions(+), 29 deletions(-) diff --git a/cmd/minikube/cmd/start.go b/cmd/minikube/cmd/start.go index 7739112a87..57a1d6d632 100644 --- a/cmd/minikube/cmd/start.go +++ b/cmd/minikube/cmd/start.go @@ -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 permaturely after it was created, consider investigating Docker's performance/health.") + } exit.Error(reason.GuestProvision, "error provisioning host", err) } diff --git a/pkg/drivers/kic/oci/errors.go b/pkg/drivers/kic/oci/errors.go index c4d806fc06..dffaa1d0d8 100644 --- a/pkg/drivers/kic/oci/errors.go +++ b/pkg/drivers/kic/oci/errors.go @@ -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) diff --git a/pkg/drivers/kic/oci/network.go b/pkg/drivers/kic/oci/network.go index f7558e6e7d..b48fefdf6f 100644 --- a/pkg/drivers/kic/oci/network.go +++ b/pkg/drivers/kic/oci/network.go @@ -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 : error calling index: index of untyped nil" + if strings.Contains(rr.Output(), `: 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) } } diff --git a/pkg/minikube/node/start.go b/pkg/minikube/node/start.go index 7a9f1e304f..a910ba5ea5 100644 --- a/pkg/minikube/node/start.go +++ b/pkg/minikube/node/start.go @@ -480,7 +480,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 +503,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 diff --git a/pkg/minikube/reason/reason.go b/pkg/minikube/reason/reason.go index 8667bd5f5c..25ff557406 100644 --- a/pkg/minikube/reason/reason.go +++ b/pkg/minikube/reason/reason.go @@ -229,32 +229,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} From f1e40b6e7732f97b1069e3961703660db1373ec3 Mon Sep 17 00:00:00 2001 From: Sharif Elgamal Date: Fri, 21 May 2021 13:45:38 -0700 Subject: [PATCH 07/20] add error strings to doc --- pkg/generate/docs.go | 2 +- pkg/generate/errorcodes.go | 126 +++++--- pkg/minikube/extract/extract.go | 1 - pkg/minikube/reason/reason.go | 4 +- site/content/en/docs/contrib/errorcodes.en.md | 298 +++++++++++++++++- 5 files changed, 383 insertions(+), 48 deletions(-) diff --git a/pkg/generate/docs.go b/pkg/generate/docs.go index 33fbbd54b9..6ba2170d7f 100644 --- a/pkg/generate/docs.go +++ b/pkg/generate/docs.go @@ -52,7 +52,7 @@ func Docs(root *cobra.Command, path string, testPath string, codePath string) er return errors.Wrap(err, "failed to generate test docs") } - return ErrorCodes(codePath, "pkg/minikube/reason/exitcodes.go") + return ErrorCodes(codePath, []string{"pkg/minikube/reason/exitcodes.go", "pkg/minikube/reason/reason.go"}) } // DocForCommand returns the specific doc for that command diff --git a/pkg/generate/errorcodes.go b/pkg/generate/errorcodes.go index 175dbeb80d..98fd4491ce 100644 --- a/pkg/generate/errorcodes.go +++ b/pkg/generate/errorcodes.go @@ -30,59 +30,97 @@ import ( "k8s.io/minikube/pkg/minikube/out" ) -func ErrorCodes(docPath string, pathToCheck string) error { +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 advice", "Date": date}) + 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() - 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)) - } - - currentGroup := "" - currentError := "" - ast.Inspect(file, func(x ast.Node) bool { - switch x.(type) { - case *ast.Comment: - // Start a new group of errors - comment := x.(*ast.Comment).Text - if !strings.HasPrefix(comment, "// Error codes specific") { - return true - } - currentGroup = strings.Replace(comment, "//", "##", 1) - buf.WriteString("\n" + currentGroup + "\n") - case *ast.Ident: - // This is the name of the error, e.g. ExGuestError - currentError = x.(*ast.Ident).Name - case *ast.BasicLit: - // 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 := x.(*ast.BasicLit).Value - buf.WriteString(fmt.Sprintf("%s: %s\n", code, currentError)) - default: + for _, pathToCheck := range pathsToCheck { + r, err := ioutil.ReadFile(pathToCheck) + if err != nil { + return errors.Wrap(err, fmt.Sprintf("error reading file %s", pathToCheck)) } - return true - }) + 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) } diff --git a/pkg/minikube/extract/extract.go b/pkg/minikube/extract/extract.go index 17fe4ea395..1adfb9e7db 100644 --- a/pkg/minikube/extract/extract.go +++ b/pkg/minikube/extract/extract.go @@ -299,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 diff --git a/pkg/minikube/reason/reason.go b/pkg/minikube/reason/reason.go index 6b02eb92f6..1540720220 100644 --- a/pkg/minikube/reason/reason.go +++ b/pkg/minikube/reason/reason.go @@ -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'. `, diff --git a/site/content/en/docs/contrib/errorcodes.en.md b/site/content/en/docs/contrib/errorcodes.en.md index 57b75c8c54..24e8ad8280 100644 --- a/site/content/en/docs/contrib/errorcodes.en.md +++ b/site/content/en/docs/contrib/errorcodes.en.md @@ -1,10 +1,12 @@ --- title: "Error Codes" description: > - minikube error codes and advice + minikube error codes and strings --- +# Error Codes + ## Generic Errors 1: ExFailure @@ -111,3 +113,297 @@ description: > 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) + From 1638cceed27c6a5e5b0f33a8665255765427b2e8 Mon Sep 17 00:00:00 2001 From: Sharif Elgamal Date: Fri, 21 May 2021 13:52:35 -0700 Subject: [PATCH 08/20] fix formatting --- pkg/generate/errorcodes.go | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/pkg/generate/errorcodes.go b/pkg/generate/errorcodes.go index 98fd4491ce..1ae0623609 100644 --- a/pkg/generate/errorcodes.go +++ b/pkg/generate/errorcodes.go @@ -51,7 +51,7 @@ func ErrorCodes(docPath string, pathsToCheck []string) error { } if strings.Contains(pathToCheck, "exitcodes.go") { - buf.WriteString("# Error Codes\n\n") + buf.WriteString("## Error Codes\n\n") currentGroup := "" currentError := "" ast.Inspect(file, func(x ast.Node) bool { @@ -61,7 +61,7 @@ func ErrorCodes(docPath string, pathsToCheck []string) error { if !strings.HasPrefix(comment, "// Error codes specific") { return true } - currentGroup = strings.Replace(comment, "//", "##", 1) + currentGroup = strings.Replace(comment, "//", "###", 1) buf.WriteString("\n" + currentGroup + "\n") } if id, ok := x.(*ast.Ident); ok { @@ -76,13 +76,13 @@ func ErrorCodes(docPath string, pathsToCheck []string) error { // No specific group means generic errors if currentGroup == "" { - currentGroup = "## Generic Errors" + 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)) + buf.WriteString(fmt.Sprintf("%s: %s\n\n", code, currentError)) } return true }) @@ -90,7 +90,7 @@ func ErrorCodes(docPath string, pathsToCheck []string) error { } if strings.Contains(pathToCheck, "reason.go") { - buf.WriteString("# Error Strings\n\n") + buf.WriteString("## Error Strings\n\n") currentNode := "" currentId := "" currentComment := "" @@ -99,7 +99,7 @@ func ErrorCodes(docPath string, pathsToCheck []string) error { 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)) + buf.WriteString(fmt.Sprintf("%s (Exit code %v)\n\n", currentId, currentNode)) if currentComment != "" { buf.WriteString(currentComment + "\n") } From 6d8c001a0007cd384f16fbe2c66c3354839a1bb7 Mon Sep 17 00:00:00 2001 From: Medya Gh Date: Fri, 21 May 2021 13:57:37 -0700 Subject: [PATCH 09/20] spell --- cmd/minikube/cmd/start.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmd/minikube/cmd/start.go b/cmd/minikube/cmd/start.go index 57a1d6d632..0fe6cc0407 100644 --- a/cmd/minikube/cmd/start.go +++ b/cmd/minikube/cmd/start.go @@ -1511,7 +1511,7 @@ func exitGuestProvision(err error) { 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 permaturely after it was created, consider investigating Docker's performance/health.") + 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) } From 62ea4fdfeabb9406f47da0493c24f2df9e8acbec Mon Sep 17 00:00:00 2001 From: Sharif Elgamal Date: Fri, 21 May 2021 14:03:14 -0700 Subject: [PATCH 10/20] fix newlines --- pkg/generate/errorcodes.go | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/pkg/generate/errorcodes.go b/pkg/generate/errorcodes.go index 1ae0623609..a7a0fc595b 100644 --- a/pkg/generate/errorcodes.go +++ b/pkg/generate/errorcodes.go @@ -82,7 +82,8 @@ func ErrorCodes(docPath string, pathsToCheck []string) error { // This is the numeric code of the error, e.g. 80 for ExGuest Error code := s.Value - buf.WriteString(fmt.Sprintf("%s: %s\n\n", code, currentError)) + buf.WriteString(fmt.Sprintf("%s: %s", code, currentError)) + buf.WriteString("\n\n") } return true }) @@ -92,26 +93,26 @@ func ErrorCodes(docPath string, pathsToCheck []string) error { if strings.Contains(pathToCheck, "reason.go") { buf.WriteString("## Error Strings\n\n") currentNode := "" - currentId := "" + 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\n", currentId, currentNode)) + buf.WriteString(fmt.Sprintf("%s (Exit code %v)\n\n", currentID, currentNode)) if currentComment != "" { buf.WriteString(currentComment + "\n") } buf.WriteString("\n") currentComment = "" - currentId = "" + currentID = "" currentNode = "" } } if s, ok := x.(*ast.BasicLit); ok { if currentNode == "ID" { - currentId = s.Value + currentID = s.Value } } if c, ok := x.(*ast.Comment); ok { From 6cb7c2166c615f6a57780e355c469aacc2ad0030 Mon Sep 17 00:00:00 2001 From: Medya Gh Date: Fri, 21 May 2021 14:09:42 -0700 Subject: [PATCH 11/20] spell --- pkg/drivers/kic/oci/errors.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkg/drivers/kic/oci/errors.go b/pkg/drivers/kic/oci/errors.go index dffaa1d0d8..832500b53e 100644 --- a/pkg/drivers/kic/oci/errors.go +++ b/pkg/drivers/kic/oci/errors.go @@ -69,10 +69,10 @@ 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 +// 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 +// 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 From 300e51da4ab761cdb2a6d4e48fbdc09bed075123 Mon Sep 17 00:00:00 2001 From: Sharif Elgamal Date: Fri, 21 May 2021 14:12:38 -0700 Subject: [PATCH 12/20] fix newlines some more --- pkg/generate/errorcodes.go | 6 +- site/content/en/docs/contrib/errorcodes.en.md | 480 +++++++++--------- 2 files changed, 243 insertions(+), 243 deletions(-) diff --git a/pkg/generate/errorcodes.go b/pkg/generate/errorcodes.go index a7a0fc595b..a1660a0e21 100644 --- a/pkg/generate/errorcodes.go +++ b/pkg/generate/errorcodes.go @@ -82,8 +82,8 @@ func ErrorCodes(docPath string, pathsToCheck []string) error { // This is the numeric code of the error, e.g. 80 for ExGuest Error code := s.Value - buf.WriteString(fmt.Sprintf("%s: %s", code, currentError)) - buf.WriteString("\n\n") + buf.WriteString(fmt.Sprintf("#### %s: %s", code, currentError)) + buf.WriteString("\n") } return true }) @@ -100,7 +100,7 @@ func ErrorCodes(docPath string, pathsToCheck []string) error { 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\n", currentID, currentNode)) + buf.WriteString(fmt.Sprintf("#### %s (Exit code %v)\n", currentID, currentNode)) if currentComment != "" { buf.WriteString(currentComment + "\n") } diff --git a/site/content/en/docs/contrib/errorcodes.en.md b/site/content/en/docs/contrib/errorcodes.en.md index 24e8ad8280..dea71f99e9 100644 --- a/site/content/en/docs/contrib/errorcodes.en.md +++ b/site/content/en/docs/contrib/errorcodes.en.md @@ -5,405 +5,405 @@ description: > --- -# Error Codes +## Error Codes -## Generic Errors -1: ExFailure -2: ExInterrupted +### 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 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 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 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 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 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 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 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 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 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 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 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 +## Error Strings -"MK_USAGE" (Exit code ExProgramUsage) +#### "MK_USAGE" (Exit code ExProgramUsage) minikube has been passed an incorrect parameter -"MK_USAGE_NO_PROFILE" (Exit code ExProgramUsage) +#### "MK_USAGE_NO_PROFILE" (Exit code ExProgramUsage) minikube has no current cluster running -"MK_INTERRUPTED" (Exit code ExProgramConflict) +#### "MK_INTERRUPTED" (Exit code ExProgramConflict) -"MK_WRONG_BINARY_WSL" (Exit code ExProgramUnsupported) +#### "MK_WRONG_BINARY_WSL" (Exit code ExProgramUnsupported) -"MK_WRONG_BINARY_M1" (Exit code ExProgramUnsupported) +#### "MK_WRONG_BINARY_M1" (Exit code ExProgramUnsupported) -"MK_NEW_APICLIENT" (Exit code ExProgramError) +#### "MK_NEW_APICLIENT" (Exit code ExProgramError) -"MK_ADDON_ENABLE" (Exit code ExProgramError) +#### "MK_ADDON_ENABLE" (Exit code ExProgramError) -"MK_ADD_CONFIG" (Exit code ExProgramError) +#### "MK_ADD_CONFIG" (Exit code ExProgramError) -"MK_BIND_FLAGS" (Exit code ExProgramError) +#### "MK_BIND_FLAGS" (Exit code ExProgramError) -"MK_BOOTSTRAPPER" (Exit code ExProgramError) +#### "MK_BOOTSTRAPPER" (Exit code ExProgramError) -"MK_CACHE_LIST" (Exit code ExProgramError) +#### "MK_CACHE_LIST" (Exit code ExProgramError) -"MK_CACHE_LOAD" (Exit code ExProgramError) +#### "MK_CACHE_LOAD" (Exit code ExProgramError) -"MK_COMMAND_RUNNER" (Exit code ExProgramError) +#### "MK_COMMAND_RUNNER" (Exit code ExProgramError) -"MK_COMPLETION" (Exit code ExProgramError) +#### "MK_COMPLETION" (Exit code ExProgramError) -"MK_CONFIG_SET" (Exit code ExProgramError) +#### "MK_CONFIG_SET" (Exit code ExProgramError) -"MK_CONFIG_UNSET" (Exit code ExProgramError) +#### "MK_CONFIG_UNSET" (Exit code ExProgramError) -"MK_CONFIG_VIEW" (Exit code ExProgramError) +#### "MK_CONFIG_VIEW" (Exit code ExProgramError) -"MK_DEL_CONFIG" (Exit code ExProgramError) +#### "MK_DEL_CONFIG" (Exit code ExProgramError) -"MK_DISABLE" (Exit code ExProgramError) +#### "MK_DISABLE" (Exit code ExProgramError) -"MK_DOCKER_SCRIPT" (Exit code ExProgramError) +#### "MK_DOCKER_SCRIPT" (Exit code ExProgramError) -"MK_ENABLE" (Exit code ExProgramError) +#### "MK_ENABLE" (Exit code ExProgramError) -"MK_FLAGS_BIND" (Exit code ExProgramError) +#### "MK_FLAGS_BIND" (Exit code ExProgramError) -"MK_FLAGS_SET" (Exit code ExProgramError) +#### "MK_FLAGS_SET" (Exit code ExProgramError) -"MK_FORMAT_USAGE" (Exit code ExProgramError) +#### "MK_FORMAT_USAGE" (Exit code ExProgramError) -"MK_GENERATE_DOCS" (Exit code ExProgramError) +#### "MK_GENERATE_DOCS" (Exit code ExProgramError) -"MK_JSON_MARSHAL" (Exit code ExProgramError) +#### "MK_JSON_MARSHAL" (Exit code ExProgramError) -"MK_K8S_CLIENT" (Exit code ExControlPlaneUnavailable) +#### "MK_K8S_CLIENT" (Exit code ExControlPlaneUnavailable) -"MK_LIST_CONFIG" (Exit code ExProgramError) +#### "MK_LIST_CONFIG" (Exit code ExProgramError) -"MK_LOGTOSTDERR_FLAG" (Exit code ExProgramError) +#### "MK_LOGTOSTDERR_FLAG" (Exit code ExProgramError) -"MK_LOG_FOLLOW" (Exit code ExProgramError) +#### "MK_LOG_FOLLOW" (Exit code ExProgramError) -"MK_NEW_RUNTIME" (Exit code ExProgramError) +#### "MK_NEW_RUNTIME" (Exit code ExProgramError) -"MK_OUTPUT_USAGE" (Exit code ExProgramError) +#### "MK_OUTPUT_USAGE" (Exit code ExProgramError) -"MK_RUNTIME" (Exit code ExProgramError) +#### "MK_RUNTIME" (Exit code ExProgramError) -"MK_RESERVED_PROFILE" (Exit code ExProgramConflict) +#### "MK_RESERVED_PROFILE" (Exit code ExProgramConflict) -"MK_ENV_SCRIPT" (Exit code ExProgramError) +#### "MK_ENV_SCRIPT" (Exit code ExProgramError) -"MK_SHELL_DETECT" (Exit code ExProgramError) +#### "MK_SHELL_DETECT" (Exit code ExProgramError) -"MK_STATUS_JSON" (Exit code ExProgramError) +#### "MK_STATUS_JSON" (Exit code ExProgramError) -"MK_STATUS_TEXT" (Exit code ExProgramError) +#### "MK_STATUS_TEXT" (Exit code ExProgramError) -"MK_UNSET_SCRIPT" (Exit code ExProgramError) +#### "MK_UNSET_SCRIPT" (Exit code ExProgramError) -"MK_VIEW_EXEC" (Exit code ExProgramError) +#### "MK_VIEW_EXEC" (Exit code ExProgramError) -"MK_VIEW_TMPL" (Exit code ExProgramError) +#### "MK_VIEW_TMPL" (Exit code ExProgramError) -"MK_YAML_MARSHAL" (Exit code ExProgramError) +#### "MK_YAML_MARSHAL" (Exit code ExProgramError) -"MK_CREDENTIALS_NOT_FOUND" (Exit code ExProgramNotFound) +#### "MK_CREDENTIALS_NOT_FOUND" (Exit code ExProgramNotFound) -"MK_CREDENTIALS_NOT_NEEDED" (Exit code ExProgramNotFound) +#### "MK_CREDENTIALS_NOT_NEEDED" (Exit code ExProgramNotFound) -"MK_SEMVER_PARSE" (Exit code ExProgramError) +#### "MK_SEMVER_PARSE" (Exit code ExProgramError) -"MK_DAEMONIZE" (Exit code ExProgramError) +#### "MK_DAEMONIZE" (Exit code ExProgramError) -"RSRC_INSUFFICIENT_CORES" (Exit code ExInsufficientCores) +#### "RSRC_INSUFFICIENT_CORES" (Exit code ExInsufficientCores) -"RSRC_DOCKER_CORES" (Exit code ExInsufficientCores) +#### "RSRC_DOCKER_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_REQ_MEMORY" (Exit code ExInsufficientMemory) -"RSRC_INSUFFICIENT_SYS_MEMORY" (Exit code ExInsufficientMemory) +#### "RSRC_INSUFFICIENT_SYS_MEMORY" (Exit code ExInsufficientMemory) -"RSRC_INSUFFICIENT_CONTAINER_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_MEMORY" (Exit code ExInsufficientMemory) +#### "RSRC_DOCKER_MEMORY" (Exit code ExInsufficientMemory) -"RSRC_DOCKER_STORAGE" (Exit code ExInsufficientStorage) +#### "RSRC_DOCKER_STORAGE" (Exit code ExInsufficientStorage) -"RSRC_PODMAN_STORAGE" (Exit code ExInsufficientStorage) +#### "RSRC_PODMAN_STORAGE" (Exit code ExInsufficientStorage) -"RSRC_INSUFFICIENT_STORAGE" (Exit code ExInsufficientStorage) +#### "RSRC_INSUFFICIENT_STORAGE" (Exit code ExInsufficientStorage) -"HOST_HOME_MKDIR" (Exit code ExHostPermission) +#### "HOST_HOME_MKDIR" (Exit code ExHostPermission) -"HOST_HOME_CHOWN" (Exit code ExHostPermission) +#### "HOST_HOME_CHOWN" (Exit code ExHostPermission) -"HOST_BROWSER" (Exit code ExHostError) +#### "HOST_BROWSER" (Exit code ExHostError) -"HOST_CONFIG_LOAD" (Exit code ExHostConfig) +#### "HOST_CONFIG_LOAD" (Exit code ExHostConfig) -"HOST_HOME_PERMISSION" (Exit code ExHostPermission) +#### "HOST_HOME_PERMISSION" (Exit code ExHostPermission) -"HOST_CURRENT_USER" (Exit code ExHostConfig) +#### "HOST_CURRENT_USER" (Exit code ExHostConfig) -"HOST_DEL_CACHE" (Exit code ExHostError) +#### "HOST_DEL_CACHE" (Exit code ExHostError) -"HOST_KILL_MOUNT_PROC" (Exit code ExHostError) +#### "HOST_KILL_MOUNT_PROC" (Exit code ExHostError) -"HOST_KUBECNOFIG_UNSET" (Exit code ExHostConfig) +#### "HOST_KUBECNOFIG_UNSET" (Exit code ExHostConfig) -"HOST_KUBECONFIG_UPDATE" (Exit code ExHostConfig) +#### "HOST_KUBECONFIG_UPDATE" (Exit code ExHostConfig) -"HOST_KUBECONFIG_DELETE_CTX" (Exit code ExHostConfig) +#### "HOST_KUBECONFIG_DELETE_CTX" (Exit code ExHostConfig) -"HOST_KUBECTL_PROXY" (Exit code ExHostError) +#### "HOST_KUBECTL_PROXY" (Exit code ExHostError) -"HOST_MOUNT_PID" (Exit code ExHostError) +#### "HOST_MOUNT_PID" (Exit code ExHostError) -"HOST_PATH_MISSING" (Exit code ExHostNotFound) +#### "HOST_PATH_MISSING" (Exit code ExHostNotFound) -"HOST_PATH_STAT" (Exit code ExHostError) +#### "HOST_PATH_STAT" (Exit code ExHostError) -"HOST_PURGE" (Exit code ExHostError) +#### "HOST_PURGE" (Exit code ExHostError) -"HOST_SAVE_PROFILE" (Exit code ExHostConfig) +#### "HOST_SAVE_PROFILE" (Exit code ExHostConfig) -"PROVIDER_NOT_FOUND" (Exit code ExProviderNotFound) +#### "PROVIDER_NOT_FOUND" (Exit code ExProviderNotFound) -"PROVIDER_UNAVAILABLE" (Exit code ExProviderNotFound) +#### "PROVIDER_UNAVAILABLE" (Exit code ExProviderNotFound) -"DRV_CP_ENDPOINT" (Exit code ExDriverError) +#### "DRV_CP_ENDPOINT" (Exit code ExDriverError) -"DRV_PORT_FORWARD" (Exit code ExDriverError) +#### "DRV_PORT_FORWARD" (Exit code ExDriverError) -"DRV_UNSUPPORTED_MULTINODE" (Exit code ExDriverConflict) +#### "DRV_UNSUPPORTED_MULTINODE" (Exit code ExDriverConflict) -"DRV_UNSUPPORTED_OS" (Exit code ExDriverUnsupported) +#### "DRV_UNSUPPORTED_OS" (Exit code ExDriverUnsupported) -"DRV_UNSUPPORTED_PROFILE" (Exit code ExDriverUnsupported) +#### "DRV_UNSUPPORTED_PROFILE" (Exit code ExDriverUnsupported) -"DRV_NOT_FOUND" (Exit code ExDriverNotFound) +#### "DRV_NOT_FOUND" (Exit code ExDriverNotFound) -"DRV_NOT_DETECTED" (Exit code ExDriverNotFound) +#### "DRV_NOT_DETECTED" (Exit code ExDriverNotFound) -"DRV_AS_ROOT" (Exit code ExDriverPermission) +#### "DRV_AS_ROOT" (Exit code ExDriverPermission) -"DRV_NEEDS_ROOT" (Exit code ExDriverPermission) +#### "DRV_NEEDS_ROOT" (Exit code ExDriverPermission) -"DRV_NEEDS_ADMINISTRATOR" (Exit code ExDriverPermission) +#### "DRV_NEEDS_ADMINISTRATOR" (Exit code ExDriverPermission) -"GUEST_CACHE_LOAD" (Exit code ExGuestError) +#### "GUEST_CACHE_LOAD" (Exit code ExGuestError) -"GUEST_CERT" (Exit code ExGuestError) +#### "GUEST_CERT" (Exit code ExGuestError) -"GUEST_CP_CONFIG" (Exit code ExGuestConfig) +#### "GUEST_CP_CONFIG" (Exit code ExGuestConfig) -"GUEST_DELETION" (Exit code ExGuestError) +#### "GUEST_DELETION" (Exit code ExGuestError) -"GUEST_IMAGE_LIST" (Exit code ExGuestError) +#### "GUEST_IMAGE_LIST" (Exit code ExGuestError) -"GUEST_IMAGE_LOAD" (Exit code ExGuestError) +#### "GUEST_IMAGE_LOAD" (Exit code ExGuestError) -"GUEST_IMAGE_REMOVE" (Exit code ExGuestError) +#### "GUEST_IMAGE_REMOVE" (Exit code ExGuestError) -"GUEST_IMAGE_BUILD" (Exit code ExGuestError) +#### "GUEST_IMAGE_BUILD" (Exit code ExGuestError) -"GUEST_LOAD_HOST" (Exit code ExGuestError) +#### "GUEST_LOAD_HOST" (Exit code ExGuestError) -"GUEST_MOUNT" (Exit code ExGuestError) +#### "GUEST_MOUNT" (Exit code ExGuestError) -"GUEST_MOUNT_CONFLICT" (Exit code ExGuestConflict) +#### "GUEST_MOUNT_CONFLICT" (Exit code ExGuestConflict) -"GUEST_NODE_ADD" (Exit code ExGuestError) +#### "GUEST_NODE_ADD" (Exit code ExGuestError) -"GUEST_NODE_DELETE" (Exit code ExGuestError) +#### "GUEST_NODE_DELETE" (Exit code ExGuestError) -"GUEST_NODE_PROVISION" (Exit code ExGuestError) +#### "GUEST_NODE_PROVISION" (Exit code ExGuestError) -"GUEST_NODE_RETRIEVE" (Exit code ExGuestNotFound) +#### "GUEST_NODE_RETRIEVE" (Exit code ExGuestNotFound) -"GUEST_NODE_START" (Exit code ExGuestError) +#### "GUEST_NODE_START" (Exit code ExGuestError) -"GUEST_PAUSE" (Exit code ExGuestError) +#### "GUEST_PAUSE" (Exit code ExGuestError) -"GUEST_PROFILE_DELETION" (Exit code ExGuestError) +#### "GUEST_PROFILE_DELETION" (Exit code ExGuestError) -"GUEST_PROVISION" (Exit code ExGuestError) +#### "GUEST_PROVISION" (Exit code ExGuestError) -"GUEST_START" (Exit code ExGuestError) +#### "GUEST_START" (Exit code ExGuestError) -"GUEST_STATUS" (Exit code ExGuestError) +#### "GUEST_STATUS" (Exit code ExGuestError) -"GUEST_STOP_TIMEOUT" (Exit code ExGuestTimeout) +#### "GUEST_STOP_TIMEOUT" (Exit code ExGuestTimeout) -"GUEST_UNPAUSE" (Exit code ExGuestError) +#### "GUEST_UNPAUSE" (Exit code ExGuestError) -"GUEST_CHECK_PAUSED" (Exit code ExGuestError) +#### "GUEST_CHECK_PAUSED" (Exit code ExGuestError) -"GUEST_DRIVER_MISMATCH" (Exit code ExGuestConflict) +#### "GUEST_DRIVER_MISMATCH" (Exit code ExGuestConflict) -"GUEST_MISSING_CONNTRACK" (Exit code ExGuestUnsupported) +#### "GUEST_MISSING_CONNTRACK" (Exit code ExGuestUnsupported) -"IF_HOST_IP" (Exit code ExLocalNetworkError) +#### "IF_HOST_IP" (Exit code ExLocalNetworkError) -"IF_MOUNT_IP" (Exit code ExLocalNetworkError) +#### "IF_MOUNT_IP" (Exit code ExLocalNetworkError) -"IF_MOUNT_PORT" (Exit code ExLocalNetworkError) +#### "IF_MOUNT_PORT" (Exit code ExLocalNetworkError) -"IF_SSH_CLIENT" (Exit code ExLocalNetworkError) +#### "IF_SSH_CLIENT" (Exit code ExLocalNetworkError) -"INET_CACHE_BINARIES" (Exit code ExInternetError) +#### "INET_CACHE_BINARIES" (Exit code ExInternetError) -"INET_CACHE_KUBECTL" (Exit code ExInternetError) +#### "INET_CACHE_KUBECTL" (Exit code ExInternetError) -"INET_CACHE_TAR" (Exit code ExInternetError) +#### "INET_CACHE_TAR" (Exit code ExInternetError) -"INET_GET_VERSIONS" (Exit code ExInternetError) +#### "INET_GET_VERSIONS" (Exit code ExInternetError) -"INET_REPO" (Exit code ExInternetError) +#### "INET_REPO" (Exit code ExInternetError) -"INET_REPOS_UNAVAILABLE" (Exit code ExInternetError) +#### "INET_REPOS_UNAVAILABLE" (Exit code ExInternetError) -"INET_VERSION_UNAVAILABLE" (Exit code ExInternetUnavailable) +#### "INET_VERSION_UNAVAILABLE" (Exit code ExInternetUnavailable) -"INET_VERSION_EMPTY" (Exit code ExInternetConfig) +#### "INET_VERSION_EMPTY" (Exit code ExInternetConfig) -"RUNTIME_ENABLE" (Exit code ExRuntimeError) +#### "RUNTIME_ENABLE" (Exit code ExRuntimeError) -"RUNTIME_CACHE" (Exit code ExRuntimeError) +#### "RUNTIME_CACHE" (Exit code ExRuntimeError) -"RUNTIME_RESTART" (Exit code ExRuntimeError) +#### "RUNTIME_RESTART" (Exit code ExRuntimeError) -"SVC_CHECK_TIMEOUT" (Exit code ExSvcTimeout) +#### "SVC_CHECK_TIMEOUT" (Exit code ExSvcTimeout) -"SVC_TIMEOUT" (Exit code ExSvcTimeout) +#### "SVC_TIMEOUT" (Exit code ExSvcTimeout) -"SVC_LIST" (Exit code ExSvcError) +#### "SVC_LIST" (Exit code ExSvcError) -"SVC_TUNNEL_START" (Exit code ExSvcError) +#### "SVC_TUNNEL_START" (Exit code ExSvcError) -"SVC_TUNNEL_STOP" (Exit code ExSvcError) +#### "SVC_TUNNEL_STOP" (Exit code ExSvcError) -"SVC_URL_TIMEOUT" (Exit code ExSvcTimeout) +#### "SVC_URL_TIMEOUT" (Exit code ExSvcTimeout) -"SVC_NOT_FOUND" (Exit code ExSvcNotFound) +#### "SVC_NOT_FOUND" (Exit code ExSvcNotFound) -"ENV_DRIVER_CONFLICT" (Exit code ExDriverConflict) +#### "ENV_DRIVER_CONFLICT" (Exit code ExDriverConflict) -"ENV_MULTINODE_CONFLICT" (Exit code ExGuestConflict) +#### "ENV_MULTINODE_CONFLICT" (Exit code ExGuestConflict) -"ENV_DOCKER_UNAVAILABLE" (Exit code ExRuntimeUnavailable) +#### "ENV_DOCKER_UNAVAILABLE" (Exit code ExRuntimeUnavailable) -"ENV_PODMAN_UNAVAILABLE" (Exit code ExRuntimeUnavailable) +#### "ENV_PODMAN_UNAVAILABLE" (Exit code ExRuntimeUnavailable) -"SVC_ADDON_UNSUPPORTED" (Exit code ExSvcUnsupported) +#### "SVC_ADDON_UNSUPPORTED" (Exit code ExSvcUnsupported) -"SVC_ADDON_NOT_ENABLED" (Exit code ExProgramConflict) +#### "SVC_ADDON_NOT_ENABLED" (Exit code ExProgramConflict) -"K8S_INSTALL_FAILED" (Exit code ExControlPlaneError) +#### "K8S_INSTALL_FAILED" (Exit code ExControlPlaneError) -"K8S_INSTALL_FAILED_CONTAINER_RUNTIME_NOT_RUNNING" (Exit code ExRuntimeNotRunning) +#### "K8S_INSTALL_FAILED_CONTAINER_RUNTIME_NOT_RUNNING" (Exit code ExRuntimeNotRunning) -"K8S_OLD_UNSUPPORTED" (Exit code ExControlPlaneUnsupported) +#### "K8S_OLD_UNSUPPORTED" (Exit code ExControlPlaneUnsupported) -"K8S_DOWNGRADE_UNSUPPORTED" (Exit code ExControlPlaneUnsupported) +#### "K8S_DOWNGRADE_UNSUPPORTED" (Exit code ExControlPlaneUnsupported) From efeeca0134e853ef72a797404842149a62f9dde0 Mon Sep 17 00:00:00 2001 From: Sharif Elgamal Date: Fri, 21 May 2021 14:30:52 -0700 Subject: [PATCH 13/20] better formatting still --- pkg/generate/errorcodes.go | 7 +- site/content/en/docs/contrib/errorcodes.en.md | 456 +++++++++--------- 2 files changed, 231 insertions(+), 232 deletions(-) diff --git a/pkg/generate/errorcodes.go b/pkg/generate/errorcodes.go index a1660a0e21..c50d085e83 100644 --- a/pkg/generate/errorcodes.go +++ b/pkg/generate/errorcodes.go @@ -82,8 +82,7 @@ func ErrorCodes(docPath string, pathsToCheck []string) error { // This is the numeric code of the error, e.g. 80 for ExGuest Error code := s.Value - buf.WriteString(fmt.Sprintf("#### %s: %s", code, currentError)) - buf.WriteString("\n") + buf.WriteString(fmt.Sprintf("%s: %s \n", code, currentError)) } return true }) @@ -100,9 +99,9 @@ func ErrorCodes(docPath string, pathsToCheck []string) error { 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)) + buf.WriteString(fmt.Sprintf("%s (Exit code %v) \n", currentID, currentNode)) if currentComment != "" { - buf.WriteString(currentComment + "\n") + buf.WriteString(currentComment + " \n") } buf.WriteString("\n") currentComment = "" diff --git a/site/content/en/docs/contrib/errorcodes.en.md b/site/content/en/docs/contrib/errorcodes.en.md index dea71f99e9..f4ecd17c08 100644 --- a/site/content/en/docs/contrib/errorcodes.en.md +++ b/site/content/en/docs/contrib/errorcodes.en.md @@ -9,401 +9,401 @@ description: > ### Generic Errors -#### 1: ExFailure -#### 2: ExInterrupted +1: ExFailure +2: ExInterrupted ### Error codes specific to the minikube program -#### 10: ExProgramError -#### 14: ExProgramUsage -#### 11: ExProgramConflict -#### 15: ExProgramNotFound -#### 16: ExProgramUnsupported -#### 18: ExProgramConfig +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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" (Exit code ExProgramUsage) +minikube has been passed an incorrect parameter -#### "MK_USAGE_NO_PROFILE" (Exit code ExProgramUsage) -minikube has no current cluster running +"MK_USAGE_NO_PROFILE" (Exit code ExProgramUsage) +minikube has no current cluster running -#### "MK_INTERRUPTED" (Exit code ExProgramConflict) +"MK_INTERRUPTED" (Exit code ExProgramConflict) -#### "MK_WRONG_BINARY_WSL" (Exit code ExProgramUnsupported) +"MK_WRONG_BINARY_WSL" (Exit code ExProgramUnsupported) -#### "MK_WRONG_BINARY_M1" (Exit code ExProgramUnsupported) +"MK_WRONG_BINARY_M1" (Exit code ExProgramUnsupported) -#### "MK_NEW_APICLIENT" (Exit code ExProgramError) +"MK_NEW_APICLIENT" (Exit code ExProgramError) -#### "MK_ADDON_ENABLE" (Exit code ExProgramError) +"MK_ADDON_ENABLE" (Exit code ExProgramError) -#### "MK_ADD_CONFIG" (Exit code ExProgramError) +"MK_ADD_CONFIG" (Exit code ExProgramError) -#### "MK_BIND_FLAGS" (Exit code ExProgramError) +"MK_BIND_FLAGS" (Exit code ExProgramError) -#### "MK_BOOTSTRAPPER" (Exit code ExProgramError) +"MK_BOOTSTRAPPER" (Exit code ExProgramError) -#### "MK_CACHE_LIST" (Exit code ExProgramError) +"MK_CACHE_LIST" (Exit code ExProgramError) -#### "MK_CACHE_LOAD" (Exit code ExProgramError) +"MK_CACHE_LOAD" (Exit code ExProgramError) -#### "MK_COMMAND_RUNNER" (Exit code ExProgramError) +"MK_COMMAND_RUNNER" (Exit code ExProgramError) -#### "MK_COMPLETION" (Exit code ExProgramError) +"MK_COMPLETION" (Exit code ExProgramError) -#### "MK_CONFIG_SET" (Exit code ExProgramError) +"MK_CONFIG_SET" (Exit code ExProgramError) -#### "MK_CONFIG_UNSET" (Exit code ExProgramError) +"MK_CONFIG_UNSET" (Exit code ExProgramError) -#### "MK_CONFIG_VIEW" (Exit code ExProgramError) +"MK_CONFIG_VIEW" (Exit code ExProgramError) -#### "MK_DEL_CONFIG" (Exit code ExProgramError) +"MK_DEL_CONFIG" (Exit code ExProgramError) -#### "MK_DISABLE" (Exit code ExProgramError) +"MK_DISABLE" (Exit code ExProgramError) -#### "MK_DOCKER_SCRIPT" (Exit code ExProgramError) +"MK_DOCKER_SCRIPT" (Exit code ExProgramError) -#### "MK_ENABLE" (Exit code ExProgramError) +"MK_ENABLE" (Exit code ExProgramError) -#### "MK_FLAGS_BIND" (Exit code ExProgramError) +"MK_FLAGS_BIND" (Exit code ExProgramError) -#### "MK_FLAGS_SET" (Exit code ExProgramError) +"MK_FLAGS_SET" (Exit code ExProgramError) -#### "MK_FORMAT_USAGE" (Exit code ExProgramError) +"MK_FORMAT_USAGE" (Exit code ExProgramError) -#### "MK_GENERATE_DOCS" (Exit code ExProgramError) +"MK_GENERATE_DOCS" (Exit code ExProgramError) -#### "MK_JSON_MARSHAL" (Exit code ExProgramError) +"MK_JSON_MARSHAL" (Exit code ExProgramError) -#### "MK_K8S_CLIENT" (Exit code ExControlPlaneUnavailable) +"MK_K8S_CLIENT" (Exit code ExControlPlaneUnavailable) -#### "MK_LIST_CONFIG" (Exit code ExProgramError) +"MK_LIST_CONFIG" (Exit code ExProgramError) -#### "MK_LOGTOSTDERR_FLAG" (Exit code ExProgramError) +"MK_LOGTOSTDERR_FLAG" (Exit code ExProgramError) -#### "MK_LOG_FOLLOW" (Exit code ExProgramError) +"MK_LOG_FOLLOW" (Exit code ExProgramError) -#### "MK_NEW_RUNTIME" (Exit code ExProgramError) +"MK_NEW_RUNTIME" (Exit code ExProgramError) -#### "MK_OUTPUT_USAGE" (Exit code ExProgramError) +"MK_OUTPUT_USAGE" (Exit code ExProgramError) -#### "MK_RUNTIME" (Exit code ExProgramError) +"MK_RUNTIME" (Exit code ExProgramError) -#### "MK_RESERVED_PROFILE" (Exit code ExProgramConflict) +"MK_RESERVED_PROFILE" (Exit code ExProgramConflict) -#### "MK_ENV_SCRIPT" (Exit code ExProgramError) +"MK_ENV_SCRIPT" (Exit code ExProgramError) -#### "MK_SHELL_DETECT" (Exit code ExProgramError) +"MK_SHELL_DETECT" (Exit code ExProgramError) -#### "MK_STATUS_JSON" (Exit code ExProgramError) +"MK_STATUS_JSON" (Exit code ExProgramError) -#### "MK_STATUS_TEXT" (Exit code ExProgramError) +"MK_STATUS_TEXT" (Exit code ExProgramError) -#### "MK_UNSET_SCRIPT" (Exit code ExProgramError) +"MK_UNSET_SCRIPT" (Exit code ExProgramError) -#### "MK_VIEW_EXEC" (Exit code ExProgramError) +"MK_VIEW_EXEC" (Exit code ExProgramError) -#### "MK_VIEW_TMPL" (Exit code ExProgramError) +"MK_VIEW_TMPL" (Exit code ExProgramError) -#### "MK_YAML_MARSHAL" (Exit code ExProgramError) +"MK_YAML_MARSHAL" (Exit code ExProgramError) -#### "MK_CREDENTIALS_NOT_FOUND" (Exit code ExProgramNotFound) +"MK_CREDENTIALS_NOT_FOUND" (Exit code ExProgramNotFound) -#### "MK_CREDENTIALS_NOT_NEEDED" (Exit code ExProgramNotFound) +"MK_CREDENTIALS_NOT_NEEDED" (Exit code ExProgramNotFound) -#### "MK_SEMVER_PARSE" (Exit code ExProgramError) +"MK_SEMVER_PARSE" (Exit code ExProgramError) -#### "MK_DAEMONIZE" (Exit code ExProgramError) +"MK_DAEMONIZE" (Exit code ExProgramError) -#### "RSRC_INSUFFICIENT_CORES" (Exit code ExInsufficientCores) +"RSRC_INSUFFICIENT_CORES" (Exit code ExInsufficientCores) -#### "RSRC_DOCKER_CORES" (Exit code ExInsufficientCores) +"RSRC_DOCKER_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_REQ_MEMORY" (Exit code ExInsufficientMemory) -#### "RSRC_INSUFFICIENT_SYS_MEMORY" (Exit code ExInsufficientMemory) +"RSRC_INSUFFICIENT_SYS_MEMORY" (Exit code ExInsufficientMemory) -#### "RSRC_INSUFFICIENT_CONTAINER_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_MEMORY" (Exit code ExInsufficientMemory) +"RSRC_DOCKER_MEMORY" (Exit code ExInsufficientMemory) -#### "RSRC_DOCKER_STORAGE" (Exit code ExInsufficientStorage) +"RSRC_DOCKER_STORAGE" (Exit code ExInsufficientStorage) -#### "RSRC_PODMAN_STORAGE" (Exit code ExInsufficientStorage) +"RSRC_PODMAN_STORAGE" (Exit code ExInsufficientStorage) -#### "RSRC_INSUFFICIENT_STORAGE" (Exit code ExInsufficientStorage) +"RSRC_INSUFFICIENT_STORAGE" (Exit code ExInsufficientStorage) -#### "HOST_HOME_MKDIR" (Exit code ExHostPermission) +"HOST_HOME_MKDIR" (Exit code ExHostPermission) -#### "HOST_HOME_CHOWN" (Exit code ExHostPermission) +"HOST_HOME_CHOWN" (Exit code ExHostPermission) -#### "HOST_BROWSER" (Exit code ExHostError) +"HOST_BROWSER" (Exit code ExHostError) -#### "HOST_CONFIG_LOAD" (Exit code ExHostConfig) +"HOST_CONFIG_LOAD" (Exit code ExHostConfig) -#### "HOST_HOME_PERMISSION" (Exit code ExHostPermission) +"HOST_HOME_PERMISSION" (Exit code ExHostPermission) -#### "HOST_CURRENT_USER" (Exit code ExHostConfig) +"HOST_CURRENT_USER" (Exit code ExHostConfig) -#### "HOST_DEL_CACHE" (Exit code ExHostError) +"HOST_DEL_CACHE" (Exit code ExHostError) -#### "HOST_KILL_MOUNT_PROC" (Exit code ExHostError) +"HOST_KILL_MOUNT_PROC" (Exit code ExHostError) -#### "HOST_KUBECNOFIG_UNSET" (Exit code ExHostConfig) +"HOST_KUBECNOFIG_UNSET" (Exit code ExHostConfig) -#### "HOST_KUBECONFIG_UPDATE" (Exit code ExHostConfig) +"HOST_KUBECONFIG_UPDATE" (Exit code ExHostConfig) -#### "HOST_KUBECONFIG_DELETE_CTX" (Exit code ExHostConfig) +"HOST_KUBECONFIG_DELETE_CTX" (Exit code ExHostConfig) -#### "HOST_KUBECTL_PROXY" (Exit code ExHostError) +"HOST_KUBECTL_PROXY" (Exit code ExHostError) -#### "HOST_MOUNT_PID" (Exit code ExHostError) +"HOST_MOUNT_PID" (Exit code ExHostError) -#### "HOST_PATH_MISSING" (Exit code ExHostNotFound) +"HOST_PATH_MISSING" (Exit code ExHostNotFound) -#### "HOST_PATH_STAT" (Exit code ExHostError) +"HOST_PATH_STAT" (Exit code ExHostError) -#### "HOST_PURGE" (Exit code ExHostError) +"HOST_PURGE" (Exit code ExHostError) -#### "HOST_SAVE_PROFILE" (Exit code ExHostConfig) +"HOST_SAVE_PROFILE" (Exit code ExHostConfig) -#### "PROVIDER_NOT_FOUND" (Exit code ExProviderNotFound) +"PROVIDER_NOT_FOUND" (Exit code ExProviderNotFound) -#### "PROVIDER_UNAVAILABLE" (Exit code ExProviderNotFound) +"PROVIDER_UNAVAILABLE" (Exit code ExProviderNotFound) -#### "DRV_CP_ENDPOINT" (Exit code ExDriverError) +"DRV_CP_ENDPOINT" (Exit code ExDriverError) -#### "DRV_PORT_FORWARD" (Exit code ExDriverError) +"DRV_PORT_FORWARD" (Exit code ExDriverError) -#### "DRV_UNSUPPORTED_MULTINODE" (Exit code ExDriverConflict) +"DRV_UNSUPPORTED_MULTINODE" (Exit code ExDriverConflict) -#### "DRV_UNSUPPORTED_OS" (Exit code ExDriverUnsupported) +"DRV_UNSUPPORTED_OS" (Exit code ExDriverUnsupported) -#### "DRV_UNSUPPORTED_PROFILE" (Exit code ExDriverUnsupported) +"DRV_UNSUPPORTED_PROFILE" (Exit code ExDriverUnsupported) -#### "DRV_NOT_FOUND" (Exit code ExDriverNotFound) +"DRV_NOT_FOUND" (Exit code ExDriverNotFound) -#### "DRV_NOT_DETECTED" (Exit code ExDriverNotFound) +"DRV_NOT_DETECTED" (Exit code ExDriverNotFound) -#### "DRV_AS_ROOT" (Exit code ExDriverPermission) +"DRV_AS_ROOT" (Exit code ExDriverPermission) -#### "DRV_NEEDS_ROOT" (Exit code ExDriverPermission) +"DRV_NEEDS_ROOT" (Exit code ExDriverPermission) -#### "DRV_NEEDS_ADMINISTRATOR" (Exit code ExDriverPermission) +"DRV_NEEDS_ADMINISTRATOR" (Exit code ExDriverPermission) -#### "GUEST_CACHE_LOAD" (Exit code ExGuestError) +"GUEST_CACHE_LOAD" (Exit code ExGuestError) -#### "GUEST_CERT" (Exit code ExGuestError) +"GUEST_CERT" (Exit code ExGuestError) -#### "GUEST_CP_CONFIG" (Exit code ExGuestConfig) +"GUEST_CP_CONFIG" (Exit code ExGuestConfig) -#### "GUEST_DELETION" (Exit code ExGuestError) +"GUEST_DELETION" (Exit code ExGuestError) -#### "GUEST_IMAGE_LIST" (Exit code ExGuestError) +"GUEST_IMAGE_LIST" (Exit code ExGuestError) -#### "GUEST_IMAGE_LOAD" (Exit code ExGuestError) +"GUEST_IMAGE_LOAD" (Exit code ExGuestError) -#### "GUEST_IMAGE_REMOVE" (Exit code ExGuestError) +"GUEST_IMAGE_REMOVE" (Exit code ExGuestError) -#### "GUEST_IMAGE_BUILD" (Exit code ExGuestError) +"GUEST_IMAGE_BUILD" (Exit code ExGuestError) -#### "GUEST_LOAD_HOST" (Exit code ExGuestError) +"GUEST_LOAD_HOST" (Exit code ExGuestError) -#### "GUEST_MOUNT" (Exit code ExGuestError) +"GUEST_MOUNT" (Exit code ExGuestError) -#### "GUEST_MOUNT_CONFLICT" (Exit code ExGuestConflict) +"GUEST_MOUNT_CONFLICT" (Exit code ExGuestConflict) -#### "GUEST_NODE_ADD" (Exit code ExGuestError) +"GUEST_NODE_ADD" (Exit code ExGuestError) -#### "GUEST_NODE_DELETE" (Exit code ExGuestError) +"GUEST_NODE_DELETE" (Exit code ExGuestError) -#### "GUEST_NODE_PROVISION" (Exit code ExGuestError) +"GUEST_NODE_PROVISION" (Exit code ExGuestError) -#### "GUEST_NODE_RETRIEVE" (Exit code ExGuestNotFound) +"GUEST_NODE_RETRIEVE" (Exit code ExGuestNotFound) -#### "GUEST_NODE_START" (Exit code ExGuestError) +"GUEST_NODE_START" (Exit code ExGuestError) -#### "GUEST_PAUSE" (Exit code ExGuestError) +"GUEST_PAUSE" (Exit code ExGuestError) -#### "GUEST_PROFILE_DELETION" (Exit code ExGuestError) +"GUEST_PROFILE_DELETION" (Exit code ExGuestError) -#### "GUEST_PROVISION" (Exit code ExGuestError) +"GUEST_PROVISION" (Exit code ExGuestError) -#### "GUEST_START" (Exit code ExGuestError) +"GUEST_START" (Exit code ExGuestError) -#### "GUEST_STATUS" (Exit code ExGuestError) +"GUEST_STATUS" (Exit code ExGuestError) -#### "GUEST_STOP_TIMEOUT" (Exit code ExGuestTimeout) +"GUEST_STOP_TIMEOUT" (Exit code ExGuestTimeout) -#### "GUEST_UNPAUSE" (Exit code ExGuestError) +"GUEST_UNPAUSE" (Exit code ExGuestError) -#### "GUEST_CHECK_PAUSED" (Exit code ExGuestError) +"GUEST_CHECK_PAUSED" (Exit code ExGuestError) -#### "GUEST_DRIVER_MISMATCH" (Exit code ExGuestConflict) +"GUEST_DRIVER_MISMATCH" (Exit code ExGuestConflict) -#### "GUEST_MISSING_CONNTRACK" (Exit code ExGuestUnsupported) +"GUEST_MISSING_CONNTRACK" (Exit code ExGuestUnsupported) -#### "IF_HOST_IP" (Exit code ExLocalNetworkError) +"IF_HOST_IP" (Exit code ExLocalNetworkError) -#### "IF_MOUNT_IP" (Exit code ExLocalNetworkError) +"IF_MOUNT_IP" (Exit code ExLocalNetworkError) -#### "IF_MOUNT_PORT" (Exit code ExLocalNetworkError) +"IF_MOUNT_PORT" (Exit code ExLocalNetworkError) -#### "IF_SSH_CLIENT" (Exit code ExLocalNetworkError) +"IF_SSH_CLIENT" (Exit code ExLocalNetworkError) -#### "INET_CACHE_BINARIES" (Exit code ExInternetError) +"INET_CACHE_BINARIES" (Exit code ExInternetError) -#### "INET_CACHE_KUBECTL" (Exit code ExInternetError) +"INET_CACHE_KUBECTL" (Exit code ExInternetError) -#### "INET_CACHE_TAR" (Exit code ExInternetError) +"INET_CACHE_TAR" (Exit code ExInternetError) -#### "INET_GET_VERSIONS" (Exit code ExInternetError) +"INET_GET_VERSIONS" (Exit code ExInternetError) -#### "INET_REPO" (Exit code ExInternetError) +"INET_REPO" (Exit code ExInternetError) -#### "INET_REPOS_UNAVAILABLE" (Exit code ExInternetError) +"INET_REPOS_UNAVAILABLE" (Exit code ExInternetError) -#### "INET_VERSION_UNAVAILABLE" (Exit code ExInternetUnavailable) +"INET_VERSION_UNAVAILABLE" (Exit code ExInternetUnavailable) -#### "INET_VERSION_EMPTY" (Exit code ExInternetConfig) +"INET_VERSION_EMPTY" (Exit code ExInternetConfig) -#### "RUNTIME_ENABLE" (Exit code ExRuntimeError) +"RUNTIME_ENABLE" (Exit code ExRuntimeError) -#### "RUNTIME_CACHE" (Exit code ExRuntimeError) +"RUNTIME_CACHE" (Exit code ExRuntimeError) -#### "RUNTIME_RESTART" (Exit code ExRuntimeError) +"RUNTIME_RESTART" (Exit code ExRuntimeError) -#### "SVC_CHECK_TIMEOUT" (Exit code ExSvcTimeout) +"SVC_CHECK_TIMEOUT" (Exit code ExSvcTimeout) -#### "SVC_TIMEOUT" (Exit code ExSvcTimeout) +"SVC_TIMEOUT" (Exit code ExSvcTimeout) -#### "SVC_LIST" (Exit code ExSvcError) +"SVC_LIST" (Exit code ExSvcError) -#### "SVC_TUNNEL_START" (Exit code ExSvcError) +"SVC_TUNNEL_START" (Exit code ExSvcError) -#### "SVC_TUNNEL_STOP" (Exit code ExSvcError) +"SVC_TUNNEL_STOP" (Exit code ExSvcError) -#### "SVC_URL_TIMEOUT" (Exit code ExSvcTimeout) +"SVC_URL_TIMEOUT" (Exit code ExSvcTimeout) -#### "SVC_NOT_FOUND" (Exit code ExSvcNotFound) +"SVC_NOT_FOUND" (Exit code ExSvcNotFound) -#### "ENV_DRIVER_CONFLICT" (Exit code ExDriverConflict) +"ENV_DRIVER_CONFLICT" (Exit code ExDriverConflict) -#### "ENV_MULTINODE_CONFLICT" (Exit code ExGuestConflict) +"ENV_MULTINODE_CONFLICT" (Exit code ExGuestConflict) -#### "ENV_DOCKER_UNAVAILABLE" (Exit code ExRuntimeUnavailable) +"ENV_DOCKER_UNAVAILABLE" (Exit code ExRuntimeUnavailable) -#### "ENV_PODMAN_UNAVAILABLE" (Exit code ExRuntimeUnavailable) +"ENV_PODMAN_UNAVAILABLE" (Exit code ExRuntimeUnavailable) -#### "SVC_ADDON_UNSUPPORTED" (Exit code ExSvcUnsupported) +"SVC_ADDON_UNSUPPORTED" (Exit code ExSvcUnsupported) -#### "SVC_ADDON_NOT_ENABLED" (Exit code ExProgramConflict) +"SVC_ADDON_NOT_ENABLED" (Exit code ExProgramConflict) -#### "K8S_INSTALL_FAILED" (Exit code ExControlPlaneError) +"K8S_INSTALL_FAILED" (Exit code ExControlPlaneError) -#### "K8S_INSTALL_FAILED_CONTAINER_RUNTIME_NOT_RUNNING" (Exit code ExRuntimeNotRunning) +"K8S_INSTALL_FAILED_CONTAINER_RUNTIME_NOT_RUNNING" (Exit code ExRuntimeNotRunning) -#### "K8S_OLD_UNSUPPORTED" (Exit code ExControlPlaneUnsupported) +"K8S_OLD_UNSUPPORTED" (Exit code ExControlPlaneUnsupported) -#### "K8S_DOWNGRADE_UNSUPPORTED" (Exit code ExControlPlaneUnsupported) +"K8S_DOWNGRADE_UNSUPPORTED" (Exit code ExControlPlaneUnsupported) From 0fe0c11c563b974ba001771b37bf5f84733c4d60 Mon Sep 17 00:00:00 2001 From: Andriy Dzikh Date: Fri, 21 May 2021 16:28:25 -0700 Subject: [PATCH 14/20] Add message to view contributions leaderboard to release_notes.sh. --- hack/release_notes.sh | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/hack/release_notes.sh b/hack/release_notes.sh index 1b00099d9c..aa9c990e25 100755 --- a/hack/release_notes.sh +++ b/hack/release_notes.sh @@ -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 \"hack/update_contributions.sh\"!" From 5cf72b6eab20762ac3b55cd9c9fa84ee59771d60 Mon Sep 17 00:00:00 2001 From: Peixuan Ding Date: Wed, 19 May 2021 00:29:26 -0400 Subject: [PATCH 15/20] Ignore error in test when there is no generated preload version --- pkg/minikube/download/download_test.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/minikube/download/download_test.go b/pkg/minikube/download/download_test.go index 5a036d54f3..aec15d6d1f 100644 --- a/pkg/minikube/download/download_test.go +++ b/pkg/minikube/download/download_test.go @@ -92,7 +92,7 @@ func testPreloadDownloadPreventsMultipleDownload(t *testing.T) { 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() } From b9292bde0dcab5e231df5192d84b759c98e5add9 Mon Sep 17 00:00:00 2001 From: Peixuan Ding Date: Sat, 22 May 2021 00:32:19 -0400 Subject: [PATCH 16/20] Add mock for getChecksum --- pkg/minikube/download/download_test.go | 45 ++++++++++++++++++++++++-- pkg/minikube/download/preload.go | 27 +++++++--------- 2 files changed, 55 insertions(+), 17 deletions(-) diff --git a/pkg/minikube/download/download_test.go b/pkg/minikube/download/download_test.go index aec15d6d1f..defdc54fec 100644 --- a/pkg/minikube/download/download_test.go +++ b/pkg/minikube/download/download_test.go @@ -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,8 +87,8 @@ 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) @@ -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) diff --git a/pkg/minikube/download/preload.go b/pkg/minikube/download/preload.go index 7065372970..317e61729a 100644 --- a/pkg/minikube/download/preload.go +++ b/pkg/minikube/download/preload.go @@ -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") } From 67d387ca6d8cb311e5a71502c151bee86f1583f9 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 24 May 2021 06:59:38 +0000 Subject: [PATCH 17/20] Bump google.golang.org/api from 0.46.0 to 0.47.0 Bumps [google.golang.org/api](https://github.com/googleapis/google-api-go-client) from 0.46.0 to 0.47.0. - [Release notes](https://github.com/googleapis/google-api-go-client/releases) - [Changelog](https://github.com/googleapis/google-api-go-client/blob/master/CHANGES.md) - [Commits](https://github.com/googleapis/google-api-go-client/compare/v0.46.0...v0.47.0) Signed-off-by: dependabot[bot] --- go.mod | 6 +++--- go.sum | 29 ++++++++++++++++++----------- 2 files changed, 21 insertions(+), 14 deletions(-) diff --git a/go.mod b/go.mod index 007c6cf955..bda5507326 100644 --- a/go.mod +++ b/go.mod @@ -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 diff --git a/go.sum b/go.sum index 4a5559080e..965cd951e9 100644 --- a/go.sum +++ b/go.sum @@ -1022,6 +1022,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= @@ -1119,8 +1120,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 +1188,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 +1204,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= @@ -1300,11 +1303,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 +1394,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 +1437,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 +1496,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 +1521,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= From 79c2a51f650421d57bcd4ab4347ba2ca13798920 Mon Sep 17 00:00:00 2001 From: Andriy Dzikh Date: Mon, 24 May 2021 09:53:46 -0700 Subject: [PATCH 18/20] Change update leaderboard message to use make target instead of shell script. --- hack/release_notes.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hack/release_notes.sh b/hack/release_notes.sh index aa9c990e25..06839c9e2e 100755 --- a/hack/release_notes.sh +++ b/hack/release_notes.sh @@ -71,4 +71,4 @@ if [[ "$recent" != *"beta"* ]]; then fi echo "" -echo "Don't forget to run \"hack/update_contributions.sh\"!" +echo "Don't forget to run \"make update-leaderboard\"!" From 25520e517f6b890ff256011dc3c0857d927dd4c2 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 24 May 2021 17:27:06 +0000 Subject: [PATCH 19/20] Bump github.com/machine-drivers/docker-machine-driver-vmware Bumps [github.com/machine-drivers/docker-machine-driver-vmware](https://github.com/machine-drivers/docker-machine-driver-vmware) from 0.1.1 to 0.1.3. - [Release notes](https://github.com/machine-drivers/docker-machine-driver-vmware/releases) - [Changelog](https://github.com/machine-drivers/docker-machine-driver-vmware/blob/master/.goreleaser.yml) - [Commits](https://github.com/machine-drivers/docker-machine-driver-vmware/compare/v0.1.1...v0.1.3) Signed-off-by: dependabot[bot] --- go.mod | 8 ++++---- go.sum | 36 +++++++++++++++++++++++------------- 2 files changed, 27 insertions(+), 17 deletions(-) diff --git a/go.mod b/go.mod index 007c6cf955..5d478d7958 100644 --- a/go.mod +++ b/go.mod @@ -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 diff --git a/go.sum b/go.sum index 4a5559080e..124caf960d 100644 --- a/go.sum +++ b/go.sum @@ -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= From ad032c99cbcbe1c228cf14258d46540671bb4d87 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Anders=20F=20Bj=C3=B6rklund?= Date: Mon, 24 May 2021 20:52:08 +0200 Subject: [PATCH 20/20] Add minikube presentation from KubeCon EU 2021 --- site/content/en/docs/presentations/_index.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/site/content/en/docs/presentations/_index.md b/site/content/en/docs/presentations/_index.md index 200fbcd3ec..bfde5340da 100644 --- a/site/content/en/docs/presentations/_index.md +++ b/site/content/en/docs/presentations/_index.md @@ -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 + +* (32:48) + * "Minikube and Three Different Local Kubernetes Learning Environments" + * Anders Björklund & Predrag Rogic + ## Other conferences ### Helm Summit EU 2019 (Amsterdam, The Netherlands)