Repository: kubernetes/minikube
Pull request #16569 (2023-05-23 19:35:01)

--kubernetes-version: assume latest patch version if not specified by user
Closes https://github.com/kubernetes/minikube/issues/16558


## Before: 
```
$ mk start --kubernetes-version=1.26
😄  minikube v1.30.1 on Debian rodete (amd64)

❌  Exiting due to MK_USAGE: Unable to parse "1.26": No Major.Minor.Patch elements found
```

## After:
```
$ mk start --kubernetes-version=1.26
😄  minikube v1.30.1 on Debian rodete (amd64)
👉  Using Kubernetes 1.26.5 since patch version was unspecified
✨  Automatically selected the docker driver
📌  Using Docker driver with root privileges
👍  Starting control plane node minikube in cluster minikube
🚜  Pulling base image ...
🔥  Creating docker container (CPUs=2, Memory=8000MB) ...
🐳  Preparing Kubernetes v1.26.5 on Docker 24.0.0 ...
    ▪ Generating certificates and keys ...
    ▪ Booting up control plane ...
    ▪ Configuring RBAC rules ...
🔗  Configuring bridge CNI (Container Networking Interface) ...
    ▪ Using image gcr.io/k8s-minikube/storage-provisioner:v5
🔎  Verifying Kubernetes components...
🌟  Enabled addons: storage-provisioner, default-storageclass
🏄  Done! kubectl is now configured to use "minikube" cluster and "default" namespace by default
```



## Before: 
```
$ mk start --kubernetes-version=1.50
😄  minikube v1.30.1 on Debian rodete (amd64)

❌  Exiting due to MK_USAGE: Unable to parse "1.50": No Major.Minor.Patch elements found
```
## After:
```
$ mk start --kubernetes-version=1.50
😄  minikube v1.30.1 on Debian rodete (amd64)

❌  Exiting due to MK_PATCH_NOT_FOUND: Unable to detect the latest patch release for specified major.minor version v1.50
💡  Suggestion: Specify --kubernetes-version in v<major>.<minor.<build> form. example: 'v1.1.14'
```
## After:
```
$ mk start --kubernetes-version=hahahahha
😄  minikube v1.30.1 on Debian rodete (amd64)

❌  Exiting due to MK_USAGE: Unable to parse "hahahahha": No Major.Minor.Patch elements found

```

<!-- 🎉 Thank you for contributing to minikube! 🎉 Here are some hints to get your PR merged faster:

1. Your PR title will be included in the release notes, choose it carefully
2. If the PR fixes an issue, add "fixes #<issue number>" to the description.
3. If the PR is a user interface change, please include a "before" and "after" example.
4. If the PR is a large design change, please include an enhancement proposal:
https://github.com/kubernetes/minikube/tree/master/enhancements
-->



Patch:
diff --git a/cmd/minikube/cmd/start.go b/cmd/minikube/cmd/start.go
index b1b964756..bdaa2a97d 100644
--- a/cmd/minikube/cmd/start.go
+++ b/cmd/minikube/cmd/start.go
@@ -89,11 +89,13 @@ type versionJSON struct {
 }
 
 var (
-	registryMirror   []string
-	insecureRegistry []string
-	apiServerNames   []string
-	apiServerIPs     []net.IP
-	hostRe           = regexp.MustCompile(`^[^-][\w\.-]+$`)
+	// ErrKubernetesPatchNotFound is when a patch was not found for the given <major>.<minor> version
+	ErrKubernetesPatchNotFound = errors.New("Unable to detect the latest patch release for specified Kubernetes version")
+	registryMirror             []string
+	insecureRegistry           []string
+	apiServerNames             []string
+	apiServerIPs               []net.IP
+	hostRe                     = regexp.MustCompile(`^[^-][\w\.-]+$`)
 )
 
 func init() {
@@ -318,7 +320,10 @@ func provisionWithDriver(cmd *cobra.Command, ds registry.DriverState, existing *
 		stopk8s = true
 	}
 
-	k8sVersion := getKubernetesVersion(existing)
+	k8sVersion, err := getKubernetesVersion(existing)
+	if err != nil {
+		klog.Warningf("failed getting Kubernetes version: %v", err)
+	}
 	rtime := getContainerRuntime(existing)
 	cc, n, err := generateClusterConfig(cmd, existing, k8sVersion, rtime, driverName)
 	if err != nil {
@@ -1585,17 +1590,23 @@ func createNode(cc config.ClusterConfig, existing *config.ClusterConfig) (config
 	// Create the initial node, which will necessarily be a control plane
 	if existing != nil {
 		cp, err := config.PrimaryControlPlane(existing)
-		cp.KubernetesVersion = getKubernetesVersion(&cc)
-		cp.ContainerRuntime = getContainerRuntime(&cc)
 		if err != nil {
 			return cc, config.Node{}, err
 		}
+		cp.KubernetesVersion, err = getKubernetesVersion(&cc)
+		if err != nil {
+			klog.Warningf("failed getting Kubernetes version: %v", err)
+		}
+		cp.ContainerRuntime = getContainerRuntime(&cc)
 
 		// Make sure that existing nodes honor if KubernetesVersion gets specified on restart
 		// KubernetesVersion is the only attribute that the user can override in the Node object
 		nodes := []config.Node{}
 		for _, n := range existing.Nodes {
-			n.KubernetesVersion = getKubernetesVersion(&cc)
+			n.KubernetesVersion, err = getKubernetesVersion(&cc)
+			if err != nil {
+				klog.Warningf("failed getting Kubernetes version: %v", err)
+			}
 			n.ContainerRuntime = getContainerRuntime(&cc)
 			nodes = append(nodes, n)
 		}
@@ -1604,9 +1615,13 @@ func createNode(cc config.ClusterConfig, existing *config.ClusterConfig) (config
 		return cc, cp, nil
 	}
 
+	kubeVer, err := getKubernetesVersion(&cc)
+	if err != nil {
+		klog.Warningf("failed getting Kubernetes version: %v", err)
+	}
 	cp := config.Node{
 		Port:              cc.KubernetesConfig.NodePort,
-		KubernetesVersion: getKubernetesVersion(&cc),
+		KubernetesVersion: kubeVer,
 		ContainerRuntime:  getContainerRuntime(&cc),
 		ControlPlane:      true,
 		Worker:            true,
@@ -1653,12 +1668,27 @@ func autoSetDriverOptions(cmd *cobra.Command, drvName string) (err error) {
 
 // validateKubernetesVersion ensures that the requested version is reasonable
 func validateKubernetesVersion(old *config.ClusterConfig) {
-	nvs, _ := semver.Make(strings.TrimPrefix(getKubernetesVersion(old), version.VersionPrefix))
+	paramVersion := viper.GetString(kubernetesVersion)
+	paramVersion = strings.TrimPrefix(strings.ToLower(paramVersion), version.VersionPrefix)
+	kubernetesVer, err := getKubernetesVersion(old)
+	if err != nil {
+		if errors.Is(err, ErrKubernetesPatchNotFound) {
+			exit.Message(reason.PatchNotFound, "Unable to detect the latest patch release for specified major.minor version v{{.majorminor}}",
+				out.V{"majorminor": paramVersion})
+		}
+		exit.Message(reason.Usage, `Unable to parse "{{.kubernetes_version}}": {{.error}}`, out.V{"kubernetes_version": paramVersion, "error": err})
+
+	}
+
+	nvs, _ := semver.Make(strings.TrimPrefix(kubernetesVer, version.VersionPrefix))
 	oldestVersion := semver.MustParse(strings.TrimPrefix(constants.OldestKubernetesVersion, version.VersionPrefix))
 	defaultVersion := semver.MustParse(strings.TrimPrefix(constants.DefaultKubernetesVersion, version.VersionPrefix))
 	newestVersion := semver.MustParse(strings.TrimPrefix(constants.NewestKubernetesVersion, version.VersionPrefix))
 	zeroVersion := semver.MustParse(strings.TrimPrefix(constants.NoKubernetesVersion, version.VersionPrefix))
 
+	if isTwoDigitSemver(paramVersion) && getLatestPatch(paramVersion) != "" {
+		out.Styled(style.Workaround, `Using Kubernetes {{.version}} since patch version was unspecified`, out.V{"version": nvs})
+	}
 	if nvs.Equals(zeroVersion) {
 		klog.Infof("No Kubernetes version set for minikube, setting Kubernetes version to %s", constants.NoKubernetesVersion)
 		return
@@ -1729,7 +1759,7 @@ func isBaseImageApplicable(drv string) bool {
 	return registry.IsKIC(drv)
 }
 
-func getKubernetesVersion(old *config.ClusterConfig) string {
+func getKubernetesVersion(old *config.ClusterConfig) (string, error) {
 	if viper.GetBool(noKubernetes) {
 		// Exit if --kubernetes-version is specified.
 		if viper.GetString(kubernetesVersion) != "" {
@@ -1758,12 +1788,20 @@ $ minikube config unset kubernetes-version`)
 		paramVersion = constants.NewestKubernetesVersion
 	}
 
-	nvs, err := semver.Make(strings.TrimPrefix(paramVersion, version.VersionPrefix))
+	kubernetesSemver := strings.TrimPrefix(strings.ToLower(paramVersion), version.VersionPrefix)
+	if isTwoDigitSemver(kubernetesSemver) {
+		potentialPatch := getLatestPatch(kubernetesSemver)
+		if potentialPatch == "" {
+			return "", ErrKubernetesPatchNotFound
+		}
+		kubernetesSemver = potentialPatch
+	}
+	nvs, err := semver.Make(kubernetesSemver)
 	if err != nil {
 		exit.Message(reason.Usage, `Unable to parse "{{.kubernetes_version}}": {{.error}}`, out.V{"kubernetes_version": paramVersion, "error": err})
 	}
 
-	return version.VersionPrefix + nvs.String()
+	return version.VersionPrefix + nvs.String(), nil
 }
 
 // validateDockerStorageDriver checks that docker is using overlay2
@@ -1848,7 +1886,11 @@ func validateBareMetal(drvName string) {
 	}
 
 	// conntrack is required starting with Kubernetes 1.18, include the release candidates for completion
-	version, _ := util.ParseKubernetesVersion(getKubernetesVersion(nil))
+	kubeVer, err := getKubernetesVersion(nil)
+	if err != nil {
+		klog.Warningf("failed getting Kubernetes version: %v", err)
+	}
+	version, _ := util.ParseKubernetesVersion(kubeVer)
 	if version.GTE(semver.MustParse("1.18.0-beta.1")) {
 		if _, err := exec.LookPath("conntrack"); err != nil {
 			exit.Message(reason.GuestMissingConntrack, "Sorry, Kubernetes {{.k8sVersion}} requires conntrack to be installed in root's path", out.V{"k8sVersion": version.String()})
@@ -1878,3 +1920,21 @@ func exitGuestProvision(err error) {
 	}
 	exit.Error(reason.GuestProvision, "error provisioning guest", err)
 }
+
+// Example input = 1.26 => output = "1.26.5"
+// Example input = 1.26.5 => output = "1.26.5"
+// Example input = 1.26.999 => output = ""
+func getLatestPatch(majorMinorVer string) string {
+	for _, k := range constants.ValidKubernetesVersions {
+		if strings.HasPrefix(k, fmt.Sprintf("v%s.", majorMinorVer)) {
+			return strings.TrimPrefix(k, version.VersionPrefix)
+		}
+
+	}
+	return ""
+}
+
+func isTwoDigitSemver(ver string) bool {
+	majorMinorOnly := regexp.MustCompile(`^(?P<major>0|[1-9]\d*)\.(?P<minor>0|[1-9]\d*)$`)
+	return majorMinorOnly.MatchString(ver)
+}
diff --git a/cmd/minikube/cmd/start_flags.go b/cmd/minikube/cmd/start_flags.go
index 4e6a3359b..6374b5c39 100644
--- a/cmd/minikube/cmd/start_flags.go
+++ b/cmd/minikube/cmd/start_flags.go
@@ -811,7 +811,11 @@ func updateExistingConfigFromFlags(cmd *cobra.Command, existing *config.ClusterC
 	updateStringFromFlag(cmd, &cc.SocketVMnetPath, socketVMnetPath)
 
 	if cmd.Flags().Changed(kubernetesVersion) {
-		cc.KubernetesConfig.KubernetesVersion = getKubernetesVersion(existing)
+		kubeVer, err := getKubernetesVersion(existing)
+		if err != nil {
+			klog.Warningf("failed getting Kubernetes version: %v", err)
+		}
+		cc.KubernetesConfig.KubernetesVersion = kubeVer
 	}
 	if cmd.Flags().Changed(containerRuntime) {
 		cc.KubernetesConfig.ContainerRuntime = getContainerRuntime(existing)
diff --git a/pkg/minikube/out/out.go b/pkg/minikube/out/out.go
index 5c9680efc..0043bc875 100644
--- a/pkg/minikube/out/out.go
+++ b/pkg/minikube/out/out.go
@@ -21,12 +21,12 @@ import (
 	"bytes"
 	"fmt"
 	"html"
-	"html/template"
 	"io"
 	"os"
 	"path/filepath"
 	"strconv"
 	"strings"
+	"text/template"
 	"time"
 
 	"github.com/Delta456/box-cli-maker/v2"
diff --git a/pkg/minikube/reason/reason.go b/pkg/minikube/reason/reason.go
index 8d6ed7dbd..129c5fdc6 100644
--- a/pkg/minikube/reason/reason.go
+++ b/pkg/minikube/reason/reason.go
@@ -57,6 +57,11 @@ func (k *Kind) IssueURLs() []string {
 
 // Sections are ordered roughly by stack dependencies
 var (
+	// minikube could not find a patch for the provided major.minor version
+	PatchNotFound = Kind{ID: "MK_PATCH_NOT_FOUND", ExitCode: ExProgramUsage,
+		Advice: translate.T("Specify --kubernetes-version in v<major>.<minor.<build> form. example: 'v1.1.14'"),
+	}
+
 	// minikube has been passed an incorrect parameter
 	Usage = Kind{ID: "MK_USAGE", ExitCode: ExProgramUsage}
 	// minikube has no current cluster running
diff --git a/site/content/en/docs/commands/addons.md b/site/content/en/docs/commands/addons.md
index aee8eb476..11c2795fe 100644
--- a/site/content/en/docs/commands/addons.md
+++ b/site/content/en/docs/commands/addons.md
@@ -32,8 +32,6 @@ minikube addons SUBCOMMAND [flags]
       --one_output                       If true, only write logs to their native severity level (vs also writing to each lower severity level; no effect when -logtostderr=true)
   -p, --profile string                   The name of the minikube VM being used. This can be set to allow having multiple instances of minikube independently. (default "minikube")
       --rootless                         Force to use rootless driver (docker and podman driver only)
-      --s2a_enable_appengine_dialer      If true, opportunistically use AppEngine-specific dialer to call S2A.
-      --s2a_timeout duration             Timeout enforced on the connection to the S2A service for handshake. (default 3s)
       --skip-audit                       Skip recording the current command in the audit logs.
       --skip_headers                     If true, avoid header prefixes in the log messages
       --skip_log_headers                 If true, avoid headers when opening log files (no effect when -logtostderr=true)
@@ -70,8 +68,6 @@ minikube addons configure ADDON_NAME [flags]
       --one_output                       If true, only write logs to their native severity level (vs also writing to each lower severity level; no effect when -logtostderr=true)
   -p, --profile string                   The name of the minikube VM being used. This can be set to allow having multiple instances of minikube independently. (default "minikube")
       --rootless                         Force to use rootless driver (docker and podman driver only)
-      --s2a_enable_appengine_dialer      If true, opportunistically use AppEngine-specific dialer to call S2A.
-      --s2a_timeout duration             Timeout enforced on the connection to the S2A service for handshake. (default 3s)
       --skip-audit                       Skip recording the current command in the audit logs.
       --skip_headers                     If true, avoid header prefixes in the log messages
       --skip_log_headers                 If true, avoid headers when opening log files (no effect when -logtostderr=true)
@@ -108,8 +104,6 @@ minikube addons disable ADDON_NAME [flags]
       --one_output                       If true, only write logs to their native severity level (vs also writing to each lower severity level; no effect when -logtostderr=true)
   -p, --profile string                   The name of the minikube VM being used. This can be set to allow having multiple instances of minikube independently. (default "minikube")
       --rootless                         Force to use rootless driver (docker and podman driver only)
-      --s2a_enable_appengine_dialer      If true, opportunistically use AppEngine-specific dialer to call S2A.
-      --s2a_timeout duration             Timeout enforced on the connection to the S2A service for handshake. (default 3s)
       --skip-audit                       Skip recording the current command in the audit logs.
       --skip_headers                     If true, avoid header prefixes in the log messages
       --skip_log_headers                 If true, avoid headers when opening log files (no effect when -logtostderr=true)
@@ -161,8 +155,6 @@ minikube addons enable dashboard
       --one_output                       If true, only write logs to their native severity level (vs also writing to each lower severity level; no effect when -logtostderr=true)
   -p, --profile string                   The name of the minikube VM being used. This can be set to allow having multiple instances of minikube independently. (default "minikube")
       --rootless                         Force to use rootless driver (docker and podman driver only)
-      --s2a_enable_appengine_dialer      If true, opportunistically use AppEngine-specific dialer to call S2A.
-      --s2a_timeout duration             Timeout enforced on the connection to the S2A service for handshake. (default 3s)
       --skip-audit                       Skip recording the current command in the audit logs.
       --skip_headers                     If true, avoid header prefixes in the log messages
       --skip_log_headers                 If true, avoid headers when opening log files (no effect when -logtostderr=true)
@@ -200,8 +192,6 @@ minikube addons help [command] [flags]
       --one_output                       If true, only write logs to their native severity level (vs also writing to each lower severity level; no effect when -logtostderr=true)
   -p, --profile string                   The name of the minikube VM being used. This can be set to allow having multiple instances of minikube independently. (default "minikube")
       --rootless                         Force to use rootless driver (docker and podman driver only)
-      --s2a_enable_appengine_dialer      If true, opportunistically use AppEngine-specific dialer to call S2A.
-      --s2a_timeout duration             Timeout enforced on the connection to the S2A service for handshake. (default 3s)
       --skip-audit                       Skip recording the current command in the audit logs.
       --skip_headers                     If true, avoid header prefixes in the log messages
       --skip_log_headers                 If true, avoid headers when opening log files (no effect when -logtostderr=true)
@@ -244,8 +234,6 @@ minikube addons images ingress
       --one_output                       If true, only write logs to their native severity level (vs also writing to each lower severity level; no effect when -logtostderr=true)
   -p, --profile string                   The name of the minikube VM being used. This can be set to allow having multiple instances of minikube independently. (default "minikube")
       --rootless                         Force to use rootless driver (docker and podman driver only)
-      --s2a_enable_appengine_dialer      If true, opportunistically use AppEngine-specific dialer to call S2A.
-      --s2a_timeout duration             Timeout enforced on the connection to the S2A service for handshake. (default 3s)
       --skip-audit                       Skip recording the current command in the audit logs.
       --skip_headers                     If true, avoid header prefixes in the log messages
       --skip_log_headers                 If true, avoid headers when opening log files (no effect when -logtostderr=true)
@@ -289,8 +277,6 @@ minikube addons list [flags]
       --one_output                       If true, only write logs to their native severity level (vs also writing to each lower severity level; no effect when -logtostderr=true)
   -p, --profile string                   The name of the minikube VM being used. This can be set to allow having multiple instances of minikube independently. (default "minikube")
       --rootless                         Force to use rootless driver (docker and podman driver only)
-      --s2a_enable_appengine_dialer      If true, opportunistically use AppEngine-specific dialer to call S2A.
-      --s2a_timeout duration             Timeout enforced on the connection to the S2A service for handshake. (default 3s)
       --skip-audit                       Skip recording the current command in the audit logs.
       --skip_headers                     If true, avoid header prefixes in the log messages
       --skip_log_headers                 If true, avoid headers when opening log files (no effect when -logtostderr=true)
@@ -337,8 +323,6 @@ minikube addons open ADDON_NAME [flags]
       --one_output                       If true, only write logs to their native severity level (vs also writing to each lower severity level; no effect when -logtostderr=true)
   -p, --profile string                   The name of the minikube VM being used. This can be set to allow having multiple instances of minikube independently. (default "minikube")
       --rootless                         Force to use rootless driver (docker and podman driver only)
-      --s2a_enable_appengine_dialer      If true, opportunistically use AppEngine-specific dialer to call S2A.
-      --s2a_timeout duration             Timeout enforced on the connection to the S2A service for handshake. (default 3s)
       --skip-audit                       Skip recording the current command in the audit logs.
       --skip_headers                     If true, avoid header prefixes in the log messages
       --skip_log_headers                 If true, avoid headers when opening log files (no effect when -logtostderr=true)
diff --git a/site/content/en/docs/commands/cache.md b/site/content/en/docs/commands/cache.md
index 07f7ff356..1d15fcce8 100644
--- a/site/content/en/docs/commands/cache.md
+++ b/site/content/en/docs/commands/cache.md
@@ -28,8 +28,6 @@ Add an image into minikube as a local cache, or delete, reload the cached images
       --one_output                       If true, only write logs to their native severity level (vs also writing to each lower severity level; no effect when -logtostderr=true)
   -p, --profile string                   The name of the minikube VM being used. This can be set to allow having multiple instances of minikube independently. (default "minikube")
       --rootless                         Force to use rootless driver (docker and podman driver only)
-      --s2a_enable_appengine_dialer      If true, opportunistically use AppEngine-specific dialer to call S2A.
-      --s2a_timeout duration             Timeout enforced on the connection to the S2A service for handshake. (default 3s)
       --skip-audit                       Skip recording the current command in the audit logs.
       --skip_headers                     If true, avoid header prefixes in the log messages
       --skip_log_headers                 If true, avoid headers when opening log files (no effect when -logtostderr=true)
@@ -72,8 +70,6 @@ minikube cache add [flags]
       --one_output                       If true, only write logs to their native severity level (vs also writing to each lower severity level; no effect when -logtostderr=true)
   -p, --profile string                   The name of the minikube VM being used. This can be set to allow having multiple instances of minikube independently. (default "minikube")
       --rootless                         Force to use rootless driver (docker and podman driver only)
-      --s2a_enable_appengine_dialer      If true, opportunistically use AppEngine-specific dialer to call S2A.
-      --s2a_timeout duration             Timeout enforced on the connection to the S2A service for handshake. (default 3s)
       --skip-audit                       Skip recording the current command in the audit logs.
       --skip_headers                     If true, avoid header prefixes in the log messages
       --skip_log_headers                 If true, avoid headers when opening log files (no effect when -logtostderr=true)
@@ -110,8 +106,6 @@ minikube cache delete [flags]
       --one_output                       If true, only write logs to their native severity level (vs also writing to each lower severity level; no effect when -logtostderr=true)
   -p, --profile string                   The name of the minikube VM being used. This can be set to allow having multiple instances of minikube independently. (default "minikube")
       --rootless                         Force to use rootless driver (docker and podman driver only)
-      --s2a_enable_appengine_dialer      If true, opportunistically use AppEngine-specific dialer to call S2A.
-      --s2a_timeout duration             Timeout enforced on the connection to the S2A service for handshake. (default 3s)
       --skip-audit                       Skip recording the current command in the audit logs.
       --skip_headers                     If true, avoid header prefixes in the log messages
       --skip_log_headers                 If true, avoid headers when opening log files (no effect when -logtostderr=true)
@@ -149,8 +143,6 @@ minikube cache help [command] [flags]
       --one_output                       If true, only write logs to their native severity level (vs also writing to each lower severity level; no effect when -logtostderr=true)
   -p, --profile string                   The name of the minikube VM being used. This can be set to allow having multiple instances of minikube independently. (default "minikube")
       --rootless                         Force to use rootless driver (docker and podman driver only)
-      --s2a_enable_appengine_dialer      If true, opportunistically use AppEngine-specific dialer to call S2A.
-      --s2a_timeout duration             Timeout enforced on the connection to the S2A service for handshake. (default 3s)
       --skip-audit                       Skip recording the current command in the audit logs.
       --skip_headers                     If true, avoid header prefixes in the log messages
       --skip_log_headers                 If true, avoid headers when opening log files (no effect when -logtostderr=true)
@@ -194,8 +186,6 @@ minikube cache list [flags]
       --one_output                       If true, only write logs to their native severity level (vs also writing to each lower severity level; no effect when -logtostderr=true)
   -p, --profile string                   The name of the minikube VM being used. This can be set to allow having multiple instances of minikube independently. (default "minikube")
       --rootless                         Force to use rootless driver (docker and podman driver only)
-      --s2a_enable_appengine_dialer      If true, opportunistically use AppEngine-specific dialer to call S2A.
-      --s2a_timeout duration             Timeout enforced on the connection to the S2A service for handshake. (default 3s)
       --skip-audit                       Skip recording the current command in the audit logs.
       --skip_headers                     If true, avoid header prefixes in the log messages
       --skip_log_headers                 If true, avoid headers when opening log files (no effect when -logtostderr=true)
@@ -232,8 +222,6 @@ minikube cache reload [flags]
       --one_output                       If true, only write logs to their native severity level (vs also writing to each lower severity level; no effect when -logtostderr=true)
   -p, --profile string                   The name of the minikube VM being used. This can be set to allow having multiple instances of minikube independently. (default "minikube")
       --rootless                         Force to use rootless driver (docker and podman driver only)
-      --s2a_enable_appengine_dialer      If true, opportunistically use AppEngine-specific dialer to call S2A.
-      --s2a_timeout duration             Timeout enforced on the connection to the S2A service for handshake. (default 3s)
       --skip-audit                       Skip recording the current command in the audit logs.
       --skip_headers                     If true, avoid header prefixes in the log messages
       --skip_log_headers                 If true, avoid headers when opening log files (no effect when -logtostderr=true)
diff --git a/site/content/en/docs/commands/completion.md b/site/content/en/docs/commands/completion.md
index 586012f4f..b767a6387 100644
--- a/site/content/en/docs/commands/completion.md
+++ b/site/content/en/docs/commands/completion.md
@@ -63,8 +63,6 @@ minikube completion SHELL [flags]
       --one_output                       If true, only write logs to their native severity level (vs also writing to each lower severity level; no effect when -logtostderr=true)
   -p, --profile string                   The name of the minikube VM being used. This can be set to allow having multiple instances of minikube independently. (default "minikube")
       --rootless                         Force to use rootless driver (docker and podman driver only)
-      --s2a_enable_appengine_dialer      If true, opportunistically use AppEngine-specific dialer to call S2A.
-      --s2a_timeout duration             Timeout enforced on the connection to the S2A service for handshake. (default 3s)
       --skip-audit                       Skip recording the current command in the audit logs.
       --skip_headers                     If true, avoid header prefixes in the log messages
       --skip_log_headers                 If true, avoid headers when opening log files (no effect when -logtostderr=true)
@@ -101,8 +99,6 @@ minikube completion bash [flags]
       --one_output                       If true, only write logs to their native severity level (vs also writing to each lower severity level; no effect when -logtostderr=true)
   -p, --profile string                   The name of the minikube VM being used. This can be set to allow having multiple instances of minikube independently. (default "minikube")
       --rootless                         Force to use rootless driver (docker and podman driver only)
-      --s2a_enable_appengine_dialer      If true, opportunistically use AppEngine-specific dialer to call S2A.
-      --s2a_timeout duration             Timeout enforced on the connection to the S2A service for handshake. (default 3s)
       --skip-audit                       Skip recording the current command in the audit logs.
       --skip_headers                     If true, avoid header prefixes in the log messages
       --skip_log_headers                 If true, avoid headers when opening log files (no effect when -logtostderr=true)
@@ -139,8 +135,6 @@ minikube completion fish [flags]
       --one_output                       If true, only write logs to their native severity level (vs also writing to each lower severity level; no effect when -logtostderr=true)
   -p, --profile string                   The name of the minikube VM being used. This can be set to allow having multiple instances of minikube independently. (default "minikube")
       --rootless                         Force to use rootless driver (docker and podman driver only)
-      --s2a_enable_appengine_dialer      If true, opportunistically use AppEngine-specific dialer to call S2A.
-      --s2a_timeout duration             Timeout enforced on the connection to the S2A service for handshake. (default 3s)
       --skip-audit                       Skip recording the current command in the audit logs.
       --skip_headers                     If true, avoid header prefixes in the log messages
       --skip_log_headers                 If true, avoid headers when opening log files (no effect when -logtostderr=true)
@@ -178,8 +172,6 @@ minikube completion help [command] [flags]
       --one_output                       If true, only write logs to their native severity level (vs also writing to each lower severity level; no effect when -logtostderr=true)
   -p, --profile string                   The name of the minikube VM being used. This can be set to allow having multiple instances of minikube independently. (default "minikube")
       --rootless                         Force to use rootless driver (docker and podman driver only)
-      --s2a_enable_appengine_dialer      If true, opportunistically use AppEngine-specific dialer to call S2A.
-      --s2a_timeout duration             Timeout enforced on the connection to the S2A service for handshake. (default 3s)
       --skip-audit                       Skip recording the current command in the audit logs.
       --skip_headers                     If true, avoid header prefixes in the log messages
       --skip_log_headers                 If true, avoid headers when opening log files (no effect when -logtostderr=true)
@@ -216,8 +208,6 @@ minikube completion powershell [flags]
       --one_output                       If true, only write logs to their native severity level (vs also writing to each lower severity level; no effect when -logtostderr=true)
   -p, --profile string                   The name of the minikube VM being used. This can be set to allow having multiple instances of minikube independently. (default "minikube")
       --rootless                         Force to use rootless driver (docker and podman driver only)
-      --s2a_enable_appengine_dialer      If true, opportunistically use AppEngine-specific dialer to call S2A.
-      --s2a_timeout duration             Timeout enforced on the connection to the S2A service for handshake. (default 3s)
       --skip-audit                       Skip recording the current command in the audit logs.
       --skip_headers                     If true, avoid header prefixes in the log messages
       --skip_log_headers                 If true, avoid headers when opening log files (no effect when -logtostderr=true)
@@ -254,8 +244,6 @@ minikube completion zsh [flags]
       --one_output                       If true, only write logs to their native severity level (vs also writing to each lower severity level; no effect when -logtostderr=true)
   -p, --profile string                   The name of the minikube VM being used. This can be set to allow having multiple instances of minikube independently. (default "minikube")
       --rootless                         Force to use rootless driver (docker and podman driver only)
-      --s2a_enable_appengine_dialer      If true, opportunistically use AppEngine-specific dialer to call S2A.
-      --s2a_timeout duration             Timeout enforced on the connection to the S2A service for handshake. (default 3s)
       --skip-audit                       Skip recording the current command in the audit logs.
       --skip_headers                     If true, avoid header prefixes in the log messages
       --skip_log_headers                 If true, avoid headers when opening log files (no effect when -logtostderr=true)
diff --git a/site/content/en/docs/commands/config.md b/site/content/en/docs/commands/config.md
index bc651200d..41656c34c 100644
--- a/site/content/en/docs/commands/config.md
+++ b/site/content/en/docs/commands/config.md
@@ -61,8 +61,6 @@ minikube config SUBCOMMAND [flags]
       --one_output                       If true, only write logs to their native severity level (vs also writing to each lower severity level; no effect when -logtostderr=true)
   -p, --profile string                   The name of the minikube VM being used. This can be set to allow having multiple instances of minikube independently. (default "minikube")
       --rootless                         Force to use rootless driver (docker and podman driver only)
-      --s2a_enable_appengine_dialer      If true, opportunistically use AppEngine-specific dialer to call S2A.
-      --s2a_timeout duration             Timeout enforced on the connection to the S2A service for handshake. (default 3s)
       --skip-audit                       Skip recording the current command in the audit logs.
       --skip_headers                     If true, avoid header prefixes in the log messages
       --skip_log_headers                 If true, avoid headers when opening log files (no effect when -logtostderr=true)
@@ -109,8 +107,6 @@ minikube config defaults PROPERTY_NAME [flags]
       --one_output                       If true, only write logs to their native severity level (vs also writing to each lower severity level; no effect when -logtostderr=true)
   -p, --profile string                   The name of the minikube VM being used. This can be set to allow having multiple instances of minikube independently. (default "minikube")
       --rootless                         Force to use rootless driver (docker and podman driver only)
-      --s2a_enable_appengine_dialer      If true, opportunistically use AppEngine-specific dialer to call S2A.
-      --s2a_timeout duration             Timeout enforced on the connection to the S2A service for handshake. (default 3s)
       --skip-audit                       Skip recording the current command in the audit logs.
       --skip_headers                     If true, avoid header prefixes in the log messages
       --skip_log_headers                 If true, avoid headers when opening log files (no effect when -logtostderr=true)
@@ -147,8 +143,6 @@ minikube config get PROPERTY_NAME [flags]
       --one_output                       If true, only write logs to their native severity level (vs also writing to each lower severity level; no effect when -logtostderr=true)
   -p, --profile string                   The name of the minikube VM being used. This can be set to allow having multiple instances of minikube independently. (default "minikube")
       --rootless                         Force to use rootless driver (docker and podman driver only)
-      --s2a_enable_appengine_dialer      If true, opportunistically use AppEngine-specific dialer to call S2A.
-      --s2a_timeout duration             Timeout enforced on the connection to the S2A service for handshake. (default 3s)
       --skip-audit                       Skip recording the current command in the audit logs.
       --skip_headers                     If true, avoid header prefixes in the log messages
       --skip_log_headers                 If true, avoid headers when opening log files (no effect when -logtostderr=true)
@@ -186,8 +180,6 @@ minikube config help [command] [flags]
       --one_output                       If true, only write logs to their native severity level (vs also writing to each lower severity level; no effect when -logtostderr=true)
   -p, --profile string                   The name of the minikube VM being used. This can be set to allow having multiple instances of minikube independently. (default "minikube")
       --rootless                         Force to use rootless driver (docker and podman driver only)
-      --s2a_enable_appengine_dialer      If true, opportunistically use AppEngine-specific dialer to call S2A.
-      --s2a_timeout duration             Timeout enforced on the connection to the S2A service for handshake. (default 3s)
       --skip-audit                       Skip recording the current command in the audit logs.
       --skip_headers                     If true, avoid header prefixes in the log messages
       --skip_log_headers                 If true, avoid headers when opening log files (no effect when -logtostderr=true)
@@ -225,8 +217,6 @@ minikube config set PROPERTY_NAME PROPERTY_VALUE [flags]
       --one_output                       If true, only write logs to their native severity level (vs also writing to each lower severity level; no effect when -logtostderr=true)
   -p, --profile string                   The name of the minikube VM being used. This can be set to allow having multiple instances of minikube independently. (default "minikube")
       --rootless                         Force to use rootless driver (docker and podman driver only)
-      --s2a_enable_appengine_dialer      If true, opportunistically use AppEngine-specific dialer to call S2A.
-      --s2a_timeout duration             Timeout enforced on the connection to the S2A service for handshake. (default 3s)
       --skip-audit                       Skip recording the current command in the audit logs.
       --skip_headers                     If true, avoid header prefixes in the log messages
       --skip_log_headers                 If true, avoid headers when opening log files (no effect when -logtostderr=true)
@@ -263,8 +253,6 @@ minikube config unset PROPERTY_NAME [flags]
       --one_output                       If true, only write logs to their native severity level (vs also writing to each lower severity level; no effect when -logtostderr=true)
   -p, --profile string                   The name of the minikube VM being used. This can be set to allow having multiple instances of minikube independently. (default "minikube")
       --rootless                         Force to use rootless driver (docker and podman driver only)
-      --s2a_enable_appengine_dialer      If true, opportunistically use AppEngine-specific dialer to call S2A.
-      --s2a_timeout duration             Timeout enforced on the connection to the S2A service for handshake. (default 3s)
       --skip-audit                       Skip recording the current command in the audit logs.
       --skip_headers                     If true, avoid header prefixes in the log messages
       --skip_log_headers                 If true, avoid headers when opening log files (no effect when -logtostderr=true)
@@ -308,8 +296,6 @@ minikube config view [flags]
       --one_output                       If true, only write logs to their native severity level (vs also writing to each lower severity level; no effect when -logtostderr=true)
   -p, --profile string                   The name of the minikube VM being used. This can be set to allow having multiple instances of minikube independently. (default "minikube")
       --rootless                         Force to use rootless driver (docker and podman driver only)
-      --s2a_enable_appengine_dialer      If true, opportunistically use AppEngine-specific dialer to call S2A.
-      --s2a_timeout duration             Timeout enforced on the connection to the S2A service for handshake. (default 3s)
       --skip-audit                       Skip recording the current command in the audit logs.
       --skip_headers                     If true, avoid header prefixes in the log messages
       --skip_log_headers                 If true, avoid headers when opening log files (no effect when -logtostderr=true)
diff --git a/site/content/en/docs/commands/cp.md b/site/content/en/docs/commands/cp.md
index d95e7fa7f..3793650ca 100644
--- a/site/content/en/docs/commands/cp.md
+++ b/site/content/en/docs/commands/cp.md
@@ -37,8 +37,6 @@ minikube cp <source node name>:<source file path> <target node name>:<target fil
       --one_output                       If true, only write logs to their native severity level (vs also writing to each lower severity level; no effect when -logtostderr=true)
   -p, --profile string                   The name of the minikube VM being used. This can be set to allow having multiple instances of minikube independently. (default "minikube")
       --rootless                         Force to use rootless driver (docker and podman driver only)
-      --s2a_enable_appengine_dialer      If true, opportunistically use AppEngine-specific dialer to call S2A.
-      --s2a_timeout duration             Timeout enforced on the connection to the S2A service for handshake. (default 3s)
       --skip-audit                       Skip recording the current command in the audit logs.
       --skip_headers                     If true, avoid header prefixes in the log messages
       --skip_log_headers                 If true, avoid headers when opening log files (no effect when -logtostderr=true)
diff --git a/site/content/en/docs/commands/dashboard.md b/site/content/en/docs/commands/dashboard.md
index ddef3e455..f81422963 100644
--- a/site/content/en/docs/commands/dashboard.md
+++ b/site/content/en/docs/commands/dashboard.md
@@ -39,8 +39,6 @@ minikube dashboard [flags]
       --one_output                       If true, only write logs to their native severity level (vs also writing to each lower severity level; no effect when -logtostderr=true)
   -p, --profile string                   The name of the minikube VM being used. This can be set to allow having multiple instances of minikube independently. (default "minikube")
       --rootless                         Force to use rootless driver (docker and podman driver only)
-      --s2a_enable_appengine_dialer      If true, opportunistically use AppEngine-specific dialer to call S2A.
-      --s2a_timeout duration             Timeout enforced on the connection to the S2A service for handshake. (default 3s)
       --skip-audit                       Skip recording the current command in the audit logs.
       --skip_headers                     If true, avoid header prefixes in the log messages
       --skip_log_headers                 If true, avoid headers when opening log files (no effect when -logtostderr=true)
diff --git a/site/content/en/docs/commands/delete.md b/site/content/en/docs/commands/delete.md
index a686fff75..0f5cf293d 100644
--- a/site/content/en/docs/commands/delete.md
+++ b/site/content/en/docs/commands/delete.md
@@ -41,8 +41,6 @@ minikube delete [flags]
       --one_output                       If true, only write logs to their native severity level (vs also writing to each lower severity level; no effect when -logtostderr=true)
   -p, --profile string                   The name of the minikube VM being used. This can be set to allow having multiple instances of minikube independently. (default "minikube")
       --rootless                         Force to use rootless driver (docker and podman driver only)
-      --s2a_enable_appengine_dialer      If true, opportunistically use AppEngine-specific dialer to call S2A.
-      --s2a_timeout duration             Timeout enforced on the connection to the S2A service for handshake. (default 3s)
       --skip-audit                       Skip recording the current command in the audit logs.
       --skip_headers                     If true, avoid header prefixes in the log messages
       --skip_log_headers                 If true, avoid headers when opening log files (no effect when -logtostderr=true)
diff --git a/site/content/en/docs/commands/docker-env.md b/site/content/en/docs/commands/docker-env.md
index 32ddb1c18..2c14f6747 100644
--- a/site/content/en/docs/commands/docker-env.md
+++ b/site/content/en/docs/commands/docker-env.md
@@ -48,8 +48,6 @@ minikube docker-env [flags]
       --one_output                       If true, only write logs to their native severity level (vs also writing to each lower severity level; no effect when -logtostderr=true)
   -p, --profile string                   The name of the minikube VM being used. This can be set to allow having multiple instances of minikube independently. (default "minikube")
       --rootless                         Force to use rootless driver (docker and podman driver only)
-      --s2a_enable_appengine_dialer      If true, opportunistically use AppEngine-specific dialer to call S2A.
-      --s2a_timeout duration             Timeout enforced on the connection to the S2A service for handshake. (default 3s)
       --skip-audit                       Skip recording the current command in the audit logs.
       --skip_headers                     If true, avoid header prefixes in the log messages
       --skip_log_headers                 If true, avoid headers when opening log files (no effect when -logtostderr=true)
diff --git a/site/content/en/docs/commands/help.md b/site/content/en/docs/commands/help.md
index 00790c182..f1719766f 100644
--- a/site/content/en/docs/commands/help.md
+++ b/site/content/en/docs/commands/help.md
@@ -33,8 +33,6 @@ minikube help [command] [flags]
       --one_output                       If true, only write logs to their native severity level (vs also writing to each lower severity level; no effect when -logtostderr=true)
   -p, --profile string                   The name of the minikube VM being used. This can be set to allow having multiple instances of minikube independently. (default "minikube")
       --rootless                         Force to use rootless driver (docker and podman driver only)
-      --s2a_enable_appengine_dialer      If true, opportunistically use AppEngine-specific dialer to call S2A.
-      --s2a_timeout duration             Timeout enforced on the connection to the S2A service for handshake. (default 3s)
       --skip-audit                       Skip recording the current command in the audit logs.
       --skip_headers                     If true, avoid header prefixes in the log messages
       --skip_log_headers                 If true, avoid headers when opening log files (no effect when -logtostderr=true)
diff --git a/site/content/en/docs/commands/image.md b/site/content/en/docs/commands/image.md
index 7603211f8..35a27b386 100644
--- a/site/content/en/docs/commands/image.md
+++ b/site/content/en/docs/commands/image.md
@@ -28,8 +28,6 @@ Manage images
       --one_output                       If true, only write logs to their native severity level (vs also writing to each lower severity level; no effect when -logtostderr=true)
   -p, --profile string                   The name of the minikube VM being used. This can be set to allow having multiple instances of minikube independently. (default "minikube")
       --rootless                         Force to use rootless driver (docker and podman driver only)
-      --s2a_enable_appengine_dialer      If true, opportunistically use AppEngine-specific dialer to call S2A.
-      --s2a_timeout duration             Timeout enforced on the connection to the S2A service for handshake. (default 3s)
       --skip-audit                       Skip recording the current command in the audit logs.
       --skip_headers                     If true, avoid header prefixes in the log messages
       --skip_log_headers                 If true, avoid headers when opening log files (no effect when -logtostderr=true)
@@ -84,8 +82,6 @@ minikube image build .
       --one_output                       If true, only write logs to their native severity level (vs also writing to each lower severity level; no effect when -logtostderr=true)
   -p, --profile string                   The name of the minikube VM being used. This can be set to allow having multiple instances of minikube independently. (default "minikube")
       --rootless                         Force to use rootless driver (docker and podman driver only)
-      --s2a_enable_appengine_dialer      If true, opportunistically use AppEngine-specific dialer to call S2A.
-      --s2a_timeout duration             Timeout enforced on the connection to the S2A service for handshake. (default 3s)
       --skip-audit                       Skip recording the current command in the audit logs.
       --skip_headers                     If true, avoid header prefixes in the log messages
       --skip_log_headers                 If true, avoid headers when opening log files (no effect when -logtostderr=true)
@@ -123,8 +119,6 @@ minikube image help [command] [flags]
       --one_output                       If true, only write logs to their native severity level (vs also writing to each lower severity level; no effect when -logtostderr=true)
   -p, --profile string                   The name of the minikube VM being used. This can be set to allow having multiple instances of minikube independently. (default "minikube")
       --rootless                         Force to use rootless driver (docker and podman driver only)
-      --s2a_enable_appengine_dialer      If true, opportunistically use AppEngine-specific dialer to call S2A.
-      --s2a_timeout duration             Timeout enforced on the connection to the S2A service for handshake. (default 3s)
       --skip-audit                       Skip recording the current command in the audit logs.
       --skip_headers                     If true, avoid header prefixes in the log messages
       --skip_log_headers                 If true, avoid headers when opening log files (no effect when -logtostderr=true)
@@ -177,8 +171,6 @@ minikube image load image.tar
       --one_output                       If true, only write logs to their native severity level (vs also writing to each lower severity level; no effect when -logtostderr=true)
   -p, --profile string                   The name of the minikube VM being used. This can be set to allow having multiple instances of minikube independently. (default "minikube")
       --rootless                         Force to use rootless driver (docker and podman driver only)
-      --s2a_enable_appengine_dialer      If true, opportunistically use AppEngine-specific dialer to call S2A.
-      --s2a_timeout duration             Timeout enforced on the connection to the S2A service for handshake. (default 3s)
       --skip-audit                       Skip recording the current command in the audit logs.
       --skip_headers                     If true, avoid header prefixes in the log messages
       --skip_log_headers                 If true, avoid headers when opening log files (no effect when -logtostderr=true)
@@ -233,8 +225,6 @@ $ minikube image ls
       --one_output                       If true, only write logs to their native severity level (vs also writing to each lower severity level; no effect when -logtostderr=true)
   -p, --profile string                   The name of the minikube VM being used. This can be set to allow having multiple instances of minikube independently. (default "minikube")
       --rootless                         Force to use rootless driver (docker and podman driver only)
-      --s2a_enable_appengine_dialer      If true, opportunistically use AppEngine-specific dialer to call S2A.
-      --s2a_timeout duration             Timeout enforced on the connection to the S2A service for handshake. (default 3s)
       --skip-audit                       Skip recording the current command in the audit logs.
       --skip_headers                     If true, avoid header prefixes in the log messages
       --skip_log_headers                 If true, avoid headers when opening log files (no effect when -logtostderr=true)
@@ -279,8 +269,6 @@ $ minikube image pull busybox
       --one_output                       If true, only write logs to their native severity level (vs also writing to each lower severity level; no effect when -logtostderr=true)
   -p, --profile string                   The name of the minikube VM being used. This can be set to allow having multiple instances of minikube independently. (default "minikube")
       --rootless                         Force to use rootless driver (docker and podman driver only)
-      --s2a_enable_appengine_dialer      If true, opportunistically use AppEngine-specific dialer to call S2A.
-      --s2a_timeout duration             Timeout enforced on the connection to the S2A service for handshake. (default 3s)
       --skip-audit                       Skip recording the current command in the audit logs.
       --skip_headers                     If true, avoid header prefixes in the log messages
       --skip_log_headers                 If true, avoid headers when opening log files (no effect when -logtostderr=true)
@@ -325,8 +313,6 @@ $ minikube image push busybox
       --one_output                       If true, only write logs to their native severity level (vs also writing to each lower severity level; no effect when -logtostderr=true)
   -p, --profile string                   The name of the minikube VM being used. This can be set to allow having multiple instances of minikube independently. (default "minikube")
       --rootless                         Force to use rootless driver (docker and podman driver only)
-      --s2a_enable_appengine_dialer      If true, opportunistically use AppEngine-specific dialer to call S2A.
-      --s2a_timeout duration             Timeout enforced on the connection to the S2A service for handshake. (default 3s)
       --skip-audit                       Skip recording the current command in the audit logs.
       --skip_headers                     If true, avoid header prefixes in the log messages
       --skip_log_headers                 If true, avoid headers when opening log files (no effect when -logtostderr=true)
@@ -377,8 +363,6 @@ $ minikube image unload image busybox
       --one_output                       If true, only write logs to their native severity level (vs also writing to each lower severity level; no effect when -logtostderr=true)
   -p, --profile string                   The name of the minikube VM being used. This can be set to allow having multiple instances of minikube independently. (default "minikube")
       --rootless                         Force to use rootless driver (docker and podman driver only)
-      --s2a_enable_appengine_dialer      If true, opportunistically use AppEngine-specific dialer to call S2A.
-      --s2a_timeout duration             Timeout enforced on the connection to the S2A service for handshake. (default 3s)
       --skip-audit                       Skip recording the current command in the audit logs.
       --skip_headers                     If true, avoid header prefixes in the log messages
       --skip_log_headers                 If true, avoid headers when opening log files (no effect when -logtostderr=true)
@@ -429,8 +413,6 @@ minikube image save image image.tar
       --one_output                       If true, only write logs to their native severity level (vs also writing to each lower severity level; no effect when -logtostderr=true)
   -p, --profile string                   The name of the minikube VM being used. This can be set to allow having multiple instances of minikube independently. (default "minikube")
       --rootless                         Force to use rootless driver (docker and podman driver only)
-      --s2a_enable_appengine_dialer      If true, opportunistically use AppEngine-specific dialer to call S2A.
-      --s2a_timeout duration             Timeout enforced on the connection to the S2A service for handshake. (default 3s)
       --skip-audit                       Skip recording the current command in the audit logs.
       --skip_headers                     If true, avoid header prefixes in the log messages
       --skip_log_headers                 If true, avoid headers when opening log files (no effect when -logtostderr=true)
@@ -479,8 +461,6 @@ $ minikube image tag source target
       --one_output                       If true, only write logs to their native severity level (vs also writing to each lower severity level; no effect when -logtostderr=true)
   -p, --profile string                   The name of the minikube VM being used. This can be set to allow having multiple instances of minikube independently. (default "minikube")
       --rootless                         Force to use rootless driver (docker and podman driver only)
-      --s2a_enable_appengine_dialer      If true, opportunistically use AppEngine-specific dialer to call S2A.
-      --s2a_timeout duration             Timeout enforced on the connection to the S2A service for handshake. (default 3s)
       --skip-audit                       Skip recording the current command in the audit logs.
       --skip_headers                     If true, avoid header prefixes in the log messages
       --skip_log_headers                 If true, avoid headers when opening log files (no effect when -logtostderr=true)
diff --git a/site/content/en/docs/commands/ip.md b/site/content/en/docs/commands/ip.md
index c0dbcfabe..62fe5a58a 100644
--- a/site/content/en/docs/commands/ip.md
+++ b/site/content/en/docs/commands/ip.md
@@ -38,8 +38,6 @@ minikube ip [flags]
       --one_output                       If true, only write logs to their native severity level (vs also writing to each lower severity level; no effect when -logtostderr=true)
   -p, --profile string                   The name of the minikube VM being used. This can be set to allow having multiple instances of minikube independently. (default "minikube")
       --rootless                         Force to use rootless driver (docker and podman driver only)
-      --s2a_enable_appengine_dialer      If true, opportunistically use AppEngine-specific dialer to call S2A.
-      --s2a_timeout duration             Timeout enforced on the connection to the S2A service for handshake. (default 3s)
       --skip-audit                       Skip recording the current command in the audit logs.
       --skip_headers                     If true, avoid header prefixes in the log messages
       --skip_log_headers                 If true, avoid headers when opening log files (no effect when -logtostderr=true)
diff --git a/site/content/en/docs/commands/kubectl.md b/site/content/en/docs/commands/kubectl.md
index 66131e93e..e1569cd2e 100644
--- a/site/content/en/docs/commands/kubectl.md
+++ b/site/content/en/docs/commands/kubectl.md
@@ -52,8 +52,6 @@ minikube kubectl -- get pods --namespace kube-system
       --one_output                       If true, only write logs to their native severity level (vs also writing to each lower severity level; no effect when -logtostderr=true)
   -p, --profile string                   The name of the minikube VM being used. This can be set to allow having multiple instances of minikube independently. (default "minikube")
       --rootless                         Force to use rootless driver (docker and podman driver only)
-      --s2a_enable_appengine_dialer      If true, opportunistically use AppEngine-specific dialer to call S2A.
-      --s2a_timeout duration             Timeout enforced on the connection to the S2A service for handshake. (default 3s)
       --skip-audit                       Skip recording the current command in the audit logs.
       --skip_headers                     If true, avoid header prefixes in the log messages
       --skip_log_headers                 If true, avoid headers when opening log files (no effect when -logtostderr=true)
diff --git a/site/content/en/docs/commands/license.md b/site/content/en/docs/commands/license.md
index 5ddfe33df..21ee3ac60 100644
--- a/site/content/en/docs/commands/license.md
+++ b/site/content/en/docs/commands/license.md
@@ -38,8 +38,6 @@ minikube license [flags]
       --one_output                       If true, only write logs to their native severity level (vs also writing to each lower severity level; no effect when -logtostderr=true)
   -p, --profile string                   The name of the minikube VM being used. This can be set to allow having multiple instances of minikube independently. (default "minikube")
       --rootless                         Force to use rootless driver (docker and podman driver only)
-      --s2a_enable_appengine_dialer      If true, opportunistically use AppEngine-specific dialer to call S2A.
-      --s2a_timeout duration             Timeout enforced on the connection to the S2A service for handshake. (default 3s)
       --skip-audit                       Skip recording the current command in the audit logs.
       --skip_headers                     If true, avoid header prefixes in the log messages
       --skip_log_headers                 If true, avoid headers when opening log files (no effect when -logtostderr=true)
diff --git a/site/content/en/docs/commands/logs.md b/site/content/en/docs/commands/logs.md
index 02eb4562a..82b974164 100644
--- a/site/content/en/docs/commands/logs.md
+++ b/site/content/en/docs/commands/logs.md
@@ -44,8 +44,6 @@ minikube logs [flags]
       --one_output                       If true, only write logs to their native severity level (vs also writing to each lower severity level; no effect when -logtostderr=true)
   -p, --profile string                   The name of the minikube VM being used. This can be set to allow having multiple instances of minikube independently. (default "minikube")
       --rootless                         Force to use rootless driver (docker and podman driver only)
-      --s2a_enable_appengine_dialer      If true, opportunistically use AppEngine-specific dialer to call S2A.
-      --s2a_timeout duration             Timeout enforced on the connection to the S2A service for handshake. (default 3s)
       --skip-audit                       Skip recording the current command in the audit logs.
       --skip_headers                     If true, avoid header prefixes in the log messages
       --skip_log_headers                 If true, avoid headers when opening log files (no effect when -logtostderr=true)
diff --git a/site/content/en/docs/commands/mount.md b/site/content/en/docs/commands/mount.md
index a65fabfc9..81a0a9d9a 100644
--- a/site/content/en/docs/commands/mount.md
+++ b/site/content/en/docs/commands/mount.md
@@ -46,8 +46,6 @@ minikube mount [flags] <source directory>:<target directory>
       --one_output                       If true, only write logs to their native severity level (vs also writing to each lower severity level; no effect when -logtostderr=true)
   -p, --profile string                   The name of the minikube VM being used. This can be set to allow having multiple instances of minikube independently. (default "minikube")
       --rootless                         Force to use rootless driver (docker and podman driver only)
-      --s2a_enable_appengine_dialer      If true, opportunistically use AppEngine-specific dialer to call S2A.
-      --s2a_timeout duration             Timeout enforced on the connection to the S2A service for handshake. (default 3s)
       --skip-audit                       Skip recording the current command in the audit logs.
       --skip_headers                     If true, avoid header prefixes in the log messages
       --skip_log_headers                 If true, avoid headers when opening log files (no effect when -logtostderr=true)
diff --git a/site/content/en/docs/commands/node.md b/site/content/en/docs/commands/node.md
index f14a6a46b..e453565fb 100644
--- a/site/content/en/docs/commands/node.md
+++ b/site/content/en/docs/commands/node.md
@@ -32,8 +32,6 @@ minikube node [flags]
       --one_output                       If true, only write logs to their native severity level (vs also writing to each lower severity level; no effect when -logtostderr=true)
   -p, --profile string                   The name of the minikube VM being used. This can be set to allow having multiple instances of minikube independently. (default "minikube")
       --rootless                         Force to use rootless driver (docker and podman driver only)
-      --s2a_enable_appengine_dialer      If true, opportunistically use AppEngine-specific dialer to call S2A.
-      --s2a_timeout duration             Timeout enforced on the connection to the S2A service for handshake. (default 3s)
       --skip-audit                       Skip recording the current command in the audit logs.
       --skip_headers                     If true, avoid header prefixes in the log messages
       --skip_log_headers                 If true, avoid headers when opening log files (no effect when -logtostderr=true)
@@ -78,8 +76,6 @@ minikube node add [flags]
       --one_output                       If true, only write logs to their native severity level (vs also writing to each lower severity level; no effect when -logtostderr=true)
   -p, --profile string                   The name of the minikube VM being used. This can be set to allow having multiple instances of minikube independently. (default "minikube")
       --rootless                         Force to use rootless driver (docker and podman driver only)
-      --s2a_enable_appengine_dialer      If true, opportunistically use AppEngine-specific dialer to call S2A.
-      --s2a_timeout duration             Timeout enforced on the connection to the S2A service for handshake. (default 3s)
       --skip-audit                       Skip recording the current command in the audit logs.
       --skip_headers                     If true, avoid header prefixes in the log messages
       --skip_log_headers                 If true, avoid headers when opening log files (no effect when -logtostderr=true)
@@ -116,8 +112,6 @@ minikube node delete [flags]
       --one_output                       If true, only write logs to their native severity level (vs also writing to each lower severity level; no effect when -logtostderr=true)
   -p, --profile string                   The name of the minikube VM being used. This can be set to allow having multiple instances of minikube independently. (default "minikube")
       --rootless                         Force to use rootless driver (docker and podman driver only)
-      --s2a_enable_appengine_dialer      If true, opportunistically use AppEngine-specific dialer to call S2A.
-      --s2a_timeout duration             Timeout enforced on the connection to the S2A service for handshake. (default 3s)
       --skip-audit                       Skip recording the current command in the audit logs.
       --skip_headers                     If true, avoid header prefixes in the log messages
       --skip_log_headers                 If true, avoid headers when opening log files (no effect when -logtostderr=true)
@@ -155,8 +149,6 @@ minikube node help [command] [flags]
       --one_output                       If true, only write logs to their native severity level (vs also writing to each lower severity level; no effect when -logtostderr=true)
   -p, --profile string                   The name of the minikube VM being used. This can be set to allow having multiple instances of minikube independently. (default "minikube")
       --rootless                         Force to use rootless driver (docker and podman driver only)
-      --s2a_enable_appengine_dialer      If true, opportunistically use AppEngine-specific dialer to call S2A.
-      --s2a_timeout duration             Timeout enforced on the connection to the S2A service for handshake. (default 3s)
       --skip-audit                       Skip recording the current command in the audit logs.
       --skip_headers                     If true, avoid header prefixes in the log messages
       --skip_log_headers                 If true, avoid headers when opening log files (no effect when -logtostderr=true)
@@ -193,8 +185,6 @@ minikube node list [flags]
       --one_output                       If true, only write logs to their native severity level (vs also writing to each lower severity level; no effect when -logtostderr=true)
   -p, --profile string                   The name of the minikube VM being used. This can be set to allow having multiple instances of minikube independently. (default "minikube")
       --rootless                         Force to use rootless driver (docker and podman driver only)
-      --s2a_enable_appengine_dialer      If true, opportunistically use AppEngine-specific dialer to call S2A.
-      --s2a_timeout duration             Timeout enforced on the connection to the S2A service for handshake. (default 3s)
       --skip-audit                       Skip recording the current command in the audit logs.
       --skip_headers                     If true, avoid header prefixes in the log messages
       --skip_log_headers                 If true, avoid headers when opening log files (no effect when -logtostderr=true)
@@ -237,8 +227,6 @@ minikube node start [flags]
       --one_output                       If true, only write logs to their native severity level (vs also writing to each lower severity level; no effect when -logtostderr=true)
   -p, --profile string                   The name of the minikube VM being used. This can be set to allow having multiple instances of minikube independently. (default "minikube")
       --rootless                         Force to use rootless driver (docker and podman driver only)
-      --s2a_enable_appengine_dialer      If true, opportunistically use AppEngine-specific dialer to call S2A.
-      --s2a_timeout duration             Timeout enforced on the connection to the S2A service for handshake. (default 3s)
       --skip-audit                       Skip recording the current command in the audit logs.
       --skip_headers                     If true, avoid header prefixes in the log messages
       --skip_log_headers                 If true, avoid headers when opening log files (no effect when -logtostderr=true)
@@ -275,8 +263,6 @@ minikube node stop [flags]
       --one_output                       If true, only write logs to their native severity level (vs also writing to each lower severity level; no effect when -logtostderr=true)
   -p, --profile string                   The name of the minikube VM being used. This can be set to allow having multiple instances of minikube independently. (default "minikube")
       --rootless                         Force to use rootless driver (docker and podman driver only)
-      --s2a_enable_appengine_dialer      If true, opportunistically use AppEngine-specific dialer to call S2A.
-      --s2a_timeout duration             Timeout enforced on the connection to the S2A service for handshake. (default 3s)
       --skip-audit                       Skip recording the current command in the audit logs.
       --skip_headers                     If true, avoid header prefixes in the log messages
       --skip_log_headers                 If true, avoid headers when opening log files (no effect when -logtostderr=true)
diff --git a/site/content/en/docs/commands/options.md b/site/content/en/docs/commands/options.md
index e5132f066..81b54df58 100644
--- a/site/content/en/docs/commands/options.md
+++ b/site/content/en/docs/commands/options.md
@@ -32,8 +32,6 @@ minikube options [flags]
       --one_output                       If true, only write logs to their native severity level (vs also writing to each lower severity level; no effect when -logtostderr=true)
   -p, --profile string                   The name of the minikube VM being used. This can be set to allow having multiple instances of minikube independently. (default "minikube")
       --rootless                         Force to use rootless driver (docker and podman driver only)
-      --s2a_enable_appengine_dialer      If true, opportunistically use AppEngine-specific dialer to call S2A.
-      --s2a_timeout duration             Timeout enforced on the connection to the S2A service for handshake. (default 3s)
       --skip-audit                       Skip recording the current command in the audit logs.
       --skip_headers                     If true, avoid header prefixes in the log messages
       --skip_log_headers                 If true, avoid headers when opening log files (no effect when -logtostderr=true)
diff --git a/site/content/en/docs/commands/pause.md b/site/content/en/docs/commands/pause.md
index 1770c5be8..f98ca44ee 100644
--- a/site/content/en/docs/commands/pause.md
+++ b/site/content/en/docs/commands/pause.md
@@ -40,8 +40,6 @@ minikube pause [flags]
       --one_output                       If true, only write logs to their native severity level (vs also writing to each lower severity level; no effect when -logtostderr=true)
   -p, --profile string                   The name of the minikube VM being used. This can be set to allow having multiple instances of minikube independently. (default "minikube")
       --rootless                         Force to use rootless driver (docker and podman driver only)
-      --s2a_enable_appengine_dialer      If true, opportunistically use AppEngine-specific dialer to call S2A.
-      --s2a_timeout duration             Timeout enforced on the connection to the S2A service for handshake. (default 3s)
       --skip-audit                       Skip recording the current command in the audit logs.
       --skip_headers                     If true, avoid header prefixes in the log messages
       --skip_log_headers                 If true, avoid headers when opening log files (no effect when -logtostderr=true)
diff --git a/site/content/en/docs/commands/podman-env.md b/site/content/en/docs/commands/podman-env.md
index d1d2686fc..450c1e340 100644
--- a/site/content/en/docs/commands/podman-env.md
+++ b/site/content/en/docs/commands/podman-env.md
@@ -39,8 +39,6 @@ minikube podman-env [flags]
       --one_output                       If true, only write logs to their native severity level (vs also writing to each lower severity level; no effect when -logtostderr=true)
   -p, --profile string                   The name of the minikube VM being used. This can be set to allow having multiple instances of minikube independently. (default "minikube")
       --rootless                         Force to use rootless driver (docker and podman driver only)
-      --s2a_enable_appengine_dialer      If true, opportunistically use AppEngine-specific dialer to call S2A.
-      --s2a_timeout duration             Timeout enforced on the connection to the S2A service for handshake. (default 3s)
       --skip-audit                       Skip recording the current command in the audit logs.
       --skip_headers                     If true, avoid header prefixes in the log messages
       --skip_log_headers                 If true, avoid headers when opening log files (no effect when -logtostderr=true)
diff --git a/site/content/en/docs/commands/profile.md b/site/content/en/docs/commands/profile.md
index 81949a402..90c0ab181 100644
--- a/site/content/en/docs/commands/profile.md
+++ b/site/content/en/docs/commands/profile.md
@@ -32,8 +32,6 @@ minikube profile [MINIKUBE_PROFILE_NAME].  You can return to the default minikub
       --one_output                       If true, only write logs to their native severity level (vs also writing to each lower severity level; no effect when -logtostderr=true)
   -p, --profile string                   The name of the minikube VM being used. This can be set to allow having multiple instances of minikube independently. (default "minikube")
       --rootless                         Force to use rootless driver (docker and podman driver only)
-      --s2a_enable_appengine_dialer      If true, opportunistically use AppEngine-specific dialer to call S2A.
-      --s2a_timeout duration             Timeout enforced on the connection to the S2A service for handshake. (default 3s)
       --skip-audit                       Skip recording the current command in the audit logs.
       --skip_headers                     If true, avoid header prefixes in the log messages
       --skip_log_headers                 If true, avoid headers when opening log files (no effect when -logtostderr=true)
@@ -71,8 +69,6 @@ minikube profile help [command] [flags]
       --one_output                       If true, only write logs to their native severity level (vs also writing to each lower severity level; no effect when -logtostderr=true)
   -p, --profile string                   The name of the minikube VM being used. This can be set to allow having multiple instances of minikube independently. (default "minikube")
       --rootless                         Force to use rootless driver (docker and podman driver only)
-      --s2a_enable_appengine_dialer      If true, opportunistically use AppEngine-specific dialer to call S2A.
-      --s2a_timeout duration             Timeout enforced on the connection to the S2A service for handshake. (default 3s)
       --skip-audit                       Skip recording the current command in the audit logs.
       --skip_headers                     If true, avoid header prefixes in the log messages
       --skip_log_headers                 If true, avoid headers when opening log files (no effect when -logtostderr=true)
@@ -116,8 +112,6 @@ minikube profile list [flags]
       --one_output                       If true, only write logs to their native severity level (vs also writing to each lower severity level; no effect when -logtostderr=true)
   -p, --profile string                   The name of the minikube VM being used. This can be set to allow having multiple instances of minikube independently. (default "minikube")
       --rootless                         Force to use rootless driver (docker and podman driver only)
-      --s2a_enable_appengine_dialer      If true, opportunistically use AppEngine-specific dialer to call S2A.
-      --s2a_timeout duration             Timeout enforced on the connection to the S2A service for handshake. (default 3s)
       --skip-audit                       Skip recording the current command in the audit logs.
       --skip_headers                     If true, avoid header prefixes in the log messages
       --skip_log_headers                 If true, avoid headers when opening log files (no effect when -logtostderr=true)
diff --git a/site/content/en/docs/commands/service.md b/site/content/en/docs/commands/service.md
index a72146418..d04526511 100644
--- a/site/content/en/docs/commands/service.md
+++ b/site/content/en/docs/commands/service.md
@@ -44,8 +44,6 @@ minikube service [flags] SERVICE
       --one_output                       If true, only write logs to their native severity level (vs also writing to each lower severity level; no effect when -logtostderr=true)
   -p, --profile string                   The name of the minikube VM being used. This can be set to allow having multiple instances of minikube independently. (default "minikube")
       --rootless                         Force to use rootless driver (docker and podman driver only)
-      --s2a_enable_appengine_dialer      If true, opportunistically use AppEngine-specific dialer to call S2A.
-      --s2a_timeout duration             Timeout enforced on the connection to the S2A service for handshake. (default 3s)
       --skip-audit                       Skip recording the current command in the audit logs.
       --skip_headers                     If true, avoid header prefixes in the log messages
       --skip_log_headers                 If true, avoid headers when opening log files (no effect when -logtostderr=true)
@@ -84,8 +82,6 @@ minikube service help [command] [flags]
       --one_output                       If true, only write logs to their native severity level (vs also writing to each lower severity level; no effect when -logtostderr=true)
   -p, --profile string                   The name of the minikube VM being used. This can be set to allow having multiple instances of minikube independently. (default "minikube")
       --rootless                         Force to use rootless driver (docker and podman driver only)
-      --s2a_enable_appengine_dialer      If true, opportunistically use AppEngine-specific dialer to call S2A.
-      --s2a_timeout duration             Timeout enforced on the connection to the S2A service for handshake. (default 3s)
       --skip-audit                       Skip recording the current command in the audit logs.
       --skip_headers                     If true, avoid header prefixes in the log messages
       --skip_log_headers                 If true, avoid headers when opening log files (no effect when -logtostderr=true)
@@ -130,8 +126,6 @@ minikube service list [flags]
       --one_output                       If true, only write logs to their native severity level (vs also writing to each lower severity level; no effect when -logtostderr=true)
   -p, --profile string                   The name of the minikube VM being used. This can be set to allow having multiple instances of minikube independently. (default "minikube")
       --rootless                         Force to use rootless driver (docker and podman driver only)
-      --s2a_enable_appengine_dialer      If true, opportunistically use AppEngine-specific dialer to call S2A.
-      --s2a_timeout duration             Timeout enforced on the connection to the S2A service for handshake. (default 3s)
       --skip-audit                       Skip recording the current command in the audit logs.
       --skip_headers                     If true, avoid header prefixes in the log messages
       --skip_log_headers                 If true, avoid headers when opening log files (no effect when -logtostderr=true)
diff --git a/site/content/en/docs/commands/ssh-host.md b/site/content/en/docs/commands/ssh-host.md
index 863f02d90..2bfc29638 100644
--- a/site/content/en/docs/commands/ssh-host.md
+++ b/site/content/en/docs/commands/ssh-host.md
@@ -39,8 +39,6 @@ minikube ssh-host [flags]
       --one_output                       If true, only write logs to their native severity level (vs also writing to each lower severity level; no effect when -logtostderr=true)
   -p, --profile string                   The name of the minikube VM being used. This can be set to allow having multiple instances of minikube independently. (default "minikube")
       --rootless                         Force to use rootless driver (docker and podman driver only)
-      --s2a_enable_appengine_dialer      If true, opportunistically use AppEngine-specific dialer to call S2A.
-      --s2a_timeout duration             Timeout enforced on the connection to the S2A service for handshake. (default 3s)
       --skip-audit                       Skip recording the current command in the audit logs.
       --skip_headers                     If true, avoid header prefixes in the log messages
       --skip_log_headers                 If true, avoid headers when opening log files (no effect when -logtostderr=true)
diff --git a/site/content/en/docs/commands/ssh-key.md b/site/content/en/docs/commands/ssh-key.md
index 12c049bcf..eb9d460d7 100644
--- a/site/content/en/docs/commands/ssh-key.md
+++ b/site/content/en/docs/commands/ssh-key.md
@@ -38,8 +38,6 @@ minikube ssh-key [flags]
       --one_output                       If true, only write logs to their native severity level (vs also writing to each lower severity level; no effect when -logtostderr=true)
   -p, --profile string                   The name of the minikube VM being used. This can be set to allow having multiple instances of minikube independently. (default "minikube")
       --rootless                         Force to use rootless driver (docker and podman driver only)
-      --s2a_enable_appengine_dialer      If true, opportunistically use AppEngine-specific dialer to call S2A.
-      --s2a_timeout duration             Timeout enforced on the connection to the S2A service for handshake. (default 3s)
       --skip-audit                       Skip recording the current command in the audit logs.
       --skip_headers                     If true, avoid header prefixes in the log messages
       --skip_log_headers                 If true, avoid headers when opening log files (no effect when -logtostderr=true)
diff --git a/site/content/en/docs/commands/ssh.md b/site/content/en/docs/commands/ssh.md
index 6ff3f1f27..504cf50d4 100644
--- a/site/content/en/docs/commands/ssh.md
+++ b/site/content/en/docs/commands/ssh.md
@@ -39,8 +39,6 @@ minikube ssh [flags]
       --one_output                       If true, only write logs to their native severity level (vs also writing to each lower severity level; no effect when -logtostderr=true)
   -p, --profile string                   The name of the minikube VM being used. This can be set to allow having multiple instances of minikube independently. (default "minikube")
       --rootless                         Force to use rootless driver (docker and podman driver only)
-      --s2a_enable_appengine_dialer      If true, opportunistically use AppEngine-specific dialer to call S2A.
-      --s2a_timeout duration             Timeout enforced on the connection to the S2A service for handshake. (default 3s)
       --skip-audit                       Skip recording the current command in the audit logs.
       --skip_headers                     If true, avoid header prefixes in the log messages
       --skip_log_headers                 If true, avoid headers when opening log files (no effect when -logtostderr=true)
diff --git a/site/content/en/docs/commands/start.md b/site/content/en/docs/commands/start.md
index fc72f60eb..a2b37dfde 100644
--- a/site/content/en/docs/commands/start.md
+++ b/site/content/en/docs/commands/start.md
@@ -136,8 +136,6 @@ minikube start [flags]
       --one_output                       If true, only write logs to their native severity level (vs also writing to each lower severity level; no effect when -logtostderr=true)
   -p, --profile string                   The name of the minikube VM being used. This can be set to allow having multiple instances of minikube independently. (default "minikube")
       --rootless                         Force to use rootless driver (docker and podman driver only)
-      --s2a_enable_appengine_dialer      If true, opportunistically use AppEngine-specific dialer to call S2A.
-      --s2a_timeout duration             Timeout enforced on the connection to the S2A service for handshake. (default 3s)
       --skip-audit                       Skip recording the current command in the audit logs.
       --skip_headers                     If true, avoid header prefixes in the log messages
       --skip_log_headers                 If true, avoid headers when opening log files (no effect when -logtostderr=true)
diff --git a/site/content/en/docs/commands/status.md b/site/content/en/docs/commands/status.md
index 5102530d1..1180f807f 100644
--- a/site/content/en/docs/commands/status.md
+++ b/site/content/en/docs/commands/status.md
@@ -45,8 +45,6 @@ minikube status [flags]
       --one_output                       If true, only write logs to their native severity level (vs also writing to each lower severity level; no effect when -logtostderr=true)
   -p, --profile string                   The name of the minikube VM being used. This can be set to allow having multiple instances of minikube independently. (default "minikube")
       --rootless                         Force to use rootless driver (docker and podman driver only)
-      --s2a_enable_appengine_dialer      If true, opportunistically use AppEngine-specific dialer to call S2A.
-      --s2a_timeout duration             Timeout enforced on the connection to the S2A service for handshake. (default 3s)
       --skip-audit                       Skip recording the current command in the audit logs.
       --skip_headers                     If true, avoid header prefixes in the log messages
       --skip_log_headers                 If true, avoid headers when opening log files (no effect when -logtostderr=true)
diff --git a/site/content/en/docs/commands/stop.md b/site/content/en/docs/commands/stop.md
index 80e2e6f4d..1b8e4e2fb 100644
--- a/site/content/en/docs/commands/stop.md
+++ b/site/content/en/docs/commands/stop.md
@@ -42,8 +42,6 @@ minikube stop [flags]
       --one_output                       If true, only write logs to their native severity level (vs also writing to each lower severity level; no effect when -logtostderr=true)
   -p, --profile string                   The name of the minikube VM being used. This can be set to allow having multiple instances of minikube independently. (default "minikube")
       --rootless                         Force to use rootless driver (docker and podman driver only)
-      --s2a_enable_appengine_dialer      If true, opportunistically use AppEngine-specific dialer to call S2A.
-      --s2a_timeout duration             Timeout enforced on the connection to the S2A service for handshake. (default 3s)
       --skip-audit                       Skip recording the current command in the audit logs.
       --skip_headers                     If true, avoid header prefixes in the log messages
       --skip_log_headers                 If true, avoid headers when opening log files (no effect when -logtostderr=true)
diff --git a/site/content/en/docs/commands/tunnel.md b/site/content/en/docs/commands/tunnel.md
index 1a900ea99..bb6b87865 100644
--- a/site/content/en/docs/commands/tunnel.md
+++ b/site/content/en/docs/commands/tunnel.md
@@ -39,8 +39,6 @@ minikube tunnel [flags]
       --one_output                       If true, only write logs to their native severity level (vs also writing to each lower severity level; no effect when -logtostderr=true)
   -p, --profile string                   The name of the minikube VM being used. This can be set to allow having multiple instances of minikube independently. (default "minikube")
       --rootless                         Force to use rootless driver (docker and podman driver only)
-      --s2a_enable_appengine_dialer      If true, opportunistically use AppEngine-specific dialer to call S2A.
-      --s2a_timeout duration             Timeout enforced on the connection to the S2A service for handshake. (default 3s)
       --skip-audit                       Skip recording the current command in the audit logs.
       --skip_headers                     If true, avoid header prefixes in the log messages
       --skip_log_headers                 If true, avoid headers when opening log files (no effect when -logtostderr=true)
diff --git a/site/content/en/docs/commands/unpause.md b/site/content/en/docs/commands/unpause.md
index 57ff88b1e..f24e99165 100644
--- a/site/content/en/docs/commands/unpause.md
+++ b/site/content/en/docs/commands/unpause.md
@@ -44,8 +44,6 @@ minikube unpause [flags]
       --one_output                       If true, only write logs to their native severity level (vs also writing to each lower severity level; no effect when -logtostderr=true)
   -p, --profile string                   The name of the minikube VM being used. This can be set to allow having multiple instances of minikube independently. (default "minikube")
       --rootless                         Force to use rootless driver (docker and podman driver only)
-      --s2a_enable_appengine_dialer      If true, opportunistically use AppEngine-specific dialer to call S2A.
-      --s2a_timeout duration             Timeout enforced on the connection to the S2A service for handshake. (default 3s)
       --skip-audit                       Skip recording the current command in the audit logs.
       --skip_headers                     If true, avoid header prefixes in the log messages
       --skip_log_headers                 If true, avoid headers when opening log files (no effect when -logtostderr=true)
diff --git a/site/content/en/docs/commands/update-check.md b/site/content/en/docs/commands/update-check.md
index d63e276e0..89d056ef4 100644
--- a/site/content/en/docs/commands/update-check.md
+++ b/site/content/en/docs/commands/update-check.md
@@ -32,8 +32,6 @@ minikube update-check [flags]
       --one_output                       If true, only write logs to their native severity level (vs also writing to each lower severity level; no effect when -logtostderr=true)
   -p, --profile string                   The name of the minikube VM being used. This can be set to allow having multiple instances of minikube independently. (default "minikube")
       --rootless                         Force to use rootless driver (docker and podman driver only)
-      --s2a_enable_appengine_dialer      If true, opportunistically use AppEngine-specific dialer to call S2A.
-      --s2a_timeout duration             Timeout enforced on the connection to the S2A service for handshake. (default 3s)
       --skip-audit                       Skip recording the current command in the audit logs.
       --skip_headers                     If true, avoid header prefixes in the log messages
       --skip_log_headers                 If true, avoid headers when opening log files (no effect when -logtostderr=true)
diff --git a/site/content/en/docs/commands/update-context.md b/site/content/en/docs/commands/update-context.md
index 02b92a529..5b0e2af3a 100644
--- a/site/content/en/docs/commands/update-context.md
+++ b/site/content/en/docs/commands/update-context.md
@@ -33,8 +33,6 @@ minikube update-context [flags]
       --one_output                       If true, only write logs to their native severity level (vs also writing to each lower severity level; no effect when -logtostderr=true)
   -p, --profile string                   The name of the minikube VM being used. This can be set to allow having multiple instances of minikube independently. (default "minikube")
       --rootless                         Force to use rootless driver (docker and podman driver only)
-      --s2a_enable_appengine_dialer      If true, opportunistically use AppEngine-specific dialer to call S2A.
-      --s2a_timeout duration             Timeout enforced on the connection to the S2A service for handshake. (default 3s)
       --skip-audit                       Skip recording the current command in the audit logs.
       --skip_headers                     If true, avoid header prefixes in the log messages
       --skip_log_headers                 If true, avoid headers when opening log files (no effect when -logtostderr=true)
diff --git a/site/content/en/docs/commands/version.md b/site/content/en/docs/commands/version.md
index b2734ecac..a6d478d14 100644
--- a/site/content/en/docs/commands/version.md
+++ b/site/content/en/docs/commands/version.md
@@ -40,8 +40,6 @@ minikube version [flags]
       --one_output                       If true, only write logs to their native severity level (vs also writing to each lower severity level; no effect when -logtostderr=true)
   -p, --profile string                   The name of the minikube VM being used. This can be set to allow having multiple instances of minikube independently. (default "minikube")
       --rootless                         Force to use rootless driver (docker and podman driver only)
-      --s2a_enable_appengine_dialer      If true, opportunistically use AppEngine-specific dialer to call S2A.
-      --s2a_timeout duration             Timeout enforced on the connection to the S2A service for handshake. (default 3s)
       --skip-audit                       Skip recording the current command in the audit logs.
       --skip_headers                     If true, avoid header prefixes in the log messages
       --skip_log_headers                 If true, avoid headers when opening log files (no effect when -logtostderr=true)
diff --git a/site/content/en/docs/contrib/errorcodes.en.md b/site/content/en/docs/contrib/errorcodes.en.md
index 6f766dede..ce5689c7e 100644
--- a/site/content/en/docs/contrib/errorcodes.en.md
+++ b/site/content/en/docs/contrib/errorcodes.en.md
@@ -7,6 +7,9 @@ description: >
 
 ## Error Strings
 
+"MK_PATCH_NOT_FOUND" (Exit code ExProgramUsage)  
+minikube could not find a patch for the provided major.minor version  
+
 "MK_USAGE" (Exit code ExProgramUsage)  
 minikube has been passed an incorrect parameter  
 
diff --git a/translations/de.json b/translations/de.json
index 6b359f6ab..1bb842561 100644
--- a/translations/de.json
+++ b/translations/de.json
@@ -799,6 +799,7 @@
 	"Tunnel successfully started": "Tunnel erfolgreich gestartet",
 	"Unable to bind flags": "Konnte Parameter-Flags nicht binden",
 	"Unable to create dedicated network, this might result in cluster IP change after restart: {{.error}}": "Kann dediziertes Netzwerk nicht anlegen, dies kann dazu führen, dass sich die Cluster IP ändert, wenn der Cluster neugestartet wird: {{.error}}",
+	"Unable to detect the latest patch release for specified major.minor version v{{.majorminor}}": "",
 	"Unable to enable dashboard": "Kann Dashboard nicht aktivieren",
 	"Unable to fetch latest version info": "Kann aktuellste Versions-Info nicht laden",
 	"Unable to find control plane": "Kann Kontroll-Ebene nicht finden",
@@ -867,6 +868,7 @@
 	"Userspace file server is shutdown": "Userspace File Server ist heruntergefahren",
 	"Userspace file server: ": "Userspace File Server:",
 	"Using Kubernetes v1.24+ with the Docker runtime requires cri-docker to be installed": "",
+	"Using Kubernetes {{.version}} since patch version was unspecified": "",
 	"Using image repository {{.name}}": "Verwenden des Image-Repositorys {{.name}}",
 	"Using image {{.registry}}{{.image}}": "Verwende Image {{.registry}}{{.image}}",
 	"Using image {{.registry}}{{.image}} (global image repository)": "Verwende das Image {{.registry}}{{.image}} (globale Image Repository)",
diff --git a/translations/es.json b/translations/es.json
index b64ab2715..5cd506e60 100644
--- a/translations/es.json
+++ b/translations/es.json
@@ -800,6 +800,7 @@
 	"Tunnel successfully started": "",
 	"Unable to bind flags": "",
 	"Unable to create dedicated network, this might result in cluster IP change after restart: {{.error}}": "",
+	"Unable to detect the latest patch release for specified major.minor version v{{.majorminor}}": "",
 	"Unable to enable dashboard": "",
 	"Unable to fetch latest version info": "",
 	"Unable to find control plane": "",
@@ -868,6 +869,7 @@
 	"Userspace file server is shutdown": "",
 	"Userspace file server: ": "",
 	"Using Kubernetes v1.24+ with the Docker runtime requires cri-docker to be installed": "",
+	"Using Kubernetes {{.version}} since patch version was unspecified": "",
 	"Using image repository {{.name}}": "Utilizando el repositorio de imágenes {{.name}}",
 	"Using image {{.registry}}{{.image}}": "",
 	"Using image {{.registry}}{{.image}} (global image repository)": "",
diff --git a/translations/fr.json b/translations/fr.json
index e1eefcb86..c9d20c999 100644
--- a/translations/fr.json
+++ b/translations/fr.json
@@ -779,6 +779,7 @@
 	"Tunnel successfully started": "Tunnel démarré avec succès",
 	"Unable to bind flags": "Impossible de lier les indicateurs",
 	"Unable to create dedicated network, this might result in cluster IP change after restart: {{.error}}": "Impossible de créer un réseau dédié, cela peut entraîner une modification de l'adresse IP du cluster après le redémarrage : {{.error}}",
+	"Unable to detect the latest patch release for specified major.minor version v{{.majorminor}}": "",
 	"Unable to enable dashboard": "Impossible d'activer le tableau de bord",
 	"Unable to fetch latest version info": "Impossible de récupérer les informations sur la dernière version",
 	"Unable to find control plane": "Impossible de trouver le plan de contrôle",
@@ -845,6 +846,7 @@
 	"Userspace file server is shutdown": "Le serveur de fichiers de l'espace utilisateur est arrêté",
 	"Userspace file server: ": "Serveur de fichiers de l'espace utilisateur :",
 	"Using Kubernetes v1.24+ with the Docker runtime requires cri-docker to be installed": "L'utilisation de Kubernetes v1.24+ avec le runtime Docker nécessite l'installation de cri-docker",
+	"Using Kubernetes {{.version}} since patch version was unspecified": "",
 	"Using image repository {{.name}}": "Utilisation du dépôt d'images {{.name}}…",
 	"Using image {{.registry}}{{.image}}": "Utilisation de l'image {{.registry}}{{.image}}",
 	"Using image {{.registry}}{{.image}} (global image repository)": "Utilisation de l'image {{.registry}}{{.image}} (référentiel d'images global)",
diff --git a/translations/ja.json b/translations/ja.json
index ba8ab7754..1ff94b48b 100644
--- a/translations/ja.json
+++ b/translations/ja.json
@@ -748,6 +748,7 @@
 	"Tunnel successfully started": "トンネルが無事開始しました",
 	"Unable to bind flags": "フラグをバインドできません",
 	"Unable to create dedicated network, this might result in cluster IP change after restart: {{.error}}": "独立したネットワークの作成ができず、再起動後にクラスター IP が変更される結果になるかも知れません: {{.error}}",
+	"Unable to detect the latest patch release for specified major.minor version v{{.majorminor}}": "",
 	"Unable to enable dashboard": "ダッシュボードが有効になりません",
 	"Unable to fetch latest version info": "最新バージョン情報を取得できません",
 	"Unable to find control plane": "コントロールプレーンが見つかりません",
@@ -812,6 +813,7 @@
 	"Userspace file server is shutdown": "ユーザースペースのファイルサーバーが停止しました",
 	"Userspace file server: ": "ユーザースペースのファイルサーバー: ",
 	"Using Kubernetes v1.24+ with the Docker runtime requires cri-docker to be installed": "Docker ランタイムで Kubernetes v1.24+ を使用するには、cri-docker をインストールする必要があります",
+	"Using Kubernetes {{.version}} since patch version was unspecified": "",
 	"Using image repository {{.name}}": "{{.name}} イメージリポジトリーを使用しています",
 	"Using image {{.registry}}{{.image}}": "{{.registry}}{{.image}} イメージを使用しています",
 	"Using image {{.registry}}{{.image}} (global image repository)": "{{.registry}}{{.image}} イメージ (グローバルイメージリポジトリー) を使用しています",
diff --git a/translations/ko.json b/translations/ko.json
index 2384b0b84..ad8f56213 100644
--- a/translations/ko.json
+++ b/translations/ko.json
@@ -797,6 +797,7 @@
 	"Tunnel successfully started": "",
 	"Unable to bind flags": "flags 를 합칠 수 없습니다",
 	"Unable to create dedicated network, this might result in cluster IP change after restart: {{.error}}": "",
+	"Unable to detect the latest patch release for specified major.minor version v{{.majorminor}}": "",
 	"Unable to enable dashboard": "대시보드를 활성화할 수 없습니다",
 	"Unable to fetch latest version info": "최신 버전 정보를 가져올 수 없습니다",
 	"Unable to find control plane": "",
@@ -867,6 +868,7 @@
 	"Userspace file server is shutdown": "",
 	"Userspace file server: ": "",
 	"Using Kubernetes v1.24+ with the Docker runtime requires cri-docker to be installed": "",
+	"Using Kubernetes {{.version}} since patch version was unspecified": "",
 	"Using image repository {{.name}}": "",
 	"Using image {{.registry}}{{.image}}": "",
 	"Using image {{.registry}}{{.image}} (global image repository)": "",
diff --git a/translations/pl.json b/translations/pl.json
index 78456bc1f..600277542 100644
--- a/translations/pl.json
+++ b/translations/pl.json
@@ -812,6 +812,7 @@
 	"Tunnel successfully started": "",
 	"Unable to bind flags": "",
 	"Unable to create dedicated network, this might result in cluster IP change after restart: {{.error}}": "",
+	"Unable to detect the latest patch release for specified major.minor version v{{.majorminor}}": "",
 	"Unable to enable dashboard": "",
 	"Unable to fetch latest version info": "",
 	"Unable to find control plane": "",
@@ -877,6 +878,7 @@
 	"Userspace file server is shutdown": "",
 	"Userspace file server: ": "",
 	"Using Kubernetes v1.24+ with the Docker runtime requires cri-docker to be installed": "",
+	"Using Kubernetes {{.version}} since patch version was unspecified": "",
 	"Using image repository {{.name}}": "",
 	"Using image {{.registry}}{{.image}}": "",
 	"Using image {{.registry}}{{.image}} (global image repository)": "",
diff --git a/translations/ru.json b/translations/ru.json
index 7d27908a6..d92d0c80e 100644
--- a/translations/ru.json
+++ b/translations/ru.json
@@ -739,6 +739,7 @@
 	"Tunnel successfully started": "",
 	"Unable to bind flags": "",
 	"Unable to create dedicated network, this might result in cluster IP change after restart: {{.error}}": "",
+	"Unable to detect the latest patch release for specified major.minor version v{{.majorminor}}": "",
 	"Unable to enable dashboard": "",
 	"Unable to fetch latest version info": "",
 	"Unable to find control plane": "",
@@ -803,6 +804,7 @@
 	"Userspace file server is shutdown": "",
 	"Userspace file server: ": "",
 	"Using Kubernetes v1.24+ with the Docker runtime requires cri-docker to be installed": "",
+	"Using Kubernetes {{.version}} since patch version was unspecified": "",
 	"Using image repository {{.name}}": "",
 	"Using image {{.registry}}{{.image}}": "Используется образ {{.registry}}{{.image}}",
 	"Using image {{.registry}}{{.image}} (global image repository)": "",
diff --git a/translations/strings.txt b/translations/strings.txt
index 662a1ec39..254467e04 100644
--- a/translations/strings.txt
+++ b/translations/strings.txt
@@ -739,6 +739,7 @@
 	"Tunnel successfully started": "",
 	"Unable to bind flags": "",
 	"Unable to create dedicated network, this might result in cluster IP change after restart: {{.error}}": "",
+	"Unable to detect the latest patch release for specified major.minor version v{{.majorminor}}": "",
 	"Unable to enable dashboard": "",
 	"Unable to fetch latest version info": "",
 	"Unable to find control plane": "",
@@ -803,6 +804,7 @@
 	"Userspace file server is shutdown": "",
 	"Userspace file server: ": "",
 	"Using Kubernetes v1.24+ with the Docker runtime requires cri-docker to be installed": "",
+	"Using Kubernetes {{.version}} since patch version was unspecified": "",
 	"Using image repository {{.name}}": "",
 	"Using image {{.registry}}{{.image}}": "",
 	"Using image {{.registry}}{{.image}} (global image repository)": "",
diff --git a/translations/zh-CN.json b/translations/zh-CN.json
index faa1aa358..7de316aff 100644
--- a/translations/zh-CN.json
+++ b/translations/zh-CN.json
@@ -903,6 +903,7 @@
 	"Tunnel successfully started": "",
 	"Unable to bind flags": "无法绑定标志",
 	"Unable to create dedicated network, this might result in cluster IP change after restart: {{.error}}": "",
+	"Unable to detect the latest patch release for specified major.minor version v{{.majorminor}}": "",
 	"Unable to determine a default driver to use. Try specifying --vm-driver, or see https://minikube.sigs.k8s.io/docs/start/": "无法确定要使用的默认驱动。尝试通过 --vm-dirver 指定，或者查阅 https://minikube.sigs.k8s.io/docs/start/",
 	"Unable to enable dashboard": "",
 	"Unable to fetch latest version info": "",
@@ -978,6 +979,7 @@
 	"Userspace file server is shutdown": "",
 	"Userspace file server: ": "",
 	"Using Kubernetes v1.24+ with the Docker runtime requires cri-docker to be installed": "",
+	"Using Kubernetes {{.version}} since patch version was unspecified": "",
 	"Using image repository {{.name}}": "正在使用镜像存储库 {{.name}}",
 	"Using image {{.registry}}{{.image}}": "",
 	"Using image {{.registry}}{{.image}} (global image repository)": "",


Test patch:
diff --git a/cmd/minikube/cmd/start_test.go b/cmd/minikube/cmd/start_test.go
index 9b0088f1e..434187b4f 100644
--- a/cmd/minikube/cmd/start_test.go
+++ b/cmd/minikube/cmd/start_test.go
@@ -25,6 +25,7 @@ import (
 	"github.com/spf13/cobra"
 	"github.com/spf13/viper"
 
+	"k8s.io/klog/v2"
 	cfg "k8s.io/minikube/pkg/minikube/config"
 	"k8s.io/minikube/pkg/minikube/constants"
 	"k8s.io/minikube/pkg/minikube/cruntime"
@@ -62,6 +63,16 @@ func TestGetKubernetesVersion(t *testing.T) {
 			paramVersion:    "v1.16.0",
 			cfg:             &cfg.ClusterConfig{KubernetesConfig: cfg.KubernetesConfig{KubernetesVersion: "v1.15.0"}},
 		},
+		{
+			description:     "kubernetes-version without patch version",
+			expectedVersion: "v1.16.15",
+			paramVersion:    "v1.16",
+		},
+		{
+			description:     "kubernetes-version without patch version",
+			expectedVersion: "v1.16.15",
+			paramVersion:    "1.16",
+		},
 		{
 			description:     "kubernetes-version given as 'stable', no config",
 			expectedVersion: constants.DefaultKubernetesVersion,
@@ -92,7 +103,10 @@ func TestGetKubernetesVersion(t *testing.T) {
 	for _, test := range tests {
 		t.Run(test.description, func(t *testing.T) {
 			viper.SetDefault(kubernetesVersion, test.paramVersion)
-			version := getKubernetesVersion(test.cfg)
+			version, err := getKubernetesVersion(test.cfg)
+			if err != nil {
+				klog.Warningf("failed getting Kubernetes version: %v", err)
+			}
 
 			// check whether we are getting the expected version
 			if version != test.expectedVersion {
@@ -451,6 +465,109 @@ func TestValidateRuntime(t *testing.T) {
 	}
 }
 
+func TestIsTwoDigitSemver(t *testing.T) {
+	var tcs = []struct {
+		desc     string
+		version  string
+		expected bool
+	}{
+		{
+			desc:     "a valid three digit version",
+			version:  "1.26.5",
+			expected: false,
+		},
+		{
+			desc:     "a valid two digit version",
+			version:  "1.26",
+			expected: true,
+		},
+		{
+			desc:     "a valid two digit version with a period",
+			version:  "1.26.",
+			expected: false,
+		},
+		{
+			desc:     "an invalid major version",
+			version:  "2",
+			expected: false,
+		},
+		{
+			desc:     "a valid major version",
+			version:  "1",
+			expected: false,
+		},
+		{
+			desc:     "a two digit version with a 0 as the major/minor components",
+			version:  "0.0",
+			expected: true,
+		},
+		{
+			desc:     "a two digit version with negative major version",
+			version:  "-1.0",
+			expected: false,
+		},
+		{
+			desc:     "a two digit version with negative minor version",
+			version:  "1.-1",
+			expected: false,
+		},
+		{
+			desc:     "a missing minor version",
+			version:  "1.",
+			expected: false,
+		},
+		{
+			desc:     "a missing major version",
+			version:  ".2",
+			expected: false,
+		},
+		{
+			desc:     "a valid two digit version with whitespace between components",
+			version:  "1. 1",
+			expected: false,
+		},
+		{
+			desc:     "a two digit version with a non-digit major component",
+			version:  "a.12",
+			expected: false,
+		},
+		{
+			desc:     "a two digit version with a non-digit minor component",
+			version:  "1.a",
+			expected: false,
+		},
+		{
+			desc:     "a two digit version with extraneous non-digits in minor component",
+			version:  "1.2a",
+			expected: false,
+		},
+		{
+			desc:     "a two digit version larger major/minor components",
+			version:  "123456789.987654321",
+			expected: true,
+		},
+		{
+			desc:     "a valid two digit version with a version prefix",
+			version:  "v1.26",
+			expected: false,
+		},
+		{
+			desc:     "a valid three digit version with a version prefix",
+			version:  "v1.26.5",
+			expected: false,
+		},
+	}
+	for _, tc := range tcs {
+		t.Run(tc.desc, func(t *testing.T) {
+			actual := isTwoDigitSemver(tc.version)
+			// check whether the function correctly verifies if it is a 2 digit semver
+			if actual != tc.expected {
+				t.Fatalf("test failed. Expected version %s to return %t", tc.version, tc.expected)
+			}
+		})
+	}
+}
+
 func TestValidatePorts(t *testing.T) {
 	isMicrosoftWSL := detect.IsMicrosoftWSL()
 	type portTest struct {