From eb66c6797e8f648e2011cac5e8776bcfa4892e12 Mon Sep 17 00:00:00 2001 From: Li Yi Date: Sun, 26 Sep 2021 15:36:36 +0800 Subject: [PATCH 001/111] Initial support for adding Aliyun mirror for preload images and Kubernetes binaries Signed-off-by: Li Yi --- cmd/minikube/cmd/start_flags.go | 4 ++ deploy/addons/aliyun_mirror.json | 102 ++++++++++++++++++++++++++++++ deploy/addons/assets.go | 4 ++ pkg/addons/addons.go | 4 ++ pkg/minikube/assets/addons.go | 19 +----- pkg/minikube/download/binary.go | 2 +- pkg/minikube/download/download.go | 8 +++ pkg/minikube/download/preload.go | 2 +- pkg/minikube/image/image.go | 1 - pkg/minikube/notify/constants.go | 5 ++ pkg/minikube/notify/notify.go | 5 ++ 11 files changed, 135 insertions(+), 21 deletions(-) create mode 100644 deploy/addons/aliyun_mirror.json diff --git a/cmd/minikube/cmd/start_flags.go b/cmd/minikube/cmd/start_flags.go index ba87db888eef..f03c0bef4a1e 100644 --- a/cmd/minikube/cmd/start_flags.go +++ b/cmd/minikube/cmd/start_flags.go @@ -379,6 +379,10 @@ func getRepository(cmd *cobra.Command, k8sVersion string) string { repository = autoSelectedRepository } + if repository == "registry.cn-hangzhou.aliyuncs.com/google_containers" { + download.SetAliyunMirror() + } + if cmd.Flags().Changed(imageRepository) || cmd.Flags().Changed(imageMirrorCountry) { out.Styled(style.Success, "Using image repository {{.name}}", out.V{"name": repository}) } diff --git a/deploy/addons/aliyun_mirror.json b/deploy/addons/aliyun_mirror.json new file mode 100644 index 000000000000..b0d3a0b13539 --- /dev/null +++ b/deploy/addons/aliyun_mirror.json @@ -0,0 +1,102 @@ +{ + "kubernetesui/dashboard": "registry.cn-hangzhou.aliyuncs.com/google_containers/dashboard", + "kubernetesui/metrics-scraper": "registry.cn-hangzhou.aliyuncs.com/google_containers/metrics-scraper", + "gcr.io/k8s-minikube/auto-pause-hook": "registry.cn-hangzhou.aliyuncs.com/google_containers/auto-pause-hook", + "quay.io/operator-framework/olm": "registry.cn-hangzhou.aliyuncs.com/google_containers/olm", + "quay.io/operator-framework/upstream-community-operators": "registry.cn-hangzhou.aliyuncs.com/google_containers/upstream-community-operators", + "k8s.gcr.io/kube-registry-proxy": "registry.cn-hangzhou.aliyuncs.com/google_containers/kube-registry-proxy", + "upmcenterprises/registry-creds": "registry.cn-hangzhou.aliyuncs.com/google_containers/registry-creds", + "quay.io/rhdevelopers/core-dns-patcher": "registry.cn-hangzhou.aliyuncs.com/google_containers/core-dns-patcher", + "nvidia/k8s-device-plugin": "registry.cn-hangzhou.aliyuncs.com/google_containers/k8s-device-plugin", + "ivans3/minikube-log-viewer": "registry.cn-hangzhou.aliyuncs.com/google_containers/minikube-log-viewer", + "cryptexlabs/minikube-ingress-dns": "registry.cn-hangzhou.aliyuncs.com/google_containers/minikube-ingress-dns", + "quay.io/datawire/ambassador-operator": "registry.cn-hangzhou.aliyuncs.com/google_containers/ambassador-operator", + "jettech/kube-webhook-certgen": "registry.cn-hangzhou.aliyuncs.com/google_containers/kube-webhook-certgen", + "gcr.io/k8s-minikube/gcp-auth-webhook": "registry.cn-hangzhou.aliyuncs.com/google_containers/gcp-auth-webhook", + "k8s.gcr.io/sig-storage/snapshot-controller": "registry.cn-hangzhou.aliyuncs.com/google_containers/snapshot-controller", + "k8s.gcr.io/sig-storage/csi-attacher": "registry.cn-hangzhou.aliyuncs.com/google_containers/csi-attacher", + "k8s.gcr.io/sig-storage/csi-external-health-monitor-agent": "registry.cn-hangzhou.aliyuncs.com/google_containers/csi-external-health-monitor-agent", + "k8s.gcr.io/sig-storage/csi-external-health-monitor-controller": "registry.cn-hangzhou.aliyuncs.com/google_containers/csi-external-health-monitor-controller", + "k8s.gcr.io/sig-storage/csi-node-driver-registrar": "registry.cn-hangzhou.aliyuncs.com/google_containers/csi-node-driver-registrar", + "k8s.gcr.io/sig-storage/hostpathplugin": "registry.cn-hangzhou.aliyuncs.com/google_containers/hostpathplugin", + "k8s.gcr.io/sig-storage/livenessprobe": "registry.cn-hangzhou.aliyuncs.com/google_containers/livenessprobe", + "k8s.gcr.io/sig-storage/csi-resizer": "registry.cn-hangzhou.aliyuncs.com/google_containers/csi-resizer", + "k8s.gcr.io/sig-storage/csi-snapshotter": "registry.cn-hangzhou.aliyuncs.com/google_containers/csi-snapshotter", + "k8s.gcr.io/sig-storage/csi-provisioner": "registry.cn-hangzhou.aliyuncs.com/google_containers/csi-provisioner", + "registry": "registry.cn-hangzhou.aliyuncs.com/google_containers/registry", + "quay.io/nixpanic/glusterfs-server": "registry.cn-hangzhou.aliyuncs.com/google_containers/glusterfs-server", + "heketi/heketi": "registry.cn-hangzhou.aliyuncs.com/google_containers/heketi", + "coredns/coredns": "registry.cn-hangzhou.aliyuncs.com/google_containers/coredns", + "kindest/kindnetd": "registry.cn-hangzhou.aliyuncs.com/google_containers/kindnetd", + "k8s.gcr.io/ingress-nginx/controller": "registry.cn-hangzhou.aliyuncs.com/google_containers/nginx-ingress-controller", + "gcr.io/cloud-builders/gcs-fetcher": "registry.cn-hangzhou.aliyuncs.com/cloud-builders/gcs-fetcher", + "gcr.io/google-samples/freshpod": "registry.cn-hangzhou.aliyuncs.com/google_containers/freshpod", + "gcr.io/k8s-minikube/gvisor-addon": "registry.cn-hangzhou.aliyuncs.com/google_containers/gvisor-addon", + "gcr.io/k8s-minikube/kicbase": "registry.cn-hangzhou.aliyuncs.com/google_containers/kicbase", + "gcr.io/k8s-minikube/storage-provisioner": "registry.cn-hangzhou.aliyuncs.com/google_containers/storage-provisioner", + "gcr.io/kubernetes-helm/tiller": "registry.cn-hangzhou.aliyuncs.com/google_containers/tiller", + "k8s.gcr.io/addon-resizer": "registry.cn-hangzhou.aliyuncs.com/google_containers/addon-resizer", + "k8s.gcr.io/busybox": "registry.cn-hangzhou.aliyuncs.com/google_containers/busybox", + "k8s.gcr.io/cluster-autoscaler": "registry.cn-hangzhou.aliyuncs.com/google_containers/cluster-autoscaler", + "k8s.gcr.io/coredns/coredns": "registry.cn-hangzhou.aliyuncs.com/google_containers/coredns", + "k8s.gcr.io/defaultbackend": "registry.cn-hangzhou.aliyuncs.com/google_containers/defaultbackend", + "k8s.gcr.io/echoserver": "registry.cn-hangzhou.aliyuncs.com/google_containers/echoserver", + "k8s.gcr.io/elasticsearch": "registry.cn-hangzhou.aliyuncs.com/google_containers/elasticsearch", + "k8s.gcr.io/etcd": "registry.cn-hangzhou.aliyuncs.com/google_containers/etcd", + "k8s.gcr.io/etcd-amd64": "registry.cn-hangzhou.aliyuncs.com/google_containers/etcd-amd64", + "k8s.gcr.io/exechealthz-amd64": "registry.cn-hangzhou.aliyuncs.com/google_containers/exechealthz-amd64", + "k8s.gcr.io/flannel-amd64": "registry.cn-hangzhou.aliyuncs.com/google_containers/flannel-amd64", + "k8s.gcr.io/fluentd-elasticsearch": "registry.cn-hangzhou.aliyuncs.com/google_containers/fluentd-elasticsearch", + "k8s.gcr.io/heapster": "registry.cn-hangzhou.aliyuncs.com/google_containers/heapster", + "k8s.gcr.io/heapster_grafana": "registry.cn-hangzhou.aliyuncs.com/google_containers/heapster_grafana", + "k8s.gcr.io/heapster_influxdb": "registry.cn-hangzhou.aliyuncs.com/google_containers/heapster_influxdb", + "k8s.gcr.io/heapster-amd64": "registry.cn-hangzhou.aliyuncs.com/google_containers/heapster-amd64", + "k8s.gcr.io/heapster-grafana-amd64": "registry.cn-hangzhou.aliyuncs.com/google_containers/heapster-grafana-amd64", + "k8s.gcr.io/heapster-influxdb-amd64": "registry.cn-hangzhou.aliyuncs.com/google_containers/heapster-influxdb-amd64", + "k8s.gcr.io/k8s-dns-dnsmasq-nanny-amd64": "registry.cn-hangzhou.aliyuncs.com/google_containers/k8s-dns-dnsmasq-nanny-amd64", + "k8s.gcr.io/k8s-dns-kube-dns-amd64": "registry.cn-hangzhou.aliyuncs.com/google_containers/k8s-dns-kube-dns-amd64", + "k8s.gcr.io/k8s-dns-node-cache": "registry.cn-hangzhou.aliyuncs.com/google_containers/k8s-dns-node-cache", + "k8s.gcr.io/k8s-dns-sidecar-amd64": "registry.cn-hangzhou.aliyuncs.com/google_containers/k8s-dns-sidecar-amd64", + "k8s.gcr.io/kube-addon-manager": "registry.cn-hangzhou.aliyuncs.com/google_containers/kube-addon-manager", + "k8s.gcr.io/kube-addon-manager-amd64": "registry.cn-hangzhou.aliyuncs.com/google_containers/kube-addon-manager-amd64", + "k8s.gcr.io/kube-apiserver": "registry.cn-hangzhou.aliyuncs.com/google_containers/kube-apiserver", + "k8s.gcr.io/kube-apiserver-amd64": "registry.cn-hangzhou.aliyuncs.com/google_containers/kube-apiserver-amd64", + "k8s.gcr.io/kube-controller-manager": "registry.cn-hangzhou.aliyuncs.com/google_containers/kube-controller-manager", + "k8s.gcr.io/kube-controller-manager-amd64": "registry.cn-hangzhou.aliyuncs.com/google_containers/kube-controller-manager-amd64", + "k8s.gcr.io/kube-cross": "registry.cn-hangzhou.aliyuncs.com/google_containers/kube-cross", + "k8s.gcr.io/kube-dnsmasq-amd64": "registry.cn-hangzhou.aliyuncs.com/google_containers/kube-dnsmasq-amd64", + "k8s.gcr.io/kube-proxy": "registry.cn-hangzhou.aliyuncs.com/google_containers/kube-proxy", + "k8s.gcr.io/kube-proxy-amd64": "registry.cn-hangzhou.aliyuncs.com/google_containers/kube-proxy-amd64", + "k8s.gcr.io/kube-scheduler": "registry.cn-hangzhou.aliyuncs.com/google_containers/kube-scheduler", + "k8s.gcr.io/kube-scheduler-amd64": "registry.cn-hangzhou.aliyuncs.com/google_containers/kube-scheduler-amd64", + "k8s.gcr.io/kube-state-metrics": "registry.cn-hangzhou.aliyuncs.com/google_containers/kube-state-metrics", + "k8s.gcr.io/kubedns-amd64": "registry.cn-hangzhou.aliyuncs.com/google_containers/kubedns-amd64", + "k8s.gcr.io/kubernetes-dashboard-amd64": "registry.cn-hangzhou.aliyuncs.com/google_containers/kubernetes-dashboard-amd64", + "k8s.gcr.io/metrics-server-amd64": "registry.cn-hangzhou.aliyuncs.com/google_containers/metrics-server-amd64", + "k8s.gcr.io/minikube-nvidia-driver-installer": "registry.cn-hangzhou.aliyuncs.com/google_containers/minikube-nvidia-driver-installer", + "k8s.gcr.io/mongodb-install": "registry.cn-hangzhou.aliyuncs.com/google_containers/mongodb-install", + "k8s.gcr.io/nginx-slim": "registry.cn-hangzhou.aliyuncs.com/google_containers/nginx-slim", + "k8s.gcr.io/nvidia-gpu-device-plugin": "registry.cn-hangzhou.aliyuncs.com/google_containers/nvidia-gpu-device-plugin", + "k8s.gcr.io/pause": "registry.cn-hangzhou.aliyuncs.com/google_containers/pause", + "k8s.gcr.io/pause-amd64": "registry.cn-hangzhou.aliyuncs.com/google_containers/pause-amd64", + "k8s.gcr.io/spark": "registry.cn-hangzhou.aliyuncs.com/google_containers/spark", + "k8s.gcr.io/spartakus-amd64": "registry.cn-hangzhou.aliyuncs.com/google_containers/spartakus-amd64", + "k8s.gcr.io/zeppelin": "registry.cn-hangzhou.aliyuncs.com/google_containers/zeppelin", + "quay.io/coreos/configmap-reload": "registry.cn-hangzhou.aliyuncs.com/coreos_containers/configmap-reload", + "quay.io/coreos/grafana-watcher": "registry.cn-hangzhou.aliyuncs.com/coreos_containers/grafana-watcher", + "quay.io/coreos/hyperkube": "registry.cn-hangzhou.aliyuncs.com/coreos_containers/hyperkube", + "quay.io/coreos/kube-rbac-proxy": "registry.cn-hangzhou.aliyuncs.com/coreos_containers/kube-rbac-proxy", + "quay.io/coreos/kube-state-metrics": "registry.cn-hangzhou.aliyuncs.com/coreos_containers/kube-state-metrics", + "quay.io/coreos/monitoring-grafana": "registry.cn-hangzhou.aliyuncs.com/coreos_containers/monitoring-grafana", + "quay.io/coreos/prometheus-config-reloader": "registry.cn-hangzhou.aliyuncs.com/coreos_containers/prometheus-config-reloader", + "quay.io/coreos/prometheus-operator": "registry.cn-hangzhou.aliyuncs.com/coreos_containers/prometheus-operator", + "quay.io/kubernetes-ingress-controller/nginx-ingress-controller": "registry.cn-hangzhou.aliyuncs.com/google_containers/nginx-ingress-controller", + "quay.io/kubernetes-service-catalog/service-catalog": "registry.cn-hangzhou.aliyuncs.com/kubernetes-service-catalog/service-catalog", + "quay.io/prometheus/alertmanager": "registry.cn-hangzhou.aliyuncs.com/google_containers/alertmanager", + "quay.io/prometheus/prometheus": "registry.cn-hangzhou.aliyuncs.com/google_containers/prometheus", + "k8s.gcr.io/ingress-nginx/kube-webhook-certgen": "registry.cn-hangzhou.aliyuncs.com/google_containers/kube-webhook-certgen", + "gcr.io/k8s-minikube/minikube-ingress-dns": "registry.cn-hangzhou.aliyuncs.com/google_containers/minikube-ingress-dns", + "gcr.io/google_containers/pause": "registry.cn-hangzhou.aliyuncs.com/google_containers/pause", + "k8s.gcr.io/metrics-server/metrics-server": "registry.cn-hangzhou.aliyuncs.com/google_containers/metrics-server", + "gcr.io/google_containers/kube-registry-proxy": "registry.cn-hangzhou.aliyuncs.com/google_containers/kube-registry-proxy" +} \ No newline at end of file diff --git a/deploy/addons/assets.go b/deploy/addons/assets.go index 3fa5c6ced362..39a95f3cdcab 100644 --- a/deploy/addons/assets.go +++ b/deploy/addons/assets.go @@ -135,4 +135,8 @@ var ( // PortainerAssets assets for portainer addon //go:embed portainer/portainer.yaml.tmpl PortainerAssets embed.FS + + // AliyunMirror assets for aliyun_mirror.json + //go:embed aliyun_mirror.json + AliyunMirror embed.FS ) diff --git a/pkg/addons/addons.go b/pkg/addons/addons.go index 5580cf198a8f..76efff726739 100644 --- a/pkg/addons/addons.go +++ b/pkg/addons/addons.go @@ -185,6 +185,10 @@ func EnableOrDisableAddon(cc *config.ClusterConfig, name string, val string) err exit.Error(reason.HostSaveProfile, "Failed to persist images", err) } + if cc.KubernetesConfig.ImageRepository == "registry.cn-hangzhou.aliyuncs.com/google_containers" { + images, customRegistries = assets.FixAddonImagesAndRegistries(addon, images, customRegistries) + } + mName := config.MachineName(*cc, cp) host, err := machine.LoadHost(api, mName) if err != nil || !machine.IsRunning(api, mName) { diff --git a/pkg/minikube/assets/addons.go b/pkg/minikube/assets/addons.go index 5afc4cb000d4..428db396e2c2 100755 --- a/pkg/minikube/assets/addons.go +++ b/pkg/minikube/assets/addons.go @@ -723,7 +723,7 @@ func overrideDefaults(defaultMap, overrideMap map[string]string) map[string]stri // SelectAndPersistImages selects which images to use based on addon default images, previously persisted images, and newly requested images - which are then persisted for future enables. func SelectAndPersistImages(addon *Addon, cc *config.ClusterConfig) (images, customRegistries map[string]string, err error) { - addonDefaultImages := fixAddonImages(cc.KubernetesConfig.ImageRepository, addon.Images) + addonDefaultImages := addon.Images if addonDefaultImages == nil { addonDefaultImages = make(map[string]string) } @@ -778,23 +778,6 @@ func SelectAndPersistImages(addon *Addon, cc *config.ClusterConfig) (images, cus return images, customRegistries, err } -// fixes addon image names according to image repository used -func fixAddonImages(repo string, images map[string]string) map[string]string { - if repo == "registry.cn-hangzhou.aliyuncs.com/google_containers" { - // for aliyun registry must strip namespace from image name, e.g. - // registry.cn-hangzhou.aliyuncs.com/google_containers/k8s-minikube/storage-provisioner:v5 will not work - // registry.cn-hangzhou.aliyuncs.com/google_containers/storage-provisioner:v5 does work - newImages := make(map[string]string) - for name, image := range images { - image = strings.TrimPrefix(image, "k8s-minikube/") - image = strings.TrimPrefix(image, "kubernetesui/") - newImages[name] = image - } - return newImages - } - return images -} - // GenerateTemplateData generates template data for template assets func GenerateTemplateData(addon *Addon, cfg config.KubernetesConfig, netInfo NetworkInfo, images, customRegistries map[string]string) interface{} { diff --git a/pkg/minikube/download/binary.go b/pkg/minikube/download/binary.go index dc9de3a14ef5..da7fd8603af0 100644 --- a/pkg/minikube/download/binary.go +++ b/pkg/minikube/download/binary.go @@ -32,7 +32,7 @@ import ( // binaryWithChecksumURL gets the location of a Kubernetes binary func binaryWithChecksumURL(binaryName, version, osName, archName string) (string, error) { - base := fmt.Sprintf("https://storage.googleapis.com/kubernetes-release/release/%s/bin/%s/%s/%s", version, osName, archName, binaryName) + base := fmt.Sprintf("https://%s/kubernetes-release/release/%s/bin/%s/%s/%s", downloadHost, version, osName, archName, binaryName) v, err := semver.Make(version[1:]) if err != nil { return "", err diff --git a/pkg/minikube/download/download.go b/pkg/minikube/download/download.go index dd64fe1de9a5..3b4ea62f5df0 100644 --- a/pkg/minikube/download/download.go +++ b/pkg/minikube/download/download.go @@ -37,8 +37,16 @@ var ( // DownloadMock is called instead of the download implementation if not nil. DownloadMock func(src, dst string) error checkCache = os.Stat + + aliyunMirror = "kubernetes.oss-cn-hangzhou.aliyuncs.com" + downloadHost = "storage.googleapis.com" ) +// SetAliyunMirror set the download host for Aliyun mirror +func SetAliyunMirror() { + downloadHost = aliyunMirror +} + // CreateDstDownloadMock is the default mock implementation of download. func CreateDstDownloadMock(src, dst string) error { if err := os.MkdirAll(filepath.Dir(dst), 0755); err != nil { diff --git a/pkg/minikube/download/preload.go b/pkg/minikube/download/preload.go index 2141bfd027d5..516e321e3efd 100644 --- a/pkg/minikube/download/preload.go +++ b/pkg/minikube/download/preload.go @@ -89,7 +89,7 @@ func TarballPath(k8sVersion, containerRuntime string) string { // remoteTarballURL returns the URL for the remote tarball in GCS func remoteTarballURL(k8sVersion, containerRuntime string) string { - return fmt.Sprintf("https://storage.googleapis.com/%s/%s", PreloadBucket, TarballName(k8sVersion, containerRuntime)) + return fmt.Sprintf("https://%s/%s/%s", downloadHost, PreloadBucket, TarballName(k8sVersion, containerRuntime)) } func setPreloadState(k8sVersion, containerRuntime string, value bool) { diff --git a/pkg/minikube/image/image.go b/pkg/minikube/image/image.go index e376530d1029..5bb0fb95e335 100644 --- a/pkg/minikube/image/image.go +++ b/pkg/minikube/image/image.go @@ -332,7 +332,6 @@ func fixRemoteImageName(ref name.Reference, imgName string) (name.Reference, str image = strings.TrimPrefix(image, "k8s-minikube/") image = strings.TrimPrefix(image, "kubernetesui/") image = strings.TrimPrefix(image, "coredns/") - image = strings.ReplaceAll(image, "coredns:v", "coredns:") remoteRef, err := name.ParseReference(aliyunMirror+image, name.WeakValidation) if err != nil { return nil, "", err diff --git a/pkg/minikube/notify/constants.go b/pkg/minikube/notify/constants.go index e0ca54cff12c..c1af50e86079 100644 --- a/pkg/minikube/notify/constants.go +++ b/pkg/minikube/notify/constants.go @@ -21,4 +21,9 @@ const ( GithubMinikubeReleasesURL = "https://storage.googleapis.com/minikube/releases.json" // GithubMinikubeBetaReleasesURL is the URL of the minikube Github beta releases JSON file GithubMinikubeBetaReleasesURL = "https://storage.googleapis.com/minikube/releases-beta.json" + + // GithubMinikubeReleasesAliyunURL is the URL of the minikube github releases JSON file from Aliyun Mirror + GithubMinikubeReleasesAliyunURL = "https://kubernetes.oss-cn-hangzhou.aliyuncs.com/minikube/releases.json" + // GithubMinikubeBetaReleasesAliyunURL is the URL of the minikube Github beta releases JSON file + GithubMinikubeBetaReleasesAliyunURL = "https://kubernetes.oss-cn-hangzhou.aliyuncs.com/minikube/releases-beta.json" ) diff --git a/pkg/minikube/notify/notify.go b/pkg/minikube/notify/notify.go index 4e1a77569dfc..a57d5228a516 100644 --- a/pkg/minikube/notify/notify.go +++ b/pkg/minikube/notify/notify.go @@ -47,6 +47,11 @@ func MaybePrintUpdateTextFromGithub() { maybePrintUpdateText(GithubMinikubeReleasesURL, GithubMinikubeBetaReleasesURL, lastUpdateCheckFilePath) } +// MaybePrintUpdateTextFromGithub prints update text if needed, from Aliyun mirror +func MaybePrintUpdateTextFromAliyunMirror() { + maybePrintUpdateText(GithubMinikubeReleasesAliyunURL, GithubMinikubeBetaReleasesAliyunURL, lastUpdateCheckFilePath) +} + func maybePrintUpdateText(latestReleasesURL string, betaReleasesURL string, lastUpdatePath string) { latestVersion, err := latestVersionFromURL(latestReleasesURL) if err != nil { From 9ae94cf8d44ba89cc4b1f2735b4f99fb1983c303 Mon Sep 17 00:00:00 2001 From: Li Yi Date: Sun, 26 Sep 2021 16:04:29 +0800 Subject: [PATCH 002/111] Initial support for adding Aliyun mirror for preload images and Kubernetes binaries Signed-off-by: Li Yi --- pkg/minikube/assets/aliyun_mirror.go | 64 ++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100644 pkg/minikube/assets/aliyun_mirror.go diff --git a/pkg/minikube/assets/aliyun_mirror.go b/pkg/minikube/assets/aliyun_mirror.go new file mode 100644 index 000000000000..0cacf2e315bc --- /dev/null +++ b/pkg/minikube/assets/aliyun_mirror.go @@ -0,0 +1,64 @@ +package assets + +import ( + "encoding/json" + "fmt" + "strings" + + "k8s.io/minikube/deploy/addons" +) + +var AliyunMirror = loadAliyunMirror() + +func loadAliyunMirror() map[string]string { + data, err := addons.AliyunMirror.ReadFile("aliyun_mirror.json") + if err != nil { + panic(fmt.Sprintf("Failed to load aliyun_mirror.json: %v", err)) + } + var mirror map[string]string + err = json.Unmarshal(data, &mirror) + if err != nil { + panic(fmt.Sprintf("Failed to parse aliyun_mirror.json: %v", err)) + } + return mirror +} + +func FixAddonImagesAndRegistries(addon *Addon, images map[string]string, registries map[string]string) (customImages, customRegistries map[string]string) { + customImages = make(map[string]string) + customRegistries = make(map[string]string) + if images == nil { + images = addon.Images + } + if addon.Registries == nil { + addon.Registries = make(map[string]string) + } + if registries == nil { + registries = make(map[string]string) + } + for name, image := range images { + registry, found := registries[name] + if !found { + registry = addon.Registries[name] + } + img := image + + if registry != "" && registry != "docker.io" { + img = registry + "/" + image + } + parts := strings.SplitN(img, ":", 2) + imageName := parts[0] + tag := parts[1] + mirror, found := AliyunMirror[imageName] + if found { + parts := strings.SplitN(mirror, "/", 2) + mirrorRegistry := parts[0] + mirrorImage := parts[1] + ":" + tag + customImages[name] = mirrorImage + customRegistries[name] = mirrorRegistry + } else { + customImages[name] = image + customRegistries[name] = registry + } + } + return customImages, customRegistries +} From f1d56741f8c0d8a72597e0ddef2cb6e3561c028b Mon Sep 17 00:00:00 2001 From: Li Yi Date: Sun, 26 Sep 2021 16:19:19 +0800 Subject: [PATCH 003/111] Fix for boilerplate --- pkg/minikube/assets/aliyun_mirror.go | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/pkg/minikube/assets/aliyun_mirror.go b/pkg/minikube/assets/aliyun_mirror.go index 0cacf2e315bc..c491cb7874ca 100644 --- a/pkg/minikube/assets/aliyun_mirror.go +++ b/pkg/minikube/assets/aliyun_mirror.go @@ -1,3 +1,19 @@ +/* +Copyright 2021 The Kubernetes Authors All rights reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + package assets import ( From 550d7bf7774a551ccf4c2306a5c0cc70072a8da1 Mon Sep 17 00:00:00 2001 From: Akira Yoshiyama Date: Wed, 29 Sep 2021 20:31:03 +0900 Subject: [PATCH 004/111] Update Japanese translation (Line 647-684) --- translations/ja.json | 76 ++++++++++++++++++++++---------------------- 1 file changed, 38 insertions(+), 38 deletions(-) diff --git a/translations/ja.json b/translations/ja.json index 4f8daf932805..b05f7c313050 100644 --- a/translations/ja.json +++ b/translations/ja.json @@ -644,44 +644,44 @@ "The control plane node must be running for this command": "このコマンドではコントロールプレーンノードが実行中でなければなりません", "The cri socket path to be used": "使用される CRI ソケットパス", "The cri socket path to be used.": "使用される CRI ソケットパス。", - "The docker-env command is incompatible with multi-node clusters. Use the 'registry' add-on: https://minikube.sigs.k8s.io/docs/handbook/registry/": "", - "The docker-env command is only compatible with the \"docker\" runtime, but this cluster was configured to use the \"{{.runtime}}\" runtime.": "", - "The driver '{{.driver}}' is not supported on {{.os}}/{{.arch}}": "ドライバ「{{.driver}}」は、{{.os}}/{{.arch}} ではサポートされていません", - "The existing \"{{.name}}\" cluster was created using the \"{{.old}}\" driver, which is incompatible with requested \"{{.new}}\" driver.": "", - "The existing node configuration appears to be corrupt. Run 'minikube delete'": "", - "The heapster addon is depreciated. please try to disable metrics-server instead": "", - "The hyperv virtual switch name. Defaults to first found. (hyperv driver only)": "hyperv 仮想スイッチ名。最初に見つかったものにデフォルト設定されます(hyperv ドライバのみ)", - "The hypervisor does not appear to be configured properly. Run 'minikube start --alsologtostderr -v=1' and inspect the error code": "", - "The image '{{.imageName}}' was not found; unable to add it to cache.": "", - "The initial time interval for each check that wait performs in seconds": "", - "The kubeadm binary within the Docker container is not executable": "", - "The kubernetes version that the minikube VM will use (ex: v1.2.3)": "minikube VM で使用される Kubernetes バージョン(例: v1.2.3)", - "The machine-driver specified is failing to start. Try running 'docker-machine-driver-\u003ctype\u003e version'": "", - "The minikube VM is offline. Please run 'minikube start' to start it again.": "", - "The minikube {{.driver_name}} container exited unexpectedly.": "", - "The minimum required version for podman is \"{{.minVersion}}\". your version is \"{{.currentVersion}}\". minikube might not work. use at your own risk. To install latest version please see https://podman.io/getting-started/installation.html": "", - "The name of the network plugin": "ネットワーク プラグインの名前", - "The named space to activate after start": "", - "The node to build on. Defaults to the primary control plane.": "", - "The node to check status for. Defaults to control plane. Leave blank with default format for status on all nodes.": "", - "The node to get IP. Defaults to the primary control plane.": "", - "The node to get logs from. Defaults to the primary control plane.": "", - "The node to get ssh-key path. Defaults to the primary control plane.": "", - "The node to ssh into. Defaults to the primary control plane.": "", - "The node {{.name}} has ran out of available PIDs.": "", - "The node {{.name}} has ran out of disk space.": "", - "The node {{.name}} has ran out of memory.": "", - "The node {{.name}} network is not available. Please verify network settings.": "", - "The none driver is not compatible with multi-node clusters.": "", - "The number of bytes to use for 9p packet payload": "", - "The number of nodes to spin up. Defaults to 1.": "", - "The output format. One of 'json', 'table'": "", - "The path on the file system where the docs in markdown need to be saved": "", - "The path on the file system where the error code docs in markdown need to be saved": "", - "The path on the file system where the testing docs in markdown need to be saved": "", - "The podman service within '{{.cluster}}' is not active": "", - "The podman-env command is incompatible with multi-node clusters. Use the 'registry' add-on: https://minikube.sigs.k8s.io/docs/handbook/registry/": "", - "The requested memory allocation of {{.requested}}MiB does not leave room for system overhead (total system memory: {{.system_limit}}MiB). You may face stability issues.": "", + "The docker-env command is incompatible with multi-node clusters. Use the 'registry' add-on: https://minikube.sigs.k8s.io/docs/handbook/registry/": "docker-env コマンドはマルチノードクラスターと互換性がありません。'registry' アドオンを使用してください: https://minikube.sigs.k8s.io/docs/handbook/registry/", + "The docker-env command is only compatible with the \"docker\" runtime, but this cluster was configured to use the \"{{.runtime}}\" runtime.": "docker-env コマンドは「docker」ランタイムとだけ互換性がありますが、このクラスターは「{{.runtime}}」ランタイムを使用するよう設定されています。", + "The driver '{{.driver}}' is not supported on {{.os}}/{{.arch}}": "'{{.driver}}' ドライバーは {{.os}}/{{.arch}} に対応していません", + "The existing \"{{.name}}\" cluster was created using the \"{{.old}}\" driver, which is incompatible with requested \"{{.new}}\" driver.": "既存の「{{.name}}」クラスターは、(要求された「{{.new}}」ドライバーとは互換性のない)「{{.old}}」ドライバーを使用して作成されました。 ", + "The existing node configuration appears to be corrupt. Run 'minikube delete'": "既存のノード設定が破損しているようです。'minikube delete' を実行してください", + "The heapster addon is depreciated. please try to disable metrics-server instead": "heapster アドオンは廃止予定です。代わりに metrics-server を無効化してみてください", + "The hyperv virtual switch name. Defaults to first found. (hyperv driver only)": "hyperv 仮想スイッチ名。デフォルト値は最初に見つかったスイッチ名です。 (hyperv ドライバーのみ)", + "The hypervisor does not appear to be configured properly. Run 'minikube start --alsologtostderr -v=1' and inspect the error code": "ハイパーバイザーが適切に設定されていないようです。'minikube start --alsologtostderr -v=1' を実行してエラーコードを確認してください", + "The image '{{.imageName}}' was not found; unable to add it to cache.": "'{{.imageName}}' イメージは見つかりませんでした (キャッシュに追加できません)。", + "The initial time interval for each check that wait performs in seconds": "実行待機チェックの初期時間間隔 (秒)", + "The kubeadm binary within the Docker container is not executable": "Docker コンテナー内の kubeadm バイナリーが実行可能形式ではありません", + "The kubernetes version that the minikube VM will use (ex: v1.2.3)": "minikube VM で使用する Kubernetes バージョン (例: v1.2.3)", + "The machine-driver specified is failing to start. Try running 'docker-machine-driver-\u003ctype\u003e version'": "指定された machine-driver は起動に失敗しました。'docker-machine-driver-\u003ctype\u003e version' を実行してみてください", + "The minikube VM is offline. Please run 'minikube start' to start it again.": "minikube VM がオフラインです。'minikube start' を実行して minikube VM を再起動してください。", + "The minikube {{.driver_name}} container exited unexpectedly.": "minikube {{.driver_name}} コンテナーは想定外で終了しました。", + "The minimum required version for podman is \"{{.minVersion}}\". your version is \"{{.currentVersion}}\". minikube might not work. use at your own risk. To install latest version please see https://podman.io/getting-started/installation.html": "minikube が要求する podman のバージョンは「{{.minVersion}}」です。あなたのバージョンは「{{.currentVersion}}」です。minikube は動作しないかも知れません。自己責任で使用してください。最新バージョンのインストールには https://podman.io/getting-started/installation.html を参照してください。", + "The name of the network plugin": "ネットワークプラグインの名前", + "The named space to activate after start": "起動後にアクティベートするネームスペース", + "The node to build on. Defaults to the primary control plane.": "構築するノード。デフォルトは最初のコントロールプレーンです。", + "The node to check status for. Defaults to control plane. Leave blank with default format for status on all nodes.": "状態をチェックするノード。デフォルトはコントロールプレーンです。デフォルトフォーマットの空白のままにすると、全ノードの状態になります。", + "The node to get IP. Defaults to the primary control plane.": "IP を取得するノード。デフォルトは最初のコントロールプレーンです。", + "The node to get logs from. Defaults to the primary control plane.": "ログを取得するノード。デフォルトは最初のコントロールプレーンです。", + "The node to get ssh-key path. Defaults to the primary control plane.": "ssh-key パスを取得するノード。デフォルトは最初のコントロールプレーンです。", + "The node to ssh into. Defaults to the primary control plane.": "ssh ログインするノード。デフォルトは最初のコントロールプレーンです。", + "The node {{.name}} has ran out of available PIDs.": "{{.name}} ノードは利用可能な PID を使い果たしました。", + "The node {{.name}} has ran out of disk space.": "{{.name}} ノードはディスクスペースを使い果たしました。", + "The node {{.name}} has ran out of memory.": "{{.name}} ノードはメモリーを使い果たしました。", + "The node {{.name}} network is not available. Please verify network settings.": "{{.name}} ノードはネットワークが使用不能です。ネットワーク設定を検証してください。", + "The none driver is not compatible with multi-node clusters.": "ノードドライバーはマルチノードクラスターと互換性がありません。", + "The number of bytes to use for 9p packet payload": "9p パケットペイロードに使用するバイト数", + "The number of nodes to spin up. Defaults to 1.": "起動するノード数。デフォルトは 1。", + "The output format. One of 'json', 'table'": "出力形式。'json', 'table' のいずれか", + "The path on the file system where the docs in markdown need to be saved": "markdown で書かれたドキュメントの保存先のファイルシステムパス", + "The path on the file system where the error code docs in markdown need to be saved": "markdown で書かれたエラーコードドキュメントの保存先のファイルシステムパス", + "The path on the file system where the testing docs in markdown need to be saved": "markdown で書かれたテストドキュメントの保存先のファイルシステムパス", + "The podman service within '{{.cluster}}' is not active": "'{{.cluster}}' 内の podman サービスが active ではありません", + "The podman-env command is incompatible with multi-node clusters. Use the 'registry' add-on: https://minikube.sigs.k8s.io/docs/handbook/registry/": "podman-env コマンドはマルチノードクラスターと互換性がありません。'registry' アドオンを使用してください: https://minikube.sigs.k8s.io/docs/handbook/registry/", + "The requested memory allocation of {{.requested}}MiB does not leave room for system overhead (total system memory: {{.system_limit}}MiB). You may face stability issues.": "要求された {{.requested}}MiB のメモリー割当は、システムのオーバーヘッド (合計システムメモリー: {{.system_limit}}MiB) に十分な空きを残しません。安定性の問題に直面するかも知れません。", "The service namespace": "", "The service/ingress {{.resource}} requires privileged ports to be exposed: {{.ports}}": "", "The services namespace": "", From 29abb747773e49b9a702d55cfac95e464f422f55 Mon Sep 17 00:00:00 2001 From: Predrag Rogic Date: Tue, 12 Oct 2021 21:21:54 +0100 Subject: [PATCH 005/111] update ingress to v1-1.0.3 and v1beta1-0.49.3 --- .../addons/ingress/ingress-deploy.yaml.tmpl | 81 ++++++++++++------- pkg/addons/addons.go | 4 +- pkg/minikube/assets/addons.go | 2 +- 3 files changed, 56 insertions(+), 31 deletions(-) diff --git a/deploy/addons/ingress/ingress-deploy.yaml.tmpl b/deploy/addons/ingress/ingress-deploy.yaml.tmpl index 264973405245..fc73260544d6 100644 --- a/deploy/addons/ingress/ingress-deploy.yaml.tmpl +++ b/deploy/addons/ingress/ingress-deploy.yaml.tmpl @@ -46,6 +46,7 @@ metadata: data: # see https://github.com/kubernetes/ingress-nginx/blob/master/docs/user-guide/nginx-configuration/configmap.md for all possible options and their description hsts: "false" + allow-snippet-annotations: 'true' --- apiVersion: v1 kind: ConfigMap @@ -102,8 +103,10 @@ rules: - list - watch - apiGroups: + {{- if eq .IngressAPIVersion "v1beta1"}} - extensions - - networking.k8s.io # k8s 1.14+ + {{- end}} + - networking.k8s.io resources: - ingresses verbs: @@ -118,14 +121,16 @@ rules: - create - patch - apiGroups: + {{- if eq .IngressAPIVersion "v1beta1"}} - extensions - - networking.k8s.io # k8s 1.14+ + {{- end}} + - networking.k8s.io resources: - ingresses/status verbs: - update - apiGroups: - - networking.k8s.io # k8s 1.14+ + - networking.k8s.io resources: - ingressclasses verbs: @@ -187,8 +192,10 @@ rules: - list - watch - apiGroups: + {{- if eq .IngressAPIVersion "v1beta1"}} - extensions - - networking.k8s.io # k8s 1.14+ + {{- end}} + - networking.k8s.io resources: - ingresses verbs: @@ -196,14 +203,16 @@ rules: - list - watch - apiGroups: + {{- if eq .IngressAPIVersion "v1beta1"}} - extensions - - networking.k8s.io # k8s 1.14+ + {{- end}} + - networking.k8s.io resources: - ingresses/status verbs: - update - apiGroups: - - networking.k8s.io # k8s 1.14+ + - networking.k8s.io resources: - ingressclasses verbs: @@ -225,7 +234,6 @@ rules: - configmaps verbs: - create - - update - apiGroups: - '' resources: @@ -253,17 +261,6 @@ subjects: name: ingress-nginx namespace: ingress-nginx --- -apiVersion: networking.k8s.io/v1 -kind: IngressClass -metadata: - labels: - app.kubernetes.io/component: controller - name: nginx - annotations: - ingressclass.kubernetes.io/is-default-class: "true" -spec: - controller: k8s.io/ingress-nginx ---- # Source: ingress-nginx/templates/controller-service-webhook.yaml apiVersion: v1 kind: Service @@ -280,6 +277,9 @@ spec: - name: https-webhook port: 443 targetPort: webhook + {{- if eq .IngressAPIVersion "v1"}} + appProtocol: https + {{- end}} selector: app.kubernetes.io/name: ingress-nginx app.kubernetes.io/instance: ingress-nginx @@ -303,10 +303,16 @@ spec: port: 80 protocol: TCP targetPort: http + {{- if eq .IngressAPIVersion "v1"}} + appProtocol: http + {{- end}} - name: https port: 443 protocol: TCP targetPort: https + {{- if eq .IngressAPIVersion "v1"}} + appProtocol: https + {{- end}} selector: app.kubernetes.io/name: ingress-nginx app.kubernetes.io/instance: ingress-nginx @@ -329,10 +335,6 @@ spec: app.kubernetes.io/instance: ingress-nginx app.kubernetes.io/component: controller revisionHistoryLimit: 10 - strategy: - rollingUpdate: - maxUnavailable: 1 - type: RollingUpdate minReadySeconds: 0 template: metadata: @@ -355,7 +357,14 @@ spec: args: - /nginx-ingress-controller - --election-id=ingress-controller-leader + {{- if eq .IngressAPIVersion "v1"}} + - --controller-class=k8s.io/ingress-nginx + {{- end}} + {{- if eq .IngressAPIVersion "v1beta1"}} - --ingress-class=nginx + - --watch-ingress-without-class=true + - --publish-status-address=localhost + {{- end}} - --configmap=$(POD_NAMESPACE)/ingress-nginx-controller - --report-node-internal-ip-address - --tcp-services-configmap=$(POD_NAMESPACE)/tcp-services @@ -431,12 +440,28 @@ spec: secret: secretName: ingress-nginx-admission --- +{{- if eq .IngressAPIVersion "v1"}} +# Source: ingress-nginx/templates/controller-ingressclass.yaml +# We don't support namespaced ingressClass yet +# So a ClusterRole and a ClusterRoleBinding is required +apiVersion: networking.k8s.io/v1 +kind: IngressClass +metadata: + labels: + app.kubernetes.io/name: ingress-nginx + app.kubernetes.io/instance: ingress-nginx + app.kubernetes.io/component: controller + name: nginx + namespace: ingress-nginx + annotations: + ingressclass.kubernetes.io/is-default-class: "true" +spec: + controller: k8s.io/ingress-nginx +--- +{{- end}} # Source: ingress-nginx/templates/admission-webhooks/validating-webhook.yaml # before changing this value, check the required kubernetes version # https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#prerequisites -# Currently(v0.49.0), ValidatingWebhookConfiguration of this validates v1beta1 request -# TODO(govargo): check this after upstream ingress-nginx can validate v1 version -# https://github.com/kubernetes/ingress-nginx/blob/controller-v0.49.0/internal/admission/controller/main.go#L46-L52 apiVersion: admissionregistration.k8s.io/v1 kind: ValidatingWebhookConfiguration metadata: @@ -461,10 +486,10 @@ webhooks: failurePolicy: Fail sideEffects: None admissionReviewVersions: - {{- if eq .IngressAPIVersion "v1beta1"}} - v1 - {{- end}} - - {{.IngressAPIVersion}} + {{- if eq .IngressAPIVersion "v1beta1"}} + - v1beta1 + {{- end}} clientConfig: service: namespace: ingress-nginx diff --git a/pkg/addons/addons.go b/pkg/addons/addons.go index 5580cf198a8f..f6d90633f858 100644 --- a/pkg/addons/addons.go +++ b/pkg/addons/addons.go @@ -298,8 +298,8 @@ func supportLegacyIngress(cc *config.ClusterConfig) error { } if semver.MustParseRange("<1.19.0")(v) { imgs := map[string]string{ - // https://github.com/kubernetes/ingress-nginx/blob/f3c50698d98299b1a61f83cb6c4bb7de0b71fb4b/deploy/static/provider/kind/deploy.yaml#L327 - "IngressController": "ingress-nginx/controller:v0.49.0@sha256:e9707504ad0d4c119036b6d41ace4a33596139d3feb9ccb6617813ce48c3eeef", + // https://github.com/kubernetes/ingress-nginx/blob/0a2ec01eb4ec0e1b29c4b96eb838a2e7bfe0e9f6/deploy/static/provider/baremetal/deploy.yaml#L324 + "IngressController": "ingress-nginx/controller:v0.49.3@sha256:35fe394c82164efa8f47f3ed0be981b3f23da77175bbb8268a9ae438851c8324", // issues: https://github.com/kubernetes/ingress-nginx/issues/7418 and https://github.com/jet/kube-webhook-certgen/issues/30 "KubeWebhookCertgenCreate": "docker.io/jettech/kube-webhook-certgen:v1.5.1@sha256:950833e19ade18cd389d647efb88992a7cc077abedef343fa59e012d376d79b7", "KubeWebhookCertgenPatch": "docker.io/jettech/kube-webhook-certgen:v1.5.1@sha256:950833e19ade18cd389d647efb88992a7cc077abedef343fa59e012d376d79b7", diff --git a/pkg/minikube/assets/addons.go b/pkg/minikube/assets/addons.go index b6b6d11311c3..a3ab00199245 100755 --- a/pkg/minikube/assets/addons.go +++ b/pkg/minikube/assets/addons.go @@ -239,7 +239,7 @@ var Addons = map[string]*Addon{ "0640"), }, false, "ingress", "", map[string]string{ // https://github.com/kubernetes/ingress-nginx/blob/557604f4ef526f7755d36089b617bc7686c389f9/deploy/static/provider/kind/deploy.yaml#L323 - "IngressController": "ingress-nginx/controller:v1.0.0-beta.3@sha256:44a7a06b71187a4529b0a9edee5cc22bdf71b414470eff696c3869ea8d90a695", + "IngressController": "ingress-nginx/controller:v1.0.3@sha256:4ade87838eb8256b094fbb5272d7dda9b6c7fa8b759e6af5383c1300996a7452", // https://github.com/kubernetes/ingress-nginx/blob/557604f4ef526f7755d36089b617bc7686c389f9/deploy/static/provider/kind/deploy.yaml#L612 "KubeWebhookCertgenCreate": "k8s.gcr.io/ingress-nginx/kube-webhook-certgen:v1.0@sha256:f3b6b39a6062328c095337b4cadcefd1612348fdd5190b1dcbcb9b9e90bd8068", // https://github.com/kubernetes/ingress-nginx/blob/557604f4ef526f7755d36089b617bc7686c389f9/deploy/static/provider/kind/deploy.yaml#L660 From c680044eae18b5f9768c98778de241f33e3b90a7 Mon Sep 17 00:00:00 2001 From: Predrag Rogic Date: Tue, 12 Oct 2021 23:24:26 +0100 Subject: [PATCH 006/111] remove allow-snippet-annotations as per recommendation --- deploy/addons/ingress/ingress-deploy.yaml.tmpl | 3 ++- pkg/addons/addons.go | 2 +- pkg/minikube/assets/addons.go | 6 +++--- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/deploy/addons/ingress/ingress-deploy.yaml.tmpl b/deploy/addons/ingress/ingress-deploy.yaml.tmpl index fc73260544d6..49b98be794ce 100644 --- a/deploy/addons/ingress/ingress-deploy.yaml.tmpl +++ b/deploy/addons/ingress/ingress-deploy.yaml.tmpl @@ -46,7 +46,8 @@ metadata: data: # see https://github.com/kubernetes/ingress-nginx/blob/master/docs/user-guide/nginx-configuration/configmap.md for all possible options and their description hsts: "false" - allow-snippet-annotations: 'true' +# see https://github.com/kubernetes/minikube/pull/12702#discussion_r727519180: 'allow-snippet-annotations' should be used only if strictly required by another part of the deployment +# allow-snippet-annotations: 'true' --- apiVersion: v1 kind: ConfigMap diff --git a/pkg/addons/addons.go b/pkg/addons/addons.go index f6d90633f858..342ab246651e 100644 --- a/pkg/addons/addons.go +++ b/pkg/addons/addons.go @@ -298,7 +298,7 @@ func supportLegacyIngress(cc *config.ClusterConfig) error { } if semver.MustParseRange("<1.19.0")(v) { imgs := map[string]string{ - // https://github.com/kubernetes/ingress-nginx/blob/0a2ec01eb4ec0e1b29c4b96eb838a2e7bfe0e9f6/deploy/static/provider/baremetal/deploy.yaml#L324 + // https://github.com/kubernetes/ingress-nginx/blob/0a2ec01eb4ec0e1b29c4b96eb838a2e7bfe0e9f6/deploy/static/provider/kind/deploy.yaml#L328 "IngressController": "ingress-nginx/controller:v0.49.3@sha256:35fe394c82164efa8f47f3ed0be981b3f23da77175bbb8268a9ae438851c8324", // issues: https://github.com/kubernetes/ingress-nginx/issues/7418 and https://github.com/jet/kube-webhook-certgen/issues/30 "KubeWebhookCertgenCreate": "docker.io/jettech/kube-webhook-certgen:v1.5.1@sha256:950833e19ade18cd389d647efb88992a7cc077abedef343fa59e012d376d79b7", diff --git a/pkg/minikube/assets/addons.go b/pkg/minikube/assets/addons.go index a3ab00199245..d46e97bf3677 100755 --- a/pkg/minikube/assets/addons.go +++ b/pkg/minikube/assets/addons.go @@ -238,11 +238,11 @@ var Addons = map[string]*Addon{ "ingress-deploy.yaml", "0640"), }, false, "ingress", "", map[string]string{ - // https://github.com/kubernetes/ingress-nginx/blob/557604f4ef526f7755d36089b617bc7686c389f9/deploy/static/provider/kind/deploy.yaml#L323 + // https://github.com/kubernetes/ingress-nginx/blob/bdea0c8e462ce94031df622e1eda3196ac41933e/deploy/static/provider/kind/deploy.yaml#L327 "IngressController": "ingress-nginx/controller:v1.0.3@sha256:4ade87838eb8256b094fbb5272d7dda9b6c7fa8b759e6af5383c1300996a7452", - // https://github.com/kubernetes/ingress-nginx/blob/557604f4ef526f7755d36089b617bc7686c389f9/deploy/static/provider/kind/deploy.yaml#L612 + // https://github.com/kubernetes/ingress-nginx/blob/bdea0c8e462ce94031df622e1eda3196ac41933e/deploy/static/provider/kind/deploy.yaml#L617 "KubeWebhookCertgenCreate": "k8s.gcr.io/ingress-nginx/kube-webhook-certgen:v1.0@sha256:f3b6b39a6062328c095337b4cadcefd1612348fdd5190b1dcbcb9b9e90bd8068", - // https://github.com/kubernetes/ingress-nginx/blob/557604f4ef526f7755d36089b617bc7686c389f9/deploy/static/provider/kind/deploy.yaml#L660 + // https://github.com/kubernetes/ingress-nginx/blob/bdea0c8e462ce94031df622e1eda3196ac41933e/deploy/static/provider/kind/deploy.yaml#L667 "KubeWebhookCertgenPatch": "k8s.gcr.io/ingress-nginx/kube-webhook-certgen:v1.0@sha256:f3b6b39a6062328c095337b4cadcefd1612348fdd5190b1dcbcb9b9e90bd8068", }, map[string]string{ "IngressController": "k8s.gcr.io", From db4937aa8fd925f86e31073c55b4b823c6066067 Mon Sep 17 00:00:00 2001 From: Predrag Rogic Date: Wed, 13 Oct 2021 09:02:12 +0100 Subject: [PATCH 007/111] update ingress-nginx controller to v1.0.4 --- deploy/addons/ingress/ingress-deploy.yaml.tmpl | 5 +++++ pkg/minikube/assets/addons.go | 12 ++++++------ 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/deploy/addons/ingress/ingress-deploy.yaml.tmpl b/deploy/addons/ingress/ingress-deploy.yaml.tmpl index 49b98be794ce..3b7fd212558b 100644 --- a/deploy/addons/ingress/ingress-deploy.yaml.tmpl +++ b/deploy/addons/ingress/ingress-deploy.yaml.tmpl @@ -299,6 +299,11 @@ metadata: namespace: ingress-nginx spec: type: NodePort + {{- if eq .IngressAPIVersion "v1"}} + ipFamilyPolicy: SingleStack + ipFamilies: + - IPv4 + {{- end}} ports: - name: http port: 80 diff --git a/pkg/minikube/assets/addons.go b/pkg/minikube/assets/addons.go index d46e97bf3677..3124fe43dc0c 100755 --- a/pkg/minikube/assets/addons.go +++ b/pkg/minikube/assets/addons.go @@ -238,12 +238,12 @@ var Addons = map[string]*Addon{ "ingress-deploy.yaml", "0640"), }, false, "ingress", "", map[string]string{ - // https://github.com/kubernetes/ingress-nginx/blob/bdea0c8e462ce94031df622e1eda3196ac41933e/deploy/static/provider/kind/deploy.yaml#L327 - "IngressController": "ingress-nginx/controller:v1.0.3@sha256:4ade87838eb8256b094fbb5272d7dda9b6c7fa8b759e6af5383c1300996a7452", - // https://github.com/kubernetes/ingress-nginx/blob/bdea0c8e462ce94031df622e1eda3196ac41933e/deploy/static/provider/kind/deploy.yaml#L617 - "KubeWebhookCertgenCreate": "k8s.gcr.io/ingress-nginx/kube-webhook-certgen:v1.0@sha256:f3b6b39a6062328c095337b4cadcefd1612348fdd5190b1dcbcb9b9e90bd8068", - // https://github.com/kubernetes/ingress-nginx/blob/bdea0c8e462ce94031df622e1eda3196ac41933e/deploy/static/provider/kind/deploy.yaml#L667 - "KubeWebhookCertgenPatch": "k8s.gcr.io/ingress-nginx/kube-webhook-certgen:v1.0@sha256:f3b6b39a6062328c095337b4cadcefd1612348fdd5190b1dcbcb9b9e90bd8068", + // https://github.com/kubernetes/ingress-nginx/blob/14f6b32032b709d3e0f614ca85954c3583c5fe3d/deploy/static/provider/kind/deploy.yaml#L330 + "IngressController": "ingress-nginx/controller:v1.0.4@sha256:545cff00370f28363dad31e3b59a94ba377854d3a11f18988f5f9e56841ef9ef", + // https://github.com/kubernetes/ingress-nginx/blob/14f6b32032b709d3e0f614ca85954c3583c5fe3d/deploy/static/provider/kind/deploy.yaml#L620 + "KubeWebhookCertgenCreate": "k8s.gcr.io/ingress-nginx/kube-webhook-certgen:v1.1.1@sha256:64d8c73dca984af206adf9d6d7e46aa550362b1d7a01f3a0a91b20cc67868660", + // https://github.com/kubernetes/ingress-nginx/blob/14f6b32032b709d3e0f614ca85954c3583c5fe3d/deploy/static/provider/kind/deploy.yaml#L670 + "KubeWebhookCertgenPatch": "k8s.gcr.io/ingress-nginx/kube-webhook-certgen:v1.1.1@sha256:64d8c73dca984af206adf9d6d7e46aa550362b1d7a01f3a0a91b20cc67868660", }, map[string]string{ "IngressController": "k8s.gcr.io", }), From d38b244cd56ec8478a44396a728f02d6d8f9e8ec Mon Sep 17 00:00:00 2001 From: Li Yi Date: Mon, 18 Oct 2021 18:31:54 +0800 Subject: [PATCH 008/111] Add github action for synchronization Signed-off-by: Li Yi --- .github/workflows/sync-minikube.yml | 36 +++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 .github/workflows/sync-minikube.yml diff --git a/.github/workflows/sync-minikube.yml b/.github/workflows/sync-minikube.yml new file mode 100644 index 000000000000..8edf43742a36 --- /dev/null +++ b/.github/workflows/sync-minikube.yml @@ -0,0 +1,36 @@ +name: Sync docker images of minikube to Alibaba Cloud + +on: + workflow_dispatch: + schedule: + # every day at 7am & 7pm pacific + - cron: "0 2,14 * * *" + +jobs: + sync-images: + runs-on: ubuntu-latest + defaults: + run: + working-directory: ./image-syncer + steps: + - uses: actions/checkout@v2 + with: + repository: denverdino/image-syncer + path: ./image-syncer + + - name: Set up Go + uses: actions/setup-go@v2 + with: + go-version: 1.17 + + - name: Build + run: make + + - name: Synchronize images to Alibaba Cloud Container Registry Service + env: + ACR_USER: ${{ secrets.ACR_USER }} + ACR_PASSWORD: ${{ secrets.ACR_PASSWORD }} + DOCKER_HUB_USER: ${{ secrets.DOCKER_HUB_USER }} + DOCKER_HUB_PASSWORD: ${{ secrets.DOCKER_HUB_PASSWORD }} + + run: ./image-syncer --auth=auth.json --images=images.json --days=2 --proc=2 From e41415ce9c2366233baf0e7a97d02de858ae350a Mon Sep 17 00:00:00 2001 From: Sharif Elgamal Date: Mon, 18 Oct 2021 17:18:37 -0700 Subject: [PATCH 009/111] Upgrade minikube-ingress-dns image to 0.0.2 --- pkg/minikube/assets/addons.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/minikube/assets/addons.go b/pkg/minikube/assets/addons.go index b6b6d11311c3..033b68601e6c 100755 --- a/pkg/minikube/assets/addons.go +++ b/pkg/minikube/assets/addons.go @@ -480,7 +480,7 @@ var Addons = map[string]*Addon{ "ingress-dns-pod.yaml", "0640"), }, false, "ingress-dns", "", map[string]string{ - "IngressDNS": "k8s-minikube/minikube-ingress-dns:0.0.1@sha256:69dc3c878c2e49ad85b70fdf9e8e6e87a1f961f42c8029e0912bebfa828ade46", + "IngressDNS": "k8s-minikube/minikube-ingress-dns:0.0.2@sha256:4abe27f9fc03fedab1d655e2020e6b165faf3bf6de1088ce6cf215a75b78f05f", }, map[string]string{ "IngressDNS": "gcr.io", }), From cea5aa29cfe4ff4d1841dec4efa01f109982267e Mon Sep 17 00:00:00 2001 From: Li Yi Date: Wed, 20 Oct 2021 11:53:44 +0800 Subject: [PATCH 010/111] Refine the name of secrets --- .github/workflows/sync-minikube.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/sync-minikube.yml b/.github/workflows/sync-minikube.yml index 8edf43742a36..edfc87df88bc 100644 --- a/.github/workflows/sync-minikube.yml +++ b/.github/workflows/sync-minikube.yml @@ -28,8 +28,8 @@ jobs: - name: Synchronize images to Alibaba Cloud Container Registry Service env: - ACR_USER: ${{ secrets.ACR_USER }} - ACR_PASSWORD: ${{ secrets.ACR_PASSWORD }} + ACR_USER: ${{ secrets.ALIBABA_CLOUD_ACR_USER }} + ACR_PASSWORD: ${{ secrets.ALIBABA_CLOUD_ACR_PASSWORD }} DOCKER_HUB_USER: ${{ secrets.DOCKER_HUB_USER }} DOCKER_HUB_PASSWORD: ${{ secrets.DOCKER_HUB_PASSWORD }} From a99ac36af6928d68133f7ec9a49891c351436faf Mon Sep 17 00:00:00 2001 From: Toshiaki Inukai Date: Thu, 30 Sep 2021 06:41:18 +0000 Subject: [PATCH 011/111] Update Japanese translation (Line 2-51) --- translations/ja.json | 88 ++++++++++++++++++++++---------------------- 1 file changed, 44 insertions(+), 44 deletions(-) diff --git a/translations/ja.json b/translations/ja.json index d86d755645e5..53cc0914ca7f 100644 --- a/translations/ja.json +++ b/translations/ja.json @@ -1,54 +1,54 @@ { - "\"The '{{.minikube_addon}}' addon is disabled": "「{{.minikube_addon}}」アドオンは無効化されています", - "\"{{.context}}\" context has been updated to point to {{.hostname}}:{{.port}}": "", - "\"{{.machineName}}\" does not exist, nothing to stop": "「{{.machineName}}」は存在しません。停止すべき対象がありません", - "\"{{.name}}\" profile does not exist, trying anyways.": "「{{.name}}」というプロファイルは存在しません", - "'none' driver does not support 'minikube docker-env' command": "「none」ドライバーは「minikube docker-env」コマンドをサポートしていません", - "'none' driver does not support 'minikube mount' command": "「none」ドライバーは「minikube mount」コマンドをサポートしていません", - "'none' driver does not support 'minikube podman-env' command": "「none」ドライバーは「minikube podman-env」コマンドをサポートしていません", - "'none' driver does not support 'minikube ssh' command": "「none」ドライバーは「minikube ssh」コマンドをサポートしていません", - "'none' driver does not support 'minikube ssh-host' command": "", - "'{{.driver}}' driver reported a issue that could affect the performance.": "「{{.driver}}」ドライバーがパフォーマンスに影響しうる問題を報告しました。", - "'{{.driver}}' driver reported an issue: {{.error}}": "「{{.driver}}」ドライバーがエラーを報告しました: {{.error}}", - "- Delete and recreate minikube cluster\n\t\tminikube delete\n\t\tminikube start --driver={{.driver_name}}": "", - "- Docs https://docs.docker.com/docker-for-mac/#resources": "", - "- Docs https://docs.docker.com/docker-for-windows/#resources": "", - "- Ensure your {{.driver_name}} daemon has access to enough CPU/memory resources.": "", - "- Prune unused {{.driver_name}} images, volumes, networks and abandoned containers.\n\n\t\t\t\t{{.driver_name}} system prune --volumes": "", - "- Restart your {{.driver_name}} service": "", - "- {{.logPath}}": "", - "--kvm-numa-count range is 1-8": "", - "--network flag is only valid with the docker/podman and KVM drivers, it will be ignored": "", - "127.0.0.1": "", - "\u003ctarget file absolute path\u003e must be an absolute Path. Relative Path is not allowed (example: \"/home/docker/copied.txt\")": "", - "==\u003e Audit \u003c==": "", - "==\u003e Last Start \u003c==": "", - "A VPN or firewall is interfering with HTTP access to the minikube VM. Alternatively, try a different VM driver: https://minikube.sigs.k8s.io/docs/start/": "VPN、あるいはファイアウォールによって、minkube VM への HTTP アクセスが干渉されています。他の手段として、別の VM を試してみてください: https://minikube.sigs.k8s.io/docs/start/", - "A firewall is blocking Docker the minikube VM from reaching the image repository. You may need to select --image-repository, or use a proxy.": "", - "A firewall is interfering with minikube's ability to make outgoing HTTPS requests. You may need to change the value of the HTTPS_PROXY environment variable.": "ファイアウォールによって、minikube は外側への HTTPS リクエストをすることができません。HTTPS_PROXY 環境変数の値を変える必要があるかもしれません", - "A firewall is likely blocking minikube from reaching the internet. You may need to configure minikube to use a proxy.": "ファイアウォールによって、minikube がインターネットに繋がることができてない可能性があります。minikube がプロキシーを使うように設定する必要があるかもしれません", - "A set of apiserver IP Addresses which are used in the generated certificate for kubernetes. This can be used if you want to make the apiserver available from outside the machine": "Kubernetes 用に生成された証明書で使用されている一連の APIサーバーの IP アドレスのセット。 マシンの外部から API サーバーを利用できるようにする場合に使用します", + "\"The '{{.minikube_addon}}' addon is disabled": "'{{.minikube_addon}}' アドオンが無効です", + "\"{{.context}}\" context has been updated to point to {{.hostname}}:{{.port}}": "「{{.context}}」コンテキストが更新されて、{{.hostname}}:{{.port}} を指すようになりました", + "\"{{.machineName}}\" does not exist, nothing to stop": "「{{.machineName}}」は存在しません。停止対象がありません", + "\"{{.name}}\" profile does not exist, trying anyways.": "「{{.name}}」プロファイルは存在しませんが、それでも続行します。", + "'none' driver does not support 'minikube docker-env' command": "'none' ドライバーは 'minikube docker-env' コマンドをサポートしていません", + "'none' driver does not support 'minikube mount' command": "'none' ドライバーは 'minikube mount' コマンドをサポートしていません", + "'none' driver does not support 'minikube podman-env' command": "'none' ドライバーは 'minikube podman-env' コマンドをサポートしていません", + "'none' driver does not support 'minikube ssh' command": "'none' ドライバーは 'minikube ssh' コマンドをサポートしていません", + "'none' driver does not support 'minikube ssh-host' command": "'none' ドライバーは 'minikube ssh-host' コマンドをサポートしていません", + "'{{.driver}}' driver reported a issue that could affect the performance.": "'{{.driver}}' ドライバーが性能に影響しうる問題を報告しました。", + "'{{.driver}}' driver reported an issue: {{.error}}": "'{{.driver}}' ドライバーがエラーを報告しました: {{.error}}", + "- Delete and recreate minikube cluster\n\t\tminikube delete\n\t\tminikube start --driver={{.driver_name}}": "- minikube クラスターの削除と再作成をしてください\n\t\tminikube delete\n\t\tminikube start --driver={{.driver_name}}", + "- Docs https://docs.docker.com/docker-for-mac/#resources": "- ドキュメント https://docs.docker.com/docker-for-mac/#resources", + "- Docs https://docs.docker.com/docker-for-windows/#resources": "- ドキュメント https://docs.docker.com/docker-for-windows/#resources", + "- Ensure your {{.driver_name}} daemon has access to enough CPU/memory resources.": "- {{.driver_name}} デーモンが十分な CPU/メモリーリソースを利用できることを確認してください。", + "- Prune unused {{.driver_name}} images, volumes, networks and abandoned containers.\n\n\t\t\t\t{{.driver_name}} system prune --volumes": "- 使用していない {{.driver_name}} イメージ、ボリューム、ネットワーク、コンテナーを削除してください。\n\n\t\t\t\t{{.driver_name}} system prune --volumes", + "- Restart your {{.driver_name}} service": "{{.driver_name}} サービスを再起動してください", + "- {{.logPath}}": "- {{.logPath}}", + "--kvm-numa-count range is 1-8": "--kvm-numa-count の範囲は 1~8 です", + "--network flag is only valid with the docker/podman and KVM drivers, it will be ignored": "--network フラグは、docker/podman および KVM ドライバーでのみ有効であるため、無視されます", + "127.0.0.1": "127.0.0.1", + "\u003ctarget file absolute path\u003e must be an absolute Path. Relative Path is not allowed (example: \"/home/docker/copied.txt\")": "\u003ctarget file absolute path\u003e は絶対パスでなければなりません。相対パスは使用できません (例:「/home/docker/copied.txt」)", + "==\u003e Audit \u003c==": "==\u003e Audit \u003c==", + "==\u003e Last Start \u003c==": "==\u003e Last Start \u003c==", + "A VPN or firewall is interfering with HTTP access to the minikube VM. Alternatively, try a different VM driver: https://minikube.sigs.k8s.io/docs/start/": "VPN、あるいはファイアウォールによって、minkube VM への HTTP アクセスが干渉されています。他の手段として、別の VM ドライバーを試してみてください: https://minikube.sigs.k8s.io/docs/start/", + "A firewall is blocking Docker the minikube VM from reaching the image repository. You may need to select --image-repository, or use a proxy.": "Docker の minikube VM がイメージリポジトリーに到達するのを、ファイアウォールがブロックしています。--image-repository を指定するか、プロキシーを使用する必要があるかもしれません。", + "A firewall is interfering with minikube's ability to make outgoing HTTPS requests. You may need to change the value of the HTTPS_PROXY environment variable.": "ファイアウォールによって、minikube は外側への HTTPS リクエストをすることができません。HTTPS_PROXY 環境変数の値を変える必要があるかもしれません。", + "A firewall is likely blocking minikube from reaching the internet. You may need to configure minikube to use a proxy.": "ファイアウォールによって、minikube がインターネットに接続できていない可能性があります。minikube がプロキシーを使用するように設定する必要があるかもしれません。", + "A set of apiserver IP Addresses which are used in the generated certificate for kubernetes. This can be used if you want to make the apiserver available from outside the machine": "Kubernetes 用に生成された証明書で使用される一連の API サーバーの IP アドレス。マシンの外部から API サーバーを利用できるようにする場合に使用します", "A set of apiserver names which are used in the generated certificate for kubernetes. This can be used if you want to make the apiserver available from outside the machine": "Kubernetes 用に生成された証明書で使用される一連の API サーバー名。マシンの外部から API サーバーを利用できるようにする場合に使用します", - "A set of key=value pairs that describe feature gates for alpha/experimental features.": "アルファ版または試験運用版の機能のフィーチャーゲートを記述する一連の key=value ペアです", - "Access the Kubernetes dashboard running within the minikube cluster": "minikube クラスタ内で動いている Kubernetes のダッシュボードにアクセスします", - "Access to ports below 1024 may fail on Windows with OpenSSH clients older than v8.1. For more information, see: https://minikube.sigs.k8s.io/docs/handbook/accessing/#access-to-ports-1024-on-windows-requires-root-permission": "", - "Add SSH identity key to SSH authentication agent": "", - "Add an image to local cache.": "イメージをローカルキャッシュに追加します", - "Add host key to SSH known_hosts file": "", - "Add image to cache for all running minikube clusters": "", - "Add machine IP to NO_PROXY environment variable": "マシーンの IP アドレスをNO_PROXY 環境変数に追加します", - "Add, delete, or push a local image into minikube": "ローカルイメージをminikubeに追加、削除、またはプッシュします", + "A set of key=value pairs that describe feature gates for alpha/experimental features.": "アルファ版または試験運用版の機能のフィーチャーゲートを記述する一連の key=value ペアです。", + "Access the Kubernetes dashboard running within the minikube cluster": "minikube クラスター内で動いている Kubernetes のダッシュボードにアクセスします", + "Access to ports below 1024 may fail on Windows with OpenSSH clients older than v8.1. For more information, see: https://minikube.sigs.k8s.io/docs/handbook/accessing/#access-to-ports-1024-on-windows-requires-root-permission": "Windows で v8.1 より古い OpenSSH クライアントを使用している場合、1024 未満のポートへのアクセスに失敗することがあります。詳細はこちら: https://minikube.sigs.k8s.io/docs/handbook/accessing/#access-to-ports-1024-on-windows-requires-root-permission", + "Add SSH identity key to SSH authentication agent": "SSH 認証エージェントに SSH 鍵を追加します", + "Add an image to local cache.": "イメージをローカルキャッシュに追加します。", + "Add host key to SSH known_hosts file": "SSH known_hosts ファイルにホストキーを追加します", + "Add image to cache for all running minikube clusters": "実行中のすべての minikube クラスターのキャッシュに、イメージを追加します", + "Add machine IP to NO_PROXY environment variable": "マシンの IP アドレスを NO_PROXY 環境変数に追加します", + "Add, delete, or push a local image into minikube": "ローカルイメージを minikube に追加、削除、またはプッシュします", "Add, remove, or list additional nodes": "追加のノードを追加、削除またはリストアップします", - "Adding node {{.name}} to cluster {{.cluster}}": "「{{.name}}」というノードを「{{.cluster}}」というクラスタに追加します", + "Adding node {{.name}} to cluster {{.cluster}}": "{{.name}} ノードを {{.cluster}} クラスターに追加します", "Additional help topics": "追加のトピック", "Additional mount options, such as cache=fscache": "cache=fscache などの追加のマウントオプション", - "Adds a node to the given cluster config, and starts it.": "ノードをクラスタの設定に追加して、起動します", - "Adds a node to the given cluster.": "ノードをクラスタに追加します", + "Adds a node to the given cluster config, and starts it.": "ノードをクラスターの設定に追加して、起動します。", + "Adds a node to the given cluster.": "ノードをクラスターに追加します。", "Advanced Commands:": "高度なコマンド:", - "After the addon is enabled, please run \"minikube tunnel\" and your ingress resources would be available at \"127.0.0.1\"": "", + "After the addon is enabled, please run \"minikube tunnel\" and your ingress resources would be available at \"127.0.0.1\"": "アドオンを有効にした後、「minikube tunnel」を実行することで、ingress リソースが「127.0.0.1」で利用可能になります", "Aliases": "エイリアス", - "All existing scheduled stops cancelled": "", - "Allow user prompts for more information": "", + "All existing scheduled stops cancelled": "既存のスケジュールされていたすべての停止がキャンセルされました", + "Allow user prompts for more information": "ユーザーによる詳細情報の入力をできるようにします", "Alternative image repository to pull docker images from. This can be used when you have limited access to gcr.io. Set it to \\\"auto\\\" to let minikube decide one for you. For Chinese mainland users, you may use local gcr.io mirrors such as registry.cn-hangzhou.aliyuncs.com/google_containers": "Docker イメージの pull 元の代替イメージ リポジトリ。これは、gcr.io へのアクセスが制限されている場合に使用できます。これを \\\"auto\\\" に設定すると、minikube によって自動的に指定されるようになります。中国本土のユーザーの場合、registry.cn-hangzhou.aliyuncs.com/google_containers などのローカル gcr.io ミラーを使用できます", "Amount of RAM to allocate to Kubernetes (format: \u003cnumber\u003e[\u003cunit\u003e], where unit = b, k, m or g).": "Kubernetesに割り当てられた RAM 容量(形式: \u003cnumber\u003e[\u003cunit\u003e]、unit = b、k、m、g)", "Amount of time to wait for a service in seconds": "", From fbd4d27582ef9d7abdd32eceb41b83d329113a50 Mon Sep 17 00:00:00 2001 From: Steven Powell Date: Thu, 21 Oct 2021 10:01:10 -0700 Subject: [PATCH 012/111] fix podman network inspect index check --- pkg/drivers/kic/oci/network_create.go | 13 +++-- pkg/drivers/kic/oci/network_create_test.go | 67 +++++++++++++++++++++- 2 files changed, 71 insertions(+), 9 deletions(-) diff --git a/pkg/drivers/kic/oci/network_create.go b/pkg/drivers/kic/oci/network_create.go index 27dd083ef5ad..fe3ed5b4601a 100644 --- a/pkg/drivers/kic/oci/network_create.go +++ b/pkg/drivers/kic/oci/network_create.go @@ -212,10 +212,14 @@ func dockerNetworkInspect(name string) (netInfo, error) { return info, nil } +var podmanInspectGetter = func(name string) (*RunResult, error) { + cmd := exec.Command(Podman, "network", "inspect", name, "--format", `{{range .plugins}}{{if eq .type "bridge"}}{{(index (index .ipam.ranges 0) 0).subnet}},{{(index (index .ipam.ranges 0) 0).gateway}}{{end}}{{end}}`) + return runCmd(cmd) +} + func podmanNetworkInspect(name string) (netInfo, error) { var info = netInfo{name: name} - cmd := exec.Command(Podman, "network", "inspect", name, "--format", `{{range .plugins}}{{if eq .type "bridge"}}{{(index (index .ipam.ranges 0) 0).subnet}},{{(index (index .ipam.ranges 0) 0).gateway}}{{end}}{{end}}`) - rr, err := runCmd(cmd) + rr, err := podmanInspectGetter(name) if err != nil { logDockerNetworkInspect(Podman, name) if strings.Contains(rr.Output(), "no such network") { @@ -232,11 +236,8 @@ func podmanNetworkInspect(name string) (netInfo, error) { // results looks like 172.17.0.0/16,172.17.0.1,1500 vals := strings.Split(strings.TrimSpace(output), ",") - if len(vals) == 0 { - return info, fmt.Errorf("empty list network inspect: %q", rr.Output()) - } - if len(vals) > 0 { + if len(vals) >= 2 { info.gateway = net.ParseIP(vals[1]) } diff --git a/pkg/drivers/kic/oci/network_create_test.go b/pkg/drivers/kic/oci/network_create_test.go index ee0f8504d328..a4d25bf28883 100644 --- a/pkg/drivers/kic/oci/network_create_test.go +++ b/pkg/drivers/kic/oci/network_create_test.go @@ -69,15 +69,76 @@ func TestDockerInspect(t *testing.T) { } if netInfo.mtu != tc.mtu { - t.Errorf("Expected not to have MTU as %v but got %v", tc.mtu, netInfo.mtu) + t.Errorf("Expected MTU to be %v but got %v", tc.mtu, netInfo.mtu) } if !netInfo.gateway.Equal(net.ParseIP(tc.gateway)) { - t.Errorf("Expected not to have gateway as %v but got %v", tc.gateway, netInfo.gateway) + t.Errorf("Expected gateway to be %v but got %v", tc.gateway, netInfo.gateway) } if !netInfo.subnet.IP.Equal(net.ParseIP(tc.subnetIP)) { - t.Errorf("Expected not to have subnet as %v but got %v", tc.subnetIP, netInfo.gateway) + t.Errorf("Expected subnet to be %v but got %v", tc.subnetIP, netInfo.subnet.IP) + } + }) + } +} + +var podmanResponse string +var podmanInspectGetterMock = func(name string) (*RunResult, error) { + var responseInBytes bytes.Buffer + responseInBytes.WriteString(podmanResponse) + response := &RunResult{Stdout: responseInBytes} + + return response, nil +} + +func TestPodmanInspect(t *testing.T) { + var emptyGateway net.IP + gateway := net.ParseIP("172.17.0.1") + _, subnetIP, err := net.ParseCIDR("172.17.0.0/16") + if err != nil { + t.Fatalf("failed to parse CIDR: %v", err) + } + + var tests = []struct { + name string + podmanInspectResponse string + gateway net.IP + subnetIP string + }{ + { + name: "WithGateway", + podmanInspectResponse: "172.17.0.0/16,172.17.0.1", + gateway: gateway, + subnetIP: subnetIP.String(), + }, + { + name: "WithoutGateway", + podmanInspectResponse: "172.17.0.0/16", + gateway: emptyGateway, + subnetIP: subnetIP.String(), + }, + } + + for _, tc := range tests { + t.Run(tc.name, func(t *testing.T) { + podmanInspectResponse := tc.podmanInspectResponse + + // setting up mock funcs + podmanResponse = podmanInspectResponse + podmanInspectGetter = podmanInspectGetterMock + + netInfo, err := podmanNetworkInspect("m2") + if err != nil { + t.Errorf("Expected not to have error but got %v", err) + } + + if !netInfo.gateway.Equal(tc.gateway) { + t.Errorf("Expected gateway to be %v but got %v", tc.gateway, netInfo.gateway) + } + + if netInfo.subnet.String() != tc.subnetIP { + t.Errorf("Expected subnet to be %v but got %v", tc.subnetIP, netInfo.subnet) } }) } From 1a8a6e1e888ef947f6674967f4ad2d7ebdcc5c6d Mon Sep 17 00:00:00 2001 From: Sharif Elgamal Date: Thu, 21 Oct 2021 12:55:15 -0700 Subject: [PATCH 013/111] add detailed repro steps for conformance README --- hack/conformance_tests.sh | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/hack/conformance_tests.sh b/hack/conformance_tests.sh index 34b3801090e9..2b5f409078da 100755 --- a/hack/conformance_tests.sh +++ b/hack/conformance_tests.sh @@ -51,6 +51,8 @@ tar -xzf $tarball outdir="$(mktemp -d)" ./sonobuoy retrieve "${outdir}" +"${MINIKUBE}" delete -p "${PROFILE_NAME}" + cwd=$(pwd) cd "${outdir}" @@ -74,7 +76,30 @@ description: minikube runs a local Kubernetes cluster on macOS, Linux, and Windo EOF cat <README.md -./hack/conformance_tests.sh $MINIKUBE $START_ARGS +# Reproducing the test results + +## Run minikube with docker driver + +Install [docker](https://docs.docker.com/engine/install/) +Install [kubectl](https://v1-18.docs.kubernetes.io/docs/tasks/tools/install-kubectl/) +Clone the [minikube repo](https://github.com/kubernetes/minikube) + +## Compile the latest minikube binary +```console +% cd +% make +``` + +## Trigger the tests and get back the results + +We follow the [official instructions](https://github.com/cncf/k8s-conformance/blob/master/instructions.md): + +```console +% cd +./hack/conformance_tests.sh ${MINIKUBE} ${START_ARGS} +``` + +This script will run sonobuoy against a minikube cluster with two nodes and the provided parameters. EOF cp -r ../results/plugins/e2e/results/global/* . From 016b3ac40a466abbfbae31241156d919ffc23859 Mon Sep 17 00:00:00 2001 From: Steven Powell Date: Thu, 21 Oct 2021 13:28:52 -0700 Subject: [PATCH 014/111] trim space earlier --- pkg/drivers/kic/oci/network_create.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkg/drivers/kic/oci/network_create.go b/pkg/drivers/kic/oci/network_create.go index fe3ed5b4601a..b928c9a131d8 100644 --- a/pkg/drivers/kic/oci/network_create.go +++ b/pkg/drivers/kic/oci/network_create.go @@ -229,13 +229,13 @@ func podmanNetworkInspect(name string) (netInfo, error) { return info, err } - output := rr.Stdout.String() + output := strings.TrimSpace(rr.Stdout.String()) if output == "" { return info, fmt.Errorf("no bridge network found for %s", name) } // results looks like 172.17.0.0/16,172.17.0.1,1500 - vals := strings.Split(strings.TrimSpace(output), ",") + vals := strings.Split(output, ",") if len(vals) >= 2 { info.gateway = net.ParseIP(vals[1]) From 9b28e2330d3b6814ba7d37c841a1a4f2473a219a Mon Sep 17 00:00:00 2001 From: Sharif Elgamal Date: Thu, 21 Oct 2021 14:31:28 -0700 Subject: [PATCH 015/111] don't let root own the go installation folder on CI machines --- hack/jenkins/installers/check_install_golang.sh | 3 +++ hack/jenkins/installers/check_install_gotestsum.sh | 6 +++--- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/hack/jenkins/installers/check_install_golang.sh b/hack/jenkins/installers/check_install_golang.sh index b341ea77b484..c7dd9a8eba99 100755 --- a/hack/jenkins/installers/check_install_golang.sh +++ b/hack/jenkins/installers/check_install_golang.sh @@ -50,6 +50,8 @@ function check_and_install_golang() { return fi + sudo chown -R jenkins:jenkins "$INSTALL_PATH"/go + # golang has been installed and check its version if [[ $(go version | cut -d' ' -f 3) =~ go(([0-9]+)\.([0-9]+).([0-9]+)*) ]]; then HOST_VERSION=${BASH_REMATCH[1]} @@ -86,6 +88,7 @@ function install_golang() { sudo rm -rf "$GO_DIR" sudo mkdir -p "$GO_DIR" sudo tar -C "$GO_DIR" --strip-components=1 -xzf "$GO_TGZ" + sudo chown -R jenkins:jenkins "$GO_DIR" popd >/dev/null echo "installed in $GO_DIR: $($GO_DIR/bin/go version)" diff --git a/hack/jenkins/installers/check_install_gotestsum.sh b/hack/jenkins/installers/check_install_gotestsum.sh index 9c7ee25872d7..4a99d7ca1c44 100644 --- a/hack/jenkins/installers/check_install_gotestsum.sh +++ b/hack/jenkins/installers/check_install_gotestsum.sh @@ -17,8 +17,8 @@ set -eux -o pipefail function install_gotestsum() { - sudo rm -f $(which gotestsum) - sudo PATH="$PATH" GOBIN="$GOROOT/bin" go install gotest.tools/gotestsum@v1.6.4 + rm -f $(which gotestsum) + GOBIN="$GOROOT/bin" go install gotest.tools/gotestsum@v1.6.4 } -which gotestsum || install_gotestsum \ No newline at end of file +which gotestsum || install_gotestsum From c8cb7a3c2d6f8f6bb3476d05338250f52ce94672 Mon Sep 17 00:00:00 2001 From: Medya Gh Date: Wed, 20 Oct 2021 15:19:20 -0700 Subject: [PATCH 016/111] delete older minikube version preload files on start tup --- cmd/minikube/cmd/delete.go | 3 ++- cmd/minikube/cmd/start.go | 1 + pkg/minikube/download/preload.go | 26 ++++++++++++++++++++++++++ 3 files changed, 29 insertions(+), 1 deletion(-) diff --git a/cmd/minikube/cmd/delete.go b/cmd/minikube/cmd/delete.go index 74764207dd65..87ffd48ae0ce 100644 --- a/cmd/minikube/cmd/delete.go +++ b/cmd/minikube/cmd/delete.go @@ -40,6 +40,7 @@ import ( "k8s.io/minikube/pkg/minikube/constants" "k8s.io/minikube/pkg/minikube/cruntime" "k8s.io/minikube/pkg/minikube/delete" + "k8s.io/minikube/pkg/minikube/download" "k8s.io/minikube/pkg/minikube/driver" "k8s.io/minikube/pkg/minikube/exit" "k8s.io/minikube/pkg/minikube/kubeconfig" @@ -151,7 +152,7 @@ func runDelete(cmd *cobra.Command, args []string) { } // register.SetEventLogPath(localpath.EventLog(ClusterFlagValue())) register.Reg.SetStep(register.Deleting) - + download.CleanUpOlderPreloads() validProfiles, invalidProfiles, err := config.ListProfiles() if err != nil { klog.Warningf("'error loading profiles in minikube home %q: %v", localpath.MiniPath(), err) diff --git a/cmd/minikube/cmd/start.go b/cmd/minikube/cmd/start.go index 042b0611c18a..4a6246f85c43 100644 --- a/cmd/minikube/cmd/start.go +++ b/cmd/minikube/cmd/start.go @@ -142,6 +142,7 @@ func runStart(cmd *cobra.Command, args []string) { } defer pkgtrace.Cleanup() displayVersion(version.GetVersion()) + go download.CleanUpOlderPreloads() // No need to do the update check if no one is going to see it if !viper.GetBool(interactive) || !viper.GetBool(dryRun) { diff --git a/pkg/minikube/download/preload.go b/pkg/minikube/download/preload.go index 287e2b829e8d..cc46cb468f5a 100644 --- a/pkg/minikube/download/preload.go +++ b/pkg/minikube/download/preload.go @@ -21,9 +21,12 @@ import ( "crypto/md5" "encoding/hex" "fmt" + "io/ioutil" "net/http" "os" + "path" "path/filepath" + "strings" "cloud.google.com/go/storage" "google.golang.org/api/option" @@ -282,3 +285,26 @@ var ensureChecksumValid = func(k8sVersion, containerRuntime, targetPath string, return nil } + +// CleanUpOlderPreloads deletes preload files beloning to older minikube versions +// checks the current preload version and then if the saved tar file is belongs to older minikube it will delete it +// in case of failure only logs to the user +func CleanUpOlderPreloads() { + files, err := ioutil.ReadDir(targetDir()) + if err != nil { + klog.Warningf("Failed to list prelaod files: %v", err) + } + + for _, file := range files { + ver := strings.Split(file.Name(), "-")[3] + + if ver != PreloadVersion { + fn := path.Join(targetDir(), file.Name()) + klog.Infof("deleting older generation preload %s", fn) + err := os.Remove(fn) + if err != nil { + klog.Warningf("Failed to clean up older preload files, consider running `minikube delete --all --purge`") + } + } + } +} From f80304a02277a9e34702f680cf18825d88af5993 Mon Sep 17 00:00:00 2001 From: Medya Gh Date: Thu, 21 Oct 2021 11:42:43 -0700 Subject: [PATCH 017/111] address review comments --- pkg/minikube/download/preload.go | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/pkg/minikube/download/preload.go b/pkg/minikube/download/preload.go index cc46cb468f5a..6e2765a7b1bb 100644 --- a/pkg/minikube/download/preload.go +++ b/pkg/minikube/download/preload.go @@ -21,7 +21,6 @@ import ( "crypto/md5" "encoding/hex" "fmt" - "io/ioutil" "net/http" "os" "path" @@ -290,14 +289,17 @@ var ensureChecksumValid = func(k8sVersion, containerRuntime, targetPath string, // checks the current preload version and then if the saved tar file is belongs to older minikube it will delete it // in case of failure only logs to the user func CleanUpOlderPreloads() { - files, err := ioutil.ReadDir(targetDir()) + files, err := os.ReadDir(targetDir()) if err != nil { - klog.Warningf("Failed to list prelaod files: %v", err) + klog.Warningf("Failed to list preload files: %v", err) } for _, file := range files { - ver := strings.Split(file.Name(), "-")[3] - + splited := strings.Split(file.Name(), "-") + if len(splited) < 3 { + continue + } + ver := splited[3] if ver != PreloadVersion { fn := path.Join(targetDir(), file.Name()) klog.Infof("deleting older generation preload %s", fn) From d33b59d8b206a7a7f92146b110b73c15ee99a336 Mon Sep 17 00:00:00 2001 From: Medya Gh Date: Thu, 21 Oct 2021 12:18:06 -0700 Subject: [PATCH 018/111] fix len --- pkg/minikube/download/preload.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/minikube/download/preload.go b/pkg/minikube/download/preload.go index 6e2765a7b1bb..5a1dc9429e49 100644 --- a/pkg/minikube/download/preload.go +++ b/pkg/minikube/download/preload.go @@ -296,7 +296,7 @@ func CleanUpOlderPreloads() { for _, file := range files { splited := strings.Split(file.Name(), "-") - if len(splited) < 3 { + if len(splited) < 4 { continue } ver := splited[3] From 20c7c49509ee53cd3d44a7b92424bf3d6299dd7d Mon Sep 17 00:00:00 2001 From: Medya Gh Date: Thu, 21 Oct 2021 10:29:38 -0700 Subject: [PATCH 019/111] skip dns test on kic drivers --- test/integration/functional_test_tunnel_test.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/integration/functional_test_tunnel_test.go b/test/integration/functional_test_tunnel_test.go index 1f395731c352..180334e9a10a 100644 --- a/test/integration/functional_test_tunnel_test.go +++ b/test/integration/functional_test_tunnel_test.go @@ -93,8 +93,8 @@ func checkRoutePassword(t *testing.T) { // checkDNSForward skips DNS forwarding test if runtime is not supported func checkDNSForward(t *testing.T) { // Not all platforms support DNS forwarding - if runtime.GOOS != "darwin" { - t.Skip("DNS forwarding is supported for darwin only now, skipping test DNS forwarding") + if runtime.GOOS != "darwin" || KicDriver() { + t.Skip("DNS forwarding is only supported for hyprkit on darwin, skipping test DNS forwarding") } } From 5b53ae83ad83422e6893a0b4ffeabd5670f35d29 Mon Sep 17 00:00:00 2001 From: Sharif Elgamal Date: Thu, 21 Oct 2021 17:04:20 -0700 Subject: [PATCH 020/111] fix gcp-auth tests to avoid expiring tokens --- test/integration/addons_test.go | 74 +++++++++++++-------------------- 1 file changed, 30 insertions(+), 44 deletions(-) diff --git a/test/integration/addons_test.go b/test/integration/addons_test.go index e8730ac07892..1217aee1f00d 100644 --- a/test/integration/addons_test.go +++ b/test/integration/addons_test.go @@ -47,25 +47,9 @@ func TestAddons(t *testing.T) { defer Cleanup(t, profile, cancel) setupSucceeded := t.Run("Setup", func(t *testing.T) { - // We don't need a dummy file is we're on GCE - if !detect.IsOnGCE() || detect.IsCloudShell() { - // Set an env var to point to our dummy credentials file - err := os.Setenv("GOOGLE_APPLICATION_CREDENTIALS", filepath.Join(*testdataDir, "gcp-creds.json")) - t.Cleanup(func() { - os.Unsetenv("GOOGLE_APPLICATION_CREDENTIALS") - }) - if err != nil { - t.Fatalf("Failed setting GOOGLE_APPLICATION_CREDENTIALS env var: %v", err) - } - - err = os.Setenv("GOOGLE_CLOUD_PROJECT", "this_is_fake") - t.Cleanup(func() { - os.Unsetenv("GOOGLE_CLOUD_PROJECT") - }) - if err != nil { - t.Fatalf("Failed setting GOOGLE_CLOUD_PROJECT env var: %v", err) - } - } + // Set an env var to point to our dummy credentials file + t.Setenv("GOOGLE_APPLICATION_CREDENTIALS", filepath.Join(*testdataDir, "gcp-creds.json")) + t.Setenv("GOOGLE_CLOUD_PROJECT", "this_is_fake") args := append([]string{"start", "-p", profile, "--wait=true", "--memory=4000", "--alsologtostderr", "--addons=registry", "--addons=metrics-server", "--addons=olm", "--addons=volumesnapshots", "--addons=csi-hostpath-driver"}, StartArgs()...) if !NoneDriver() { // none driver does not support ingress @@ -85,24 +69,15 @@ func TestAddons(t *testing.T) { // If we're running the integration tests on GCE, which is frequently the case, first check to make sure we exit out properly, // then use force to actually test using creds. if detect.IsOnGCE() { - args = []string{"-p", profile, "addons", "enable", "gcp-auth"} + // ok, use force here since we are in GCE + // do not use --force unless absolutely necessary + args := []string{"-p", profile, "addons", "enable", "gcp-auth", "--force"} rr, err := Run(t, exec.CommandContext(ctx, Target(), args...)) if err != nil { t.Errorf("%s failed: %v", rr.Command(), err) - } else { - if !detect.IsCloudShell() && !strings.Contains(rr.Output(), "It seems that you are running in GCE") { - t.Errorf("Unexpected error message: %v", rr.Output()) - } else { - // ok, use force here since we are in GCE - // do not use --force unless absolutely necessary - args = append(args, "--force") - rr, err := Run(t, exec.CommandContext(ctx, Target(), args...)) - if err != nil { - t.Errorf("%s failed: %v", rr.Command(), err) - } - } } } + }) if !setupSucceeded { @@ -676,8 +651,31 @@ func validateGCPAuthAddon(ctx context.Context, t *testing.T, profile string) { t.Errorf("'printenv GOOGLE_CLOUD_PROJECT' returned %s, expected %s", got, expected) } + disableGCPAuth := func() error { + _, err = Run(t, exec.CommandContext(ctx, Target(), "-p", profile, "addons", "disable", "gcp-auth", "--alsologtostderr", "-v=1")) + if err != nil { + return err + } + return nil + } + + if err := retry.Expo(disableGCPAuth, Minutes(2), Minutes(10), 5); err != nil { + t.Errorf("failed to disable GCP auth addon: %v", err) + } + // If we're on GCE, we have proper credentials and can test the registry secrets with an artifact registry image if detect.IsOnGCE() && !detect.IsCloudShell() { + os.Unsetenv("GOOGLE_APPLICATION_CREDENTIALS") + os.Unsetenv("GOOGLE_CLOUD_PROJECT") + args := []string{"-p", profile, "addons", "enable", "gcp-auth"} + rr, err := Run(t, exec.CommandContext(ctx, Target(), args...)) + if err != nil { + t.Errorf("%s failed: %v", rr.Command(), err) + } else { + if !strings.Contains(rr.Output(), "It seems that you are running in GCE") { + t.Errorf("Unexpected error message: %v", rr.Output()) + } + } _, err = Run(t, exec.CommandContext(ctx, "kubectl", "--context", profile, "apply", "-f", filepath.Join(*testdataDir, "private-image.yaml"))) if err != nil { t.Fatalf("print env project: %v", err) @@ -703,16 +701,4 @@ func validateGCPAuthAddon(ctx context.Context, t *testing.T, profile string) { t.Fatalf("wait for private image: %v", err) } } - - disableGCPAuth := func() error { - _, err = Run(t, exec.CommandContext(ctx, Target(), "-p", profile, "addons", "disable", "gcp-auth", "--alsologtostderr", "-v=1")) - if err != nil { - return err - } - return nil - } - - if err := retry.Expo(disableGCPAuth, Minutes(2), Minutes(10), 5); err != nil { - t.Errorf("failed to disable GCP auth addon: %v", err) - } } From 503d3425e124f083c9a380e9e30201100c30ce3e Mon Sep 17 00:00:00 2001 From: Avinash Upadhyaya Date: Mon, 25 Oct 2021 19:13:48 +0530 Subject: [PATCH 021/111] docs: add details about app output for /docs/start --- site/.hugo_build.lock | 0 site/content/en/docs/start/_index.md | 4 +++- 2 files changed, 3 insertions(+), 1 deletion(-) create mode 100644 site/.hugo_build.lock diff --git a/site/.hugo_build.lock b/site/.hugo_build.lock new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/site/content/en/docs/start/_index.md b/site/content/en/docs/start/_index.md index f35f5398a4b7..5c0aa438a4f9 100644 --- a/site/content/en/docs/start/_index.md +++ b/site/content/en/docs/start/_index.md @@ -543,7 +543,9 @@ Alternatively, use kubectl to forward the port: kubectl port-forward service/hello-minikube 7080:8080 ``` -Tada! Your application is now available at [http://localhost:7080/](http://localhost:7080/) +Tada! Your application is now available at [http://localhost:7080/](http://localhost:7080/). + +You should be able to see the request metadata from nginx such as the `CLIENT VALUES`, `SERVER VALUES`, `HEADERS RECEIVED` and the `BODY` in the application output. Try changing the path of the request and observe the changes in the `CLIENT VALUES`. Similarly, you can do a POST request to the same and observe the body show up in `BODY` section of the output. ### LoadBalancer deployments From e68c889f85bc09a24c2b45d647634cc39d96d8b2 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 25 Oct 2021 18:32:10 +0000 Subject: [PATCH 022/111] Bump google.golang.org/api from 0.58.0 to 0.59.0 Bumps [google.golang.org/api](https://github.com/googleapis/google-api-go-client) from 0.58.0 to 0.59.0. - [Release notes](https://github.com/googleapis/google-api-go-client/releases) - [Changelog](https://github.com/googleapis/google-api-go-client/blob/master/CHANGES.md) - [Commits](https://github.com/googleapis/google-api-go-client/compare/v0.58.0...v0.59.0) --- updated-dependencies: - dependency-name: google.golang.org/api dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- go.mod | 8 ++++---- go.sum | 15 ++++++++------- 2 files changed, 12 insertions(+), 11 deletions(-) diff --git a/go.mod b/go.mod index b84da6723ab5..28ba1fd6fb6a 100644 --- a/go.mod +++ b/go.mod @@ -80,13 +80,13 @@ require ( golang.org/x/crypto v0.0.0-20210817164053-32db794688a5 golang.org/x/exp v0.0.0-20210220032938-85be41e4509f golang.org/x/mod v0.5.1 - golang.org/x/oauth2 v0.0.0-20210819190943-2bc19b11175f + golang.org/x/oauth2 v0.0.0-20211005180243-6b3c2da341f1 golang.org/x/sync v0.0.0-20210220032951-036812b2e83c - golang.org/x/sys v0.0.0-20210917161153-d61c044b1678 + golang.org/x/sys v0.0.0-20211007075335-d3039528d8ac golang.org/x/term v0.0.0-20210406210042-72f3dc4e9b72 golang.org/x/text v0.3.7 gonum.org/v1/plot v0.10.0 - google.golang.org/api v0.58.0 + google.golang.org/api v0.59.0 gopkg.in/mgo.v2 v2.0.0-20190816093944-a6b53ec6cb22 // indirect gopkg.in/yaml.v2 v2.4.0 k8s.io/api v0.22.2 @@ -194,7 +194,7 @@ require ( golang.org/x/time v0.0.0-20210220033141-f8bda1e9f3ba // indirect golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 // indirect google.golang.org/appengine v1.6.7 // indirect - google.golang.org/genproto v0.0.0-20210924002016-3dee208752a0 // indirect + google.golang.org/genproto v0.0.0-20211008145708-270636b82663 // indirect google.golang.org/grpc v1.40.0 // indirect google.golang.org/protobuf v1.27.1 // indirect gopkg.in/inf.v0 v0.9.1 // indirect diff --git a/go.sum b/go.sum index f6a77723a3bf..89a9c0363f0c 100644 --- a/go.sum +++ b/go.sum @@ -1377,8 +1377,9 @@ golang.org/x/oauth2 v0.0.0-20210402161424-2e8d93401602/go.mod h1:KelEdhl1UZF7XfJ golang.org/x/oauth2 v0.0.0-20210514164344-f6687ab2804c/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= golang.org/x/oauth2 v0.0.0-20210628180205-a41e5a781914/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= golang.org/x/oauth2 v0.0.0-20210805134026-6f1e6394065a/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20210819190943-2bc19b11175f h1:Qmd2pbz05z7z6lm0DrgQVVPuBm92jqujBKMHMOlOQEw= golang.org/x/oauth2 v0.0.0-20210819190943-2bc19b11175f/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20211005180243-6b3c2da341f1 h1:B333XXssMuKQeBwiNODx4TupZy7bf4sxFZnN2ZOcvUE= +golang.org/x/oauth2 v0.0.0-20211005180243-6b3c2da341f1/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= golang.org/x/perf v0.0.0-20180704124530-6e6d33e29852/go.mod h1:JLpeXjPJfIyPr5TlbXLkXWLhP8nz10XfvxElABhCtcw= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -1495,8 +1496,8 @@ golang.org/x/sys v0.0.0-20210806184541-e5e7981a1069/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20210816074244-15123e1e1f71/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210823070655-63515b42dcdf/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210908233432-aa78b53d3365/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20210917161153-d61c044b1678 h1:J27LZFQBFoihqXoegpscI10HpjZ7B5WQLLKL2FZXQKw= -golang.org/x/sys v0.0.0-20210917161153-d61c044b1678/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20211007075335-d3039528d8ac h1:oN6lz7iLW/YC7un8pq+9bOLyXrprv2+DKfkJY+2LJJw= +golang.org/x/sys v0.0.0-20211007075335-d3039528d8ac/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210220032956-6a3ed077a48d/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= @@ -1639,8 +1640,8 @@ google.golang.org/api v0.54.0/go.mod h1:7C4bFFOvVDGXjfDTAsgGwDgAxRDeQ4X8NvUedIt6 google.golang.org/api v0.55.0/go.mod h1:38yMfeP1kfjsl8isn0tliTjIb1rJXcQi4UXlbqivdVE= google.golang.org/api v0.56.0/go.mod h1:38yMfeP1kfjsl8isn0tliTjIb1rJXcQi4UXlbqivdVE= google.golang.org/api v0.57.0/go.mod h1:dVPlbZyBo2/OjBpmvNdpn2GRm6rPy75jyU7bmhdrMgI= -google.golang.org/api v0.58.0 h1:MDkAbYIB1JpSgCTOCYYoIec/coMlKK4oVbpnBLLcyT0= -google.golang.org/api v0.58.0/go.mod h1:cAbP2FsxoGVNwtgNAmmn3y5G1TWAiVYRmg4yku3lv+E= +google.golang.org/api v0.59.0 h1:fPfFO7gttlXYo2ALuD3HxJzh8vaF++4youI0BkFL6GE= +google.golang.org/api v0.59.0/go.mod h1:sT2boj7M9YJxZzgeZqXogmhfmRWDtPzT31xkieUbuZU= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= @@ -1711,9 +1712,9 @@ google.golang.org/genproto v0.0.0-20210828152312-66f60bf46e71/go.mod h1:eFjDcFEc google.golang.org/genproto v0.0.0-20210831024726-fe130286e0e2/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY= google.golang.org/genproto v0.0.0-20210903162649-d08c68adba83/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY= google.golang.org/genproto v0.0.0-20210909211513-a8c4777a87af/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY= -google.golang.org/genproto v0.0.0-20210917145530-b395a37504d4/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY= -google.golang.org/genproto v0.0.0-20210924002016-3dee208752a0 h1:5Tbluzus3QxoAJx4IefGt1W0HQZW4nuMrVk684jI74Q= google.golang.org/genproto v0.0.0-20210924002016-3dee208752a0/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= +google.golang.org/genproto v0.0.0-20211008145708-270636b82663 h1:33YYJanAOLxgS7pGjzC1IUrFLpwN//bbgtnKYikOmQU= +google.golang.org/genproto v0.0.0-20211008145708-270636b82663/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= google.golang.org/grpc v0.0.0-20160317175043-d3ddb4469d5a/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= From 360ff334d3062025ce34a63c7b241874101f0b0c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 25 Oct 2021 18:32:52 +0000 Subject: [PATCH 023/111] Bump k8s.io/klog/v2 from 2.20.0 to 2.30.0 Bumps [k8s.io/klog/v2](https://github.com/kubernetes/klog) from 2.20.0 to 2.30.0. - [Release notes](https://github.com/kubernetes/klog/releases) - [Changelog](https://github.com/kubernetes/klog/blob/main/RELEASE.md) - [Commits](https://github.com/kubernetes/klog/compare/v2.20.0...v2.30.0) --- updated-dependencies: - dependency-name: k8s.io/klog/v2 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- go.mod | 4 ++-- go.sum | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/go.mod b/go.mod index b84da6723ab5..97c975d4a666 100644 --- a/go.mod +++ b/go.mod @@ -92,7 +92,7 @@ require ( k8s.io/api v0.22.2 k8s.io/apimachinery v0.22.2 k8s.io/client-go v0.22.2 - k8s.io/klog/v2 v2.20.0 + k8s.io/klog/v2 v2.30.0 k8s.io/kubectl v0.22.2 k8s.io/kubernetes v1.21.3 sigs.k8s.io/sig-storage-lib-external-provisioner/v6 v6.3.0 @@ -129,7 +129,7 @@ require ( github.com/fsnotify/fsnotify v1.5.1 // indirect github.com/go-fonts/liberation v0.2.0 // indirect github.com/go-latex/latex v0.0.0-20210823091927-c0d11ff05a81 // indirect - github.com/go-logr/logr v1.0.0 // indirect + github.com/go-logr/logr v1.2.0 // indirect github.com/go-ole/go-ole v1.2.5 // indirect github.com/go-pdf/fpdf v0.5.0 // indirect github.com/gogo/protobuf v1.3.2 // indirect diff --git a/go.sum b/go.sum index f6a77723a3bf..b8e130fb703a 100644 --- a/go.sum +++ b/go.sum @@ -452,8 +452,8 @@ github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V github.com/go-logr/logr v0.1.0/go.mod h1:ixOQHD9gLJUVQQ2ZOR7zLEifBX6tGkNJF4QyIY7sIas= github.com/go-logr/logr v0.2.0/go.mod h1:z6/tIYblkpsD+a4lm/fGIIU9mZ+XfAiaFtq7xTgseGU= github.com/go-logr/logr v0.4.0/go.mod h1:z6/tIYblkpsD+a4lm/fGIIU9mZ+XfAiaFtq7xTgseGU= -github.com/go-logr/logr v1.0.0 h1:kH951GinvFVaQgy/ki/B3YYmQtRpExGigSJg6O8z5jo= -github.com/go-logr/logr v1.0.0/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= +github.com/go-logr/logr v1.2.0 h1:QK40JKJyMdUDz+h+xvCsru/bJhvG0UxvePV0ufL/AcE= +github.com/go-logr/logr v1.2.0/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= github.com/go-ole/go-ole v1.2.5 h1:t4MGB5xEDZvXI+0rMjjsfBsD7yAgp/s9ZDkL1JndXwY= github.com/go-ole/go-ole v1.2.5/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= github.com/go-openapi/analysis v0.0.0-20180825180245-b006789cd277/go.mod h1:k70tL6pCuVxPJOHXQ+wIac1FUrvNkHolPie/cLEU6hI= @@ -1846,8 +1846,8 @@ k8s.io/klog/v2 v2.2.0/go.mod h1:Od+F08eJP+W3HUb4pSrPpgp9DGU4GzlpG/TmITuYh/Y= k8s.io/klog/v2 v2.3.0/go.mod h1:Od+F08eJP+W3HUb4pSrPpgp9DGU4GzlpG/TmITuYh/Y= k8s.io/klog/v2 v2.4.0/go.mod h1:Od+F08eJP+W3HUb4pSrPpgp9DGU4GzlpG/TmITuYh/Y= k8s.io/klog/v2 v2.8.0/go.mod h1:hy9LJ/NvuK+iVyP4Ehqva4HxZG/oXyIS3n3Jmire4Ec= -k8s.io/klog/v2 v2.20.0 h1:tlyxlSvd63k7axjhuchckaRJm+a92z5GSOrTOQY5sHw= -k8s.io/klog/v2 v2.20.0/go.mod h1:Gm8eSIfQN6457haJuPaMxZw4wyP5k+ykPFlrhQDvhvw= +k8s.io/klog/v2 v2.30.0 h1:bUO6drIvCIsvZ/XFgfxoGFQU/a4Qkh0iAlvUR7vlHJw= +k8s.io/klog/v2 v2.30.0/go.mod h1:y1WjHnz7Dj687irZUWR/WLkLc5N1YHtjLdmgWjndZn0= k8s.io/kube-aggregator v0.21.2/go.mod h1:7NgmUXJziySAJ7GxMRBBwcJay7MLUoxms31fw/ICpYk= k8s.io/kube-controller-manager v0.21.2/go.mod h1:gu0rV2UWy1k05E3kZxJFQE1F7RR1PZlq83+9J+lWlno= k8s.io/kube-openapi v0.0.0-20210305001622-591a79e4bda7 h1:vEx13qjvaZ4yfObSSXW7BrMc/KQBBT/Jyee8XtLf4x0= From a1a8e307b9ea31d7b026864947f1168006c271b8 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 25 Oct 2021 18:33:12 +0000 Subject: [PATCH 024/111] Bump cloud.google.com/go/storage from 1.18.0 to 1.18.2 Bumps [cloud.google.com/go/storage](https://github.com/googleapis/google-cloud-go) from 1.18.0 to 1.18.2. - [Release notes](https://github.com/googleapis/google-cloud-go/releases) - [Changelog](https://github.com/googleapis/google-cloud-go/blob/master/CHANGES.md) - [Commits](https://github.com/googleapis/google-cloud-go/compare/spanner/v1.18.0...storage/v1.18.2) --- updated-dependencies: - dependency-name: cloud.google.com/go/storage dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- go.mod | 6 +++--- go.sum | 10 ++++++---- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/go.mod b/go.mod index b84da6723ab5..dc154098b5d2 100644 --- a/go.mod +++ b/go.mod @@ -3,7 +3,7 @@ module k8s.io/minikube go 1.17 require ( - cloud.google.com/go/storage v1.18.0 + cloud.google.com/go/storage v1.18.2 contrib.go.opencensus.io/exporter/stackdriver v0.12.1 github.com/Delta456/box-cli-maker/v2 v2.2.2 github.com/GoogleCloudPlatform/docker-credential-gcr v0.0.0-20210713212222-faed5e8b8ca2 @@ -80,7 +80,7 @@ require ( golang.org/x/crypto v0.0.0-20210817164053-32db794688a5 golang.org/x/exp v0.0.0-20210220032938-85be41e4509f golang.org/x/mod v0.5.1 - golang.org/x/oauth2 v0.0.0-20210819190943-2bc19b11175f + golang.org/x/oauth2 v0.0.0-20211005180243-6b3c2da341f1 golang.org/x/sync v0.0.0-20210220032951-036812b2e83c golang.org/x/sys v0.0.0-20210917161153-d61c044b1678 golang.org/x/term v0.0.0-20210406210042-72f3dc4e9b72 @@ -194,7 +194,7 @@ require ( golang.org/x/time v0.0.0-20210220033141-f8bda1e9f3ba // indirect golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 // indirect google.golang.org/appengine v1.6.7 // indirect - google.golang.org/genproto v0.0.0-20210924002016-3dee208752a0 // indirect + google.golang.org/genproto v0.0.0-20211016002631-37fc39342514 // indirect google.golang.org/grpc v1.40.0 // indirect google.golang.org/protobuf v1.27.1 // indirect gopkg.in/inf.v0 v0.9.1 // indirect diff --git a/go.sum b/go.sum index f6a77723a3bf..0be8404ad822 100644 --- a/go.sum +++ b/go.sum @@ -56,8 +56,8 @@ cloud.google.com/go/storage v1.5.0/go.mod h1:tpKbwo567HUNpVclU5sGELwQWBDZ8gh0Zeo cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohlUTyfDhBk= cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RXyy7KQOVs= cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0= -cloud.google.com/go/storage v1.18.0 h1:HM5Hu/BqgmWbo7pT9KFYGUccwzA8ZWDICJww9m5t9UA= -cloud.google.com/go/storage v1.18.0/go.mod h1:h0NImijCz/2WHwLh03BvmWdrNe4I/pzUdvUHoxIUroU= +cloud.google.com/go/storage v1.18.2 h1:5NQw6tOn3eMm0oE8vTkfjau18kjL79FlMjy/CHTpmoY= +cloud.google.com/go/storage v1.18.2/go.mod h1:AiIj7BWXyhO5gGVmYJ+S8tbkCx3yb0IMjua8Aw4naVM= cloud.google.com/go/trace v0.1.0 h1:nUGUK79FOkN0UGUXhBmVBkbu1PYsHe0YyFSPLOD9Npg= cloud.google.com/go/trace v0.1.0/go.mod h1:wxEwsoeRVPbeSkt7ZC9nWCgmoKQRAoySN7XHW2AmI7g= contrib.go.opencensus.io/exporter/stackdriver v0.12.1 h1:Dll2uFfOVI3fa8UzsHyP6z0M6fEc9ZTAMo+Y3z282Xg= @@ -1377,8 +1377,9 @@ golang.org/x/oauth2 v0.0.0-20210402161424-2e8d93401602/go.mod h1:KelEdhl1UZF7XfJ golang.org/x/oauth2 v0.0.0-20210514164344-f6687ab2804c/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= golang.org/x/oauth2 v0.0.0-20210628180205-a41e5a781914/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= golang.org/x/oauth2 v0.0.0-20210805134026-6f1e6394065a/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20210819190943-2bc19b11175f h1:Qmd2pbz05z7z6lm0DrgQVVPuBm92jqujBKMHMOlOQEw= golang.org/x/oauth2 v0.0.0-20210819190943-2bc19b11175f/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20211005180243-6b3c2da341f1 h1:B333XXssMuKQeBwiNODx4TupZy7bf4sxFZnN2ZOcvUE= +golang.org/x/oauth2 v0.0.0-20211005180243-6b3c2da341f1/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= golang.org/x/perf v0.0.0-20180704124530-6e6d33e29852/go.mod h1:JLpeXjPJfIyPr5TlbXLkXWLhP8nz10XfvxElABhCtcw= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -1712,8 +1713,9 @@ google.golang.org/genproto v0.0.0-20210831024726-fe130286e0e2/go.mod h1:eFjDcFEc google.golang.org/genproto v0.0.0-20210903162649-d08c68adba83/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY= google.golang.org/genproto v0.0.0-20210909211513-a8c4777a87af/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY= google.golang.org/genproto v0.0.0-20210917145530-b395a37504d4/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY= -google.golang.org/genproto v0.0.0-20210924002016-3dee208752a0 h1:5Tbluzus3QxoAJx4IefGt1W0HQZW4nuMrVk684jI74Q= google.golang.org/genproto v0.0.0-20210924002016-3dee208752a0/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= +google.golang.org/genproto v0.0.0-20211016002631-37fc39342514 h1:Rp1vYDPD4TdkMH5S/bZbopsGCsWhPcrLBUwOVhAQCxM= +google.golang.org/genproto v0.0.0-20211016002631-37fc39342514/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= google.golang.org/grpc v0.0.0-20160317175043-d3ddb4469d5a/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= From 4700254a3be991a08279f4152a1950984002c748 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 25 Oct 2021 18:33:24 +0000 Subject: [PATCH 025/111] Bump github.com/docker/docker Bumps [github.com/docker/docker](https://github.com/docker/docker) from 20.10.9+incompatible to 20.10.10+incompatible. - [Release notes](https://github.com/docker/docker/releases) - [Changelog](https://github.com/moby/moby/blob/master/CHANGELOG.md) - [Commits](https://github.com/docker/docker/compare/v20.10.9...v20.10.10) --- updated-dependencies: - dependency-name: github.com/docker/docker dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index b84da6723ab5..122d5c79e273 100644 --- a/go.mod +++ b/go.mod @@ -19,7 +19,7 @@ require ( github.com/cloudevents/sdk-go/v2 v2.5.0 github.com/cloudfoundry-attic/jibber_jabber v0.0.0-20151120183258-bcc4c8345a21 github.com/cloudfoundry/jibber_jabber v0.0.0-20151120183258-bcc4c8345a21 // indirect - github.com/docker/docker v20.10.9+incompatible + github.com/docker/docker v20.10.10+incompatible github.com/docker/go-units v0.4.0 github.com/docker/machine v0.16.2 github.com/elazarl/goproxy v0.0.0-20210110162100-a92cc753f88e diff --git a/go.sum b/go.sum index f6a77723a3bf..af21cbdf3535 100644 --- a/go.sum +++ b/go.sum @@ -368,8 +368,8 @@ github.com/docker/docker v17.12.0-ce-rc1.0.20181225093023-5ddb1d410a8b+incompati github.com/docker/docker v17.12.0-ce-rc1.0.20190115220918-5ec31380a5d3+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/docker v20.10.2+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/docker v20.10.7+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= -github.com/docker/docker v20.10.9+incompatible h1:JlsVnETOjM2RLQa0Cc1XCIspUdXW3Zenq9P54uXBm6k= -github.com/docker/docker v20.10.9+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker v20.10.10+incompatible h1:GKkP0T7U4ks6X3lmmHKC2QDprnpRJor2Z5a8m62R9ZM= +github.com/docker/docker v20.10.10+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/docker-credential-helpers v0.6.3 h1:zI2p9+1NQYdnG6sMU26EX4aVGlqbInSQxQXLvzJ4RPQ= github.com/docker/docker-credential-helpers v0.6.3/go.mod h1:WRaJzqw3CTB9bk10avuGsjVBZsD05qeibJ1/TYlvc0Y= github.com/docker/go-connections v0.4.0 h1:El9xVISelRB7BuFusrZozjnkIM5YnzCViNKohAFqRJQ= From f8db8f072900be7ff59947e2ce72334fd7f6ba27 Mon Sep 17 00:00:00 2001 From: Sharif Elgamal Date: Mon, 25 Oct 2021 12:49:49 -0700 Subject: [PATCH 026/111] manually set and unset the env var again --- test/integration/addons_test.go | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/test/integration/addons_test.go b/test/integration/addons_test.go index 1217aee1f00d..245042a2dd7e 100644 --- a/test/integration/addons_test.go +++ b/test/integration/addons_test.go @@ -48,8 +48,22 @@ func TestAddons(t *testing.T) { setupSucceeded := t.Run("Setup", func(t *testing.T) { // Set an env var to point to our dummy credentials file - t.Setenv("GOOGLE_APPLICATION_CREDENTIALS", filepath.Join(*testdataDir, "gcp-creds.json")) - t.Setenv("GOOGLE_CLOUD_PROJECT", "this_is_fake") + // don't use t.Setenv because we sometimes manually unset the env var later manually + err := os.Setenv("GOOGLE_APPLICATION_CREDENTIALS", filepath.Join(*testdataDir, "gcp-creds.json")) + t.Cleanup(func() { + os.Unsetenv("GOOGLE_APPLICATION_CREDENTIALS") + }) + if err != nil { + t.Fatalf("Failed setting GOOGLE_APPLICATION_CREDENTIALS env var: %v", err) + } + + err = os.Setenv("GOOGLE_CLOUD_PROJECT", "this_is_fake") + t.Cleanup(func() { + os.Unsetenv("GOOGLE_CLOUD_PROJECT") + }) + if err != nil { + t.Fatalf("Failed setting GOOGLE_CLOUD_PROJECT env var: %v", err) + } args := append([]string{"start", "-p", profile, "--wait=true", "--memory=4000", "--alsologtostderr", "--addons=registry", "--addons=metrics-server", "--addons=olm", "--addons=volumesnapshots", "--addons=csi-hostpath-driver"}, StartArgs()...) if !NoneDriver() { // none driver does not support ingress @@ -663,6 +677,8 @@ func validateGCPAuthAddon(ctx context.Context, t *testing.T, profile string) { t.Errorf("failed to disable GCP auth addon: %v", err) } + // maybe check that everything got cleaned up here? + // If we're on GCE, we have proper credentials and can test the registry secrets with an artifact registry image if detect.IsOnGCE() && !detect.IsCloudShell() { os.Unsetenv("GOOGLE_APPLICATION_CREDENTIALS") From 93e2934ab3b2dfd8c84a591a9072523b7fd63374 Mon Sep 17 00:00:00 2001 From: Medya Gh Date: Mon, 25 Oct 2021 14:38:27 -0700 Subject: [PATCH 027/111] address review comment --- test/integration/functional_test_tunnel_test.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/integration/functional_test_tunnel_test.go b/test/integration/functional_test_tunnel_test.go index 180334e9a10a..d3e8fc3f8067 100644 --- a/test/integration/functional_test_tunnel_test.go +++ b/test/integration/functional_test_tunnel_test.go @@ -94,7 +94,7 @@ func checkRoutePassword(t *testing.T) { func checkDNSForward(t *testing.T) { // Not all platforms support DNS forwarding if runtime.GOOS != "darwin" || KicDriver() { - t.Skip("DNS forwarding is only supported for hyprkit on darwin, skipping test DNS forwarding") + t.Skip("DNS forwarding is only supported for Hyperkit on Darwin, skipping test DNS forwarding") } } From b232a559341b840116569f25fc01482939f8d116 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 25 Oct 2021 21:53:44 +0000 Subject: [PATCH 028/111] Bump github.com/cloudevents/sdk-go/v2 from 2.5.0 to 2.6.1 Bumps [github.com/cloudevents/sdk-go/v2](https://github.com/cloudevents/sdk-go) from 2.5.0 to 2.6.1. - [Release notes](https://github.com/cloudevents/sdk-go/releases) - [Commits](https://github.com/cloudevents/sdk-go/compare/v2.5.0...v2.6.1) --- updated-dependencies: - dependency-name: github.com/cloudevents/sdk-go/v2 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 122d5c79e273..6b42b29251c2 100644 --- a/go.mod +++ b/go.mod @@ -16,7 +16,7 @@ require ( github.com/c4milo/gotoolkit v0.0.0-20190525173301-67483a18c17a // indirect github.com/cenkalti/backoff/v4 v4.1.1 github.com/cheggaaa/pb/v3 v3.0.8 - github.com/cloudevents/sdk-go/v2 v2.5.0 + github.com/cloudevents/sdk-go/v2 v2.6.1 github.com/cloudfoundry-attic/jibber_jabber v0.0.0-20151120183258-bcc4c8345a21 github.com/cloudfoundry/jibber_jabber v0.0.0-20151120183258-bcc4c8345a21 // indirect github.com/docker/docker v20.10.10+incompatible diff --git a/go.sum b/go.sum index af21cbdf3535..072d1cc6b6df 100644 --- a/go.sum +++ b/go.sum @@ -217,8 +217,8 @@ github.com/cilium/ebpf v0.2.0/go.mod h1:To2CFviqOWL/M0gIMsvSMlqe7em/l1ALkX1PyjrX github.com/cilium/ebpf v0.4.0/go.mod h1:4tRaxcgiL706VnOzHOdBlY8IEAIdxINsQBcU4xJJXRs= github.com/cilium/ebpf v0.5.0/go.mod h1:4tRaxcgiL706VnOzHOdBlY8IEAIdxINsQBcU4xJJXRs= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= -github.com/cloudevents/sdk-go/v2 v2.5.0 h1:Ts6aLHbBUJfcNcZ4ouAfJ4+Np7SE1Yf2w4ADKRCd7Fo= -github.com/cloudevents/sdk-go/v2 v2.5.0/go.mod h1:nlXhgFkf0uTopxmRXalyMwS2LG70cRGPrxzmjJgSG0U= +github.com/cloudevents/sdk-go/v2 v2.6.1 h1:yHtzgmeBvc0TZx1nrnvYXov1CSvkQyvhEhNMs8Z5Mmk= +github.com/cloudevents/sdk-go/v2 v2.6.1/go.mod h1:nlXhgFkf0uTopxmRXalyMwS2LG70cRGPrxzmjJgSG0U= github.com/cloudfoundry-attic/jibber_jabber v0.0.0-20151120183258-bcc4c8345a21 h1:Yg2hDs4b13Evkpj42FU2idX2cVXVFqQSheXYKM86Qsk= github.com/cloudfoundry-attic/jibber_jabber v0.0.0-20151120183258-bcc4c8345a21/go.mod h1:MgJyK38wkzZbiZSKeIeFankxxSA8gayko/nr5x5bgBA= github.com/cloudfoundry/jibber_jabber v0.0.0-20151120183258-bcc4c8345a21 h1:tuijfIjZyjZaHq9xDUh0tNitwXshJpbLkqMOJv4H3do= From 6711c7e81f3902c3f5ec93c9477d1ce4e3112270 Mon Sep 17 00:00:00 2001 From: Steven Powell Date: Mon, 25 Oct 2021 14:59:13 -0700 Subject: [PATCH 029/111] remove deprecated French translations --- translations/fr.json | 77 -------------------------------------------- 1 file changed, 77 deletions(-) diff --git a/translations/fr.json b/translations/fr.json index 719cc2c991ac..0184f88d5912 100644 --- a/translations/fr.json +++ b/translations/fr.json @@ -12,7 +12,6 @@ "- Docs https://docs.docker.com/docker-for-mac/#resources": "- Documentation https://docs.docker.com/docker-for-mac/#resources", "- Docs https://docs.docker.com/docker-for-windows/#resources": "- Docs https://docs.docker.com/docker-for-windows/#resources", "- Ensure your {{.driver_name}} daemon has access to enough CPU/memory resources.": "- Assurez-vous que votre démon {{.driver_name}} a accès à suffisamment de ressources CPU/mémoire.", - "- Prune unused {{.driver_name}} images, volumes and abandoned containers.": "- Nettoyer les images {{.driver_name}} non utilisées, les volumes et les conteneurs abandonnés.", "- Prune unused {{.driver_name}} images, volumes, networks and abandoned containers.\n\n\t\t\t\t{{.driver_name}} system prune --volumes": "- Nettoyer les images {{.driver_name}} non utilisées, les volumes, les réseaux et les conteneurs abandonnées.\n\n\t\t\t\t{{.driver_name}} system prune --volumes", "- Restart your {{.driver_name}} service": "- Redémarrer votre service {{.driver_name}}", "- {{.logPath}}": "- {{.logPath}}", @@ -27,10 +26,7 @@ "A firewall is interfering with minikube's ability to make outgoing HTTPS requests. You may need to change the value of the HTTPS_PROXY environment variable.": "Un pare-feu interfère avec la capacité de minikube à executer des requêtes HTTPS sortantes. Vous devriez peut-être modifier la valeur de la variable d'environnement HTTPS_PROXY.", "A firewall is likely blocking minikube from reaching the internet. You may need to configure minikube to use a proxy.": "Un pare-feu empêche probablement minikube d'accéder à Internet. Vous devriez peut-être configurer minikube pour utiliser un proxy.", "A set of apiserver IP Addresses which are used in the generated certificate for kubernetes. This can be used if you want to make the apiserver available from outside the machine": "Ensemble d'adresses IP apiserver qui sont utilisées dans le certificat généré pour kubernetes. Cela peut être utilisé si vous souhaitez rendre l'apiserver disponible à l'extérieur de la machine", - "A set of apiserver IP Addresses which are used in the generated certificate for kubernetes. This can be used if you want to make the apiserver available from outside the machine": "Ensemble d'adresses IP apiserver qui sont utilisées dans le certificat généré pour kubernetes. Cela peut être utilisé si vous souhaitez rendre l'apiserver disponible à l'extérieur de la machine", "A set of apiserver names which are used in the generated certificate for kubernetes. This can be used if you want to make the apiserver available from outside the machine": "Ensemble de noms de serveur d'API utilisés dans le certificat généré pour Kubernetes. Vous pouvez les utiliser si vous souhaitez que le serveur d'API soit disponible en dehors de la machine.", - "A set of apiserver names which are used in the generated certificate for kubernetes. This can be used if you want to make the apiserver available from outside the machine": "Ensemble de noms de serveur d'API utilisés dans le certificat généré pour Kubernetes. Vous pouvez les utiliser si vous souhaitez que le serveur d'API soit disponible en dehors de la machine.", - "A set of key=value pairs that describe configuration that may be passed to different components.\nThe key should be '.' separated, and the first part before the dot is the component to apply the configuration to.\nValid components are: kubelet, kubeadm, apiserver, controller-manager, etcd, proxy, scheduler\nValid kubeadm parameters:": "Ensemble de paires clé = valeur qui décrivent la configuration pouvant être transmise à différents composants.\nLa clé doit être séparée par le caractère \".\", la première partie placée avant le point étant le composant auquel la configuration est appliquée.\nVoici la liste des composants valides : apiserver, controller-manager, etcd, kubeadm, kubelet, proxy et scheduler.\nParamètres valides pour le composant kubeadm :", "A set of key=value pairs that describe feature gates for alpha/experimental features.": "Ensemble de paires clé = valeur qui décrivent l'entrée de configuration pour des fonctionnalités alpha ou expérimentales.", "Access the Kubernetes dashboard running within the minikube cluster": "Accéder au tableau de bord Kubernetes exécuté dans le cluster de minikube", "Access to ports below 1024 may fail on Windows with OpenSSH clients older than v8.1. For more information, see: https://minikube.sigs.k8s.io/docs/handbook/accessing/#access-to-ports-1024-on-windows-requires-root-permission": "Accéder aux ports inférieurs à 1024 peut échouer sur Windows avec les clients OpenSSH antérieurs à v8.1. Pour plus d'information, voir: https://minikube.sigs.k8s.io/docs/handbook/accessing/#access-to-ports-1024-on-windows-requires-root-permission", @@ -52,8 +48,6 @@ "All existing scheduled stops cancelled": "Tous les arrêts programmés existants annulés", "Allow user prompts for more information": "Autoriser les utilisateurs à saisir plus d'informations", "Alternative image repository to pull docker images from. This can be used when you have limited access to gcr.io. Set it to \\\"auto\\\" to let minikube decide one for you. For Chinese mainland users, you may use local gcr.io mirrors such as registry.cn-hangzhou.aliyuncs.com/google_containers": "Autre dépôt d'images d'où extraire des images Docker. Il peut être utilisé en cas d'accès limité à gcr.io. Définissez-le sur \\\"auto\\\" pour permettre à minikube de choisir la valeur à votre place. Pour les utilisateurs situés en Chine continentale, vous pouvez utiliser des miroirs gcr.io locaux tels que registry.cn-hangzhou.aliyuncs.com/google_containers.", - "Amount of RAM allocated to the minikube VM (format: \u003cnumber\u003e[\u003cunit\u003e], where unit = b, k, m or g)": "Quantité de mémoire RAM allouée à la VM minikube (format : \u003cnombre\u003e[\u003cunité\u003e], où \"unité\" = b, k, m ou g).", - "Amount of RAM to allocate to Kubernetes (format: \u003cnumber\u003e[\u003cunit\u003e], where unit = b, k, m or g).": "Quantité de mémoire RAM à allouer à Kubernetes (format: \u003cnombre\u003e[\u003cunité\u003e], où unité = b, k, m ou g).", "Amount of time to wait for a service in seconds": "Temps d'attente pour un service en secondes", "Amount of time to wait for service in seconds": "Temps d'attente pour un service en secondes", "Another hypervisor, such as VirtualBox, is conflicting with KVM. Please stop the other hypervisor, or use --driver to switch to it.": "Un autre hyperviseur, tel que VirtualBox, est en conflit avec KVM. Veuillez arrêter l'autre hyperviseur ou utiliser --driver pour y basculer.", @@ -99,7 +93,6 @@ "Configure environment to use minikube's Podman service": "Configurer l'environnement pour utiliser le service Podman de minikube", "Configures the addon w/ADDON_NAME within minikube (example: minikube addons configure registry-creds). For a list of available addons use: minikube addons list": "Configure le module w/ADDON_NAME dans minikube (exemple : minikube addons configure registry-creds). Pour une liste des modules disponibles, utilisez : minikube addons list", "Configuring RBAC rules ...": "Configuration des règles RBAC ...", - "Configuring environment for Kubernetes {{.k8sVersion}} on {{.runtime}} {{.runtimeVersion}}": "Configuration de l'environment pour Kubernetes {{.k8sVersion}} sur {{.runtime}} {{.runtimeVersion}}", "Configuring local host environment ...": "Configuration de l'environnement de l'hôte local...", "Configuring {{.name}} (Container Networking Interface) ...": "Configuration de {{.name}} (Container Networking Interface)...", "Confirm that you have a working internet connection and that your VM has not run out of resources by using: 'minikube logs'": "Confirmez que vous disposez d'une connexion Internet fonctionnelle et que votre VM n'est pas à court de ressources en utilisant : 'minikube logs'", @@ -129,7 +122,6 @@ "Delete an image from the local cache.": "Supprimez une image du cache local.", "Deletes a local Kubernetes cluster": "Supprime un cluster Kubernetes local", "Deletes a local Kubernetes cluster. This command deletes the VM, and removes all\nassociated files.": "Supprime le cluster Kubernetes local. Cette commande supprime la VM ainsi que tous les fichiers associés.", - "Deletes a local kubernetes cluster. This command deletes the VM, and removes all\nassociated files.": "Supprime le cluster Kubernetes local. Cette commande supprime la VM ainsi que tous les fichiers associés.", "Deletes a node from a cluster.": "Supprime un nœud d'un cluster.", "Deleting \"{{.profile_name}}\" in {{.driver_name}} ...": "Suppression de \"{{.profile_name}}\" dans {{.driver_name}}...", "Deleting container \"{{.name}}\" ...": "Suppression du conteneur \"{{.name}}\" ...", @@ -139,7 +131,6 @@ "Disable dynamic memory in your VM manager, or pass in a larger --memory value": "Désactivez la mémoire dynamique dans votre gestionnaire de machine virtuelle ou transmettez une valeur --memory plus grande", "Disables the addon w/ADDON_NAME within minikube (example: minikube addons disable dashboard). For a list of available addons use: minikube addons list ": "Désactive le module w/ADDON_NAME dans minikube (exemple : minikube addons disable dashboard). Pour une liste des addons disponibles, utilisez : minikube addons list", "Disables the filesystem mounts provided by the hypervisors": "Désactive les installations de systèmes de fichiers fournies par les hyperviseurs.", - "Disk size allocated to the minikube VM (format: \u003cnumber\u003e[\u003cunit\u003e], where unit = b, k, m or g)": "Taille de disque allouée à la VM minikube (format : \u003cnombre\u003e[\u003cunité\u003e], où \"unité\" = b, k, m ou g)", "Disk size allocated to the minikube VM (format: \u003cnumber\u003e[\u003cunit\u003e], where unit = b, k, m or g).": "Taille du disque alloué à la VM minikube (format : \u003cnombre\u003e[\u003cunité\u003e], où unité = b, k, m ou g).", "Display dashboard URL instead of opening a browser": "Afficher l'URL du tableau de bord au lieu d'ouvrir un navigateur", "Display the Kubernetes addons URL in the CLI instead of opening it in the default browser": "Afficher l'URL des modules Kubernetes dans la CLI au lieu de l'ouvrir dans le navigateur par défaut", @@ -155,14 +146,11 @@ "Docker inside the VM is unavailable. Try running 'minikube delete' to reset the VM.": "Docker à l'intérieur de la VM n'est pas disponible. Essayez d'exécuter « minikube delete » pour réinitialiser la machine virtuelle.", "Docs have been saved at - {{.path}}": "Les documents ont été enregistrés à - {{.path}}", "Documentation: {{.url}}": "Documentation: {{.url}}", - "Done! kubectl is now configured to use \"{{.name}}\"": "Terminé ! kubectl est maintenant configuré pour utiliser \"{{.name}}\".", "Done! kubectl is now configured to use \"{{.name}}\" cluster and \"{{.ns}}\" namespace by default": "Terminé ! kubectl est maintenant configuré pour utiliser \"{{.name}}\" cluster et espace de noms \"{{.ns}}\" par défaut.", "Download complete!": "Téléchargement terminé !", "Downloading Kubernetes {{.version}} preload ...": "Téléchargement du préchargement de Kubernetes {{.version}}...", "Downloading VM boot image ...": "Téléchargement de l'image de démarrage de la VM...", "Downloading driver {{.driver}}:": "Téléchargement du pilote {{.driver}} :", - "Due to networking limitations of driver {{.driver_name}} on {{.os_name}}, {{.addon_name}} addon is not supported.\nAlternatively to use this addon you can use a vm-based driver:\n\n\t'minikube start --vm=true'\n\nTo track the update on this work in progress feature please check:\nhttps://github.com/kubernetes/minikube/issues/7332": "En raison des limitations réseau du pilote {{.driver_name}} sur {{.os_name}}, le module {{.addon_name}} n'est pas pris en charge.\nAlternativement, pour utiliser ce module, vous pouvez utiliser un pilote basé sur vm :\n\n \t'minikube start --vm=true'\n\nPour suivre la mise à jour de cette fonctionnalité en cours de travail, veuillez vérifier :\nhttps://github.com/kubernetes/minikube/issues/7332", - "Due to networking limitations of driver {{.driver_name}}, {{.addon_name}} addon is not fully supported. Try using a different driver.": "En raison des limitations réseau du pilote {{.driver_name}}, le module {{.addon_name}} n'est pas entièrement pris en charge. Essayez d'utiliser un autre pilote.", "Duration until minikube certificate expiration, defaults to three years (26280h).": "Durée jusqu'à l'expiration du certificat minikube, par défaut à trois ans (26280h).", "ERROR creating `registry-creds-acr` secret": "ERREUR lors de la création du secret `registry-creds-acr`", "ERROR creating `registry-creds-dpr` secret": "ERREUR lors de la création du secret `registry-creds-dpr`", @@ -174,11 +162,9 @@ "Enable host resolver for NAT DNS requests (virtualbox driver only)": "Active le résolveur d'hôte pour les requêtes DNS NAT (pilote VirtualBox uniquement).", "Enable or disable a minikube addon": "Activer ou désactiver un module minikube", "Enable proxy for NAT DNS requests (virtualbox driver only)": "Active le proxy pour les requêtes DNS NAT (pilote VirtualBox uniquement).", - "Enable the default CNI plugin (/etc/cni/net.d/k8s.conf). Used in conjunction with \\\"--network-plugin=cni\\": "Active le plug-in CNI par défaut (/etc/cni/net.d/k8s.conf). Utilisé en association avec \\\"--network-plugin=cni\\\".", "Enabled addons: {{.addons}}": "Modules activés: {{.addons}}", "Enables the addon w/ADDON_NAME within minikube. For a list of available addons use: minikube addons list ": "Active le module w/ADDON_NAME dans minikube. Pour une liste des modules disponibles, utilisez : minikube addons list", "Enabling '{{.name}}' returned an error: {{.error}}": "L'activation de '{{.name}}' a renvoyé une erreur : {{.error}}", - "Enabling addons: {{.addons}}": "Installation des modules: {{.addons}}", "Enabling dashboard ...": "Activation du tableau de bord...", "Ensure that CRI-O is installed and healthy: Run 'sudo systemctl start crio' and 'journalctl -u crio'. Alternatively, use --container-runtime=docker": "Assurez-vous que CRI-O est installé et en fonctionnement : exécutez 'sudo systemctl start crio' et 'journalctl -u crio'. Sinon, utilisez --container-runtime=docker", "Ensure that Docker is installed and healthy: Run 'sudo systemctl start docker' and 'journalctl -u docker'. Alternatively, select another value for --driver": "Assurez-vous que Docker est installé et en fonctionnement : exécutez 'sudo systemctl start docker' et 'journalctl -u docker'. Sinon, sélectionnez une autre valeur pour --driver", @@ -191,7 +177,6 @@ "Ensure your {{.driver_name}} is running and is healthy.": "Assurez-vous que votre {{.driver_name}} est en cours d'exécution et en fonctionnement.", "Environment variables to pass to the Docker daemon. (format: key=value)": "Variables d'environment à transmettre au daemon Docker (format : clé = valeur).", "Environment variables to pass to the build. (format: key=value)": "Variables d'environnement à transmettre au build. (format : clé=valeur)", - "Error checking driver version: {{.error}}": "Erreur lors de la vérification de la version du driver : {{.error}}", "Error code docs have been saved at - {{.path}}": "Les documents de code d'erreur ont été enregistrés à - {{.path}}", "Error creating minikube directory": "Erreur lors de la création du répertoire minikube", "Error creating view template": "Erreur lors de la création du modèle de vue", @@ -210,9 +195,7 @@ "Error getting the host IP address to use from within the VM": "Erreur lors de l'obtention de l'adresse IP de l'hôte à utiliser depuis la VM", "Error killing mount process": "Erreur lors de la suppression du processus de montage", "Error loading profile config: {{.error}}": "Erreur lors du chargement de la configuration du profil : {{.error}}", - "Error loading profile {{.name}}: {{.error}}": "Erreur lors du chargement du profil {{.name}} : {{.error}}", "Error opening service": "Erreur d'ouverture du service", - "Error parsing Driver version: {{.error}}": "Erreur lors de l'analyse de la version du pilote de la VM : {{.error}}", "Error parsing minikube version: {{.error}}": "Erreur lors de l'analyse de la version de minikube : {{.error}}", "Error parsing {{.name}}={{.value}}, {{.err}}": "Erreur lors de l'analyse de {{.name}}={{.value}}, {{.err}}", "Error reading {{.path}}: {{.error}}": "Erreur de lecture {{.path}} : {{.error}}", @@ -222,11 +205,9 @@ "Error while setting kubectl current context: {{.error}}": "Erreur lors de la définition du contexte actuel de kubectl : {{.error}}", "Error with ssh-add": "Erreur avec ssh-add", "Error writing mount pid": "Erreur lors de l'écriture du pid de montage", - "Error: You have selected Kubernetes v{{.new}}, but the existing cluster for your profile is running Kubernetes v{{.old}}. Non-destructive downgrades are not supported, but you can proceed by performing one of the following options:\n* Recreate the cluster using Kubernetes v{{.new}}: Run \"minikube delete {{.profile}}\", then \"minikube start {{.profile}} --kubernetes-version={{.new}}\"\n* Create a second cluster with Kubernetes v{{.new}}: Run \"minikube start -p \u003cnew name\u003e --kubernetes-version={{.new}}\"\n* Reuse the existing cluster with Kubernetes v{{.old}} or newer: Run \"minikube start {{.profile}} --kubernetes-version={{.old}}": "Erreur : Vous avez sélectionné Kubernetes v{{.new}}, mais le cluster existent pour votre profil exécute Kubernetes v{{.old}}. Les rétrogradations non-destructives ne sont pas compatibles. Toutefois, vous pouvez poursuivre le processus en réalisant l'une des trois actions suivantes :\n* Créer à nouveau le cluster en utilisant Kubernetes v{{.new}} – exécutez \"minikube delete {{.profile}}\", puis \"minikube start {{.profile}} --kubernetes-version={{.new}}\".\n* Créer un second cluster avec Kubernetes v{{.new}} – exécutez \"minikube start -p \u003cnew name\u003e --kubernetes-version={{.new}}\".\n* Réutiliser le cluster existent avec Kubernetes v{{.old}} ou version ultérieure – exécutez \"minikube start {{.profile}} --kubernetes-version={{.old}}\".", "Examples": "Exemples", "Executing \"{{.command}}\" took an unusually long time: {{.duration}}": "L'exécution de \"{{.command}}\" a pris un temps inhabituellement long : {{.duration}}", "Existing disk is missing new features ({{.error}}). To upgrade, run 'minikube delete'": "Il manque de nouvelles fonctionnalités sur le disque existant ({{.error}}). Pour mettre à niveau, exécutez 'minikube delete'", - "Exiting": "Fermeture…", "Exiting due to {{.fatal_code}}: {{.fatal_msg}}": "Fermeture en raison de {{.fatal_code}} : {{.fatal_msg}}", "Exposed port of the proxyfied dashboard. Set to 0 to pick a random port.": "Port exposé du tableau de bord proxyfié. Réglez sur 0 pour choisir un port aléatoire.", "External Adapter on which external switch will be created if no external switch is found. (hyperv driver only)": "L'adaptateur externe sur lequel un commutateur externe sera créé si aucun commutateur externe n'est trouvé. (pilote hyperv uniquement)", @@ -246,7 +227,6 @@ "Failed to delete cluster {{.name}}, proceeding with retry anyway.": "Échec de la suppression du cluster {{.name}}, réessayez quand même.", "Failed to delete cluster {{.name}}.": "Échec de la suppression du cluster {{.name}}.", "Failed to delete cluster: {{.error}}": "Échec de la suppression du cluster : {{.error}}", - "Failed to delete cluster: {{.error}}__1": "Échec de la suppression du cluster : {{.error}}", "Failed to delete images": "Échec de la suppression des images", "Failed to delete images from config": "Échec de la suppression des images de la configuration", "Failed to enable container runtime": "Échec de l'activation de l'environnement d'exécution du conteneur", @@ -271,7 +251,6 @@ "Failed to save dir": "Échec de l'enregistrement du répertoire", "Failed to save image": "Échec de l'enregistrement de l'image", "Failed to save stdin": "Échec de l'enregistrement de l'entrée standard", - "Failed to set NO_PROXY Env. Please use `export NO_PROXY=$NO_PROXY,{{.ip}}": "Échec de la définition la variable d'environnement NO_PROXY. Veuillez utiliser `export NO_PROXY=$NO_PROXY,{{.ip}}.", "Failed to set NO_PROXY Env. Please use `export NO_PROXY=$NO_PROXY,{{.ip}}`.": "Échec de la définition de la variable d'environnement NO_PROXY. Veuillez utiliser `export NO_PROXY=$NO_PROXY,{{.ip}}`.", "Failed to setup certs": "Échec de la configuration des certificats", "Failed to start container runtime": "Échec du démarrage de l'exécution du conteneur", @@ -280,17 +259,13 @@ "Failed to tag images": "Échec du marquage des images", "Failed to update cluster": "Échec de la mise à jour du cluster", "Failed to update config": "Échec de la mise à jour de la configuration", - "Failed to verify '{{.driver_name}} info' will try again ...": "Échec de la vérification des informations sur '{{.driver_name}}' va réessayer ...", "Failed unmount: {{.error}}": "Échec du démontage : {{.error}}", "File permissions used for the mount": "Autorisations de fichier utilisées pour le montage", "Filter to use only VM Drivers": "Filtrer pour n'utiliser que les pilotes VM", "Flags": "Indicateurs", "Follow": "Suivre", - "For best results, install kubectl: https://kubernetes.io/docs/tasks/tools/install-kubectl/": "Pour des résultats optimaux, installez kubectl à l'adresse suivante : https://kubernetes.io/docs/tasks/tools/install-kubectl/", - "For best results, install kubectl: https://kubernetes.io/docs/tasks/tools/install-kubectl/__1": "Pour des résultats optimaux, installez kubectl à l'adresse suivante : https://kubernetes.io/docs/tasks/tools/install-kubectl/", "For improved {{.driver}} performance, {{.fix}}": "Pour de meilleures performances {{.driver}}, {{.fix}}", "For more information see: https://minikube.sigs.k8s.io/docs/drivers/{{.driver}}": "Pour plus d'informations, voir : https://minikube.sigs.k8s.io/docs/drivers/{{.driver}}", - "For more information, see:": "Pour en savoir plus, consultez les pages suivantes :", "For more information, see: https://minikube.sigs.k8s.io/docs/reference/drivers/none/": "Pour plus d'informations, voir : https://minikube.sigs.k8s.io/docs/reference/drivers/none/", "For more information, see: {{.url}}": "Pour plus d'informations, voir : {{.url}}", "Force environment to be configured for a specified shell: [fish, cmd, powershell, tcsh, bash, zsh], default is auto-detect": "Forcer l'environnement à être configuré pour un shell spécifié : [fish, cmd, powershell, tcsh, bash, zsh], la valeur par défaut est la détection automatique", @@ -332,7 +307,6 @@ "If set, unpause all namespaces": "Si défini, annule la pause de tous les espaces de noms", "If the above advice does not help, please let us know:": "Si les conseils ci-dessus ne vous aident pas, veuillez nous en informer :", "If true, cache docker images for the current bootstrapper and load them into the machine. Always false with --driver=none.": "Si vrai, met en cache les images Docker pour le programme d'amorçage actuel et les charge dans la machine. Toujours faux avec --driver=none.", - "If true, cache docker images for the current bootstrapper and load them into the machine. Always false with --vm-driver=none.": "Si la valeur est \"true\", met les images Docker en cache pour l'amorceur actuel et les charge dans la machine. La valeur est toujours \"false\" avec --vm-driver=none.", "If true, only download and cache files for later use - don't install or start anything.": "Si la valeur est \"true\", téléchargez les fichiers et mettez-les en cache uniquement pour une utilisation future. Ne lancez pas d'installation et ne commencez aucun processus.", "If true, pods might get deleted and restarted on addon enable": "Si vrai, les pods peuvent être supprimés et redémarrés lors addon enable", "If true, returns list of profiles faster by skipping validating the status of the cluster.": "Si vrai, renvoie la liste des profils plus rapidement en ignorant la validation de l'état du cluster.", @@ -351,10 +325,8 @@ "Images used by this addon. Separated by commas.": "Images utilisées par ce module. Séparé par des virgules.", "In order to use the fall back image, you need to log in to the github packages registry": "Pour utiliser l'image de secours, vous devez vous connecter au registre des packages github", "Insecure Docker registries to pass to the Docker daemon. The default service CIDR range will automatically be added.": "Registres Docker non sécurisés à transmettre au démon Docker. La plage CIDR de service par défaut sera automatiquement ajoutée.", - "Insecure Docker registries to pass to the Docker daemon. The default service CIDR range will automatically be added.": "Registres Docker non sécurisés à transmettre au daemon Docker. La plage CIDR par défaut du service sera ajoutée automatiquement.", "Install VirtualBox and ensure it is in the path, or select an alternative value for --driver": "Installez VirtualBox et assurez-vous qu'il est dans le chemin, ou sélectionnez une valeur alternative pour --driver", "Install the latest hyperkit binary, and run 'minikube delete'": "Installez le dernier binaire hyperkit et exécutez 'minikube delete'", - "Invalid Container Runtime: \"{{.runtime}}\". Valid runtimes are: {{.validOptions}}": "Exécution de conteneur non valide : \"{{.runtime}}\". Les environnements d'exécution valides sont : {{.validOptions}}", "Invalid port": "Port invalide", "Istio needs {{.minCPUs}} CPUs -- your configuration only allocates {{.cpus}} CPUs": "Istio a besoin de {{.minCPUs}} processeurs -- votre configuration n'alloue que {{.cpus}} processeurs", "Istio needs {{.minMem}}MB of memory -- your configuration only allocates {{.memory}}MB": "Istio a besoin de {{.minMem}}Mo de mémoire -- votre configuration n'alloue que {{.memory}}Mo", @@ -364,7 +336,6 @@ "Kubernetes requires at least 2 CPU's to start": "Kubernetes nécessite au moins 2 processeurs pour démarrer", "Kubernetes {{.new}} is now available. If you would like to upgrade, specify: --kubernetes-version={{.prefix}}{{.new}}": "Kubernetes {{.new}} est désormais disponible. Si vous souhaitez effectuer une mise à niveau, spécifiez : --kubernetes-version={{.prefix}}{{.new}}", "Kubernetes {{.version}} is not supported by this release of minikube": "Kubernetes {{.version}} n'est pas pris en charge par cette version de minikube", - "Launching Kubernetes ...": "Lancement de Kubernetes...", "Launching proxy ...": "Lancement du proxy...", "List all available images from the local cache.": "Répertoriez toutes les images disponibles à partir du cache local.", "List existing minikube nodes.": "Répertoriez les nœuds minikube existants.", @@ -384,7 +355,6 @@ "Local folders to share with Guest via NFS mounts (hyperkit driver only)": "Dossiers locaux à partager avec l'invité par des installations NFS (pilote hyperkit uniquement).", "Local proxy ignored: not passing {{.name}}={{.value}} to docker env.": "Proxy local ignoré : ne pas passer {{.name}}={{.value}} à docker env.", "Location of the VPNKit socket used for networking. If empty, disables Hyperkit VPNKitSock, if 'auto' uses Docker for Mac VPNKit connection, otherwise uses the specified VSock (hyperkit driver only)": "Emplacement du socket VPNKit exploité pour la mise en réseau. Si la valeur est vide, désactive Hyperkit VPNKitSock. Si la valeur affiche \"auto\", utilise la connexion VPNKit de Docker pour Mac. Sinon, utilise le VSock spécifié (pilote hyperkit uniquement).", - "Location of the minikube iso": "Emplacement de l'ISO minikube.", "Locations to fetch the minikube ISO from.": "Emplacements à partir desquels récupérer l'ISO minikube.", "Log into or run a command on a machine with SSH; similar to 'docker-machine ssh'.": "Connectez-vous ou exécutez une commande sur une machine avec SSH ; similaire à 'docker-machine ssh'.", "Log into the minikube environment (for debugging)": "Connectez-vous à l'environnement minikube (pour le débogage)", @@ -408,18 +378,14 @@ "No minikube profile was found. ": "Aucun profil minikube n'a été trouvé.", "No possible driver was detected. Try specifying --driver, or see https://minikube.sigs.k8s.io/docs/start/": "Aucun pilote possible n'a été détecté. Essayez de spécifier --driver, ou consultez https://minikube.sigs.k8s.io/docs/start/", "No such addon {{.name}}": "Aucun module de ce type {{.name}}", - "Node \"{{.node_name}}\" stopped.": "Le noeud \"{{.node_name}}\" est arrêté.", "Node {{.name}} failed to start, deleting and trying again.": "Le nœud {{.name}} n'a pas pu démarrer, suppression et réessai.", "Node {{.name}} was successfully deleted.": "Le nœud {{.name}} a été supprimé avec succès.", "Node {{.nodeName}} does not exist.": "Le nœud {{.nodeName}} n'existe pas.", "None of the known repositories are accessible. Consider specifying an alternative image repository with --image-repository flag": "Aucun des référentiels connus n'est accessible. Envisagez de spécifier un référentiel d'images alternatif avec l'indicateur --image-repository", "None of the known repositories in your location are accessible. Using {{.image_repository_name}} as fallback.": "Aucun dépôt connu dans votre emplacement n'est accessible. {{.image_repository_name}} est utilisé comme dépôt de remplacement.", - "None of the known repositories is accessible. Consider specifying an alternative image repository with --image-repository flag": "Aucun dépôt connu n'est accessible. Pensez à spécifier un autre dépôt d'images à l'aide de l'indicateur \"--image-repository\".", "Noticed you have an activated docker-env on {{.driver_name}} driver in this terminal:": "Vous avez remarqué que vous avez un docker-env activé sur le pilote {{.driver_name}} dans ce terminal :", "Noticed you have an activated podman-env on {{.driver_name}} driver in this terminal:": "Vous avez remarqué que vous avez un pilote podman-env activé sur {{.driver_name}} dans ce terminal :", - "Number of CPUs allocated to the minikube VM": "Nombre de processeurs alloués à la VM minikube.", "Number of extra disks created and attached to the minikube VM (currently only implemented for hyperkit and kvm2 drivers)": "Nombre de disques supplémentaires créés et attachés à la machine virtuelle minikube (actuellement implémenté uniquement pour les pilotes hyperkit et kvm2)", - "Number of extra disks created and attached to the minikube VM (currently only implemented for hyperkit driver)": "Nombre de disques supplémentaires créés et attachés à la machine virtuelle minikube (actuellement implémenté uniquement pour le pilote hyperkit)", "Number of lines back to go within the log": "Nombre de lignes à remonter dans le journal", "OS release is {{.pretty_name}}": "La version du système d'exploitation est {{.pretty_name}}", "One of 'text', 'yaml' or 'json'.": "Un parmi 'text', 'yaml' ou 'json'.", @@ -444,7 +410,6 @@ "Pausing node {{.name}} ... ": "Suspendre le nœud {{.name}} ...", "Permissions: {{.octalMode}} ({{.writtenMode}})": "Autorisations : {{.octalMode}} ({{.writtenMode}})", "Please also attach the following file to the GitHub issue:": "Veuillez également joindre le fichier suivant au problème GitHub", - "Please attach the following file to the GitHub issue:": "Veuillez joindre le fichier suivant au problème GitHub :", "Please create a cluster with bigger disk size: `minikube start --disk SIZE_MB` ": "Veuillez créer un cluster avec une plus grande taille de disque : `minikube start --disk SIZE_MB`", "Please either authenticate to the registry or use --base-image flag to use a different registry.": "Veuillez vous authentifier auprès du registre ou utiliser l'indicateur --base-image pour utiliser un registre différent.", "Please enter a value:": "Entrer un nombre, SVP:", @@ -464,7 +429,6 @@ "Please specify the directory to be mounted: \n\tminikube mount \u003csource directory\u003e:\u003ctarget directory\u003e (example: \"/host-home:/vm-home\")": "Veuillez spécifier le répertoire à monter : \n\tminikube mount \u003csource directory\u003e:\u003ctarget directory\u003e (exemple : \"/host-home:/vm-home\")", "Please specify the path to copy: \n\tminikube cp \u003csource file path\u003e \u003ctarget file absolute path\u003e (example: \"minikube cp a/b.txt /copied.txt\")": "Veuillez spécifier le chemin à copier : \n\tminikube cp \u003cchemin du fichier source\u003e \u003cchemin absolu du fichier cible\u003e (exemple : \"minikube cp a/b.txt /copied.txt\")", "Please try purging minikube using `minikube delete --all --purge`": "Veuillez essayer de purger minikube en utilisant `minikube delete --all --purge`", - "Please upgrade the '{{.driver_executable}}'. {{.documentation_url}}": "Veuillez mettre à niveau l'exécutable \"{{.driver_executable}}\". {{.documentation_url}}", "Please visit the following link for documentation around this: \n\thttps://help.github.com/en/packages/using-github-packages-with-your-projects-ecosystem/configuring-docker-for-use-with-github-packages#authenticating-to-github-packages\n": "Veuillez visiter le lien suivant pour la documentation à ce sujet : \n\thttps://help.github.com/en/packages/using-github-packages-with-your-projects-ecosystem/configuring-docker-for-use-with -github-packages#authentiating-to-github-packages\n", "Populates the specified folder with documentation in markdown about minikube": "Remplit le dossier spécifié avec la documentation en markdown sur minikube", "PowerShell is running in constrained mode, which is incompatible with Hyper-V scripting.": "PowerShell s'exécute en mode contraint, ce qui est incompatible avec les scripts Hyper-V.", @@ -486,7 +450,6 @@ "Pull images": "Extraction des images", "Pull the remote image (no caching)": "Extraire l'image distante (pas de mise en cache)", "Pulling base image ...": "Extraction de l'image de base...", - "Pulling images ...": "Extraction des images... ", "Push images": "Diffusion des images", "Push the new image (requires tag)": "Pousser la nouvelle image (nécessite une balise)", "Reboot to complete VirtualBox installation, verify that VirtualBox is not blocked by your system, and/or use another hypervisor": "Redémarrez pour terminer l'installation de VirtualBox, vérifiez que VirtualBox n'est pas bloqué par votre système et/ou utilisez un autre hyperviseur", @@ -499,17 +462,13 @@ "Reinstall VirtualBox and verify that it is not blocked: System Preferences -\u003e Security \u0026 Privacy -\u003e General -\u003e Some system software was blocked from loading": "Réinstallez VirtualBox et vérifiez qu'il n'est pas bloqué : Préférences Système -\u003e Sécurité \u0026 Confidentialité -\u003e Général -\u003e Le chargement de certains logiciels système a été bloqué", "Related issue: {{.url}}": "Problème connexe: {{.url}}", "Related issues:": "Problème connexe:", - "Relaunching Kubernetes using {{.bootstrapper}} ...": "Redémarrage de Kubernetes à l'aide de {{.bootstrapper}}…", "Remove one or more images": "Supprimer une ou plusieurs images", "Remove the invalid --docker-opt or --insecure-registry flag if one was provided": "Supprimez l'indicateur --docker-opt ou --insecure-registry non valide s'il a été fourni", "Removed all traces of the \"{{.name}}\" cluster.": "Le cluster \"{{.name}}\" a été supprimé.", "Removing {{.directory}} ...": "Suppression du répertoire {{.directory}}…", "Requested cpu count {{.requested_cpus}} is greater than the available cpus of {{.avail_cpus}}": "Le nombre de processeurs demandés {{.requested_cpus}} est supérieur au nombre de processeurs disponibles de {{.avail_cpus}}", "Requested cpu count {{.requested_cpus}} is less than the minimum allowed of {{.minimum_cpus}}": "Le nombre de processeurs demandés {{.requested_cpus}} est inférieur au minimum autorisé de {{.minimum_cpus}}", - "Requested disk size {{.requested_size}} is less than minimum of {{.minimum_size}}": "La taille de disque demandée ({{.requested_size}}) est inférieure à la taille minimale ({{.minimum_size}}).", - "Requested memory allocation ({{.memory}}MB) is less than the default memory allocation of {{.default_memorysize}}MB. Beware that minikube might not work correctly or crash unexpectedly.": "L'allocation de mémoire demandée ({{.memory}} Mo) est inférieure à l'allocation de mémoire par défaut ({{.default_memorysize}} Mo). Sachez que minikube pourrait ne pas fonctionner correctement ou planter de manière inattendue.", "Requested memory allocation ({{.requested}}MB) is less than the recommended minimum {{.recommend}}MB. Deployments may fail.": "L'allocation de mémoire demandée ({{.requested}} Mo) est inférieure au minimum recommandé de {{.recommend}} Mo. Les déploiements peuvent échouer.", - "Requested memory allocation {{.requested_size}} is less than the minimum allowed of {{.minimum_size}}": "L'allocation de mémoire demandée ({{.requested_size}}) est inférieure au minimum autorisé ({{.minimum_size}}).", "Requested memory allocation {{.requested}}MB is more than your system limit {{.system_limit}}MB.": "L'allocation de mémoire demandée {{.requested}} Mo est supérieure à la limite de votre système {{.system_limit}} Mo.", "Requested memory allocation {{.requested}}MiB is less than the usable minimum of {{.minimum_memory}}MB": "L'allocation de mémoire demandée {{.requested}} Mio est inférieure au minimum utilisable de {{.minimum_memory}} Mo", "Reset Docker to factory defaults": "Réinitialiser Docker aux paramètres d'usine", @@ -589,12 +548,10 @@ "Starting node {{.name}} in cluster {{.cluster}}": "Démarrage du noeud {{.name}} dans le cluster {{.cluster}}", "Starting tunnel for service {{.service}}.": "Tunnel de démarrage pour le service {{.service}}.", "Starts a local Kubernetes cluster": "Démarre un cluster Kubernetes local", - "Starts a local kubernetes cluster": "Démarre un cluster Kubernetes local.", "Starts a node.": "Démarre un nœud.", "Starts an existing stopped node in a cluster.": "Démarre un nœud arrêté existant dans un cluster.", "Startup with {{.old_driver}} driver failed, trying with alternate driver {{.new_driver}}: {{.error}}": "Échec du démarrage avec le pilote {{.old_driver}}, essai avec un autre pilote {{.new_driver}} : {{.error}}", "Stopped tunnel for service {{.service}}.": "Tunnel arrêté pour le service {{.service}}.", - "Stopping \"{{.profile_name}}\" in {{.driver_name}} ...": "Arrêt de \"{{.profile_name}}\" sur {{.driver_name}}...", "Stopping node \"{{.name}}\" ...": "Nœud d'arrêt \"{{.name}}\" ...", "Stopping tunnel for service {{.service}}.": "Tunnel d'arrêt pour le service {{.service}}.", "Stops a local Kubernetes cluster. This command stops the underlying VM or container, but keeps user data intact. The cluster can be started again with the \"start\" command.": "Arrête un cluster Kubernetes local. Cette commande arrête la VM ou le conteneur sous-jacent, mais conserve les données utilisateur intactes. Le cluster peut être redémarré avec la commande \"start\".", @@ -613,17 +570,14 @@ "Target directory {{.path}} must be an absolute path": "Le répertoire cible {{.path}} doit être un chemin absolu", "Target {{.path}} can not be empty": "La cible {{.path}} ne peut pas être vide", "Test docs have been saved at - {{.path}}": "Les documents de test ont été enregistrés à - {{.path}}", - "The \"{{.driver_name}}\" driver requires root privileges. Please run minikube using 'sudo minikube --vm-driver={{.driver_name}}": "Le pilote \"{{.driver_name}}\" nécessite de disposer de droits racine. Veuillez exécuter minikube à l'aide de \"sudo minikube --vm-driver={{.driver_name}}\".", "The \"{{.driver_name}}\" driver should not be used with root privileges.": "Le pilote \"{{.driver_name}}\" ne doit pas être utilisé avec les privilèges root.", "The 'none' driver is designed for experts who need to integrate with an existing VM": "Le pilote 'none' est conçu pour les experts qui doivent s'intégrer à une machine virtuelle existante", - "The 'none' driver provides limited isolation and may reduce system security and reliability.": "L'isolation fournie par le pilote \"none\" (aucun) est limitée, ce qui peut diminuer la sécurité et la fiabilité du système.", "The '{{.addonName}}' addon is enabled": "Le module '{{.addonName}}' est activé", "The '{{.driver}}' driver requires elevated permissions. The following commands will be executed:\\n\\n{{ .example }}\\n": "Le pilote '{{.driver}}' nécessite des autorisations élevées. Les commandes suivantes seront exécutées :\\n\\n{{ .example }}\\n", "The '{{.driver}}' provider was not found: {{.error}}": "Le fournisseur '{{.driver}}' n'a pas été trouvé : {{.error}}", "The '{{.name}} driver does not support multiple profiles: https://minikube.sigs.k8s.io/docs/reference/drivers/none/": "Le pilote '{{.name}}' ne prend pas en charge plusieurs profils : https://minikube.sigs.k8s.io/docs/reference/drivers/none/", "The '{{.name}}' driver does not respect the --cpus flag": "Le pilote '{{.name}}' ne respecte pas l'indicateur --cpus", "The '{{.name}}' driver does not respect the --memory flag": "Le pilote '{{.name}}' ne respecte pas l'indicateur --memory", - "The --image-repository flag your provided contains Scheme: {{.scheme}}, it will be as a domian, removed automatically": "L'indicateur --image-repository que vous avez fourni contient le schéma : {{.scheme}}, ce sera en tant que domaine, supprimé automatiquement", "The --image-repository flag your provided contains Scheme: {{.scheme}}, which will be removed automatically": "L'indicateur --image-repository que vous avez fourni contient le schéma: {{.scheme}}, qui sera automatiquement supprimé", "The --image-repository flag your provided ended with a trailing / that could cause conflict in kuberentes, removed automatically": "L'indicateur --image-repository que vous avez fourni s'est terminé par un / qui pourrait provoquer un conflit dans kubernetes, supprimé automatiquement", "The CIDR to be used for service cluster IPs.": "Méthode CIDR à exploiter pour les adresses IP des clusters du service.", @@ -631,28 +585,22 @@ "The KVM QEMU connection URI. (kvm2 driver only)": "URI de connexion QEMU de la KVM (pilote kvm2 uniquement).", "The KVM default network name. (kvm2 driver only)": "Le nom de réseau par défaut de KVM. (pilote kvm2 uniquement)", "The KVM driver is unable to resurrect this old VM. Please run `minikube delete` to delete it and try again.": "Le pilote KVM est incapable de ressusciter cette ancienne VM. Veuillez exécuter `minikube delete` pour la supprimer et réessayer.", - "The KVM network name. (kvm2 driver only)": "Nom du réseau de la KVM (pilote kvm2 uniquement).", "The VM driver crashed. Run 'minikube start --alsologtostderr -v=8' to see the VM driver error message": "Le pilote VM s'est écrasé. Exécutez 'minikube start --alsologtostderr -v=8' pour voir le message d'erreur du pilote VM", "The VM driver exited with an error, and may be corrupt. Run 'minikube start' with --alsologtostderr -v=8 to see the error": "Le pilote VM s'est terminé avec une erreur et est peut-être corrompu. Exécutez 'minikube start' avec --alsologtostderr -v=8 pour voir l'erreur", "The VM that minikube is configured for no longer exists. Run 'minikube delete'": "La machine virtuelle pour laquelle minikube est configuré n'existe plus. Exécutez 'minikube delete'", "The \\\"{{.name}}\\\" container runtime requires CNI": "L'environnement d'exécution du conteneur \\\"{{.name}}\\\" nécessite CNI", "The ambassador addon has stopped working as of v1.23.0, for more details visit: https://github.com/datawire/ambassador-operator/issues/73": "Le module Ambassador a cessé de fonctionner à partir de la v1.23.0, pour plus de détails, visitez : https://github.com/datawire/ambassador-operator/issues/73", "The apiserver listening port": "Port d'écoute du serveur d'API.", - "The apiserver name which is used in the generated certificate for kubernetes. This can be used if you want to make the apiserver available from outside the machine": "Nom du serveur d'API utilisé dans le certificat généré pour Kubernetes. Vous pouvez l'utiliser si vous souhaitez que le serveur d'API soit disponible en dehors de la machine.", - "The argument to pass the minikube mount command on start": "Argument à transmettre à la commande d'installation de minikube au démarrage.", "The argument to pass the minikube mount command on start.": "L'argument pour passer la commande de montage minikube au démarrage.", "The authoritative apiserver hostname for apiserver certificates and connectivity. This can be used if you want to make the apiserver available from outside the machine": "Le nom d'hôte apiserver faisant autorité pour les certificats apiserver et la connectivité. Cela peut être utilisé si vous souhaitez rendre l'apiserver disponible depuis l'extérieur de la machine", "The base image to use for docker/podman drivers. Intended for local development.": "L'image de base à utiliser pour les pilotes docker/podman. Destiné au développement local.", "The certificate hostname provided appears to be invalid (may be a minikube bug, try 'minikube delete')": "Le nom d'hôte du certificat fourni semble être invalide (peut être un bogue minikube, essayez 'minikube delete')", "The cluster dns domain name used in the Kubernetes cluster": "Le nom de domaine DNS du cluster utilisé dans le cluster Kubernetes", - "The cluster dns domain name used in the kubernetes cluster": "Nom du domaine DNS du cluster utilisé dans le cluster Kubernetes.", "The cluster {{.cluster}} already exists which means the --nodes parameter will be ignored. Use \"minikube node add\" to add nodes to an existing cluster.": "Le cluster {{.cluster}} existe déjà, ce qui signifie que le paramètre --nodes sera ignoré. Utilisez \"minikube node add\" pour ajouter des nœuds à un cluster existant.", - "The container runtime to be used (docker, crio, containerd)": "environment d'exécution du conteneur à utiliser (docker, crio, containerd).", "The control plane for \"{{.name}}\" is paused!": "Le plan de contrôle pour \"{{.name}}\" est en pause !", "The control plane node \"{{.name}}\" does not exist.": "Le nœud du plan de contrôle \"{{.name}}\" n'existe pas.", "The control plane node is not running (state={{.state}})": "Le nœud du plan de contrôle n'est pas en cours d'exécution (state={{.state}})", "The control plane node must be running for this command": "Le nœud du plan de contrôle doit être en cours d'exécution pour cette commande", - "The cri socket path to be used": "Chemin d'accès au socket CRI à utiliser.", "The cri socket path to be used.": "Le chemin de socket cri à utiliser.", "The docker-env command is incompatible with multi-node clusters. Use the 'registry' add-on: https://minikube.sigs.k8s.io/docs/handbook/registry/": "La commande docker-env est incompatible avec les clusters multi-nœuds. Utilisez le module 'registry' : https://minikube.sigs.k8s.io/docs/handbook/registry/", "The docker-env command is only compatible with the \"docker\" runtime, but this cluster was configured to use the \"{{.runtime}}\" runtime.": "La commande docker-env n'est compatible qu'avec le runtime \"docker\", mais ce cluster a été configuré pour utiliser le runtime \"{{.runtime}}\".", @@ -665,12 +613,10 @@ "The image '{{.imageName}}' was not found; unable to add it to cache.": "L'image '{{.imageName}}' n'a pas été trouvée ; impossible de l'ajouter au cache.", "The initial time interval for each check that wait performs in seconds": "L'intervalle de temps initial pour chaque vérification effectuée en secondes", "The kubeadm binary within the Docker container is not executable": "Le binaire kubeadm dans le conteneur Docker n'est pas exécutable", - "The kubernetes version that the minikube VM will use (ex: v1.2.3)": "Version de Kubernetes qu'utilisera la VM minikube (exemple : v1.2.3).", "The machine-driver specified is failing to start. Try running 'docker-machine-driver-\u003ctype\u003e version'": "Le pilote de machine spécifié ne démarre pas. Essayez d'exécuter 'docker-machine-driver-\u003ctype\u003e version'", "The minikube VM is offline. Please run 'minikube start' to start it again.": "La machine virtuelle minikube est hors ligne. Veuillez exécuter 'minikube start' pour le redémarrer.", "The minikube {{.driver_name}} container exited unexpectedly.": "Le conteneur minikube {{.driver_name}} s'est fermé de manière inattendue.", "The minimum required version for podman is \"{{.minVersion}}\". your version is \"{{.currentVersion}}\". minikube might not work. use at your own risk. To install latest version please see https://podman.io/getting-started/installation.html": "La version minimale requise pour podman est \"{{.minVersion}}\". votre version est \"{{.currentVersion}}\". minikube pourrait ne pas fonctionner. À utiliser à vos risques et périls. Pour installer la dernière version, veuillez consulter https://podman.io/getting-started/installation.html", - "The name of the network plugin": "Nom du plug-in réseau.", "The named space to activate after start": "L'espace nommé à activer après le démarrage", "The node to build on. Defaults to the primary control plane.": "Le nœud sur lequel construire. La valeur par défaut est le plan de contrôle principal.", "The node to check status for. Defaults to control plane. Leave blank with default format for status on all nodes.": "Le nœud pour lequel vérifier l'état. La valeur par défaut est le plan de contrôle. Laissez vide avec le format par défaut pour l'état sur tous les nœuds.", @@ -693,14 +639,11 @@ "The podman-env command is incompatible with multi-node clusters. Use the 'registry' add-on: https://minikube.sigs.k8s.io/docs/handbook/registry/": "La commande podman-env est incompatible avec les clusters multi-nœuds. Utilisez le module 'registry' : https://minikube.sigs.k8s.io/docs/handbook/registry/", "The requested memory allocation of {{.requested}}MiB does not leave room for system overhead (total system memory: {{.system_limit}}MiB). You may face stability issues.": "L'allocation de mémoire demandée de {{.requested}}MiB ne laisse pas de place pour la surcharge système (mémoire système totale : {{.system_limit}}MiB). Vous pouvez rencontrer des problèmes de stabilité.", "The service namespace": "L'espace de nom du service", - "The service {{.service}} requires privileged ports to be exposed: {{.ports}}": "Le service {{.service}} nécessite l'exposition des ports privilégiés : {{.ports}}", "The service/ingress {{.resource}} requires privileged ports to be exposed: {{.ports}}": "Le service/ingress {{.resource}} nécessite l'exposition des ports privilégiés : {{.ports}}", "The services namespace": "L'espace de noms des services", "The time interval for each check that wait performs in seconds": "L'intervalle de temps pour chaque contrôle que wait effectue en secondes", "The value passed to --format is invalid": "La valeur passée à --format n'est pas valide", "The value passed to --format is invalid: {{.error}}": "La valeur passée à --format n'est pas valide : {{.error}}", - "The {{.driver_name}} driver should not be used with root privileges.": "Le pilote {{.driver_name}} ne doit pas être utilisé avec des droits racine.", - "There's a new version for '{{.driver_executable}}'. Please consider upgrading. {{.documentation_url}}": "Une nouvelle version de \"{{.driver_executable}}\" est disponible. Pensez à effectuer la mise à niveau. {{.documentation_url}}", "These --extra-config parameters are invalid: {{.invalid_extra_opts}}": "Ces paramètres --extra-config ne sont pas valides : {{.invalid_extra_opts}}", "These changes will take effect upon a minikube delete and then a minikube start": "Ces modifications prendront effet lors d'une suppression de minikube, puis d'un démarrage de minikube", "This addon does not have an endpoint defined for the 'addons open' command.\nYou can add one by annotating a service with the label {{.labelName}}:{{.addonName}}": "Ce module n'a pas de point de terminaison défini pour la commande 'addons open'.\nVous pouvez en ajouter un en annotant un service avec le libellé {{.labelName}} :{{.addonName}}", @@ -710,14 +653,10 @@ "This is a known issue with BTRFS storage driver, there is a workaround, please checkout the issue on GitHub": "Il s'agit d'un problème connu avec le pilote de stockage BTRFS, il existe une solution de contournement, veuillez vérifier le problème sur GitHub", "This is unusual - you may want to investigate using \"{{.command}}\"": "C'est inhabituel - vous voudrez peut-être investiguer en utilisant \"{{.command}}\"", "This will keep the existing kubectl context and will create a minikube context.": "Cela permet de conserver le contexte kubectl existent et de créer un contexte minikube.", - "This will start the mount daemon and automatically mount files into minikube": "Cela permet de lancer le daemon d'installation et d'installer automatiquement les fichiers dans minikube.", "This will start the mount daemon and automatically mount files into minikube.": "Cela démarrera le démon de montage et montera automatiquement les fichiers dans minikube.", "This {{.type}} is having trouble accessing https://{{.repository}}": "Ce {{.type}} rencontre des difficultés pour accéder à https://{{.repository}}", "Tip: To remove this root owned cluster, run: sudo {{.cmd}}": "Astuce : Pour supprimer ce cluster appartenant à la racine, exécutez : sudo {{.cmd}}", - "Tip: To remove this root owned cluster, run: sudo {{.cmd}} delete": "Conseil : Pour supprimer ce cluster appartenant à la racine, exécutez la commande \"sudo {{.cmd}} delete\".", "To connect to this cluster, use: --context={{.name}}": "Pour vous connecter à ce cluster, utilisez : --context={{.name}}", - "To connect to this cluster, use: kubectl --context={{.name}}": "Pour vous connecter à ce cluster, utilisez la commande \"kubectl --context={{.name}}\".", - "To connect to this cluster, use: kubectl --context={{.name}}__1": "Pour vous connecter à ce cluster, utilisez la commande \"kubectl --context={{.name}}\".", "To connect to this cluster, use: kubectl --context={{.profile_name}}": "Pour vous connecter à ce cluster, utilisez : kubectl --context={{.profile_name}}", "To disable beta notices, run: 'minikube config set WantBetaUpdateNotification false'": "Pour désactiver les notifications bêta, exécutez : 'minikube config set WantBetaUpdateNotification false'", "To disable this notice, run: 'minikube config set WantUpdateNotification false'\\n": "Pour désactiver cette notification, exécutez : 'minikube config set WantUpdateNotification false'\\n", @@ -740,7 +679,6 @@ "Unable to generate docs": "Impossible de générer des documents", "Unable to generate the documentation. Please ensure that the path specified is a directory, exists \u0026 you have permission to write to it.": "Impossible de générer la documentation. Veuillez vous assurer que le chemin spécifié est un répertoire, existe \u0026 vous avez la permission d'y écrire.", "Unable to get CPU info: {{.err}}": "Impossible d'obtenir les informations sur le processeur : {{.err}}", - "Unable to get bootstrapper: {{.error}}": "Impossible d'obtenir l'amorceur : {{.error}}", "Unable to get command runner": "Impossible d'obtenir le lanceur de commandes", "Unable to get control plane status: {{.error}}": "Impossible d'obtenir l'état du plan de contrôle : {{.error}}", "Unable to get current user": "Impossible d'obtenir l'utilisateur actuel", @@ -749,7 +687,6 @@ "Unable to get runtime": "Impossible d'obtenir l'environnement d'exécution", "Unable to kill mount process: {{.error}}": "Impossible d'arrêter le processus de montage : {{.error}}", "Unable to list profiles: {{.error}}": "Impossible de répertorier les profils : {{.error}}", - "Unable to load cached images from config file.": "Impossible de charger les images mises en cache depuis le fichier de configuration.", "Unable to load cached images: {{.error}}": "Impossible de charger les images mises en cache : {{.error}}", "Unable to load config: {{.error}}": "Impossible de charger la configuration : {{.error}}", "Unable to load host": "Impossible de charger l'hôte", @@ -759,7 +696,6 @@ "Unable to parse memory '{{.memory}}': {{.error}}": "Impossible d'analyser la mémoire '{{.memory}}' : {{.error}}", "Unable to parse oldest Kubernetes version from constants: {{.error}}": "Impossible d'analyser la version la plus ancienne de Kubernetes à partir des constantes : {{.error}}", "Unable to pick a default driver. Here is what was considered, in preference order:": "Impossible de choisir un pilote par défaut. Voici ce qui a été considéré, par ordre de préférence :", - "Unable to pull images, which may be OK: {{.error}}": "Impossible d'extraire des images, qui sont peut-être au bon format : {{.error}}", "Unable to push cached images: {{.error}}": "Impossible de pousser les images mises en cache : {{.error}}", "Unable to remove machine directory": "Impossible de supprimer le répertoire de la machine", "Unable to restart cluster, will reset it: {{.error}}": "Impossible de redémarrer le cluster, va être réinitialisé : {{.error}}", @@ -780,7 +716,6 @@ "Update server returned an empty list": "Le serveur de mise à jour a renvoyé une liste vide", "Updating the running {{.driver_name}} \"{{.cluster}}\" {{.machine_type}} ...": "Mise à jour du {{.machine_type}} {{.driver_name}} en marche \"{{.cluster}}\" ...", "Upgrade to QEMU v3.1.0+, run 'virt-host-validate', or ensure that you are not running in a nested VM environment.": "Mettez à niveau vers QEMU v3.1.0+, exécutez 'virt-host-validate' ou assurez-vous que vous n'exécutez pas dans un environnement VM imbriqué.", - "Upgrading from Kubernetes {{.old}} to {{.new}}": "Mise à niveau de Kubernetes de la version {{.old}} à la version {{.new}}…", "Usage": "Usage", "Usage: minikube completion SHELL": "Utilisation : minikube completion SHELL", "Usage: minikube delete": "Utilisation: minikube delete", @@ -808,16 +743,13 @@ "Using the '{{.runtime}}' runtime with the 'none' driver is an untested configuration!": "L'utilisation du runtime '{{.runtime}}' avec le pilote 'none' est une configuration non testée !", "Using the {{.driver}} driver based on existing profile": "Utilisation du pilote {{.driver}} basé sur le profil existant", "Using the {{.driver}} driver based on user configuration": "Utilisation du pilote {{.driver}} basé sur la configuration de l'utilisateur", - "VM driver is one of: %v": "Le pilote de la VM appartient à : %v", "Valid components are: {{.valid_extra_opts}}": "Les composants valides sont : {{.valid_extra_opts}}", "Validate your KVM networks. Run: virt-host-validate and then virsh net-list --all": "Validez vos réseaux KVM. Exécutez : virt-host-validate puis virsh net-list --all", - "Validation unable to parse disk size '{{.diskSize}}': {{.error}}": "La validation n'a pas pu analyser la taille du disque '{{.diskSize}}' : {{.error}}", "Verify that your HTTP_PROXY and HTTPS_PROXY environment variables are set correctly.": "Vérifiez que vos variables d'environnement HTTP_PROXY et HTTPS_PROXY sont correctement définies.", "Verifying Kubernetes components...": "Vérification des composants Kubernetes...", "Verifying dashboard health ...": "Vérification de l'état du tableau de bord...", "Verifying proxy health ...": "Vérification de l'état du proxy...", "Verifying {{.addon_name}} addon...": "Vérification du module {{.addon_name}}...", - "Verifying:": "Vérification :", "Version: {{.version}}": "Version : {{.version}}", "VirtualBox and Hyper-V are having a conflict. Use '--driver=hyperv' or disable Hyper-V using: 'bcdedit /set hypervisorlaunchtype off'": "VirtualBox et Hyper-V ont un conflit. Utilisez '--driver=hyperv' ou désactivez Hyper-V en utilisant : 'bcdedit /set hypervisorlaunchtype off'", "VirtualBox cannot create a network, probably because it conflicts with an existing network that minikube no longer knows about. Try running 'minikube delete'": "VirtualBox ne peut pas créer de réseau, probablement parce qu'il entre en conflit avec un réseau existant que minikube ne connaît plus. Essayez d'exécuter 'minikube delete'", @@ -826,18 +758,13 @@ "VirtualBox is unable to find its network interface. Try upgrading to the latest release and rebooting.": "VirtualBox est incapable de trouver son interface réseau. Essayez de mettre à niveau vers la dernière version et de redémarrer.", "Virtualization support is disabled on your computer. If you are running minikube within a VM, try '--driver=docker'. Otherwise, consult your systems BIOS manual for how to enable virtualization.": "La prise en charge de la virtualisation est désactivée sur votre ordinateur. Si vous exécutez minikube dans une machine virtuelle, essayez '--driver=docker'. Sinon, consultez le manuel du BIOS de votre système pour savoir comment activer la virtualisation.", "Wait failed: {{.error}}": "Échec de l'attente : {{.error}}", - "Wait until Kubernetes core services are healthy before exiting": "Avant de quitter, veuillez patienter jusqu'à ce que les principaux services Kubernetes soient opérationnels.", - "Waiting for SSH access ...": "En attente de l'accès SSH...", - "Waiting for:": "En attente de :", "Want kubectl {{.version}}? Try 'minikube kubectl -- get pods -A'": "Vous voulez kubectl {{.version}} ? Essayez 'minikube kubectl -- get pods -A'", "Where to root the NFS Shares, defaults to /nfsshares (hyperkit driver only)": "Emplacement permettant d'accéder aux partages NFS en mode root, la valeur par défaut affichant /nfsshares (pilote hyperkit uniquement).", "Whether to use external switch over Default Switch if virtual switch not explicitly specified. (hyperv driver only)": "S'il faut utiliser le commutateur externe sur le commutateur par défaut si le commutateur virtuel n'est pas explicitement spécifié. (pilote hyperv uniquement)", "With --network-plugin=cni, you will need to provide your own CNI. See --cni flag as a user-friendly alternative": "Avec --network-plugin=cni, vous devrez fournir votre propre CNI. Voir --cni flag comme alternative conviviale", "You appear to be using a proxy, but your NO_PROXY environment does not include the minikube IP ({{.ip_address}}).": "Vous semblez utiliser un proxy, mais votre environnement NO_PROXY n'inclut pas l'IP minikube ({{.ip_address}}).", - "You appear to be using a proxy, but your NO_PROXY environment does not include the minikube IP ({{.ip_address}}). Please see {{.documentation_url}} for more details": "Il semble que vous utilisiez un proxy, mais votre environment NO_PROXY n'inclut pas l'adresse IP ({{.ip_address}}) de minikube. Consultez la documentation à l'adresse {{.documentation_url}} pour en savoir plus.", "You are trying to run a windows .exe binary inside WSL. For better integration please use a Linux binary instead (Download at https://minikube.sigs.k8s.io/docs/start/.). Otherwise if you still want to do this, you can do it using --force": "Vous essayez d'exécuter un binaire Windows .exe dans WSL. Pour une meilleure intégration, veuillez utiliser un binaire Linux à la place (Télécharger sur https://minikube.sigs.k8s.io/docs/start/.). Sinon, si vous voulez toujours le faire, vous pouvez le faire en utilisant --force", "You are trying to run amd64 binary on M1 system. Please consider running darwin/arm64 binary instead (Download at {{.url}}.)": "Vous essayez d'exécuter le binaire amd64 sur le système M1. Veuillez utiliser le binaire darwin/arm64 à la place (télécharger sur {{.url}}.)", - "You are trying to run windows .exe binary inside WSL, for better integration please use Linux binary instead (Download at https://minikube.sigs.k8s.io/docs/start/.). Otherwise if you still want to do this, you can do it using --force": "Vous essayez d'exécuter le binaire Windows .exe dans WSL. Pour une meilleure intégration, veuillez utiliser le binaire Linux à la place (Télécharger sur https://minikube.sigs.k8s.io/docs/start/.). Sinon, si vous voulez toujours le faire, vous pouvez le faire en utilisant --force", "You can delete them using the following command(s): ": "Vous pouvez les supprimer à l'aide de la ou des commandes suivantes :", "You can force an unsupported Kubernetes version via the --force flag": "Vous pouvez forcer une version Kubernetes non prise en charge via l'indicateur --force", "You cannot add or remove extra disks for an existing minikube cluster. Please first delete the cluster.": "Vous ne pouvez pas ajouter ou supprimer des disques supplémentaires pour un cluster minikube existant. Veuillez d'abord supprimer le cluster.", @@ -864,7 +791,6 @@ "addon '{{.name}}' is not a valid addon packaged with minikube.\nTo see the list of available addons run:\nminikube addons list": "Le module '{{.name}}' n'est pas un module valide fourni avec minikube.\nPour voir la liste des modules disponibles, exécutez :\nminikube addons list", "addons modifies minikube addons files using subcommands like \"minikube addons enable dashboard\"": "addons modifie les fichiers de modules minikube à l'aide de sous-commandes telles que \"minikube addons enable dashboard\"", "auto-pause addon is an alpha feature and still in early development. Please file issues to help us make it better.": "Le module auto-pause est une fonctionnalité alpha et encore en développement précoce. Veuillez signaler les problèmes pour nous aider à l'améliorer.", - "auto-pause currently is only supported on docker runtime. Track progress of others here: https://github.com/kubernetes/minikube/issues/10601": "la pause automatique n'est actuellement prise en charge que sur le runtime docker. Suivez les progrès des autres ici : https://github.com/kubernetes/minikube/issues/10601", "bash completion failed": "échec de la complétion bash", "bash completion.": "complétion bash", "call with cleanup=true to remove old tunnels": "appelez avec cleanup=true pour supprimer les anciens tunnels", @@ -885,7 +811,6 @@ "error initializing tracing: {{.Error}}": "erreur d'initialisation du traçage : {{.Error}}", "error parsing the input ip address for mount": "erreur lors de l'analyse de l'adresse IP d'entrée pour le montage", "error provisioning guest": "erreur lors de l'approvisionnement de l'invité", - "error provisioning host": "erreur lors de l'approvisionnement de l'hôte", "error starting tunnel": "erreur de démarrage du tunnel", "error stopping tunnel": "erreur d'arrêt du tunnel", "error: --output must be 'text', 'yaml' or 'json'": "erreur : --output doit être 'text', 'yaml' ou 'json'", @@ -951,7 +876,6 @@ "unable to bind flags": "impossible de lier les configurations", "unable to daemonize: {{.err}}": "impossible de démoniser : {{.err}}", "unable to delete minikube config folder": "impossible de supprimer le dossier de configuration de minikube", - "unable to set logtostderr": "impossible de définir logtostderr", "unpause Kubernetes": "réactive Kubernetes", "unset failed": "échec de la déconfiguration", "unsets PROPERTY_NAME from the minikube config file. Can be overwritten by flags or environmental variables": "déconfigure PROPERTY_NAME du fichier de configuration de minikube. Peut-être écrasé par des arguments ou variables d'environnement", @@ -975,7 +899,6 @@ "{{ .name }}: Suggestion: {{ .suggestion}}": "{{ .name }}: Suggestion: {{ .suggestion}}", "{{ .name }}: {{ .rejection }}": "{{ .name }} : {{ .rejection }}", "{{.Driver}} is currently using the {{.StorageDriver}} storage driver, consider switching to overlay2 for better performance": "{{.Driver}} utilise actuellement le pilote de stockage {{.StorageDriver}}, envisagez de passer à overlay2 pour de meilleures performances", - "{{.count}} nodes stopped.": "{{.count}} nœud(s) arrêté(s).", "{{.count}} node{{if gt .count 1}}s{{end}} stopped.": "{{.count}} nœud{{if gt .count 1}}s{{end}} arrêté{{if gt .count 1}}s{{end}}.", "{{.driver_name}} \"{{.cluster}}\" {{.machine_type}} is missing, will recreate.": "{{.driver_name}} \"{{.cluster}}\" {{.machine_type}} est manquant, il va être recréé.", "{{.driver_name}} couldn't proceed because {{.driver_name}} service is not healthy.": "{{.driver_name}} n'a pas pu continuer car le service {{.driver_name}} n'est pas fonctionnel.", From bec03819df01178d51340eb86e2db845b0b48f43 Mon Sep 17 00:00:00 2001 From: Sharif Elgamal Date: Mon, 25 Oct 2021 15:32:13 -0700 Subject: [PATCH 030/111] fix disabling gcp-auth addon --- pkg/addons/addons.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/addons/addons.go b/pkg/addons/addons.go index 748a42ae0ffe..ce8686ae46cf 100644 --- a/pkg/addons/addons.go +++ b/pkg/addons/addons.go @@ -263,7 +263,7 @@ func addonSpecificChecks(cc *config.ClusterConfig, name string, enable bool, run } // If the gcp-auth credentials haven't been mounted in, don't start the pods - if name == "gcp-auth" { + if name == "gcp-auth" && enable { rr, err := runner.RunCmd(exec.Command("cat", credentialsPath)) if err != nil || rr.Stdout.String() == "" { return true, nil From bd9da426518d307fea485a0680e8d0f7ddbe62c2 Mon Sep 17 00:00:00 2001 From: Sharif Elgamal Date: Mon, 25 Oct 2021 17:31:24 -0700 Subject: [PATCH 031/111] reverse files for kubectl remove on addon disable --- deploy/addons/gcp-auth/gcp-auth-webhook.yaml.tmpl | 3 +-- pkg/addons/kubectl.go | 10 ++++++++-- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/deploy/addons/gcp-auth/gcp-auth-webhook.yaml.tmpl b/deploy/addons/gcp-auth/gcp-auth-webhook.yaml.tmpl index d3e585591485..dbac1650b7b4 100644 --- a/deploy/addons/gcp-auth/gcp-auth-webhook.yaml.tmpl +++ b/deploy/addons/gcp-auth/gcp-auth-webhook.yaml.tmpl @@ -1,4 +1,4 @@ -# Copyright 2017 The Kubernetes Authors. +# Copyright 2021 The Kubernetes Authors. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -12,7 +12,6 @@ # See the License for the specific language governing permissions and # limitations under the License. ---- apiVersion: v1 kind: ServiceAccount metadata: diff --git a/pkg/addons/kubectl.go b/pkg/addons/kubectl.go index 6f4003ab128a..16a10c55ce6e 100644 --- a/pkg/addons/kubectl.go +++ b/pkg/addons/kubectl.go @@ -41,8 +41,14 @@ func kubectlCommand(cc *config.ClusterConfig, files []string, enable bool) *exec } args := []string{fmt.Sprintf("KUBECONFIG=%s", path.Join(vmpath.GuestPersistentDir, "kubeconfig")), kubectlBinary, kubectlAction} - for _, f := range files { - args = append(args, []string{"-f", f}...) + if enable { + for _, f := range files { + args = append(args, []string{"-f", f}...) + } + } else { + for i := len(files) - 1; i >= 0; i-- { + args = append(args, []string{"-f", files[i]}...) + } } return exec.Command("sudo", args...) From b0598d06e539b426aaac10a298d61de2479e49da Mon Sep 17 00:00:00 2001 From: Sharif Elgamal Date: Mon, 25 Oct 2021 18:07:45 -0700 Subject: [PATCH 032/111] ignore-not-found for kubectl delete --- pkg/addons/kubectl.go | 1 + 1 file changed, 1 insertion(+) diff --git a/pkg/addons/kubectl.go b/pkg/addons/kubectl.go index 16a10c55ce6e..eda42d4eab4a 100644 --- a/pkg/addons/kubectl.go +++ b/pkg/addons/kubectl.go @@ -46,6 +46,7 @@ func kubectlCommand(cc *config.ClusterConfig, files []string, enable bool) *exec args = append(args, []string{"-f", f}...) } } else { + args = append(args, "--ignore-not-found") for i := len(files) - 1; i >= 0; i-- { args = append(args, []string{"-f", files[i]}...) } From 1e932bc5bde17c492f6d186f669535c8fc4efa3b Mon Sep 17 00:00:00 2001 From: Sharif Elgamal Date: Mon, 25 Oct 2021 18:22:49 -0700 Subject: [PATCH 033/111] cleanup and comments --- pkg/addons/kubectl.go | 3 +++ test/integration/addons_test.go | 26 ++++++-------------------- 2 files changed, 9 insertions(+), 20 deletions(-) diff --git a/pkg/addons/kubectl.go b/pkg/addons/kubectl.go index eda42d4eab4a..d59c5a18f8a8 100644 --- a/pkg/addons/kubectl.go +++ b/pkg/addons/kubectl.go @@ -46,7 +46,10 @@ func kubectlCommand(cc *config.ClusterConfig, files []string, enable bool) *exec args = append(args, []string{"-f", f}...) } } else { + // --ignore-not-found just ignores when we try to ignore a resource that is gone, + // like a completed job with a ttlSecondsAfterFinished args = append(args, "--ignore-not-found") + // reverse the order of files to delete, sometimes file order matters for i := len(files) - 1; i >= 0; i-- { args = append(args, []string{"-f", files[i]}...) } diff --git a/test/integration/addons_test.go b/test/integration/addons_test.go index 245042a2dd7e..964c253affcb 100644 --- a/test/integration/addons_test.go +++ b/test/integration/addons_test.go @@ -65,33 +65,18 @@ func TestAddons(t *testing.T) { t.Fatalf("Failed setting GOOGLE_CLOUD_PROJECT env var: %v", err) } - args := append([]string{"start", "-p", profile, "--wait=true", "--memory=4000", "--alsologtostderr", "--addons=registry", "--addons=metrics-server", "--addons=olm", "--addons=volumesnapshots", "--addons=csi-hostpath-driver"}, StartArgs()...) + args := append([]string{"start", "-p", profile, "--wait=true", "--memory=4000", "--alsologtostderr", "--addons=registry", "--addons=metrics-server", "--addons=olm", "--addons=volumesnapshots", "--addons=csi-hostpath-driver", "--addons=gcp-auth"}, StartArgs()...) if !NoneDriver() { // none driver does not support ingress args = append(args, "--addons=ingress", "--addons=ingress-dns") } if !arm64Platform() { args = append(args, "--addons=helm-tiller") } - if !detect.IsOnGCE() { - args = append(args, "--addons=gcp-auth") - } rr, err := Run(t, exec.CommandContext(ctx, Target(), args...)) if err != nil { t.Fatalf("%s failed: %v", rr.Command(), err) } - // If we're running the integration tests on GCE, which is frequently the case, first check to make sure we exit out properly, - // then use force to actually test using creds. - if detect.IsOnGCE() { - // ok, use force here since we are in GCE - // do not use --force unless absolutely necessary - args := []string{"-p", profile, "addons", "enable", "gcp-auth", "--force"} - rr, err := Run(t, exec.CommandContext(ctx, Target(), args...)) - if err != nil { - t.Errorf("%s failed: %v", rr.Command(), err) - } - } - }) if !setupSucceeded { @@ -677,8 +662,6 @@ func validateGCPAuthAddon(ctx context.Context, t *testing.T, profile string) { t.Errorf("failed to disable GCP auth addon: %v", err) } - // maybe check that everything got cleaned up here? - // If we're on GCE, we have proper credentials and can test the registry secrets with an artifact registry image if detect.IsOnGCE() && !detect.IsCloudShell() { os.Unsetenv("GOOGLE_APPLICATION_CREDENTIALS") @@ -710,11 +693,14 @@ func validateGCPAuthAddon(ctx context.Context, t *testing.T, profile string) { t.Fatalf("print env project: %v", err) } - // Make sure the pod is up and running, which means we successfully pulled the private image down - // 8 minutes, because 4 is not enough for images to pull in all cases. _, err = PodWait(ctx, t, profile, "default", "integration-test=private-image-eu", Minutes(8)) if err != nil { t.Fatalf("wait for private image: %v", err) } + + // Disable the addon for good now + if err := retry.Expo(disableGCPAuth, Minutes(2), Minutes(10), 5); err != nil { + t.Errorf("failed to disable GCP auth addon: %v", err) + } } } From da61b602c0ea8d8a53bf9cb17be06bec24ff071f Mon Sep 17 00:00:00 2001 From: Akira Yoshiyama Date: Thu, 7 Oct 2021 00:26:12 +0900 Subject: [PATCH 034/111] Update Japanese translation (Line 700-751) --- translations/ja.json | 102 +++++++++++++++++++++---------------------- 1 file changed, 51 insertions(+), 51 deletions(-) diff --git a/translations/ja.json b/translations/ja.json index d86d755645e5..3768572525f5 100644 --- a/translations/ja.json +++ b/translations/ja.json @@ -696,58 +696,58 @@ "This control plane is not running! (state={{.state}})": "", "This driver does not yet work on your architecture. Maybe try --driver=none": "", "This is a known issue with BTRFS storage driver, there is a workaround, please checkout the issue on GitHub": "", - "This is unusual - you may want to investigate using \"{{.command}}\"": "", - "This will keep the existing kubectl context and will create a minikube context.": "これにより既存の kubectl コンテキストが保持され、minikube コンテキストが作成されます", - "This will start the mount daemon and automatically mount files into minikube": "これによりマウント デーモンが起動し、ファイルが minikube に自動的にマウントされます", - "This will start the mount daemon and automatically mount files into minikube.": "", - "This {{.type}} is having trouble accessing https://{{.repository}}": "", - "Tip: To remove this root owned cluster, run: sudo {{.cmd}}": "", - "Tip: To remove this root owned cluster, run: sudo {{.cmd}} delete": "ヒント: この root 所有のクラスタを削除するには、「sudo {{.cmd}} delete」を実行します", - "To connect to this cluster, use: --context={{.name}}": "", - "To connect to this cluster, use: kubectl --context={{.name}}": "このクラスタに接続するには、「kubectl --context={{.name}}」を使用します", - "To connect to this cluster, use: kubectl --context={{.name}}__1": "このクラスタに接続するには、「kubectl --context={{.name}}」を使用します", - "To connect to this cluster, use: kubectl --context={{.profile_name}}": "", - "To disable beta notices, run: 'minikube config set WantBetaUpdateNotification false'": "", - "To disable this notice, run: 'minikube config set WantUpdateNotification false'\\n": "", - "To disable update notices in general, run: 'minikube config set WantUpdateNotification false'\\n": "", - "To pull new external images, you may need to configure a proxy: https://minikube.sigs.k8s.io/docs/reference/networking/proxy/": "", - "To see addons list for other profiles use: `minikube addons -p name list`": "", - "To set your Google Cloud project, run:\n\n\t\tgcloud config set project \u003cproject name\u003e\n\nor set the GOOGLE_CLOUD_PROJECT environment variable.": "", - "To start a cluster, run: \"{{.command}}\"": "", - "To start minikube with Hyper-V, Powershell must be in your PATH`": "", - "To use kubectl or minikube commands as your own user, you may need to relocate them. For example, to overwrite your own settings, run:": "kubectl か minikube コマンドを独自のユーザーとして使用するには、そのコマンドの再配置が必要な場合があります。たとえば、独自の設定を上書きするには、以下を実行します", + "This is unusual - you may want to investigate using \"{{.command}}\"": "これは異常です - 「{{.command}}」を使って調査できます", + "This will keep the existing kubectl context and will create a minikube context.": "これにより既存の kubectl コンテキストが保持され、minikube コンテキストが作成されます。", + "This will start the mount daemon and automatically mount files into minikube": "これによりマウントデーモンが起動し、ファイルが minikube に自動的にマウントされます", + "This will start the mount daemon and automatically mount files into minikube.": "これによりマウントデーモンが起動し、ファイルが minikube に自動的にマウントされます。", + "This {{.type}} is having trouble accessing https://{{.repository}}": "この {{.type}} は https://{{.repository}} アクセスにおける問題があります", + "Tip: To remove this root owned cluster, run: sudo {{.cmd}}": "ヒント: この root 所有クラスターの削除コマンド: sudo {{.cmd}}", + "Tip: To remove this root owned cluster, run: sudo {{.cmd}} delete": "ヒント: この root 所有クラスターの削除コマンド: sudo {{.cmd}} delete", + "To connect to this cluster, use: --context={{.name}}": "このクラスターに接続するためには、--context={{.name}} を使用します", + "To connect to this cluster, use: kubectl --context={{.name}}": "このクラスターに接続するためには、kubectl --context={{.name}} を使用します", + "To connect to this cluster, use: kubectl --context={{.name}}__1": "このクラスターに接続するためには、kubectl --context={{.name}} を使用します", + "To connect to this cluster, use: kubectl --context={{.profile_name}}": "このクラスターに接続するためには、kubectl --context={{.profile_name}} を使用します", + "To disable beta notices, run: 'minikube config set WantBetaUpdateNotification false'": "ベータ通知を無効にするためには、'minikube config set WantBetaUpdateNotification false' を実行します", + "To disable this notice, run: 'minikube config set WantUpdateNotification false'\\n": "この通知を無効にするためには、'minikube config set WantUpdateNotification false' を実行します\\n", + "To disable update notices in general, run: 'minikube config set WantUpdateNotification false'\\n": "全体的に更新通知を無効にするためには、'minikube config set WantUpdateNotification false' を実行します\\n", + "To pull new external images, you may need to configure a proxy: https://minikube.sigs.k8s.io/docs/reference/networking/proxy/": "外部イメージを取得するためには、プロキシーを設定する必要があるかも知れません: https://minikube.sigs.k8s.io/docs/reference/networking/proxy/", + "To see addons list for other profiles use: `minikube addons -p name list`": "他のプロファイル用のアドオン一覧を表示するためには、`minikube addons -p name list` を実行します", + "To set your Google Cloud project, run:\n\n\t\tgcloud config set project \u003cproject name\u003e\n\nor set the GOOGLE_CLOUD_PROJECT environment variable.": "Google Cloud プロジェクトを設定するためには、\n\n\t\tgcloud config set project \u003cproject name\u003e\n\n を実行するか、環境変数 GOOGLE_CLOUD_PROJECT を設定します。", + "To start a cluster, run: \"{{.command}}\"": "クラスターを起動するためには、「{{.command}}」を実行します", + "To start minikube with Hyper-V, Powershell must be in your PATH`": "Hyper-V で minikube を起動するためには、PATH 中に Powershell がなければなりません", + "To use kubectl or minikube commands as your own user, you may need to relocate them. For example, to overwrite your own settings, run:": "kubectl か minikube コマンドを独自のユーザーとして使用するためには、そのコマンドの再配置が必要な場合があります。たとえば、独自の設定を上書きするためには、以下を実行します", "Troubleshooting Commands:": "トラブルシュート用コマンド:", - "Try 'minikube delete' to force new SSL certificates to be installed": "", - "Try 'minikube delete', and disable any conflicting VPN or firewall software": "", - "Trying to delete invalid profile {{.profile}}": "", - "Unable to bind flags": "", - "Unable to create dedicated network, this might result in cluster IP change after restart: {{.error}}": "", - "Unable to enable dashboard": "", - "Unable to fetch latest version info": "", - "Unable to find control plane": "", - "Unable to generate docs": "", - "Unable to generate the documentation. Please ensure that the path specified is a directory, exists \u0026 you have permission to write to it.": "", - "Unable to get CPU info: {{.err}}": "", - "Unable to get bootstrapper: {{.error}}": "ブートストラッパを取得できません。{{.error}}", - "Unable to get command runner": "", - "Unable to get control plane status: {{.error}}": "", - "Unable to get current user": "", - "Unable to get forwarded endpoint": "", - "Unable to get machine status": "", - "Unable to get runtime": "", - "Unable to kill mount process: {{.error}}": "", - "Unable to list profiles: {{.error}}": "", - "Unable to load cached images from config file.": "キャッシュに保存されているイメージを構成ファイルから読み込むことができません", - "Unable to load cached images: {{.error}}": "", - "Unable to load config: {{.error}}": "構成を読み込むことができません。{{.error}}", - "Unable to load host": "", - "Unable to load profile: {{.error}}": "", - "Unable to parse \"{{.kubernetes_version}}\": {{.error}}": "「{{.kubernetes_version}}」を解析できません。{{.error}}", - "Unable to parse default Kubernetes version from constants: {{.error}}": "", - "Unable to parse memory '{{.memory}}': {{.error}}": "", - "Unable to parse oldest Kubernetes version from constants: {{.error}}": "", - "Unable to pick a default driver. Here is what was considered, in preference order:": "", - "Unable to pull images, which may be OK: {{.error}}": "イメージを pull できませんが、問題ありません。{{.error}}", + "Try 'minikube delete' to force new SSL certificates to be installed": "新しい SSL 証明書を強制インストールするためには、'minikube delete' を試してください", + "Try 'minikube delete', and disable any conflicting VPN or firewall software": "'minikube delete' を試して、衝突している VPN あるいはファイアウォールソフトウェアを無効化してください", + "Trying to delete invalid profile {{.profile}}": "無効なプロファイル {{.profile}} を削除中", + "Unable to bind flags": "フラグをバインドできません", + "Unable to create dedicated network, this might result in cluster IP change after restart: {{.error}}": "独立したネットワークの作成ができず、再起動後にクラスター IP が変更される結果になるかも知れません: {{.error}}", + "Unable to enable dashboard": "ダッシュボードが有効になりません", + "Unable to fetch latest version info": "最新バージョン情報を取得できません", + "Unable to find control plane": "コントロールプレーンが見つかりません", + "Unable to generate docs": "ドキュメントを生成できません", + "Unable to generate the documentation. Please ensure that the path specified is a directory, exists \u0026 you have permission to write to it.": "ドキュメントを生成できません。指定されたパスが、書き込み権限が付与された既存のディレクトリーかどうか確認してください。", + "Unable to get CPU info: {{.err}}": "CPU 情報が取得できません: {{.err}}", + "Unable to get bootstrapper: {{.error}}": "ブートストラッパーを取得できません: {{.error}}", + "Unable to get command runner": "コマンドランナーを取得できません", + "Unable to get control plane status: {{.error}}": "コントロールプレーンの状態を取得できません: {{.error}}", + "Unable to get current user": "現在のユーザーを取得できません", + "Unable to get forwarded endpoint": "フォワードされたエンドポイントを取得できません", + "Unable to get machine status": "マシンの状態を取得できません", + "Unable to get runtime": "ランタイムを取得できません", + "Unable to kill mount process: {{.error}}": "mount プロセスを停止できません: {{.error}}", + "Unable to list profiles: {{.error}}": "プロファイルのリストを作成できません: {{.error}}", + "Unable to load cached images from config file.": "キャッシュされたイメージを設定ファイルから読み込めません。", + "Unable to load cached images: {{.error}}": "キャッシュされたイメージを読み込めません: {{.error}}", + "Unable to load config: {{.error}}": "設定を読み込めません: {{.error}}", + "Unable to load host": "ホストを読み込めません", + "Unable to load profile: {{.error}}": "プロファイルを読み込めません: {{.error}}", + "Unable to parse \"{{.kubernetes_version}}\": {{.error}}": "「{{.kubernetes_version}}」を解析できません: {{.error}}", + "Unable to parse default Kubernetes version from constants: {{.error}}": "定数からデフォルトの Kubernetes バージョンを解析できません: {{.error}}", + "Unable to parse memory '{{.memory}}': {{.error}}": "メモリー '{{.memory}}' を解析できません: {{.error}}", + "Unable to parse oldest Kubernetes version from constants: {{.error}}": "定数から最古の Kubernetes バージョンを解析できません: {{.error}}", + "Unable to pick a default driver. Here is what was considered, in preference order:": "デフォルトドライバーを採用できませんでした。こちらが可能性の高い順に考えられる事です:", + "Unable to pull images, which may be OK: {{.error}}": "イメージを取得できませんが、問題ありません。{{.error}}", "Unable to push cached images: {{.error}}": "", "Unable to remove machine directory": "", "Unable to restart cluster, will reset it: {{.error}}": "", From 2ed63b65f549aead7c2fd79cc08a6f89218d87bb Mon Sep 17 00:00:00 2001 From: Sharif Elgamal Date: Tue, 26 Oct 2021 08:50:16 -0700 Subject: [PATCH 035/111] fix lint --- test/integration/addons_test.go | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/test/integration/addons_test.go b/test/integration/addons_test.go index 964c253affcb..8ae685188edc 100644 --- a/test/integration/addons_test.go +++ b/test/integration/addons_test.go @@ -670,10 +670,8 @@ func validateGCPAuthAddon(ctx context.Context, t *testing.T, profile string) { rr, err := Run(t, exec.CommandContext(ctx, Target(), args...)) if err != nil { t.Errorf("%s failed: %v", rr.Command(), err) - } else { - if !strings.Contains(rr.Output(), "It seems that you are running in GCE") { - t.Errorf("Unexpected error message: %v", rr.Output()) - } + } else if !strings.Contains(rr.Output(), "It seems that you are running in GCE") { + t.Errorf("Unexpected error message: %v", rr.Output()) } _, err = Run(t, exec.CommandContext(ctx, "kubectl", "--context", profile, "apply", "-f", filepath.Join(*testdataDir, "private-image.yaml"))) if err != nil { From 77da350d835f2cae747823b8973c91ae2af9b8ff Mon Sep 17 00:00:00 2001 From: Sharif Elgamal Date: Tue, 26 Oct 2021 09:01:58 -0700 Subject: [PATCH 036/111] fix unit test --- pkg/addons/kubectl_test.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/addons/kubectl_test.go b/pkg/addons/kubectl_test.go index b377c278c8d9..69eddce13317 100644 --- a/pkg/addons/kubectl_test.go +++ b/pkg/addons/kubectl_test.go @@ -39,7 +39,7 @@ func TestKubectlCommand(t *testing.T) { description: "disable an addon", files: []string{"a", "b"}, enable: false, - expected: "sudo KUBECONFIG=/var/lib/minikube/kubeconfig /var/lib/minikube/binaries/v1.17.0/kubectl delete -f a -f b", + expected: "sudo KUBECONFIG=/var/lib/minikube/kubeconfig /var/lib/minikube/binaries/v1.17.0/kubectl delete --ignore-not-found -f a -f b", }, } From aaf85032f47df60b730344b84a2271fedc630c64 Mon Sep 17 00:00:00 2001 From: Sharif Elgamal Date: Tue, 26 Oct 2021 10:34:46 -0700 Subject: [PATCH 037/111] fix unit test part deux --- pkg/addons/kubectl_test.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/addons/kubectl_test.go b/pkg/addons/kubectl_test.go index 69eddce13317..975f211736ff 100644 --- a/pkg/addons/kubectl_test.go +++ b/pkg/addons/kubectl_test.go @@ -39,7 +39,7 @@ func TestKubectlCommand(t *testing.T) { description: "disable an addon", files: []string{"a", "b"}, enable: false, - expected: "sudo KUBECONFIG=/var/lib/minikube/kubeconfig /var/lib/minikube/binaries/v1.17.0/kubectl delete --ignore-not-found -f a -f b", + expected: "sudo KUBECONFIG=/var/lib/minikube/kubeconfig /var/lib/minikube/binaries/v1.17.0/kubectl delete --ignore-not-found -f b -f a", }, } From 8cf0a18069601f18cf7f119dd50f2a1da81d74b4 Mon Sep 17 00:00:00 2001 From: Sharif Elgamal Date: Tue, 26 Oct 2021 11:46:29 -0700 Subject: [PATCH 038/111] no need to reverse file order for kubectl delete --- pkg/addons/kubectl.go | 15 +++++---------- pkg/addons/kubectl_test.go | 2 +- 2 files changed, 6 insertions(+), 11 deletions(-) diff --git a/pkg/addons/kubectl.go b/pkg/addons/kubectl.go index d59c5a18f8a8..60ccc2c23969 100644 --- a/pkg/addons/kubectl.go +++ b/pkg/addons/kubectl.go @@ -41,18 +41,13 @@ func kubectlCommand(cc *config.ClusterConfig, files []string, enable bool) *exec } args := []string{fmt.Sprintf("KUBECONFIG=%s", path.Join(vmpath.GuestPersistentDir, "kubeconfig")), kubectlBinary, kubectlAction} - if enable { - for _, f := range files { - args = append(args, []string{"-f", f}...) - } - } else { - // --ignore-not-found just ignores when we try to ignore a resource that is gone, + if !enable { + // --ignore-not-found just ignores when we try to delete a resource that is already gone, // like a completed job with a ttlSecondsAfterFinished args = append(args, "--ignore-not-found") - // reverse the order of files to delete, sometimes file order matters - for i := len(files) - 1; i >= 0; i-- { - args = append(args, []string{"-f", files[i]}...) - } + } + for _, f := range files { + args = append(args, []string{"-f", f}...) } return exec.Command("sudo", args...) diff --git a/pkg/addons/kubectl_test.go b/pkg/addons/kubectl_test.go index 975f211736ff..69eddce13317 100644 --- a/pkg/addons/kubectl_test.go +++ b/pkg/addons/kubectl_test.go @@ -39,7 +39,7 @@ func TestKubectlCommand(t *testing.T) { description: "disable an addon", files: []string{"a", "b"}, enable: false, - expected: "sudo KUBECONFIG=/var/lib/minikube/kubeconfig /var/lib/minikube/binaries/v1.17.0/kubectl delete --ignore-not-found -f b -f a", + expected: "sudo KUBECONFIG=/var/lib/minikube/kubeconfig /var/lib/minikube/binaries/v1.17.0/kubectl delete --ignore-not-found -f a -f b", }, } From 144ebe6498ae21a1bcbcdf74ad51d4648f399179 Mon Sep 17 00:00:00 2001 From: Sharif Elgamal Date: Tue, 26 Oct 2021 12:59:17 -0700 Subject: [PATCH 039/111] don't run disable on final gcp-auth enable, we're not actually enabling the addon --- test/integration/addons_test.go | 5 ----- 1 file changed, 5 deletions(-) diff --git a/test/integration/addons_test.go b/test/integration/addons_test.go index 8ae685188edc..05be246d9166 100644 --- a/test/integration/addons_test.go +++ b/test/integration/addons_test.go @@ -695,10 +695,5 @@ func validateGCPAuthAddon(ctx context.Context, t *testing.T, profile string) { if err != nil { t.Fatalf("wait for private image: %v", err) } - - // Disable the addon for good now - if err := retry.Expo(disableGCPAuth, Minutes(2), Minutes(10), 5); err != nil { - t.Errorf("failed to disable GCP auth addon: %v", err) - } } } From 67f3149c9e4c2cddb68e39469009e69f983906ce Mon Sep 17 00:00:00 2001 From: Sharif Elgamal Date: Tue, 26 Oct 2021 13:47:55 -0700 Subject: [PATCH 040/111] fix expected test output --- test/integration/addons_test.go | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/test/integration/addons_test.go b/test/integration/addons_test.go index 05be246d9166..cba3456789a7 100644 --- a/test/integration/addons_test.go +++ b/test/integration/addons_test.go @@ -643,9 +643,7 @@ func validateGCPAuthAddon(ctx context.Context, t *testing.T, profile string) { got = strings.TrimSpace(rr.Stdout.String()) expected = "this_is_fake" - if detect.IsOnGCE() && !detect.IsCloudShell() { - expected = "k8s-minikube" - } + if got != expected { t.Errorf("'printenv GOOGLE_CLOUD_PROJECT' returned %s, expected %s", got, expected) } From 31eff422b3395053dbef030a5556a59519d253a2 Mon Sep 17 00:00:00 2001 From: Sharif Elgamal Date: Tue, 26 Oct 2021 14:30:01 -0700 Subject: [PATCH 041/111] retag latest kicbase for release instead of rebuilding it --- hack/jenkins/kicbase_auto_build.sh | 39 +++++++++++++++++++++--------- 1 file changed, 27 insertions(+), 12 deletions(-) diff --git a/hack/jenkins/kicbase_auto_build.sh b/hack/jenkins/kicbase_auto_build.sh index 57536132a109..af5fd9fb21cb 100755 --- a/hack/jenkins/kicbase_auto_build.sh +++ b/hack/jenkins/kicbase_auto_build.sh @@ -32,7 +32,8 @@ curl -L https://github.com/kubernetes/minikube/raw/master/pkg/drivers/kic/types. # kicbase tags are of the form VERSION-TIMESTAMP-PR, so this grep finds that TIMESTAMP in the middle # if it doesn't exist, it will just return VERSION, which is covered in the if statement below HEAD_KIC_TIMESTAMP=$(egrep "Version =" types-head.go | cut -d \" -f 2 | cut -d "-" -f 2) -CURRENT_KIC_TS=$(egrep "Version =" pkg/drivers/kic/types.go | cut -d \" -f 2 | cut -d "-" -f 2) +CURRENT_KIC_VERSION=$(egrep "Version =" pkg/drivers/kic/types.go | cut -d \" -f 2) +CURRENT_KIC_TS=$(echo $CURRENT_KIC_VERSION | cut -d "-" -f 2) if [[ $HEAD_KIC_TIMESTAMP != v* ]]; then diff=$((CURRENT_KIC_TS-HEAD_KIC_TIMESTAMP)) if [[ $CURRENT_KIC_TS == v* ]] || [ $diff -lt 0 ]; then @@ -62,19 +63,33 @@ GCR_IMG=${GCR_REPO}:${KIC_VERSION} DH_IMG=${DH_REPO}:${KIC_VERSION} export KICBASE_IMAGE_REGISTRIES="${GCR_IMG} ${DH_IMG}" +if [ "$release" = false ]; then + # Build a new kicbase image + CIBUILD=yes make push-kic-base-image | tee kic-logs.txt + + # Abort with error message if above command failed + ec=$? + if [ $ec -gt 0 ]; then + if [ "$release" = false ]; then + gh pr comment ${ghprbPullId} --body "Hi ${ghprbPullAuthorLoginMention}, building a new kicbase image failed. + See the logs at: https://storage.cloud.google.com/minikube-builds/logs/${ghprbPullId}/${ghprbActualCommit::7}/kic_image_build.txt + " + fi + exit $ec + fi +else + # Install crane, it does exactly what we want it to do + go install github.com/google/go-containerregistry/cmd/crane@latest -# Build a new kicbase image -CIBUILD=yes make push-kic-base-image | tee kic-logs.txt + CURRENT_GCR_REPO=$(grep "gcrRepo =" pkg/drivers/kic/types.go | cut -d \" -f 2) + CURRENT_DH_REPO=$(grep "dockerhubRepo =" pkg/drivers/kic/types.go | cut -d \" -f 2) + + CURRENT_GCR_IMG=$CURRENT_GCR_REPO:$CURRENT_KIC_VERSION + CURRENT_DH_IMG=$CURRENT_DH_REPO:$CURRENT_KIC_VERSION + + crane copy $CURRENT_GCR_IMG $GCR_IMG + crane copy $CURRENT_DH_IMG $DH_IMG -# Abort with error message if above command failed -ec=$? -if [ $ec -gt 0 ]; then - if [ "$release" = false ]; then - gh pr comment ${ghprbPullId} --body "Hi ${ghprbPullAuthorLoginMention}, building a new kicbase image failed. - See the logs at: https://storage.cloud.google.com/minikube-builds/logs/${ghprbPullId}/${ghprbActualCommit::7}/kic_image_build.txt - " - fi - exit $ec fi # Retrieve the sha from the new image From da2507d15151a9c779c0ee8da7754804d1108c4d Mon Sep 17 00:00:00 2001 From: Sharif Elgamal Date: Tue, 26 Oct 2021 15:06:54 -0700 Subject: [PATCH 042/111] set env vars correctly so go install works --- hack/jenkins/kicbase_auto_build.sh | 3 +++ 1 file changed, 3 insertions(+) diff --git a/hack/jenkins/kicbase_auto_build.sh b/hack/jenkins/kicbase_auto_build.sh index af5fd9fb21cb..73fdf274f9af 100755 --- a/hack/jenkins/kicbase_auto_build.sh +++ b/hack/jenkins/kicbase_auto_build.sh @@ -27,6 +27,9 @@ docker login -u ${DOCKERHUB_USER} -p ${DOCKERHUB_PASS} # Make sure golang is installed and configured ./hack/jenkins/installers/check_install_golang.sh "/usr/local" || true +export GOBIN=/usr/local/go/bin +export PATH=$PATH:$GOBIN + # Let's make sure we have the newest kicbase reference curl -L https://github.com/kubernetes/minikube/raw/master/pkg/drivers/kic/types.go --output types-head.go # kicbase tags are of the form VERSION-TIMESTAMP-PR, so this grep finds that TIMESTAMP in the middle From 82574022ca4b3c7b365b7500db637678f89d7a2b Mon Sep 17 00:00:00 2001 From: Medya Gh Date: Tue, 26 Oct 2021 16:30:09 -0700 Subject: [PATCH 043/111] fix cert option test and add more internal testing --- test/integration/cert_options_test.go | 37 ++++++++++++++++++++++++--- 1 file changed, 34 insertions(+), 3 deletions(-) diff --git a/test/integration/cert_options_test.go b/test/integration/cert_options_test.go index 3ff990b98c22..22468e776caf 100644 --- a/test/integration/cert_options_test.go +++ b/test/integration/cert_options_test.go @@ -25,6 +25,8 @@ import ( "strings" "testing" "time" + + "k8s.io/minikube/pkg/drivers/kic/oci" ) // TestCertOptions makes sure minikube certs respect the --apiserver-ips and --apiserver-names parameters @@ -70,13 +72,42 @@ func TestCertOptions(t *testing.T) { } // verify that the apiserver is serving on port 8555 + if NeedsPortForward() { // in case od docker/podman on non-linux the port will be a "random assigned port" in kubeconfig + bin := "docker" + if PodmanDriver() { + bin = "podman" + } + + port, err := oci.ForwardedPort(bin, profile, 8555) + if err != nil { + { + t.Errorf("failed to inspect container for the port %v", err) + } + } + if port == 0 { + t.Errorf("expected to get a non-zero forwarded port but got %d", port) + } - rr, err = Run(t, exec.CommandContext(ctx, "kubectl", "--context", profile, "config", "view")) + } else { + rr, err = Run(t, exec.CommandContext(ctx, "kubectl", "--context", profile, "config", "view")) + if err != nil { + t.Errorf("failed to get kubectl config. args %q : %v", rr.Command(), err) + } + if !strings.Contains(rr.Stdout.String(), "8555") { + t.Errorf("Kubeconfig apiserver server port incorrect. Output of \n 'kubectl config view' = %q", rr.Output()) + } + } + + // Also check the kubeconfig inside minikube using SSH + // located at /etc/kubernetes/admin.conf + args = []string{"ssh", "-p", profile, "--", "sudo cat /etc/kubernetes/admin.conf"} + rr, err = Run(t, exec.CommandContext(ctx, Target(), args...)) if err != nil { - t.Errorf("failed to get kubectl config. args %q : %v", rr.Command(), err) + t.Errorf("failed to SSH to minikube with args: %q : %v", rr.Command(), err) } + if !strings.Contains(rr.Stdout.String(), "8555") { - t.Errorf("apiserver server port incorrect. Output of 'kubectl config view' = %q", rr.Output()) + t.Errorf("Internal minikube kubeconfig (admin.conf) does not containe the right api port. %s", rr.Output()) } } From 1c2983ccf5380385451188a8eda496497ce0f70c Mon Sep 17 00:00:00 2001 From: Medya Gh Date: Tue, 26 Oct 2021 16:32:41 -0700 Subject: [PATCH 044/111] spell --- test/integration/cert_options_test.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/integration/cert_options_test.go b/test/integration/cert_options_test.go index 22468e776caf..539e38acfe2a 100644 --- a/test/integration/cert_options_test.go +++ b/test/integration/cert_options_test.go @@ -72,7 +72,7 @@ func TestCertOptions(t *testing.T) { } // verify that the apiserver is serving on port 8555 - if NeedsPortForward() { // in case od docker/podman on non-linux the port will be a "random assigned port" in kubeconfig + if NeedsPortForward() { // docker/podman on non-linux the port will be a "random assigned port" in kubeconfig bin := "docker" if PodmanDriver() { bin = "podman" From fc2c185ec27e4e93ca923726339b5c61dfeff00f Mon Sep 17 00:00:00 2001 From: Medya Gh Date: Tue, 26 Oct 2021 16:37:45 -0700 Subject: [PATCH 045/111] remove extra bracelet --- test/integration/cert_options_test.go | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/test/integration/cert_options_test.go b/test/integration/cert_options_test.go index 539e38acfe2a..a78ffc5f40de 100644 --- a/test/integration/cert_options_test.go +++ b/test/integration/cert_options_test.go @@ -72,7 +72,7 @@ func TestCertOptions(t *testing.T) { } // verify that the apiserver is serving on port 8555 - if NeedsPortForward() { // docker/podman on non-linux the port will be a "random assigned port" in kubeconfig + if NeedsPortForward() { // in case of docker/podman on non-linux the port will be a "random assigned port" in kubeconfig bin := "docker" if PodmanDriver() { bin = "podman" @@ -80,14 +80,11 @@ func TestCertOptions(t *testing.T) { port, err := oci.ForwardedPort(bin, profile, 8555) if err != nil { - { - t.Errorf("failed to inspect container for the port %v", err) - } + t.Errorf("failed to inspect container for the port %v", err) } if port == 0 { t.Errorf("expected to get a non-zero forwarded port but got %d", port) } - } else { rr, err = Run(t, exec.CommandContext(ctx, "kubectl", "--context", profile, "config", "view")) if err != nil { From 76c1e7959859f8c8bf5a35a299962806ea8f5549 Mon Sep 17 00:00:00 2001 From: Predrag Rogic Date: Wed, 27 Oct 2021 02:36:41 +0100 Subject: [PATCH 046/111] support k8s < v1.19 & watch-ingress-without-class --- .../addons/ingress/ingress-deploy.yaml.tmpl | 4 +-- pkg/addons/addons.go | 25 ++++++++----------- 2 files changed, 12 insertions(+), 17 deletions(-) diff --git a/deploy/addons/ingress/ingress-deploy.yaml.tmpl b/deploy/addons/ingress/ingress-deploy.yaml.tmpl index 3b7fd212558b..784100cc1ad1 100644 --- a/deploy/addons/ingress/ingress-deploy.yaml.tmpl +++ b/deploy/addons/ingress/ingress-deploy.yaml.tmpl @@ -365,12 +365,12 @@ spec: - --election-id=ingress-controller-leader {{- if eq .IngressAPIVersion "v1"}} - --controller-class=k8s.io/ingress-nginx + - --watch-ingress-without-class=true {{- end}} {{- if eq .IngressAPIVersion "v1beta1"}} - --ingress-class=nginx - - --watch-ingress-without-class=true - - --publish-status-address=localhost {{- end}} + - --publish-status-address=localhost - --configmap=$(POD_NAMESPACE)/ingress-nginx-controller - --report-node-internal-ip-address - --tcp-services-configmap=$(POD_NAMESPACE)/tcp-services diff --git a/pkg/addons/addons.go b/pkg/addons/addons.go index 6e1428aa7fc4..82add276fff7 100644 --- a/pkg/addons/addons.go +++ b/pkg/addons/addons.go @@ -179,6 +179,13 @@ func EnableOrDisableAddon(cc *config.ClusterConfig, name string, val string) err exit.Error(reason.GuestCpConfig, "Error getting primary control plane", err) } + // maintain backwards compatibility for ingress with k8s < v1.19 + if strings.HasPrefix(name, "ingress") && enable { + if err := supportLegacyIngress(addon, *cc); err != nil { + return err + } + } + // Persist images even if the machine is running so starting gets the correct images. images, customRegistries, err := assets.SelectAndPersistImages(addon, cc) if err != nil { @@ -229,9 +236,6 @@ func addonSpecificChecks(cc *config.ClusterConfig, name string, enable bool, run out.Styled(style.Tip, `After the addon is enabled, please run "minikube tunnel" and your ingress resources would be available at "127.0.0.1"`) } } - if err := supportLegacyIngress(cc); err != nil { - return false, err - } } if strings.HasPrefix(name, "istio") && enable { @@ -290,29 +294,20 @@ func isAddonAlreadySet(cc *config.ClusterConfig, addon *assets.Addon, enable boo return false } -// maintain backwards compatibility with k8s < v1.19 -// by replacing images with old versions if custom ones are not already provided -func supportLegacyIngress(cc *config.ClusterConfig) error { +// maintain backwards compatibility for ingress with k8s < v1.19 by replacing default addon images with older versions +func supportLegacyIngress(addon *assets.Addon, cc config.ClusterConfig) error { v, err := util.ParseKubernetesVersion(cc.KubernetesConfig.KubernetesVersion) if err != nil { return errors.Wrap(err, "parsing Kubernetes version") } if semver.MustParseRange("<1.19.0")(v) { - imgs := map[string]string{ + addon.Images = map[string]string{ // https://github.com/kubernetes/ingress-nginx/blob/0a2ec01eb4ec0e1b29c4b96eb838a2e7bfe0e9f6/deploy/static/provider/kind/deploy.yaml#L328 "IngressController": "ingress-nginx/controller:v0.49.3@sha256:35fe394c82164efa8f47f3ed0be981b3f23da77175bbb8268a9ae438851c8324", // issues: https://github.com/kubernetes/ingress-nginx/issues/7418 and https://github.com/jet/kube-webhook-certgen/issues/30 "KubeWebhookCertgenCreate": "docker.io/jettech/kube-webhook-certgen:v1.5.1@sha256:950833e19ade18cd389d647efb88992a7cc077abedef343fa59e012d376d79b7", "KubeWebhookCertgenPatch": "docker.io/jettech/kube-webhook-certgen:v1.5.1@sha256:950833e19ade18cd389d647efb88992a7cc077abedef343fa59e012d376d79b7", } - if cc.CustomAddonImages == nil { - cc.CustomAddonImages = map[string]string{} - } - for name, path := range imgs { - if _, exists := cc.CustomAddonImages[name]; !exists { - cc.CustomAddonImages[name] = path - } - } } return nil } From a49cd8a685d99af3dbda3f09474d813df951e40c Mon Sep 17 00:00:00 2001 From: Gio Gutierrez Date: Wed, 27 Oct 2021 12:23:31 -0500 Subject: [PATCH 047/111] feat: Use new bridge interface name on OSX Monterey --- pkg/minikube/tunnel/tunnel.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/minikube/tunnel/tunnel.go b/pkg/minikube/tunnel/tunnel.go index 21acd21509d3..a80a7aaaaea9 100644 --- a/pkg/minikube/tunnel/tunnel.go +++ b/pkg/minikube/tunnel/tunnel.go @@ -200,7 +200,7 @@ func setupBridge(t *tunnel) { return } iface := string(response) - pattern := regexp.MustCompile(`.*member: (en\d+) flags=.*`) + pattern := regexp.MustCompile(`.*member: ((?:vm)?en(?:et)?\d+) flags=.*`) submatch := pattern.FindStringSubmatch(iface) if len(submatch) != 2 { t.status.RouteError = fmt.Errorf("couldn't find member in bridge100 interface: %s", iface) From 3bc369459bd2957d49332f3f7f0456349b66b707 Mon Sep 17 00:00:00 2001 From: minikube-bot Date: Wed, 27 Oct 2021 19:53:03 +0000 Subject: [PATCH 048/111] Update kicbase to v0.0.28 --- pkg/drivers/kic/types.go | 6 +++--- site/content/en/docs/commands/start.md | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/pkg/drivers/kic/types.go b/pkg/drivers/kic/types.go index e397e7375c3b..6554fdfb3001 100644 --- a/pkg/drivers/kic/types.go +++ b/pkg/drivers/kic/types.go @@ -24,13 +24,13 @@ import ( const ( // Version is the current version of kic - Version = "v0.0.27-1633027942-12081" + Version = "v0.0.28" // SHA of the kic base image baseImageSHA = "4780f1897569d2bf77aafb3d133a08d42b4fe61127f06fcfc90c2c5d902d893c" // The name of the GCR kicbase repository - gcrRepo = "gcr.io/k8s-minikube/kicbase-builds" + gcrRepo = "gcr.io/k8s-minikube/kicbase" // The name of the Dockerhub kicbase repository - dockerhubRepo = "docker.io/kicbase/build" + dockerhubRepo = "docker.io/kicbase/stable" ) var ( diff --git a/site/content/en/docs/commands/start.md b/site/content/en/docs/commands/start.md index fdf64a0c61f7..2eee6f74625d 100644 --- a/site/content/en/docs/commands/start.md +++ b/site/content/en/docs/commands/start.md @@ -26,7 +26,7 @@ minikube start [flags] --apiserver-names strings A set of apiserver names which are used in the generated certificate for kubernetes. This can be used if you want to make the apiserver available from outside the machine --apiserver-port int The apiserver listening port (default 8443) --auto-update-drivers If set, automatically updates drivers to the latest version. Defaults to true. (default true) - --base-image string The base image to use for docker/podman drivers. Intended for local development. (default "gcr.io/k8s-minikube/kicbase-builds:v0.0.27-1633027942-12081@sha256:4780f1897569d2bf77aafb3d133a08d42b4fe61127f06fcfc90c2c5d902d893c") + --base-image string The base image to use for docker/podman drivers. Intended for local development. (default "gcr.io/k8s-minikube/kicbase:v0.0.28@sha256:4780f1897569d2bf77aafb3d133a08d42b4fe61127f06fcfc90c2c5d902d893c") --cache-images If true, cache docker images for the current bootstrapper and load them into the machine. Always false with --driver=none. (default true) --cert-expiration duration Duration until minikube certificate expiration, defaults to three years (26280h). (default 26280h0m0s) --cni string CNI plug-in to use. Valid options: auto, bridge, calico, cilium, flannel, kindnet, or path to a CNI manifest (default: auto) From c3b891285299a25c6ed1535dee6510b99150f1dc Mon Sep 17 00:00:00 2001 From: minikube-bot Date: Wed, 27 Oct 2021 23:10:38 +0000 Subject: [PATCH 049/111] Update ISO to v1.24.0 --- Makefile | 2 +- pkg/minikube/download/iso.go | 2 +- site/content/en/docs/commands/start.md | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Makefile b/Makefile index d34d71bf5ed7..8daae0ad2f35 100644 --- a/Makefile +++ b/Makefile @@ -23,7 +23,7 @@ KUBERNETES_VERSION ?= $(shell egrep "DefaultKubernetesVersion =" pkg/minikube/co KIC_VERSION ?= $(shell egrep "Version =" pkg/drivers/kic/types.go | cut -d \" -f2) # Default to .0 for higher cache hit rates, as build increments typically don't require new ISO versions -ISO_VERSION ?= v1.23.1-1633115168-12081 +ISO_VERSION ?= v1.24.0 # Dashes are valid in semver, but not Linux packaging. Use ~ to delimit alpha/beta DEB_VERSION ?= $(subst -,~,$(RAW_VERSION)) DEB_REVISION ?= 0 diff --git a/pkg/minikube/download/iso.go b/pkg/minikube/download/iso.go index 6370cf2e6d1d..08f4042ba102 100644 --- a/pkg/minikube/download/iso.go +++ b/pkg/minikube/download/iso.go @@ -40,7 +40,7 @@ const fileScheme = "file" // DefaultISOURLs returns a list of ISO URL's to consult by default, in priority order func DefaultISOURLs() []string { v := version.GetISOVersion() - isoBucket := "minikube-builds/iso/12081" + isoBucket := "minikube/iso" return []string{ fmt.Sprintf("https://storage.googleapis.com/%s/minikube-%s.iso", isoBucket, v), fmt.Sprintf("https://github.com/kubernetes/minikube/releases/download/%s/minikube-%s.iso", v, v), diff --git a/site/content/en/docs/commands/start.md b/site/content/en/docs/commands/start.md index fdf64a0c61f7..0f23d1dad8a2 100644 --- a/site/content/en/docs/commands/start.md +++ b/site/content/en/docs/commands/start.md @@ -66,7 +66,7 @@ minikube start [flags] --insecure-registry strings Insecure Docker registries to pass to the Docker daemon. The default service CIDR range will automatically be added. --install-addons If set, install addons. Defaults to true. (default true) --interactive Allow user prompts for more information (default true) - --iso-url strings Locations to fetch the minikube ISO from. (default [https://storage.googleapis.com/minikube-builds/iso/12081/minikube-v1.23.1-1633115168-12081.iso,https://github.com/kubernetes/minikube/releases/download/v1.23.1-1633115168-12081/minikube-v1.23.1-1633115168-12081.iso,https://kubernetes.oss-cn-hangzhou.aliyuncs.com/minikube/iso/minikube-v1.23.1-1633115168-12081.iso]) + --iso-url strings Locations to fetch the minikube ISO from. (default [https://storage.googleapis.com/minikube/iso/minikube-v1.24.0.iso,https://github.com/kubernetes/minikube/releases/download/v1.24.0/minikube-v1.24.0.iso,https://kubernetes.oss-cn-hangzhou.aliyuncs.com/minikube/iso/minikube-v1.24.0.iso]) --keep-context This will keep the existing kubectl context and will create a minikube context. --kubernetes-version string The Kubernetes version that the minikube VM will use (ex: v1.2.3, 'stable' for v1.22.2, 'latest' for v1.22.3-rc.0). Defaults to 'stable'. --kvm-gpu Enable experimental NVIDIA GPU support in minikube From eed2bf69fa6cc6fe557f3d245247c8dd0835ae32 Mon Sep 17 00:00:00 2001 From: Sharif Elgamal Date: Wed, 27 Oct 2021 18:39:05 -0700 Subject: [PATCH 050/111] update conformance test instructions in documentation --- site/content/en/docs/contrib/testing.en.md | 31 +++++++++------------- 1 file changed, 13 insertions(+), 18 deletions(-) diff --git a/site/content/en/docs/contrib/testing.en.md b/site/content/en/docs/contrib/testing.en.md index 85bbc6fbcd5b..1ca15f32e7d2 100644 --- a/site/content/en/docs/contrib/testing.en.md +++ b/site/content/en/docs/contrib/testing.en.md @@ -81,26 +81,21 @@ Tests are typically read with a great air of skepticism, because chances are the These are Kubernetes tests that run against an arbitrary cluster and exercise a wide range of Kubernetes features. You can run these against minikube by following these steps: -* Clone the Kubernetes repo somewhere on your system. -* Run `make quick-release` in the k8s repo. -* Start up a minikube cluster with: `minikube start`. -* Set following two environment variables: - -```shell -export KUBECONFIG=$HOME/.kube/config -export KUBERNETES_CONFORMANCE_TEST=y +Install [docker](https://docs.docker.com/engine/install/) +Install [kubectl](https://v1-18.docs.kubernetes.io/docs/tasks/tools/install-kubectl/) +Clone the [minikube repo](https://github.com/kubernetes/minikube) + +## Compile the latest minikube binary +```console +% cd +% make ``` -* Run the tests (from the k8s repo): +## Trigger the tests and get back the results -```shell -go run hack/e2e.go -v --test --test_args="--ginkgo.focus=\[Conformance\]" --check-version-skew=false +```console +% cd +./hack/conformance_tests.sh out/minikube --driver=docker --container-runtimer=docker --kubernetes-version=stable ``` -To run a specific conformance test, you can use the `ginkgo.focus` flag to filter the set using a regular expression. -The `hack/e2e.go` wrapper and the `e2e.sh` wrappers have a little trouble with quoting spaces though, so use the `\s` regular expression character instead. -For example, to run the test `should update annotations on modification [Conformance]`, use following command: - -```shell -go run hack/e2e.go -v --test --test_args="--ginkgo.focus=should\supdate\sannotations\son\smodification" --check-version-skew=false -``` +This script will run the latest sonobuoy against a minikube cluster with two nodes and the provided parameters. From ea3aa4f3a85fcb3c47b6bae6243207cca1d8d988 Mon Sep 17 00:00:00 2001 From: Predrag Rogic Date: Thu, 28 Oct 2021 03:50:06 +0100 Subject: [PATCH 051/111] support ingress-dns addon, add tests --- pkg/addons/addons.go | 31 +++++-- test/integration/addons_test.go | 18 +++- test/integration/ingress_addon_legacy_test.go | 83 ++++++++++++++++++ ...ample.yaml => ingress-dns-example-v1.yaml} | 0 .../testdata/ingress-dns-example-v1beta1.yaml | 85 +++++++++++++++++++ ...nginx-ingv1.yaml => nginx-ingress-v1.yaml} | 3 - .../testdata/nginx-ingress-v1beta1.yaml | 19 +++++ 7 files changed, 226 insertions(+), 13 deletions(-) create mode 100644 test/integration/ingress_addon_legacy_test.go rename test/integration/testdata/{ingress-dns-example.yaml => ingress-dns-example-v1.yaml} (100%) create mode 100644 test/integration/testdata/ingress-dns-example-v1beta1.yaml rename test/integration/testdata/{nginx-ingv1.yaml => nginx-ingress-v1.yaml} (78%) create mode 100644 test/integration/testdata/nginx-ingress-v1beta1.yaml diff --git a/pkg/addons/addons.go b/pkg/addons/addons.go index 82add276fff7..80779a6cdcb0 100644 --- a/pkg/addons/addons.go +++ b/pkg/addons/addons.go @@ -179,7 +179,7 @@ func EnableOrDisableAddon(cc *config.ClusterConfig, name string, val string) err exit.Error(reason.GuestCpConfig, "Error getting primary control plane", err) } - // maintain backwards compatibility for ingress with k8s < v1.19 + // maintain backwards compatibility for ingress and ingress-dns addons with k8s < v1.19 if strings.HasPrefix(name, "ingress") && enable { if err := supportLegacyIngress(addon, *cc); err != nil { return err @@ -294,21 +294,36 @@ func isAddonAlreadySet(cc *config.ClusterConfig, addon *assets.Addon, enable boo return false } -// maintain backwards compatibility for ingress with k8s < v1.19 by replacing default addon images with older versions +// maintain backwards compatibility for ingress and ingress-dns addons with k8s < v1.19 by replacing default addons' images with compatible versions func supportLegacyIngress(addon *assets.Addon, cc config.ClusterConfig) error { v, err := util.ParseKubernetesVersion(cc.KubernetesConfig.KubernetesVersion) if err != nil { return errors.Wrap(err, "parsing Kubernetes version") } if semver.MustParseRange("<1.19.0")(v) { - addon.Images = map[string]string{ - // https://github.com/kubernetes/ingress-nginx/blob/0a2ec01eb4ec0e1b29c4b96eb838a2e7bfe0e9f6/deploy/static/provider/kind/deploy.yaml#L328 - "IngressController": "ingress-nginx/controller:v0.49.3@sha256:35fe394c82164efa8f47f3ed0be981b3f23da77175bbb8268a9ae438851c8324", - // issues: https://github.com/kubernetes/ingress-nginx/issues/7418 and https://github.com/jet/kube-webhook-certgen/issues/30 - "KubeWebhookCertgenCreate": "docker.io/jettech/kube-webhook-certgen:v1.5.1@sha256:950833e19ade18cd389d647efb88992a7cc077abedef343fa59e012d376d79b7", - "KubeWebhookCertgenPatch": "docker.io/jettech/kube-webhook-certgen:v1.5.1@sha256:950833e19ade18cd389d647efb88992a7cc077abedef343fa59e012d376d79b7", + if addon.Name() == "ingress" { + addon.Images = map[string]string{ + // https://github.com/kubernetes/ingress-nginx/blob/0a2ec01eb4ec0e1b29c4b96eb838a2e7bfe0e9f6/deploy/static/provider/kind/deploy.yaml#L328 + "IngressController": "ingress-nginx/controller:v0.49.3@sha256:35fe394c82164efa8f47f3ed0be981b3f23da77175bbb8268a9ae438851c8324", + // issues: https://github.com/kubernetes/ingress-nginx/issues/7418 and https://github.com/jet/kube-webhook-certgen/issues/30 + "KubeWebhookCertgenCreate": "docker.io/jettech/kube-webhook-certgen:v1.5.1@sha256:950833e19ade18cd389d647efb88992a7cc077abedef343fa59e012d376d79b7", + "KubeWebhookCertgenPatch": "docker.io/jettech/kube-webhook-certgen:v1.5.1@sha256:950833e19ade18cd389d647efb88992a7cc077abedef343fa59e012d376d79b7", + } + addon.Registries = map[string]string{ + "IngressController": "k8s.gcr.io", + } + return nil } + if addon.Name() == "ingress-dns" { + addon.Images = map[string]string{ + "IngressDNS": "cryptexlabs/minikube-ingress-dns:0.3.0@sha256:e252d2a4c704027342b303cc563e95d2e71d2a0f1404f55d676390e28d5093ab", + } + addon.Registries = nil + return nil + } + return fmt.Errorf("supportLegacyIngress called for unexpected addon %q - nothing to do here", addon.Name()) } + return nil } diff --git a/test/integration/addons_test.go b/test/integration/addons_test.go index cba3456789a7..b3983ecb5d99 100644 --- a/test/integration/addons_test.go +++ b/test/integration/addons_test.go @@ -34,6 +34,7 @@ import ( "testing" "time" + "github.com/blang/semver/v4" retryablehttp "github.com/hashicorp/go-retryablehttp" "k8s.io/minikube/pkg/kapi" "k8s.io/minikube/pkg/minikube/detect" @@ -163,10 +164,23 @@ func validateIngressAddon(ctx context.Context, t *testing.T, profile string) { t.Fatalf("failed waiting for ingress-nginx-controller : %v", err) } + // use nginx ingress yaml that corresponds to k8s version + // default: k8s >= v1.19, ingress api v1 + ingressYaml := "nginx-ingress-v1.yaml" + ingressDNSYaml := "ingress-dns-example-v1.yaml" + v, err := client.ServerVersion() + if err != nil { + t.Log("failed to get k8s version, assuming v1.19+ => ingress api v1") + } else if semver.MustParseRange("<1.19.0")(semver.MustParse(fmt.Sprintf("%s.%s.0", v.Major, v.Minor))) { + // legacy: k8s < v1.19 & ingress api v1beta1 + ingressYaml = "nginx-ingress-v1beta1.yaml" + ingressDNSYaml = "ingress-dns-example-v1beta1.yaml" + } + // create networking.k8s.io/v1 ingress createv1Ingress := func() error { // apply networking.k8s.io/v1 ingress - rr, err := Run(t, exec.CommandContext(ctx, "kubectl", "--context", profile, "replace", "--force", "-f", filepath.Join(*testdataDir, "nginx-ingv1.yaml"))) + rr, err := Run(t, exec.CommandContext(ctx, "kubectl", "--context", profile, "replace", "--force", "-f", filepath.Join(*testdataDir, ingressYaml))) if err != nil { return err } @@ -220,7 +234,7 @@ func validateIngressAddon(ctx context.Context, t *testing.T, profile string) { } // check the ingress-dns addon here as well - rr, err = Run(t, exec.CommandContext(ctx, "kubectl", "--context", profile, "replace", "--force", "-f", filepath.Join(*testdataDir, "ingress-dns-example.yaml"))) + rr, err = Run(t, exec.CommandContext(ctx, "kubectl", "--context", profile, "replace", "--force", "-f", filepath.Join(*testdataDir, ingressDNSYaml))) if err != nil { t.Errorf("failed to kubectl replace ingress-dns-example. args %q. %v", rr.Command(), err) } diff --git a/test/integration/ingress_addon_legacy_test.go b/test/integration/ingress_addon_legacy_test.go new file mode 100644 index 000000000000..ba8a15dcb7b1 --- /dev/null +++ b/test/integration/ingress_addon_legacy_test.go @@ -0,0 +1,83 @@ +//go:build integration +// +build integration + +/* +Copyright 2021 The Kubernetes Authors All rights reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package integration + +import ( + "context" + "os/exec" + "testing" +) + +// TestIngressAddonLegacy tests ingress and ingress-dns addons with legacy k8s version <1.19 +func TestIngressAddonLegacy(t *testing.T) { + if NoneDriver() { + t.Skipf("skipping: none driver does not support ingress") + } + + profile := UniqueProfileName("ingress-addon-legacy") + ctx, cancel := context.WithTimeout(context.Background(), Minutes(10)) + defer Cleanup(t, profile, cancel) + + t.Run("StartLegacyK8sCluster", func(t *testing.T) { + args := append([]string{"start", "-p", profile, "--kubernetes-version=v1.18.20", "--memory=4096", "--wait=true", "--alsologtostderr", "-v=5"}, StartArgs()...) + rr, err := Run(t, exec.CommandContext(ctx, Target(), args...)) + if err != nil { + t.Errorf("failed to start minikube with args: %q : %v", rr.Command(), err) + } + }) + + t.Run("serial", func(t *testing.T) { + tests := []struct { + name string + validator validateFunc + }{ + {"ValidateIngressAddonActivation", validateIngressAddonActivation}, + {"ValidateIngressDNSAddonActivation", validateIngressDNSAddonActivation}, + {"ValidateIngressAddons", validateIngressAddon}, + } + for _, tc := range tests { + tc := tc + if ctx.Err() == context.DeadlineExceeded { + t.Fatalf("Unable to run more tests (deadline exceeded)") + } + t.Run(tc.name, func(t *testing.T) { + tc.validator(ctx, t, profile) + }) + } + }) +} + +// validateIngressAddonActivation tests ingress addon activation +func validateIngressAddonActivation(ctx context.Context, t *testing.T, profile string) { + defer PostMortemLogs(t, profile) + + if _, err := Run(t, exec.CommandContext(ctx, Target(), "-p", profile, "addons", "enable", "ingress", "--alsologtostderr", "-v=5")); err != nil { + t.Errorf("failed to enable ingress addon: %v", err) + } +} + +// validateIngressDNSAddonActivation tests ingress-dns addon activation +func validateIngressDNSAddonActivation(ctx context.Context, t *testing.T, profile string) { + defer PostMortemLogs(t, profile) + + if _, err := Run(t, exec.CommandContext(ctx, Target(), "-p", profile, "addons", "enable", "ingress-dns", "--alsologtostderr", "-v=5")); err != nil { + t.Errorf("failed to enable ingress-dns addon: %v", err) + } +} diff --git a/test/integration/testdata/ingress-dns-example.yaml b/test/integration/testdata/ingress-dns-example-v1.yaml similarity index 100% rename from test/integration/testdata/ingress-dns-example.yaml rename to test/integration/testdata/ingress-dns-example-v1.yaml diff --git a/test/integration/testdata/ingress-dns-example-v1beta1.yaml b/test/integration/testdata/ingress-dns-example-v1beta1.yaml new file mode 100644 index 000000000000..09f2817df4a0 --- /dev/null +++ b/test/integration/testdata/ingress-dns-example-v1beta1.yaml @@ -0,0 +1,85 @@ +# Copyright 2021 The Kubernetes Authors All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: hello-world-app + namespace: default +spec: + selector: + matchLabels: + app: hello-world-app + template: + metadata: + labels: + app: hello-world-app + spec: + containers: + - name: hello-world-app + image: gcr.io/google-samples/hello-app:1.0 + ports: + - containerPort: 8080 +--- +apiVersion: networking.k8s.io/v1beta1 +kind: Ingress +metadata: + name: example-ingress + namespace: kube-system + annotations: + # needed for k8s < v1.18: https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#deprecating-the-ingress-class-annotation + kubernetes.io/ingress.class: nginx +spec: + rules: + - host: hello-john.test + http: + paths: + - path: / + pathType: Prefix + backend: + serviceName: hello-world-app + servicePort: 80 + - host: hello-jane.test + http: + paths: + - path: / + pathType: Prefix + backend: + serviceName: hello-world-app + servicePort: 80 +--- +apiVersion: v1 +kind: Service +metadata: + name: hello-world-app + namespace: kube-system +spec: + type: ExternalName + externalName: hello-world-app.default.svc.cluster.local +--- +apiVersion: v1 +kind: Service +metadata: + name: hello-world-app + namespace: default +spec: + ports: + - name: http + port: 80 + targetPort: 8080 + protocol: TCP + type: NodePort + selector: + app: hello-world-app diff --git a/test/integration/testdata/nginx-ingv1.yaml b/test/integration/testdata/nginx-ingress-v1.yaml similarity index 78% rename from test/integration/testdata/nginx-ingv1.yaml rename to test/integration/testdata/nginx-ingress-v1.yaml index e95cf7fc029e..e5c6766b0518 100644 --- a/test/integration/testdata/nginx-ingv1.yaml +++ b/test/integration/testdata/nginx-ingress-v1.yaml @@ -2,9 +2,6 @@ apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: nginx-ingress - annotations: - # use the shared ingress-nginx - kubernetes.io/ingress.class: nginx labels: integration-test: ingress spec: diff --git a/test/integration/testdata/nginx-ingress-v1beta1.yaml b/test/integration/testdata/nginx-ingress-v1beta1.yaml new file mode 100644 index 000000000000..5e3fcc2350e4 --- /dev/null +++ b/test/integration/testdata/nginx-ingress-v1beta1.yaml @@ -0,0 +1,19 @@ +apiVersion: networking.k8s.io/v1beta1 +kind: Ingress +metadata: + name: nginx-ingress + annotations: + # needed for k8s < v1.18: https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#deprecating-the-ingress-class-annotation + kubernetes.io/ingress.class: nginx + labels: + integration-test: ingress +spec: + rules: + - host: nginx.example.com + http: + paths: + - path: / + pathType: Prefix + backend: + serviceName: nginx + servicePort: 80 From 0ba34105cdf2605834aa3a24a6dfb13e2e656504 Mon Sep 17 00:00:00 2001 From: Steven Powell Date: Thu, 28 Oct 2021 10:58:52 -0700 Subject: [PATCH 052/111] Update Makefile and CHANGELOG for 1.24.0-beta.0 release --- CHANGELOG.md | 86 ++++++++++++++++++++++++++++++++++++++++++++++++++++ Makefile | 4 +-- 2 files changed, 88 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 81407e951eee..b9d092ef438e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,91 @@ # Release Notes +## Version 1.24.0-beta.0 - 2021-10-28 + +Features: +* Allow running podman as experimental driver in Windows & macOS [#12579](https://github.com/kubernetes/minikube/pull/12579) +* Add Aliyun (China) mirror for preload images and K8s release binaries [#12578](https://github.com/kubernetes/minikube/pull/12578) + +Minor Improvements: +* certs: Renew minikube certs if expired [#12534](https://github.com/kubernetes/minikube/pull/12534) +* mount: Persist mount settings after stop start [#12719](https://github.com/kubernetes/minikube/pull/12719) +* cri-o: Implement --force-systemd into cri-o [#12553](https://github.com/kubernetes/minikube/pull/12553) +* tunnel: Use new bridge interface name on OSX Monterey [#12799](https://github.com/kubernetes/minikube/pull/12799) +* Added port validation [#12233](https://github.com/kubernetes/minikube/pull/12233) +* buildkit: Start the daemon on demand (socket-activated) [#12081](https://github.com/kubernetes/minikube/pull/12081) + +Bug Fixes: +* ingress: Restore ingress & ingress-dns backwards compatibility for k8s < v1.19 [#12794](https://github.com/kubernetes/minikube/pull/12794) +* gcp-auth: Fix disabling addon [#12779](https://github.com/kubernetes/minikube/pull/12779) +* podman: Fix network inspect index check [#12756](https://github.com/kubernetes/minikube/pull/12756) +* cilium: Fix Ipv4 cidr [#12587](https://github.com/kubernetes/minikube/pull/12587) +* mount: Fix mounting on non-default profile [#12711](https://github.com/kubernetes/minikube/pull/12711) +* podman: Match the lower case of the podman error message [#12685](https://github.com/kubernetes/minikube/pull/12685) +* ssh: Fix using tilde in ssh-key path [#12672](https://github.com/kubernetes/minikube/pull/12672) +* podman: Fix network not getting deleted [#12627](https://github.com/kubernetes/minikube/pull/12627) +* zsh: Fix completion [#12420](https://github.com/kubernetes/minikube/pull/12420) +* windows wsl2: Fix invoking kubeadm failing when spaces in PATH for none driver [#12617](https://github.com/kubernetes/minikube/pull/12617) +* image build: Only build on control plane by default [#12149](https://github.com/kubernetes/minikube/pull/12149) +* mount: Fix `minikube stop` on Windows VMs taking 9 minutes when mounted [#12716](https://github.com/kubernetes/minikube/pull/12716) + +Version Upgrades: +* ingres controller: Update to v1/1.0.4 and v1beta1/0.49.3 [#12702](https://github.com/kubernetes/minikube/pull/12702) +* minikube-ingress-dns: Update image to 0.0.2 [#12730](https://github.com/kubernetes/minikube/pull/12730) +* helm-tiller: Update image to v2.17.0 [#12641](https://github.com/kubernetes/minikube/pull/12641) + +For a more detailed changelog, including changes occuring in pre-release versions, see [CHANGELOG.md](https://github.com/kubernetes/minikube/blob/master/CHANGELOG.md). + +Thank you to our contributors for this release! + +- Akira Yoshiyama +- Alexandre Garnier +- Anders F Björklund +- Aniruddha Amit Dutta +- Avinash Upadhyaya +- Cameron Brunner +- Carlos Santana +- Claudiu Belu +- Gio Gutierrez +- Jeff MAURY +- KallyDev +- Keyhoh +- Kumar Shivendu +- Li Yi +- Marc Velasco +- Marcus Watkins +- Medya Ghazizadeh +- Michael Cade +- Pablo Caderno +- Peixuan Ding +- Piotr Resztak +- Predrag Rogic +- RA489 +- Sharif Elgamal +- Steven Powell +- Taylor Steil +- Wei Luo +- phbits +- yxxhero + +Thank you to our PR reviewers for this release! + +- spowelljr (27 comments) +- medyagh (22 comments) +- t-inu (20 comments) +- sharifelgamal (9 comments) +- atoato88 (6 comments) +- rikatz (5 comments) +- YuikoTakada (1 comments) +- tstromberg (1 comments) + +Thank you to our triage members for this release! + +- spowelljr (37 comments) +- afbjorklund (34 comments) +- RA489 (30 comments) +- medyagh (29 comments) +- sharifelgamal (29 comments) + ## Version 1.23.2 - 2021-09-21 Fix crio regression: diff --git a/Makefile b/Makefile index 8daae0ad2f35..b3482f796d88 100644 --- a/Makefile +++ b/Makefile @@ -14,8 +14,8 @@ # Bump these on release - and please check ISO_VERSION for correctness. VERSION_MAJOR ?= 1 -VERSION_MINOR ?= 23 -VERSION_BUILD ?= 2 +VERSION_MINOR ?= 24 +VERSION_BUILD ?= 0-beta.0 RAW_VERSION=$(VERSION_MAJOR).$(VERSION_MINOR).$(VERSION_BUILD) VERSION ?= v$(RAW_VERSION) From f5bffb310568dcf9951ec5591a324e1fae292958 Mon Sep 17 00:00:00 2001 From: minikube-bot Date: Thu, 28 Oct 2021 14:36:15 -0700 Subject: [PATCH 053/111] Update releases-beta.json to include v1.24.0-beta.0 --- deploy/minikube/releases-beta.json | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/deploy/minikube/releases-beta.json b/deploy/minikube/releases-beta.json index 98c98af88b6f..3a372d48d0d5 100644 --- a/deploy/minikube/releases-beta.json +++ b/deploy/minikube/releases-beta.json @@ -1,5 +1,13 @@ [ { + "name": "v1.24.0-beta.0", + "checksums": { + "darwin": "f8b0a2d0ca7435e98fff553702ed4977e33b301d0316ee4512d28b485701613e", + "linux": "8cd17a9fb5c73f9cab97754bd6ed725cb2b1fe9faa02f7f75a9cf5566b6f8716", + "windows": "ba87d2ef329db940890f8970afce1a6654814e0e427f91b9d5347496d4e7d1a3" + } + }, + { "name": "v1.22.0-beta.0", "checksums": { "darwin": "1ec06c37be5c6c79a7255da09ff83490a44d1e8cd2b2f45e4b489edfdeacde94", From f3ded78bca88247eb6267b1c3f15045a2010cae6 Mon Sep 17 00:00:00 2001 From: minikube-bot Date: Thu, 28 Oct 2021 21:57:13 +0000 Subject: [PATCH 054/111] Update auto-generated docs and translations --- site/content/en/docs/contrib/tests.en.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/site/content/en/docs/contrib/tests.en.md b/site/content/en/docs/contrib/tests.en.md index 1653d9c7ec6f..9dbd443b91ff 100644 --- a/site/content/en/docs/contrib/tests.en.md +++ b/site/content/en/docs/contrib/tests.en.md @@ -403,6 +403,15 @@ verifies files and packges installed inside minikube ISO/Base image ## TestGvisorAddon tests the functionality of the gVisor addon +## TestIngressAddonLegacy +tests ingress and ingress-dns addons with legacy k8s version <1.19 + +#### validateIngressAddonActivation +tests ingress addon activation + +#### validateIngressDNSAddonActivation +tests ingress-dns addon activation + ## TestJSONOutput makes sure json output works properly for the start, pause, unpause, and stop commands From 165a52615bc9d862ba743aaba8a9baacb80eaf13 Mon Sep 17 00:00:00 2001 From: Akira Yoshiyama Date: Thu, 28 Oct 2021 21:02:41 +0900 Subject: [PATCH 055/111] Update Japanese translation (Line 800-850) --- translations/ja.json | 98 ++++++++++++++++++++++---------------------- 1 file changed, 49 insertions(+), 49 deletions(-) diff --git a/translations/ja.json b/translations/ja.json index 20b8456c6e98..8bc2b51a1d91 100644 --- a/translations/ja.json +++ b/translations/ja.json @@ -797,57 +797,57 @@ "Using image {{.registry}}{{.image}} (global image repository)": "イメージ {{.registry}}{{.image}}(グローバルイメージリポジトリ) を使用しています", "Using the '{{.runtime}}' runtime with the 'none' driver is an untested configuration!": "「 none 」ドライバで「 {{.runtime}} 」ランタイムを使用することは、テストされていない設定です!", "Using the {{.driver}} driver based on existing profile": "プロフィールを元に、 {{.driver}} ドライバを使用します", - "Using the {{.driver}} driver based on user configuration": "設定を元に、 {{.driver}} ドライバを使用します", - "VM driver is one of: %v": "VM ドライバは次のいずれかです。%v", - "Valid components are: {{.valid_extra_opts}}": "", - "Validate your KVM networks. Run: virt-host-validate and then virsh net-list --all": "", - "Validation unable to parse disk size '{{.diskSize}}': {{.error}}": "検証中に、ディスクのサイズ( {{.diskSize}} )をパースできませんでした。{{.error}}", - "Verify that your HTTP_PROXY and HTTPS_PROXY environment variables are set correctly.": "HTTP_PROXY と HTTPS_PROXY 環境変数が正常に設定されているかを確認します", - "Verify the IP address of the running cluster in kubeconfig.": "Kubernetes の設定ファイルのクラスタの IP アドレスを確認します", + "Using the {{.driver}} driver based on user configuration": "ユーザーの設定に基づいて {{.driver}} ドライバーを使用します", + "VM driver is one of: %v": "VM ドライバーは次のいずれかです: %v", + "Valid components are: {{.valid_extra_opts}}": "有効なコンポーネント: {{.valid_extra_opts}}", + "Validate your KVM networks. Run: virt-host-validate and then virsh net-list --all": "virt-host-validate 実行後に virsh net-list --all を実行して KVM ネットワークを検証してください", + "Validation unable to parse disk size '{{.diskSize}}': {{.error}}": "検証機能がディスクのサイズ '{{.diskSize}}' をパースできませんでした: {{.error}}", + "Verify that your HTTP_PROXY and HTTPS_PROXY environment variables are set correctly.": "HTTP_PROXY と HTTPS_PROXY 環境変数が正しく設定されているかを確認してください。", + "Verify the IP address of the running cluster in kubeconfig.": "kubeconfig 内の実行中のクラスターの IP アドレスを確認してください。", "Verifying Kubernetes components...": "Kubernetes コンポーネントを検証しています...", - "Verifying dashboard health ...": "ダッシュボードの状態を確認しています...", - "Verifying proxy health ...": "プロキシの状態を確認しています...", - "Verifying {{.addon_name}} addon...": "{{.addon_name}} アドオンを検証中です...", + "Verifying dashboard health ...": "ダッシュボードの状態を検証しています...", + "Verifying proxy health ...": "プロキシーの状態を検証しています...", + "Verifying {{.addon_name}} addon...": "{{.addon_name}} アドオンを検証しています...", "Version: {{.version}}": "バージョン: {{.version}}", - "VirtualBox and Hyper-V are having a conflict. Use '--driver=hyperv' or disable Hyper-V using: 'bcdedit /set hypervisorlaunchtype off'": "VirtualBox と Hyper-V が衝突しています。「 --driver=hyperv 」を使用するか、以下のコマンドで Hyper-V を無効にしてください。 bcdedit /set hypervisorlaunchtype off", - "VirtualBox cannot create a network, probably because it conflicts with an existing network that minikube no longer knows about. Try running 'minikube delete'": "VirtualBox がネットワークを作成できません。おそらく minikube が把握していないネットワークと衝突しています。「 minikube delete 」を実行してみてください", - "VirtualBox is broken. Disable real-time anti-virus software, reboot, and reinstall VirtualBox if the problem continues.": "VirtualBox が故障しています。アンチウィルスソフトを無効にして、リブートしてください。もし問題が続くようであれば、 VirtualBox を再インストールしてください", - "VirtualBox is broken. Reinstall VirtualBox, reboot, and run 'minikube delete'.": "VirtualBox が故障しています。 VirtualBox を再インストールして、リブートした後に、「 minikube delete 」を実行してください", - "VirtualBox is unable to find its network interface. Try upgrading to the latest release and rebooting.": "VirtualBox はネットワークインターフェイスを見つけることができません。最新のリリースへとアップデートして、リブートしてみてください", - "Virtualization support is disabled on your computer. If you are running minikube within a VM, try '--driver=docker'. Otherwise, consult your systems BIOS manual for how to enable virtualization.": "このコンピュータでは仮想化のサポートが無効化されています。もし VM で minikube を動かすのであれば、「 --driver=docker 」を試してみてください。そうでなければ、仮想化を有効にする方法を BIOS の説明書を調べてください", - "Wait failed: {{.error}}": "待機するのに失敗しました。{{.error}}", - "Wait until Kubernetes core services are healthy before exiting": "Kubernetes コアサービスが正常になるまで待機してから終了してください", - "Want kubectl {{.version}}? Try 'minikube kubectl -- get pods -A'": "", - "Where to root the NFS Shares, defaults to /nfsshares (hyperkit driver only)": "NFS 共有のルートに指定する場所。デフォルトは /nfsshares(hyperkit ドライバのみ)", - "Whether to use external switch over Default Switch if virtual switch not explicitly specified. (hyperv driver only)": "仮想スイッチが明示的に設定されていない場合、デフォルトのではなく外部のスイッチを使用します。(Hyper-V ドライバのみ)", - "With --network-plugin=cni, you will need to provide your own CNI. See --cni flag as a user-friendly alternative": "", - "You appear to be using a proxy, but your NO_PROXY environment does not include the minikube IP ({{.ip_address}}).": "", - "You appear to be using a proxy, but your NO_PROXY environment does not include the minikube IP ({{.ip_address}}). Please see {{.documentation_url}} for more details": "プロキシを使用しようとしていますが、現在の NO_PROXY 環境に minikube IP({{.ip_address}})は含まれていません。詳細については、{{.documentation_url}} をご覧ください", - "You are trying to run a windows .exe binary inside WSL. For better integration please use a Linux binary instead (Download at https://minikube.sigs.k8s.io/docs/start/.). Otherwise if you still want to do this, you can do it using --force": "", - "You are trying to run amd64 binary on M1 system. Please consider running darwin/arm64 binary instead (Download at {{.url}}.)": "", - "You can also use 'minikube kubectl -- get pods' to invoke a matching version": "「 minikube kubectl -- get pods 」で、一致するバージョンを表示することができます", - "You can delete them using the following command(s):": "以下のコマンドで削除することができます", - "You can delete them using the following command(s): ": "", - "You can force an unsupported Kubernetes version via the --force flag": "", - "You cannot add or remove extra disks for an existing minikube cluster. Please first delete the cluster.": "", - "You cannot change the CPUs for an existing minikube cluster. Please first delete the cluster.": "", - "You cannot change the disk size for an existing minikube cluster. Please first delete the cluster.": "", - "You cannot change the memory size for an existing minikube cluster. Please first delete the cluster.": "", - "You have authenticated with a service account that does not have an associated JSON. The GCP Auth requires credentials with a JSON file to in order to continue. The image pull secret has been imported.": "", - "You have chosen to disable the CNI but the \\\"{{.name}}\\\" container runtime requires CNI": "", - "You have selected \"virtualbox\" driver, but there are better options !\nFor better performance and support consider using a different driver: {{.drivers}}\n\nTo turn off this warning run:\n\n\t$ minikube config set WantVirtualBoxDriverWarning false\n\n\nTo learn more about on minikube drivers checkout https://minikube.sigs.k8s.io/docs/drivers/\nTo see benchmarks checkout https://minikube.sigs.k8s.io/docs/benchmarks/cpuusage/\n\n": "", - "You may need to manually remove the \"{{.name}}\" VM from your hypervisor": "ハイパーバイザから「{{.name}}」VM を手動で削除することが必要な可能性があります", - "You may need to stop the Hyper-V Manager and run `minikube delete` again.": "Hyper-V マネージャを停止して、「 minikube delete 」を再実行する必要があるかもしれません ", - "You might be using an amd64 version of minikube on a M1 Mac, use the arm64 version of minikube instead": "", - "You must specify a service name": "サービスの名前を明示する必要があります", - "Your GCP credentials will now be mounted into every pod created in the {{.name}} cluster.": "", - "Your cgroup does not allow setting memory.": "", - "Your host does not support KVM virtualization. Ensure that qemu-kvm is installed, and run 'virt-host-validate' to debug the problem": "ホストマシーンは KVM 仮想化をサポートしていません。 qemu-kvm がインストールされていることを確認してください。「 virt-host-validate 」を実行して、デバッグしてください", - "Your host does not support virtualization. If you are running minikube within a VM, try '--driver=docker'. Otherwise, enable virtualization in your BIOS": "ホストマシーンは仮想化をサポートしていません。もし VM 内で minikube を動かすのであれば、「 --driver=docker 」を試してください。そうでなければ、 BIOS で仮想化を有効にしてください", - "Your host is failing to route packets to the minikube VM. If you have VPN software, try turning it off or configuring it so that it does not re-route traffic to the VM IP. If not, check your VM environment routing options.": "ホストマシーンが minikube の VM にパケットをルーティングすることができていません。もし VPN を有効しているのであれば、VPN を無効にする、あるいは VM の IP アドレスに再ルーティングしないように設定してください。もし VPN を使用していないのであれば、 VM 環境のルーティング周りのオプションを確認してください", - "Your minikube config refers to an unsupported driver. Erase ~/.minikube, and try again.": "今の minikube の設定はサポートされていないドライバーを参照しています。 ~/.minikube を削除して、もう一度試してください", - "Your minikube vm is not running, try minikube start.": "minikube の VM が動いていません。以下のコマンドを試してみてください。 minikube start", - "[WARNING] For full functionality, the 'csi-hostpath-driver' addon requires the 'volumesnapshots' addon to be enabled.\n\nYou can enable 'volumesnapshots' addon by running: 'minikube addons enable volumesnapshots'\n": "", + "VirtualBox and Hyper-V are having a conflict. Use '--driver=hyperv' or disable Hyper-V using: 'bcdedit /set hypervisorlaunchtype off'": "VirtualBox と Hyper-V が衝突しています。'--driver=hyperv' を使用するか、次のコマンドで Hyper-V を無効にしてください: 'bcdedit /set hypervisorlaunchtype off'", + "VirtualBox cannot create a network, probably because it conflicts with an existing network that minikube no longer knows about. Try running 'minikube delete'": "VirtualBox がネットワークを作成できません。おそらく minikube が最早把握していない既存ネットワークと衝突しています。'minikube delete' を実行してみてください", + "VirtualBox is broken. Disable real-time anti-virus software, reboot, and reinstall VirtualBox if the problem continues.": "VirtualBox が故障しています。問題が解決しない場合、リアルタイムのアンチウィルスソフトを無効化し、OS を再起動して、VirtualBox を再インストールしてください。", + "VirtualBox is broken. Reinstall VirtualBox, reboot, and run 'minikube delete'.": "VirtualBox が故障しています。 VirtualBox を再インストールして OS を再起動し、'minikube delete' を実行してください。", + "VirtualBox is unable to find its network interface. Try upgrading to the latest release and rebooting.": "VirtualBox はネットワークインターフェイスを検出できません。最新版にアップデートして、OS を再起動してみてください。", + "Virtualization support is disabled on your computer. If you are running minikube within a VM, try '--driver=docker'. Otherwise, consult your systems BIOS manual for how to enable virtualization.": "このコンピューターでは仮想化サポートが無効です。VM 内で minikube を実行する場合、'--driver=docker' を試してみてください。そうでなければ、仮想化を有効化する方法を BIOS の説明書を調べてください。", + "Wait failed: {{.error}}": "待機に失敗しました: {{.error}}", + "Wait until Kubernetes core services are healthy before exiting": "終了する前に、Kubernetes コアサービスが正常になるまで待機してください", + "Want kubectl {{.version}}? Try 'minikube kubectl -- get pods -A'": "kubectl {{.version}} が必要ですか? 'minikube kubectl -- get pods -A' を試してみてください", + "Where to root the NFS Shares, defaults to /nfsshares (hyperkit driver only)": "NFS 共有のルートに指定する場所。デフォルトは /nfsshares (hyperkit ドライバーのみ)", + "Whether to use external switch over Default Switch if virtual switch not explicitly specified. (hyperv driver only)": "仮想スイッチが明示的に設定されていない場合、Default Switch 越しに外部のスイッチを使用するかどうか (Hyper-V ドライバーのみ)。", + "With --network-plugin=cni, you will need to provide your own CNI. See --cni flag as a user-friendly alternative": "--network-plugin=cni を用いる場合、自身の CNI を提供する必要があります。便利な代替策として --cni フラグを参照してください", + "You appear to be using a proxy, but your NO_PROXY environment does not include the minikube IP ({{.ip_address}}).": "プロキシーを使用しようとしていますが、minikube の IP ({{.ip_address}}) が NO_PROXY 環境変数に含まれていません。", + "You appear to be using a proxy, but your NO_PROXY environment does not include the minikube IP ({{.ip_address}}). Please see {{.documentation_url}} for more details": "プロキシーを使用しようとしていますが、minikube の IP ({{.ip_address}}) が NO_PROXY 環境変数に含まれていません。詳細は {{.documentation_url}} を参照してください", + "You are trying to run a windows .exe binary inside WSL. For better integration please use a Linux binary instead (Download at https://minikube.sigs.k8s.io/docs/start/.). Otherwise if you still want to do this, you can do it using --force": "WSL 内で Windows の .exe バイナリーを実行しようとしています。これより優れた統合として、Linux バイナリーを代わりに使用してください (https://minikube.sigs.k8s.io/docs/start/ でダウンロードしてください)。そうではなく、引き続きこのバイナリーを使用したい場合、--force オプションを使用してください", + "You are trying to run amd64 binary on M1 system. Please consider running darwin/arm64 binary instead (Download at {{.url}}.)": "M1 システム上で amd64 バイナリーを実行しようとしています。darwin/arm64 バイナリーを代わりに実行することをご検討ください ({{.url}} でダウンロードしてください)。", + "You can also use 'minikube kubectl -- get pods' to invoke a matching version": "一致するバージョンを実行するために、'minikube kubectl -- get pods' も使用できます", + "You can delete them using the following command(s):": "次のコマンドで削除できます:", + "You can delete them using the following command(s): ": "次のコマンドで削除できます: ", + "You can force an unsupported Kubernetes version via the --force flag": "--force フラグを介して、サポート外の Kubernetes バージョンを強制的に使用できます", + "You cannot add or remove extra disks for an existing minikube cluster. Please first delete the cluster.": "既存の minikube クラスターに対して、外部ディスクを追加または削除できません。最初にクラスターを削除してください。", + "You cannot change the CPUs for an existing minikube cluster. Please first delete the cluster.": "既存の minikube クラスターに対して、CPU を変更できません。最初にクラスターを削除してください。", + "You cannot change the disk size for an existing minikube cluster. Please first delete the cluster.": "既存の minikube クラスターに対して、ディスクサイズを変更できません。最初にクラスターを削除してください。", + "You cannot change the memory size for an existing minikube cluster. Please first delete the cluster.": "既存の minikube クラスターに対して、メモリサイズを変更できません。最初にクラスターを削除してください。", + "You have authenticated with a service account that does not have an associated JSON. The GCP Auth requires credentials with a JSON file to in order to continue. The image pull secret has been imported.": "関連する JSON がないサービスアカウントで認証しています。GCP Auth は、作業を続行するために JSON ファイル付きクレデンシャルを要求します。イメージ取得シークレットがインポートされました。", + "You have chosen to disable the CNI but the \\\"{{.name}}\\\" container runtime requires CNI": "CNI 無効が選択されましたが、「{{.name}}」コンテナランタイムは CNI が必要です", + "You have selected \"virtualbox\" driver, but there are better options !\nFor better performance and support consider using a different driver: {{.drivers}}\n\nTo turn off this warning run:\n\n\t$ minikube config set WantVirtualBoxDriverWarning false\n\n\nTo learn more about on minikube drivers checkout https://minikube.sigs.k8s.io/docs/drivers/\nTo see benchmarks checkout https://minikube.sigs.k8s.io/docs/benchmarks/cpuusage/\n\n": "「virtualbox」ドライバーが選択されましたが、より良い選択肢があります!\n性能と機能の向上のため、別のドライバー使用を検討してください: {{.drivers}}\n\nこの警告を表示させないためには、以下を実行してください:\n\n\t$ minikube config set WantVirtualBoxDriverWarning false\n\n\nminikube ドライバーについてもっと知るためには、https://minikube.sigs.k8s.io/docs/drivers/ を確認してください。\nベンチマークについては https://minikube.sigs.k8s.io/docs/benchmarks/cpuusage/ を確認してください\n\n", + "You may need to manually remove the \"{{.name}}\" VM from your hypervisor": "ハイパーバイザーから「{{.name}}」VM を手動で削除することが必要かもしれません", + "You may need to stop the Hyper-V Manager and run `minikube delete` again.": "Hyper-V マネージャーを停止して、'minikube delete' を再度実行する必要があるかもしれません。", + "You might be using an amd64 version of minikube on a M1 Mac, use the arm64 version of minikube instead": "M1 Mac 上で amd64 版 minikube を使用しているかもしれません。代わりに arm64 版 minikube を使用してください", + "You must specify a service name": "サービス名を指定する必要があります", + "Your GCP credentials will now be mounted into every pod created in the {{.name}} cluster.": "あなたの GCP クレデンシャルは、{{.name}} クラスターに作成された各 Pod にマウントされます。", + "Your cgroup does not allow setting memory.": "あなたの cgroup ではメモリーの設定ができません。", + "Your host does not support KVM virtualization. Ensure that qemu-kvm is installed, and run 'virt-host-validate' to debug the problem": "ホストが KVM 仮想化をサポートしていません。 qemu-kvm がインストールされていることを確認し、'virt-host-validate' を実行して問題を調査してください", + "Your host does not support virtualization. If you are running minikube within a VM, try '--driver=docker'. Otherwise, enable virtualization in your BIOS": "ホストが仮想化をサポートしていません。VM 内で minikube を動かしている場合、'--driver=docker' を試してください。そうでなければ、 BIOS で仮想化を有効化してください", + "Your host is failing to route packets to the minikube VM. If you have VPN software, try turning it off or configuring it so that it does not re-route traffic to the VM IP. If not, check your VM environment routing options.": "ホストが minikube の VM へのパケットルーティングに失敗しています。VPN ソフトウェアがある場合、VPN を無効にするか、VM の IP アドレスにトラフィックを再ルーティングしないように VPN を設定してください。VPN ソフトウェアがない場合、VM 環境のルーティングオプションを確認してください。", + "Your minikube config refers to an unsupported driver. Erase ~/.minikube, and try again.": "minikube 設定がサポートされていないドライバーを参照しています。 ~/.minikube を削除して、もう一度試してください。", + "Your minikube vm is not running, try minikube start.": "minikube の VM が実行されていません。minikube start を試してみてください。", + "[WARNING] For full functionality, the 'csi-hostpath-driver' addon requires the 'volumesnapshots' addon to be enabled.\n\nYou can enable 'volumesnapshots' addon by running: 'minikube addons enable volumesnapshots'\n": "[警告] フル機能のために、'csi-hostpath-driver' アドオンが 'volumesnapshots' アドオンの有効化を要求しています。\n\n'minikube addons enable volumesnapshots' を実行して 'volumesnapshots' を有効化できます\n", "[{{.id}}] {{.msg}} {{.error}}": "[{{.id}}] {{.msg}} {{.error}}", "\\\"minikube cache\\\" will be deprecated in upcoming versions, please switch to \\\"minikube image load\\\"": "", "adding node": "ノードを追加しています", From 283e31aa3222c200370b4e506c63ffa9ee2f0128 Mon Sep 17 00:00:00 2001 From: Steven Powell Date: Fri, 29 Oct 2021 10:46:27 -0700 Subject: [PATCH 056/111] fix starting on Windows with VMware driver on non `C:` drive --- go.mod | 2 +- go.sum | 5 ++--- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/go.mod b/go.mod index 80c469df717a..91a7e24b3ac0 100644 --- a/go.mod +++ b/go.mod @@ -49,7 +49,7 @@ require ( github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51 github.com/klauspost/cpuid v1.2.0 github.com/libvirt/libvirt-go v3.9.0+incompatible - github.com/machine-drivers/docker-machine-driver-vmware v0.1.3 + github.com/machine-drivers/docker-machine-driver-vmware v0.1.5 github.com/mattbaird/jsonpatch v0.0.0-20200820163806-098863c1fc24 github.com/mattn/go-isatty v0.0.14 github.com/mitchellh/go-ps v1.0.0 diff --git a/go.sum b/go.sum index 150214a91a19..d59f0c6194b1 100644 --- a/go.sum +++ b/go.sum @@ -795,8 +795,8 @@ github.com/lucas-clemente/aes12 v0.0.0-20171027163421-cd47fb39b79f/go.mod h1:JpH github.com/lucas-clemente/quic-clients v0.1.0/go.mod h1:y5xVIEoObKqULIKivu+gD/LU90pL73bTdtQjPBvtCBk= github.com/lucas-clemente/quic-go v0.10.2/go.mod h1:hvaRS9IHjFLMq76puFJeWNfmn+H70QZ/CXoxqw9bzao= github.com/lucas-clemente/quic-go-certificates v0.0.0-20160823095156-d2f86524cced/go.mod h1:NCcRLrOTZbzhZvixZLlERbJtDtYsmMw8Jc4vS8Z0g58= -github.com/machine-drivers/docker-machine-driver-vmware v0.1.3 h1:CIdHhp5vSr+7i3DYmXyJHjVOeo27AGWtvq5SfmjyMVs= -github.com/machine-drivers/docker-machine-driver-vmware v0.1.3/go.mod h1:p2hY99UqqG4FNLvAotM0K5kPlShyQ486ymrkNqv1NiA= +github.com/machine-drivers/docker-machine-driver-vmware v0.1.5 h1:51GqJ84u9EBATnn8rWsHNavcuRPlCLnDmvjzZVuliwY= +github.com/machine-drivers/docker-machine-driver-vmware v0.1.5/go.mod h1:dTnTzUH3uzhMo0ddV1zRjGYWcVhQWwqiHPxz5l+HPd0= github.com/machine-drivers/machine v0.7.1-0.20210719174735-6eca26732baa h1:RDn5zVjqpQP8yElV/30YUNiDsjksDSqq30JVQfo1wzY= github.com/machine-drivers/machine v0.7.1-0.20210719174735-6eca26732baa/go.mod h1:79Uwa2hGd5S39LDJt58s8JZcIhGEK6pkq9bsuTbFWbk= github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= @@ -1400,7 +1400,6 @@ golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5h golang.org/x/sys v0.0.0-20181026203630-95b1ffbd15a5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190115152922-a457fd036447/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190124100055-b90733256f2e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190209173611-3b5209105503/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= From ca49f2fb9bb34554dedf1352c7cac9bd59996582 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 29 Oct 2021 22:28:44 +0000 Subject: [PATCH 057/111] Bump contrib.go.opencensus.io/exporter/stackdriver Bumps [contrib.go.opencensus.io/exporter/stackdriver](https://github.com/census-ecosystem/opencensus-go-exporter-stackdriver) from 0.12.1 to 0.13.10. - [Release notes](https://github.com/census-ecosystem/opencensus-go-exporter-stackdriver/releases) - [Commits](https://github.com/census-ecosystem/opencensus-go-exporter-stackdriver/compare/v0.12.1...v0.13.10) --- updated-dependencies: - dependency-name: contrib.go.opencensus.io/exporter/stackdriver dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- go.mod | 13 ++++++------- go.sum | 33 +++++++++++++-------------------- 2 files changed, 19 insertions(+), 27 deletions(-) diff --git a/go.mod b/go.mod index 91a7e24b3ac0..3d82ebc2854f 100644 --- a/go.mod +++ b/go.mod @@ -4,7 +4,7 @@ go 1.17 require ( cloud.google.com/go/storage v1.18.2 - contrib.go.opencensus.io/exporter/stackdriver v0.12.1 + contrib.go.opencensus.io/exporter/stackdriver v0.13.10 github.com/Delta456/box-cli-maker/v2 v2.2.2 github.com/GoogleCloudPlatform/docker-credential-gcr v0.0.0-20210713212222-faed5e8b8ca2 github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/trace v0.16.0 @@ -100,19 +100,18 @@ require ( require ( cloud.google.com/go v0.97.0 // indirect - cloud.google.com/go/container v0.1.0 // indirect - cloud.google.com/go/monitoring v0.1.0 // indirect - cloud.google.com/go/trace v0.1.0 // indirect + cloud.google.com/go/monitoring v1.1.0 // indirect + cloud.google.com/go/trace v1.0.0 // indirect github.com/Azure/go-ansiterm v0.0.0-20170929234023-d6e3b3328b78 // indirect github.com/MakeNowJust/heredoc v0.0.0-20170808103936-bb23615498cd // indirect github.com/Microsoft/go-winio v0.5.0 // indirect github.com/StackExchange/wmi v1.2.1 // indirect github.com/VividCortex/ewma v1.1.1 // indirect github.com/ajstarks/svgo v0.0.0-20210923152817-c3b6e2f0c527 // indirect - github.com/aws/aws-sdk-go v1.35.24 // indirect + github.com/aws/aws-sdk-go v1.37.0 // indirect github.com/beorn7/perks v1.0.1 // indirect github.com/bgentry/go-netrc v0.0.0-20140422174119-9fd32a8b3d3d // indirect - github.com/census-instrumentation/opencensus-proto v0.2.1 // indirect + github.com/census-instrumentation/opencensus-proto v0.3.0 // indirect github.com/cespare/xxhash/v2 v2.1.1 // indirect github.com/containerd/cgroups v1.0.1 // indirect github.com/containerd/containerd v1.5.2 // indirect @@ -194,7 +193,7 @@ require ( golang.org/x/time v0.0.0-20210220033141-f8bda1e9f3ba // indirect golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 // indirect google.golang.org/appengine v1.6.7 // indirect - google.golang.org/genproto v0.0.0-20211016002631-37fc39342514 // indirect + google.golang.org/genproto v0.0.0-20211018162055-cf77aa76bad2 // indirect google.golang.org/grpc v1.40.0 // indirect google.golang.org/protobuf v1.27.1 // indirect gopkg.in/inf.v0 v0.9.1 // indirect diff --git a/go.sum b/go.sum index d59f0c6194b1..39e984982121 100644 --- a/go.sum +++ b/go.sum @@ -26,9 +26,6 @@ cloud.google.com/go v0.83.0/go.mod h1:Z7MJUsANfY0pYPdw0lbnivPx4/vhy/e2FEkSkF7vAV cloud.google.com/go v0.84.0/go.mod h1:RazrYuxIK6Kb7YrzzhPoLmCVzl7Sup4NrbKPg8KHSUM= cloud.google.com/go v0.87.0/go.mod h1:TpDYlFy7vuLzZMMZ+B6iRiELaY7z/gJPaqbMx6mlWcY= cloud.google.com/go v0.90.0/go.mod h1:kRX0mNRHe0e2rC6oNakvwQqzyDmg57xJ+SZU1eT2aDQ= -cloud.google.com/go v0.92.1/go.mod h1:cMc7asehN84LBi1JGTHo4n8wuaGuNAZ7lR7b1YNJBrE= -cloud.google.com/go v0.92.2/go.mod h1:8utlLll2EF5XMAV15woO4lSbWQlk8rer9aLOfLh7+YI= -cloud.google.com/go v0.92.3/go.mod h1:8utlLll2EF5XMAV15woO4lSbWQlk8rer9aLOfLh7+YI= cloud.google.com/go v0.93.3/go.mod h1:8utlLll2EF5XMAV15woO4lSbWQlk8rer9aLOfLh7+YI= cloud.google.com/go v0.94.1/go.mod h1:qAlAugsXlC+JWO+Bke5vCtc9ONxjQT3drlTTnAplMW4= cloud.google.com/go v0.97.0 h1:3DXvAyifywvq64LfkKaMOmkWPS1CikIQdMe2lY9vxU8= @@ -39,14 +36,12 @@ cloud.google.com/go/bigquery v1.4.0/go.mod h1:S8dzgnTigyfTmLBfrtrhyYhwRxG72rYxvf cloud.google.com/go/bigquery v1.5.0/go.mod h1:snEHRnqQbz117VIFhE8bmtwIDY80NLUZUMb4Nv6dBIg= cloud.google.com/go/bigquery v1.7.0/go.mod h1://okPTzCYNXSlb24MZs83e2Do+h+VXtc4gLoIoXIAPc= cloud.google.com/go/bigquery v1.8.0/go.mod h1:J5hqkt3O0uAFnINi6JXValWIb1v0goeZM77hZzJN/fQ= -cloud.google.com/go/container v0.1.0 h1:TcvimswG10seya10bbp4Ai4aGJuzUnhSuoOcaPu9UNI= -cloud.google.com/go/container v0.1.0/go.mod h1:1rrp90HFUViXnpvafHiTaaAxNscrHiFgfUCEiEHBlEk= cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE= cloud.google.com/go/datastore v1.1.0/go.mod h1:umbIZjpQpHh4hmRpGhH4tLFup+FVzqBi1b3c64qFpCk= cloud.google.com/go/firestore v1.1.0/go.mod h1:ulACoGHTpvq5r8rxGJ4ddJZBZqakUQqClKRT5SZwBmk= cloud.google.com/go/firestore v1.6.0/go.mod h1:afJwI0vaXwAG54kI7A//lP/lSPDkQORQuMkv56TxEPU= -cloud.google.com/go/monitoring v0.1.0 h1:vssDZ792skH6AWCDH1OogKfs/FzgEVTB/yUAzfgBR24= -cloud.google.com/go/monitoring v0.1.0/go.mod h1:Hpm3XfzJv+UTiXzCG5Ffp0wijzHTC7Cv4eR7o3x/fEE= +cloud.google.com/go/monitoring v1.1.0 h1:ZnyNdf/XRcynMmKzRSNTOdOyYPs6G7do1l2D2hIvIKo= +cloud.google.com/go/monitoring v1.1.0/go.mod h1:L81pzz7HKn14QCMaCs6NTQkdBnE87TElyanS95vIcl4= cloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2kNxGRt3I= cloud.google.com/go/pubsub v1.1.0/go.mod h1:EwwdRX2sKPjnvnqCa270oGRyludottCI76h+R3AArQw= cloud.google.com/go/pubsub v1.2.0/go.mod h1:jhfEVHT8odbXTkndysNHCcx0awwzvfOlguIAii9o8iA= @@ -58,11 +53,10 @@ cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RX cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0= cloud.google.com/go/storage v1.18.2 h1:5NQw6tOn3eMm0oE8vTkfjau18kjL79FlMjy/CHTpmoY= cloud.google.com/go/storage v1.18.2/go.mod h1:AiIj7BWXyhO5gGVmYJ+S8tbkCx3yb0IMjua8Aw4naVM= -cloud.google.com/go/trace v0.1.0 h1:nUGUK79FOkN0UGUXhBmVBkbu1PYsHe0YyFSPLOD9Npg= -cloud.google.com/go/trace v0.1.0/go.mod h1:wxEwsoeRVPbeSkt7ZC9nWCgmoKQRAoySN7XHW2AmI7g= -contrib.go.opencensus.io/exporter/stackdriver v0.12.1 h1:Dll2uFfOVI3fa8UzsHyP6z0M6fEc9ZTAMo+Y3z282Xg= -contrib.go.opencensus.io/exporter/stackdriver v0.12.1/go.mod h1:iwB6wGarfphGGe/e5CWqyUk/cLzKnWsOKPVW3no6OTw= -contrib.go.opencensus.io/resource v0.1.1/go.mod h1:F361eGI91LCmW1I/Saf+rX0+OFcigGlFvXwEGEnkRLA= +cloud.google.com/go/trace v1.0.0 h1:laKx2y7IWMjguCe5zZx6n7qLtREk4kyE69SXVC0VSN8= +cloud.google.com/go/trace v1.0.0/go.mod h1:4iErSByzxkyHWzzlAj63/Gmjz0NH1ASqhJguHpGcr6A= +contrib.go.opencensus.io/exporter/stackdriver v0.13.10 h1:a9+GZPUe+ONKUwULjlEOucMMG0qfSCCenlji0Nhqbys= +contrib.go.opencensus.io/exporter/stackdriver v0.13.10/go.mod h1:I5htMbyta491eUxufwwZPQdcKvvgzMB4O9ni41YnIM8= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= dmitri.shuralyov.com/gpu/mtl v0.0.0-20201218220906-28db891af037/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= gioui.org v0.0.0-20210308172011-57750fc8a0a6/go.mod h1:RSH6KIUZ0p2xy5zHDxgAM4zumjgTw83q2ge/PI+yyw8= @@ -154,9 +148,9 @@ github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a/go.mod h1:l github.com/auth0/go-jwt-middleware v0.0.0-20170425171159-5493cabe49f7/go.mod h1:LWMyo4iOLWXHGdBki7NIht1kHru/0wM179h+d3g8ATM= github.com/aws/aws-sdk-go v1.15.11/go.mod h1:mFuSZ37Z9YOHbQEwBWztmVzqXrEkub65tZoCYDt7FT0= github.com/aws/aws-sdk-go v1.15.78/go.mod h1:E3/ieXAlvM0XWO57iftYVDLLvQ824smPP3ATZkfNZeM= -github.com/aws/aws-sdk-go v1.19.18/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= -github.com/aws/aws-sdk-go v1.35.24 h1:U3GNTg8+7xSM6OAJ8zksiSM4bRqxBWmVwwehvOSNG3A= github.com/aws/aws-sdk-go v1.35.24/go.mod h1:tlPOdRjfxPBpNIwqDj61rmsnA85v9jc0Ps9+muhnW+k= +github.com/aws/aws-sdk-go v1.37.0 h1:GzFnhOIsrGyQ69s7VgqtrG2BG8v7X7vwB3Xpbd/DBBk= +github.com/aws/aws-sdk-go v1.37.0/go.mod h1:hcU610XS61/+aQV88ixoOzUoG7v3b31pl2zKMmprdro= github.com/benbjohnson/clock v1.0.3/go.mod h1:bGMdMPoPVvcYyt1gHDf4J2KE153Yf9BuiUKYMaxlTDM= github.com/beorn7/perks v0.0.0-20160804104726-4c0e84591b9a/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= @@ -193,9 +187,9 @@ github.com/cenkalti/backoff v2.1.1+incompatible h1:tKJnvO2kl0zmb/jA5UKAt4VoEVw1q github.com/cenkalti/backoff v2.1.1+incompatible/go.mod h1:90ReRw6GdpyfrHakVjL/QHaoyV4aDUVVkXQJJJ3NXXM= github.com/cenkalti/backoff/v4 v4.1.1 h1:G2HAfAmvm/GcKan2oOQpBXOd2tT2G57ZnZGWa1PxPBQ= github.com/cenkalti/backoff/v4 v4.1.1/go.mod h1:scbssz8iZGpm3xbr14ovlUdkxfGXNInqkPWOWmG2CLw= -github.com/census-instrumentation/opencensus-proto v0.2.0/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= -github.com/census-instrumentation/opencensus-proto v0.2.1 h1:glEXhBS5PSLLv4IXzLA5yPRVX4bilULVyxxbrfOtDAk= github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= +github.com/census-instrumentation/opencensus-proto v0.3.0 h1:t/LhUZLVitR1Ow2YOnduCsavhwFUklBMoGVYUCqmCqk= +github.com/census-instrumentation/opencensus-proto v0.3.0/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= github.com/cespare/xxhash v1.1.0 h1:a6HrQnmkObjyL+Gs60czilIUGqrzKutQD6XZog3p+ko= github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= github.com/cespare/xxhash/v2 v2.1.1 h1:6MnRN8NT7+YBpUIWxHtefFZOKTAPgGjpQSxqLNn0+qY= @@ -604,7 +598,6 @@ github.com/google/pprof v0.0.0-20210226084205-cbba55b83ad5/go.mod h1:kpwsk12EmLe github.com/google/pprof v0.0.0-20210601050228-01bbb1931b22/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/pprof v0.0.0-20210609004039-a478d1d731e9/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/pprof v0.0.0-20210720184732-4bb14d4b1be1/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= -github.com/google/pprof v0.0.0-20210804190019-f964ff605595/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510/go.mod h1:pupxD2MaaD3pAXIBCelhxNneeOaAeabZDe5s4K6zSpQ= github.com/google/slowjam v1.0.0 h1:dA9flW4oGTJcSy8FpEvdq8JKwPFVgqYwMmjhqlb2L+s= @@ -716,7 +709,6 @@ github.com/jellevandenhooff/dkim v0.0.0-20150330215556-f50fe3d243e1/go.mod h1:E0 github.com/jimstudt/http-authentication v0.0.0-20140401203705-3eca13d6893a/go.mod h1:wK6yTYYcgjHE1Z1QtXACPDjcFJyBskHEdagmnq3vsP8= github.com/jmespath/go-jmespath v0.0.0-20160202185014-0b12d6b521d8/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= github.com/jmespath/go-jmespath v0.0.0-20160803190731-bd40a432e4c7/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= -github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= github.com/jmespath/go-jmespath v0.4.0 h1:BEgLn5cpjn8UN1mAw4NjwDrS35OdebyEtFe+9YPoQUg= github.com/jmespath/go-jmespath v0.4.0/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHWvzYPziyZiYoo= github.com/jmespath/go-jmespath/internal/testify v1.5.1 h1:shLQSRRSCCPj3f2gpwzGwWFoC7ycTf1rcQZHOlsJ6N8= @@ -1609,7 +1601,6 @@ gonum.org/v1/plot v0.10.0 h1:ymLukg4XJlQnYUJCp+coQq5M7BsUJFk6XQE4HPflwdw= gonum.org/v1/plot v0.10.0/go.mod h1:JWIHJ7U20drSQb/aDpTetJzfC1KlAPldJLpkSy88dvQ= google.golang.org/api v0.0.0-20160322025152-9bf6e6e569ff/go.mod h1:4mhQ8q/RsB7i+udVvVy5NUi08OU8ZlA0gRVgrF7VFY0= google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE= -google.golang.org/api v0.5.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE= google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M= google.golang.org/api v0.8.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= google.golang.org/api v0.9.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= @@ -1714,10 +1705,12 @@ google.golang.org/genproto v0.0.0-20210831024726-fe130286e0e2/go.mod h1:eFjDcFEc google.golang.org/genproto v0.0.0-20210903162649-d08c68adba83/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY= google.golang.org/genproto v0.0.0-20210909211513-a8c4777a87af/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY= google.golang.org/genproto v0.0.0-20210917145530-b395a37504d4/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY= +google.golang.org/genproto v0.0.0-20210921142501-181ce0d877f6/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= google.golang.org/genproto v0.0.0-20210924002016-3dee208752a0/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= google.golang.org/genproto v0.0.0-20211008145708-270636b82663/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= -google.golang.org/genproto v0.0.0-20211016002631-37fc39342514 h1:Rp1vYDPD4TdkMH5S/bZbopsGCsWhPcrLBUwOVhAQCxM= google.golang.org/genproto v0.0.0-20211016002631-37fc39342514/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= +google.golang.org/genproto v0.0.0-20211018162055-cf77aa76bad2 h1:CUp93KYgL06Y/PdI8aRJaFiAHevPIGWQmijSqaUhue8= +google.golang.org/genproto v0.0.0-20211018162055-cf77aa76bad2/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= google.golang.org/grpc v0.0.0-20160317175043-d3ddb4469d5a/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= From e699df53ab1ab27ada601e18cbb1490bcd3d445b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 29 Oct 2021 23:34:59 +0000 Subject: [PATCH 058/111] Bump google.golang.org/api from 0.59.0 to 0.60.0 Bumps [google.golang.org/api](https://github.com/googleapis/google-api-go-client) from 0.59.0 to 0.60.0. - [Release notes](https://github.com/googleapis/google-api-go-client/releases) - [Changelog](https://github.com/googleapis/google-api-go-client/blob/master/CHANGES.md) - [Commits](https://github.com/googleapis/google-api-go-client/compare/v0.59.0...v0.60.0) --- updated-dependencies: - dependency-name: google.golang.org/api dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- go.mod | 11 ++++++++--- go.sum | 15 ++++++++++++--- 2 files changed, 20 insertions(+), 6 deletions(-) diff --git a/go.mod b/go.mod index 3d82ebc2854f..bcb8ab776286 100644 --- a/go.mod +++ b/go.mod @@ -82,11 +82,11 @@ require ( golang.org/x/mod v0.5.1 golang.org/x/oauth2 v0.0.0-20211005180243-6b3c2da341f1 golang.org/x/sync v0.0.0-20210220032951-036812b2e83c - golang.org/x/sys v0.0.0-20211007075335-d3039528d8ac + golang.org/x/sys v0.0.0-20211025201205-69cdffdb9359 golang.org/x/term v0.0.0-20210406210042-72f3dc4e9b72 golang.org/x/text v0.3.7 gonum.org/v1/plot v0.10.0 - google.golang.org/api v0.59.0 + google.golang.org/api v0.60.0 gopkg.in/mgo.v2 v2.0.0-20190816093944-a6b53ec6cb22 // indirect gopkg.in/yaml.v2 v2.4.0 k8s.io/api v0.22.2 @@ -112,7 +112,10 @@ require ( github.com/beorn7/perks v1.0.1 // indirect github.com/bgentry/go-netrc v0.0.0-20140422174119-9fd32a8b3d3d // indirect github.com/census-instrumentation/opencensus-proto v0.3.0 // indirect + github.com/cespare/xxhash v1.1.0 // indirect github.com/cespare/xxhash/v2 v2.1.1 // indirect + github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403 // indirect + github.com/cncf/xds/go v0.0.0-20210312221358-fbca930ec8ed // indirect github.com/containerd/cgroups v1.0.1 // indirect github.com/containerd/containerd v1.5.2 // indirect github.com/containerd/stargz-snapshotter/estargz v0.7.0 // indirect @@ -122,6 +125,8 @@ require ( github.com/docker/distribution v2.7.1+incompatible // indirect github.com/docker/docker-credential-helpers v0.6.3 // indirect github.com/docker/go-connections v0.4.0 // indirect + github.com/envoyproxy/go-control-plane v0.9.9-0.20210512163311-63b5d3c536b0 // indirect + github.com/envoyproxy/protoc-gen-validate v0.1.0 // indirect github.com/evanphx/json-patch v4.9.0+incompatible // indirect github.com/fatih/color v1.10.0 // indirect github.com/fogleman/gg v1.3.0 // indirect @@ -193,7 +198,7 @@ require ( golang.org/x/time v0.0.0-20210220033141-f8bda1e9f3ba // indirect golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 // indirect google.golang.org/appengine v1.6.7 // indirect - google.golang.org/genproto v0.0.0-20211018162055-cf77aa76bad2 // indirect + google.golang.org/genproto v0.0.0-20211021150943-2b146023228c // indirect google.golang.org/grpc v1.40.0 // indirect google.golang.org/protobuf v1.27.1 // indirect gopkg.in/inf.v0 v0.9.1 // indirect diff --git a/go.sum b/go.sum index 39e984982121..99afff8b0e8f 100644 --- a/go.sum +++ b/go.sum @@ -111,6 +111,7 @@ github.com/Microsoft/hcsshim/test v0.0.0-20201218223536-d3e5debf77da/go.mod h1:5 github.com/Microsoft/hcsshim/test v0.0.0-20210227013316-43a75bb4edd3/go.mod h1:mw7qgWloBUl75W/gVH3cQszUg1+gUITj7D6NY7ywVnY= github.com/NYTimes/gziphandler v0.0.0-20170623195520-56545f4a5d46/go.mod h1:3wb06e3pkSAbeQ52E9H9iFoQsEEwGN64994WTCIhntQ= github.com/NYTimes/gziphandler v1.1.1/go.mod h1:n/CVRwUEOgIxrgPvAQhUUr9oeUtvrhMomdKFjzJNB0c= +github.com/OneOfOne/xxhash v1.2.2 h1:KMrpdQIwFcEqXDklaen+P1axHaj9BSKzvpUUfnHldSE= github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= github.com/Parallels/docker-machine-parallels/v2 v2.0.1 h1:3Rj+4tcm/UqMU5g2bLJmpxD0ssn1BB5am4Cd6yUDbVI= github.com/Parallels/docker-machine-parallels/v2 v2.0.1/go.mod h1:NKwI5KryEmEHMZVj80t9JQcfXWZp4/ZYNBuw4C5sQ9E= @@ -220,7 +221,9 @@ github.com/cloudfoundry/jibber_jabber v0.0.0-20151120183258-bcc4c8345a21/go.mod github.com/clusterhq/flocker-go v0.0.0-20160920122132-2b8b7259d313/go.mod h1:P1wt9Z3DP8O6W3rvwCt0REIlshg1InHImaLW0t3ObY0= github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= github.com/cncf/udpa/go v0.0.0-20200629203442-efcf912fb354/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= +github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403 h1:cqQfy1jclcSy/FwLjemeg3SR1yaINm74aQyupQ0Bl8M= github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= +github.com/cncf/xds/go v0.0.0-20210312221358-fbca930ec8ed h1:OZmjad4L3H8ncOIR8rnb5MREYqG8ixi5+WbeUsquF0c= github.com/cncf/xds/go v0.0.0-20210312221358-fbca930ec8ed/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= github.com/cockroachdb/datadriven v0.0.0-20190809214429-80d97fb3cbaa/go.mod h1:zn76sxSg3SzpJ0PPJaLDCu+Bu0Lg3sKTORVIj19EIF8= github.com/container-storage-interface/spec v1.3.0/go.mod h1:6URME8mwIBbpVyZV93Ce5St17xBiQJQY67NDsuohiy4= @@ -392,7 +395,9 @@ github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1m github.com/envoyproxy/go-control-plane v0.9.7/go.mod h1:cwu0lG7PUMfa9snN8LXBig5ynNVH9qI8YYLbd1fK2po= github.com/envoyproxy/go-control-plane v0.9.9-0.20201210154907-fd9021fe5dad/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk= github.com/envoyproxy/go-control-plane v0.9.9-0.20210217033140-668b12f5399d/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk= +github.com/envoyproxy/go-control-plane v0.9.9-0.20210512163311-63b5d3c536b0 h1:dulLQAYQFYtG5MTplgNGHWuV2D+OBD+Z8lmDBmbLg+s= github.com/envoyproxy/go-control-plane v0.9.9-0.20210512163311-63b5d3c536b0/go.mod h1:hliV/p42l8fGbc6Y9bQ70uLwIvmJyVE5k4iMKlh8wCQ= +github.com/envoyproxy/protoc-gen-validate v0.1.0 h1:EQciDnbrYxy13PgWoY8AqoxGiPrpgBZ1R8UNe3ddc+A= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= github.com/euank/go-kmsg-parser v2.0.0+incompatible/go.mod h1:MhmAMZ8V4CYH4ybgdRwPr2TU5ThnS43puaKEMpja1uw= github.com/evanphx/json-patch v4.5.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= @@ -1064,6 +1069,7 @@ github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1 github.com/smartystreets/goconvey v0.0.0-20190330032615-68dc04aab96a/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM= +github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72 h1:qLC7fQah7D6K1B0ujays3HV9gkFtllcxhzImRR7ArPQ= github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ= github.com/spf13/afero v1.2.2/go.mod h1:9ZxEEn6pIJ8Rxe320qSDBk6AsU0r9pR7Q4OcevTdifk= @@ -1488,8 +1494,9 @@ golang.org/x/sys v0.0.0-20210816074244-15123e1e1f71/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20210823070655-63515b42dcdf/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210908233432-aa78b53d3365/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210917161153-d61c044b1678/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20211007075335-d3039528d8ac h1:oN6lz7iLW/YC7un8pq+9bOLyXrprv2+DKfkJY+2LJJw= golang.org/x/sys v0.0.0-20211007075335-d3039528d8ac/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20211025201205-69cdffdb9359 h1:2B5p2L5IfGiD7+b9BOoRMC6DgObAVZV+Fsp050NqXik= +golang.org/x/sys v0.0.0-20211025201205-69cdffdb9359/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210220032956-6a3ed077a48d/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= @@ -1632,8 +1639,9 @@ google.golang.org/api v0.55.0/go.mod h1:38yMfeP1kfjsl8isn0tliTjIb1rJXcQi4UXlbqiv google.golang.org/api v0.56.0/go.mod h1:38yMfeP1kfjsl8isn0tliTjIb1rJXcQi4UXlbqivdVE= google.golang.org/api v0.57.0/go.mod h1:dVPlbZyBo2/OjBpmvNdpn2GRm6rPy75jyU7bmhdrMgI= google.golang.org/api v0.58.0/go.mod h1:cAbP2FsxoGVNwtgNAmmn3y5G1TWAiVYRmg4yku3lv+E= -google.golang.org/api v0.59.0 h1:fPfFO7gttlXYo2ALuD3HxJzh8vaF++4youI0BkFL6GE= google.golang.org/api v0.59.0/go.mod h1:sT2boj7M9YJxZzgeZqXogmhfmRWDtPzT31xkieUbuZU= +google.golang.org/api v0.60.0 h1:eq/zs5WPH4J9undYM9IP1O7dSr7Yh8Y0GtSCpzGzIUk= +google.golang.org/api v0.60.0/go.mod h1:d7rl65NZAkEQ90JFzqBjcRq1TVeG5ZoGV3sSpEnnVb4= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= @@ -1709,8 +1717,9 @@ google.golang.org/genproto v0.0.0-20210921142501-181ce0d877f6/go.mod h1:5CzLGKJ6 google.golang.org/genproto v0.0.0-20210924002016-3dee208752a0/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= google.golang.org/genproto v0.0.0-20211008145708-270636b82663/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= google.golang.org/genproto v0.0.0-20211016002631-37fc39342514/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= -google.golang.org/genproto v0.0.0-20211018162055-cf77aa76bad2 h1:CUp93KYgL06Y/PdI8aRJaFiAHevPIGWQmijSqaUhue8= google.golang.org/genproto v0.0.0-20211018162055-cf77aa76bad2/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= +google.golang.org/genproto v0.0.0-20211021150943-2b146023228c h1:FqrtZMB5Wr+/RecOM3uPJNPfWR8Upb5hAPnt7PU6i4k= +google.golang.org/genproto v0.0.0-20211021150943-2b146023228c/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= google.golang.org/grpc v0.0.0-20160317175043-d3ddb4469d5a/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= From 79766cee8368dc1b53ac1206d89af312b98f35e0 Mon Sep 17 00:00:00 2001 From: minikube-bot Date: Mon, 1 Nov 2021 08:03:05 +0000 Subject: [PATCH 059/111] bump default/newest kubernetes versions --- pkg/minikube/constants/constants.go | 4 ++-- site/content/en/docs/commands/start.md | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/pkg/minikube/constants/constants.go b/pkg/minikube/constants/constants.go index 2b5c44cd9378..a4cd62876878 100644 --- a/pkg/minikube/constants/constants.go +++ b/pkg/minikube/constants/constants.go @@ -34,10 +34,10 @@ var ( const ( // DefaultKubernetesVersion is the default Kubernetes version // dont update till #10545 is solved - DefaultKubernetesVersion = "v1.22.2" + DefaultKubernetesVersion = "v1.22.3" // NewestKubernetesVersion is the newest Kubernetes version to test against // NOTE: You may need to update coreDNS & etcd versions in pkg/minikube/bootstrapper/images/images.go - NewestKubernetesVersion = "v1.22.3-rc.0" + NewestKubernetesVersion = "v1.22.4-rc.0" // OldestKubernetesVersion is the oldest Kubernetes version to test against OldestKubernetesVersion = "v1.14.0" // DefaultClusterName is the default nane for the k8s cluster diff --git a/site/content/en/docs/commands/start.md b/site/content/en/docs/commands/start.md index 10aba681164a..9d0a83a3766e 100644 --- a/site/content/en/docs/commands/start.md +++ b/site/content/en/docs/commands/start.md @@ -68,7 +68,7 @@ minikube start [flags] --interactive Allow user prompts for more information (default true) --iso-url strings Locations to fetch the minikube ISO from. (default [https://storage.googleapis.com/minikube/iso/minikube-v1.24.0.iso,https://github.com/kubernetes/minikube/releases/download/v1.24.0/minikube-v1.24.0.iso,https://kubernetes.oss-cn-hangzhou.aliyuncs.com/minikube/iso/minikube-v1.24.0.iso]) --keep-context This will keep the existing kubectl context and will create a minikube context. - --kubernetes-version string The Kubernetes version that the minikube VM will use (ex: v1.2.3, 'stable' for v1.22.2, 'latest' for v1.22.3-rc.0). Defaults to 'stable'. + --kubernetes-version string The Kubernetes version that the minikube VM will use (ex: v1.2.3, 'stable' for v1.22.3, 'latest' for v1.22.4-rc.0). Defaults to 'stable'. --kvm-gpu Enable experimental NVIDIA GPU support in minikube --kvm-hidden Hide the hypervisor signature from the guest in minikube (kvm2 driver only) --kvm-network string The KVM default network name. (kvm2 driver only) (default "default") From 389ea688ffb17bfe40479d7350c6882f63a0f6e7 Mon Sep 17 00:00:00 2001 From: Steven Powell Date: Mon, 1 Nov 2021 12:44:44 -0700 Subject: [PATCH 060/111] `minikube addons list` shows addons if cluster does not running --- cmd/minikube/cmd/config/addons_list.go | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/cmd/minikube/cmd/config/addons_list.go b/cmd/minikube/cmd/config/addons_list.go index 4ee0a19a7576..5e19e09a9cf6 100644 --- a/cmd/minikube/cmd/config/addons_list.go +++ b/cmd/minikube/cmd/config/addons_list.go @@ -52,7 +52,10 @@ var addonsListCmd = &cobra.Command{ exit.Message(reason.Usage, "usage: minikube addons list") } - _, cc := mustload.Partial(ClusterFlagValue()) + var cc *config.ClusterConfig + if config.ProfileExists(ClusterFlagValue()) { + _, cc = mustload.Partial(ClusterFlagValue()) + } switch strings.ToLower(addonListOutput) { case "list": printAddonsList(cc) @@ -98,18 +101,26 @@ var printAddonsList = func(cc *config.ClusterConfig) { var tData [][]string table := tablewriter.NewWriter(os.Stdout) - table.SetHeader([]string{"Addon Name", "Profile", "Status", "Maintainer"}) table.SetAutoFormatHeaders(true) table.SetBorders(tablewriter.Border{Left: true, Top: true, Right: true, Bottom: true}) table.SetCenterSeparator("|") + if cc == nil { + table.SetHeader([]string{"Addon Name", "Maintainer"}) + } else { + table.SetHeader([]string{"Addon Name", "Profile", "Status", "Maintainer"}) + } for _, addonName := range addonNames { addonBundle := assets.Addons[addonName] - enabled := addonBundle.IsEnabled(cc) maintainer := addonBundle.Maintainer if maintainer == "" { maintainer = "unknown (third-party)" } + if cc == nil { + tData = append(tData, []string{addonName, maintainer}) + continue + } + enabled := addonBundle.IsEnabled(cc) tData = append(tData, []string{addonName, cc.Name, fmt.Sprintf("%s %s", stringFromStatus(enabled), iconFromStatus(enabled)), maintainer}) } From d09ff8926e452a0257e5b858db615ee811bba2e8 Mon Sep 17 00:00:00 2001 From: Medya Ghazizadeh Date: Mon, 1 Nov 2021 16:32:04 -0700 Subject: [PATCH 061/111] Update _index.md --- site/content/en/docs/presentations/_index.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/site/content/en/docs/presentations/_index.md b/site/content/en/docs/presentations/_index.md index bfde5340dae5..e6a68bae4554 100644 --- a/site/content/en/docs/presentations/_index.md +++ b/site/content/en/docs/presentations/_index.md @@ -105,6 +105,13 @@ Presentations about the minikube project, mostly from the Kubernetes blog and th * "Minikube and Three Different Local Kubernetes Learning Environments" * Anders Björklund & Predrag Rogic +### KubeCon NA 2021 (Los Angeles, California ) + +* (47:47) + * "A Deep Dive Into 5 years of Minikube" + * Medya Ghazizadeh + + ## Other conferences ### Helm Summit EU 2019 (Amsterdam, The Netherlands) From 70233ebcfafabc8b8281c9984d194cc9ad5e0f9a Mon Sep 17 00:00:00 2001 From: Medya Ghazizadeh Date: Mon, 1 Nov 2021 16:50:51 -0700 Subject: [PATCH 062/111] Update _index.md --- site/content/en/docs/presentations/_index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/site/content/en/docs/presentations/_index.md b/site/content/en/docs/presentations/_index.md index e6a68bae4554..a4594acb4db6 100644 --- a/site/content/en/docs/presentations/_index.md +++ b/site/content/en/docs/presentations/_index.md @@ -105,7 +105,7 @@ Presentations about the minikube project, mostly from the Kubernetes blog and th * "Minikube and Three Different Local Kubernetes Learning Environments" * Anders Björklund & Predrag Rogic -### KubeCon NA 2021 (Los Angeles, California ) +### KubeCon NA 2021 (Los Angeles, California) * (47:47) * "A Deep Dive Into 5 years of Minikube" From 4c4adff43ab4ad53049aadc58fa356e06e31e7b5 Mon Sep 17 00:00:00 2001 From: Steven Powell Date: Mon, 1 Nov 2021 17:39:46 -0700 Subject: [PATCH 063/111] add tests --- cmd/minikube/cmd/config/addons_list.go | 4 ++ cmd/minikube/cmd/config/addons_list_test.go | 79 +++++++++++++++++++++ 2 files changed, 83 insertions(+) create mode 100644 cmd/minikube/cmd/config/addons_list_test.go diff --git a/cmd/minikube/cmd/config/addons_list.go b/cmd/minikube/cmd/config/addons_list.go index 5e19e09a9cf6..3052a214295e 100644 --- a/cmd/minikube/cmd/config/addons_list.go +++ b/cmd/minikube/cmd/config/addons_list.go @@ -137,6 +137,10 @@ var printAddonsList = func(cc *config.ClusterConfig) { } var printAddonsJSON = func(cc *config.ClusterConfig) { + if cc == nil { + out.String("{}") + return + } addonNames := make([]string, 0, len(assets.Addons)) for addonName := range assets.Addons { addonNames = append(addonNames, addonName) diff --git a/cmd/minikube/cmd/config/addons_list_test.go b/cmd/minikube/cmd/config/addons_list_test.go new file mode 100644 index 000000000000..7b8a834d2bef --- /dev/null +++ b/cmd/minikube/cmd/config/addons_list_test.go @@ -0,0 +1,79 @@ +/* +Copyright 2021 The Kubernetes Authors All rights reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package config + +import ( + "log" + "os" + "testing" + + "k8s.io/minikube/pkg/minikube/out" +) + +func TestAddonsList(t *testing.T) { + t.Run("NonExistingClusterTable", func(t *testing.T) { + b := make([]byte, 167) + r, w, err := os.Pipe() + if err != nil { + t.Fatalf("failed to create pipe: %v", err) + } + old := os.Stdout + defer func() { os.Stdout = old }() + os.Stdout = w + printAddonsList(nil) + if err := w.Close(); err != nil { + t.Fatalf("failed to close pipe: %v", err) + } + if _, err := r.Read(b); err != nil { + log.Fatalf("failed to read bytes: %v", err) + } + got := string(b) + expected := `|-----------------------------|-----------------------| +| ADDON NAME | MAINTAINER | +|-----------------------------|-----------------------|` + if got != expected { + t.Errorf("Expected header to be: %q; got = %q", expected, got) + } + }) + + t.Run("NonExistingClusterJSON", func(t *testing.T) { + b := make([]byte, 2) + r, w, err := os.Pipe() + if err != nil { + t.Fatalf("failed to create pipe: %v", err) + } + old := os.Stdout + defer func() { + os.Stdout = old + out.SetOutFile(os.Stdout) + }() + os.Stdout = w + out.SetOutFile(os.Stdout) + printAddonsJSON(nil) + if err := w.Close(); err != nil { + t.Fatalf("failed to close pipe: %v", err) + } + if _, err := r.Read(b); err != nil { + log.Fatalf("failed to read bytes: %v", err) + } + got := string(b) + expected := "{}" + if got != expected { + t.Errorf("Expected = %q; got = %q", expected, got) + } + }) +} From ca928b43ed86ed65056700dba67ec1a5e0b5714e Mon Sep 17 00:00:00 2001 From: Keyhoh Date: Tue, 2 Nov 2021 22:57:43 +0900 Subject: [PATCH 064/111] fix: revert wrong fix and re-fix zsh completion --- cmd/minikube/cmd/completion.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/cmd/minikube/cmd/completion.go b/cmd/minikube/cmd/completion.go index a92bc91fe41a..d15c60d79ac2 100644 --- a/cmd/minikube/cmd/completion.go +++ b/cmd/minikube/cmd/completion.go @@ -273,6 +273,7 @@ __minikube_convert_bash_to_zsh() { -e "s/${LWORD}compopt${RWORD}/__minikube_compopt/g" \ -e "s/${LWORD}declare${RWORD}/__minikube_declare/g" \ -e "s/\\\$(type${RWORD}/\$(__minikube_type/g" \ + -e "s/aliashash\[\"\([a-z]*\)\"\]/aliashash[\1]/g" \ <<'BASH_COMPLETION_EOF' ` @@ -292,7 +293,7 @@ __minikube_convert_bash_to_zsh() { } buf := new(bytes.Buffer) - err = cmd.GenZshCompletion(buf) + err = cmd.GenBashCompletion(buf) if err != nil { return errors.Wrap(err, "Error generating zsh completion") } From 02a43c52e210cb20230b18ba9d7fc0702b926db2 Mon Sep 17 00:00:00 2001 From: Nicolas Busseneau Date: Thu, 28 Oct 2021 17:24:24 +0200 Subject: [PATCH 065/111] virtualbox: change default `host-only-cidr` MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit We change the default `--host-only-cidr` to `192.168.59.1/24` in order to be compatible with the new default host-only networking restrictions implemented in VirtualBox 6.1.28. This fixes access denied errors on `minikube start` when using VirtualBox >= 6.1.28: ``` VBoxManage: error: Code E_ACCESSDENIED (0x80070005) - Access denied (extended info not available) VBoxManage: error: Context: "EnableStaticIPConfig(Bstr(pszIp).raw(), Bstr(pszNetmask).raw())" at line 242 of file VBoxManageHostonly.cpp ``` More details: VirtualBox 6.1.28 introduced new restrictions on host-only networking: https://www.virtualbox.org/wiki/Changelog-6.1#v28 Manual: https://www.virtualbox.org/manual/ch06.html#network_hostonly > On Linux, Mac OS X and Solaris Oracle VM VirtualBox will only allow IP > addresses in 192.68.56.0/21 range to be assigned to host-only > adapters. For IPv6 only link-local addresses are allowed. If other > ranges are desired, they can be enabled by creating > /etc/vbox/networks.conf and specifying allowed ranges there. For > example, to allow 10.0.0.0/8 and 192.168.0.0/16 IPv4 ranges as well as > 2001::/64 range put the following lines into /etc/vbox/networks.conf: > > * 10.0.0.0/8 192.168.0.0/16 > * 2001::/64 > > Lines starting with the hash # are ignored. Next example allows any > addresses, effectively disabling range control: > > * 0.0.0.0/0 ::/0 These new restrictions manifest in the form of the following issue on `minikube start` due to the default `--host-only-cidr` used by the VirtualBox driver being `192.168.99.1/24`: ```console 😄 minikube v1.23.2 on Ubuntu 18.04 ✨ Using the virtualbox driver based on user configuration 👍 Starting control plane node minikube in cluster minikube 🔥 Creating virtualbox VM (CPUs=2, Memory=6000MB, Disk=20000MB) ... 🔥 Deleting "minikube" in virtualbox ... 🤦 StartHost failed, but will try again: creating host: create: creating: Error setting up host only network on machine start: /usr/bin/VBoxManage hostonlyif ipconfig vboxnet0 --ip 192.168.99.1 --netmask 255.255.255.0 failed: VBoxManage: error: Code E_ACCESSDENIED (0x80070005) - Access denied (extended info not available) VBoxManage: error: Context: "EnableStaticIPConfig(Bstr(pszIp).raw(), Bstr(pszNetmask).raw())" at line 242 of file VBoxManageHostonly.cpp 🔥 Creating virtualbox VM (CPUs=2, Memory=6000MB, Disk=20000MB) ... 😿 Failed to start virtualbox VM. Running "minikube delete" may fix it: creating host: create: creating: Error setting up host only network on machine start: /usr/bin/VBoxManage hostonlyif ipconfig vboxnet1 --ip 192.168.99.1 --netmask 255.255.255.0 failed: VBoxManage: error: Code E_ACCESSDENIED (0x80070005) - Access denied (extended info not available) VBoxManage: error: Context: "EnableStaticIPConfig(Bstr(pszIp).raw(), Bstr(pszNetmask).raw())" at line 242 of file VBoxManageHostonly.cpp ❌ Exiting due to GUEST_PROVISION: Failed to start host: creating host: create: creating: Error setting up host only network on machine start: /usr/bin/VBoxManage hostonlyif ipconfig vboxnet1 --ip 192.168.99.1 --netmask 255.255.255.0 failed: VBoxManage: error: Code E_ACCESSDENIED (0x80070005) - Access denied (extended info not available) VBoxManage: error: Context: "EnableStaticIPConfig(Bstr(pszIp).raw(), Bstr(pszNetmask).raw())" at line 242 of file VBoxManageHostonly.cpp ╭───────────────────────────────────────────────────────────────────────────────────────────╮ │ │ │ 😿 If the above advice does not help, please let us know: │ │ 👉 https://github.com/kubernetes/minikube/issues/new/choose │ │ │ │ Please run `minikube logs --file=logs.txt` and attach logs.txt to the GitHub issue. │ │ │ ╰───────────────────────────────────────────────────────────────────────────────────────────╯ ``` While the above is the primary error, other errors will be reported if the adapter already exists (this happens when the adapter was created before updating to VirtualBox 6.1.28, on a version of VirtualBox without the new restrictions). Some examples: ``` ❌ Exiting due to IF_VBOX_NOT_VISIBLE: Failed to start host: creating host: create: creating: Error setting up host only network on machine start: The host-only adapter we just created is not visible. This is a well known VirtualBox bug. You might want to uninstall it and reinstall at least version 5.0.12 that is is supposed to fix this issue ``` ``` ❌ minikube is unable to connect to the VM: dial tcp 192.168.99.112:22: i/o timeout This is likely due to one of two reasons: - VPN or firewall interference - virtualbox network configuration issue Suggested workarounds: - Disable your local VPN or firewall software - Configure your local VPN or firewall to allow access to 192.168.99.112 - Restart or reinstall virtualbox - Use an alternative --vm-driver - Use --force to override this connectivity check ❌ Exiting due to GUEST_PROVISION: Failed to validate network: dial tcp 192.168.99.112:22: i/o timeout ``` When switching to a valid CIDR, `minikube start` works as usual: ```console 😄 minikube v1.23.2 on Ubuntu 18.04 ✨ Using the virtualbox driver based on user configuration 👍 Starting control plane node minikube in cluster minikube 🔥 Creating virtualbox VM (CPUs=2, Memory=6000MB, Disk=20000MB) ... 🐳 Preparing Kubernetes v1.22.2 on Docker 20.10.8 ... ▪ Generating certificates and keys ... ▪ Booting up control plane ... ▪ Configuring RBAC rules ... ▪ 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 ``` Signed-off-by: Nicolas Busseneau --- cmd/minikube/cmd/start_flags.go | 2 +- pkg/minikube/config/profile_test.go | 2 +- .../config/testdata/.minikube/profiles/p1/config.json | 4 ++-- .../.minikube/profiles/p2_newformat/config.json | 6 +++--- .../.minikube/profiles/p5_partial_config/config.json | 4 ++-- .../delete-all/.minikube/profiles/p1/config.json | 4 ++-- .../profiles/p4_partial_profile_config/config.json | 4 ++-- .../profiles/p5_missing_machine_config/config.json | 4 ++-- .../profiles/p6_empty_machine_config/config.json | 4 ++-- .../profiles/p7_invalid_machine_config/config.json | 4 ++-- .../profiles/p8_partial_machine_config/config.json | 2 +- .../delete-single/.minikube/profiles/p1/config.json | 4 ++-- .../profiles/p4_partial_profile_config/config.json | 4 ++-- .../profiles/p5_missing_machine_config/config.json | 4 ++-- .../profiles/p6_empty_machine_config/config.json | 4 ++-- .../profiles/p7_invalid_machine_config/config.json | 4 ++-- .../profiles/p8_partial_machine_config/config.json | 2 +- .../testdata/profile/.minikube/profiles/p1/config.json | 4 ++-- .../.minikube/profiles/p2_newformat/config.json | 6 +++--- .../.minikube/profiles/p5_partial_config/config.json | 4 ++-- pkg/minikube/kubeconfig/kubeconfig_test.go | 2 +- pkg/minikube/machine/client_test.go | 4 ++-- pkg/minikube/service/service_test.go | 10 +++++----- pkg/minikube/tunnel/route_windows_test.go | 10 +++++----- pkg/util/crypto_test.go | 2 +- site/content/en/docs/commands/start.md | 2 +- site/content/en/docs/drivers/virtualbox.md | 3 ++- site/content/en/docs/handbook/vpn_and_proxy.md | 8 ++++---- 28 files changed, 59 insertions(+), 58 deletions(-) diff --git a/cmd/minikube/cmd/start_flags.go b/cmd/minikube/cmd/start_flags.go index 473816fdee4a..95c1ad331e71 100644 --- a/cmd/minikube/cmd/start_flags.go +++ b/cmd/minikube/cmd/start_flags.go @@ -205,7 +205,7 @@ func initDriverFlags() { startCmd.Flags().Int(kvmNUMACount, 1, "Simulate numa node count in minikube, supported numa node count range is 1-8 (kvm2 driver only)") // virtualbox - startCmd.Flags().String(hostOnlyCIDR, "192.168.99.1/24", "The CIDR to be used for the minikube VM (virtualbox driver only)") + startCmd.Flags().String(hostOnlyCIDR, "192.168.59.1/24", "The CIDR to be used for the minikube VM (virtualbox driver only)") startCmd.Flags().Bool(dnsProxy, false, "Enable proxy for NAT DNS requests (virtualbox driver only)") startCmd.Flags().Bool(hostDNSResolver, true, "Enable host resolver for NAT DNS requests (virtualbox driver only)") startCmd.Flags().Bool(noVTXCheck, false, "Disable checking for the availability of hardware virtualization before the vm is started (virtualbox driver only)") diff --git a/pkg/minikube/config/profile_test.go b/pkg/minikube/config/profile_test.go index 4b7948722819..a31600337d88 100644 --- a/pkg/minikube/config/profile_test.go +++ b/pkg/minikube/config/profile_test.go @@ -280,7 +280,7 @@ func TestGetPrimaryControlPlane(t *testing.T) { expectedName string }{ {"old style", "p1", "192.168.64.75", 8443, "minikube"}, - {"new style", "p2_newformat", "192.168.99.136", 8443, "m01"}, + {"new style", "p2_newformat", "192.168.59.136", 8443, "m01"}, } for _, tc := range tests { diff --git a/pkg/minikube/config/testdata/.minikube/profiles/p1/config.json b/pkg/minikube/config/testdata/.minikube/profiles/p1/config.json index c4214bf44276..b563e38c3bc1 100644 --- a/pkg/minikube/config/testdata/.minikube/profiles/p1/config.json +++ b/pkg/minikube/config/testdata/.minikube/profiles/p1/config.json @@ -13,7 +13,7 @@ "DockerEnv": null, "InsecureRegistry": null, "RegistryMirror": null, - "HostOnlyCIDR": "192.168.99.1/24", + "HostOnlyCIDR": "192.168.59.1/24", "HypervVirtualSwitch": "", "KVMNetwork": "default", "KVMQemuURI": "qemu:///system", @@ -47,4 +47,4 @@ "ShouldLoadCachedImages": true, "EnableDefaultCNI": false } -} \ No newline at end of file +} diff --git a/pkg/minikube/config/testdata/.minikube/profiles/p2_newformat/config.json b/pkg/minikube/config/testdata/.minikube/profiles/p2_newformat/config.json index 2c0e986c361c..5d9f13bc0759 100644 --- a/pkg/minikube/config/testdata/.minikube/profiles/p2_newformat/config.json +++ b/pkg/minikube/config/testdata/.minikube/profiles/p2_newformat/config.json @@ -12,7 +12,7 @@ "DockerEnv": null, "InsecureRegistry": null, "RegistryMirror": null, - "HostOnlyCIDR": "192.168.99.1/24", + "HostOnlyCIDR": "192.168.59.1/24", "HypervVirtualSwitch": "", "KVMNetwork": "default", "KVMQemuURI": "qemu:///system", @@ -46,11 +46,11 @@ "Nodes": [ { "Name": "m01", - "IP": "192.168.99.136", + "IP": "192.168.59.136", "Port": 8443, "KubernetesVersion": "v1.15.0", "ControlPlane": true, "Worker": true } ] -} \ No newline at end of file +} diff --git a/pkg/minikube/config/testdata/.minikube/profiles/p5_partial_config/config.json b/pkg/minikube/config/testdata/.minikube/profiles/p5_partial_config/config.json index a99c56efe801..58b037cbaa03 100644 --- a/pkg/minikube/config/testdata/.minikube/profiles/p5_partial_config/config.json +++ b/pkg/minikube/config/testdata/.minikube/profiles/p5_partial_config/config.json @@ -12,7 +12,7 @@ "DockerEnv": null, "InsecureRegistry": null, "RegistryMirror": null, - "HostOnlyCIDR": "192.168.99.1/24", + "HostOnlyCIDR": "192.168.59.1/24", "HypervVirtualSwitch": "", "KVMNetwork": "default", "KVMQemuURI": "qemu:///system", @@ -44,4 +44,4 @@ "ShouldLoadCachedImages": true, "EnableDefaultCNI": false } -} \ No newline at end of file +} diff --git a/pkg/minikube/config/testdata/delete-all/.minikube/profiles/p1/config.json b/pkg/minikube/config/testdata/delete-all/.minikube/profiles/p1/config.json index 6c826ebfc680..fc8753225ce0 100644 --- a/pkg/minikube/config/testdata/delete-all/.minikube/profiles/p1/config.json +++ b/pkg/minikube/config/testdata/delete-all/.minikube/profiles/p1/config.json @@ -12,7 +12,7 @@ "DockerEnv": null, "InsecureRegistry": null, "RegistryMirror": null, - "HostOnlyCIDR": "192.168.99.1/24", + "HostOnlyCIDR": "192.168.59.1/24", "HypervVirtualSwitch": "", "KVMNetwork": "default", "KVMQemuURI": "qemu:///system", @@ -46,4 +46,4 @@ "ShouldLoadCachedImages": true, "EnableDefaultCNI": false } -} \ No newline at end of file +} diff --git a/pkg/minikube/config/testdata/delete-all/.minikube/profiles/p4_partial_profile_config/config.json b/pkg/minikube/config/testdata/delete-all/.minikube/profiles/p4_partial_profile_config/config.json index a99c56efe801..58b037cbaa03 100644 --- a/pkg/minikube/config/testdata/delete-all/.minikube/profiles/p4_partial_profile_config/config.json +++ b/pkg/minikube/config/testdata/delete-all/.minikube/profiles/p4_partial_profile_config/config.json @@ -12,7 +12,7 @@ "DockerEnv": null, "InsecureRegistry": null, "RegistryMirror": null, - "HostOnlyCIDR": "192.168.99.1/24", + "HostOnlyCIDR": "192.168.59.1/24", "HypervVirtualSwitch": "", "KVMNetwork": "default", "KVMQemuURI": "qemu:///system", @@ -44,4 +44,4 @@ "ShouldLoadCachedImages": true, "EnableDefaultCNI": false } -} \ No newline at end of file +} diff --git a/pkg/minikube/config/testdata/delete-all/.minikube/profiles/p5_missing_machine_config/config.json b/pkg/minikube/config/testdata/delete-all/.minikube/profiles/p5_missing_machine_config/config.json index 6680e4b784fb..824a77dc75cb 100644 --- a/pkg/minikube/config/testdata/delete-all/.minikube/profiles/p5_missing_machine_config/config.json +++ b/pkg/minikube/config/testdata/delete-all/.minikube/profiles/p5_missing_machine_config/config.json @@ -12,7 +12,7 @@ "DockerEnv": null, "InsecureRegistry": null, "RegistryMirror": null, - "HostOnlyCIDR": "192.168.99.1/24", + "HostOnlyCIDR": "192.168.59.1/24", "HypervVirtualSwitch": "", "KVMNetwork": "default", "KVMQemuURI": "qemu:///system", @@ -46,4 +46,4 @@ "ShouldLoadCachedImages": true, "EnableDefaultCNI": false } -} \ No newline at end of file +} diff --git a/pkg/minikube/config/testdata/delete-all/.minikube/profiles/p6_empty_machine_config/config.json b/pkg/minikube/config/testdata/delete-all/.minikube/profiles/p6_empty_machine_config/config.json index 2bab758640c3..2f7228f63954 100644 --- a/pkg/minikube/config/testdata/delete-all/.minikube/profiles/p6_empty_machine_config/config.json +++ b/pkg/minikube/config/testdata/delete-all/.minikube/profiles/p6_empty_machine_config/config.json @@ -12,7 +12,7 @@ "DockerEnv": null, "InsecureRegistry": null, "RegistryMirror": null, - "HostOnlyCIDR": "192.168.99.1/24", + "HostOnlyCIDR": "192.168.59.1/24", "HypervVirtualSwitch": "", "KVMNetwork": "default", "KVMQemuURI": "qemu:///system", @@ -46,4 +46,4 @@ "ShouldLoadCachedImages": true, "EnableDefaultCNI": false } -} \ No newline at end of file +} diff --git a/pkg/minikube/config/testdata/delete-all/.minikube/profiles/p7_invalid_machine_config/config.json b/pkg/minikube/config/testdata/delete-all/.minikube/profiles/p7_invalid_machine_config/config.json index d56f53688d69..98f9f98f0ac1 100644 --- a/pkg/minikube/config/testdata/delete-all/.minikube/profiles/p7_invalid_machine_config/config.json +++ b/pkg/minikube/config/testdata/delete-all/.minikube/profiles/p7_invalid_machine_config/config.json @@ -12,7 +12,7 @@ "DockerEnv": null, "InsecureRegistry": null, "RegistryMirror": null, - "HostOnlyCIDR": "192.168.99.1/24", + "HostOnlyCIDR": "192.168.59.1/24", "HypervVirtualSwitch": "", "KVMNetwork": "default", "KVMQemuURI": "qemu:///system", @@ -46,4 +46,4 @@ "ShouldLoadCachedImages": true, "EnableDefaultCNI": false } -} \ No newline at end of file +} diff --git a/pkg/minikube/config/testdata/delete-all/.minikube/profiles/p8_partial_machine_config/config.json b/pkg/minikube/config/testdata/delete-all/.minikube/profiles/p8_partial_machine_config/config.json index 26324fc366d1..f371911c14cc 100644 --- a/pkg/minikube/config/testdata/delete-all/.minikube/profiles/p8_partial_machine_config/config.json +++ b/pkg/minikube/config/testdata/delete-all/.minikube/profiles/p8_partial_machine_config/config.json @@ -12,7 +12,7 @@ "DockerEnv": null, "InsecureRegistry": null, "RegistryMirror": null, - "HostOnlyCIDR": "192.168.99.1/24", + "HostOnlyCIDR": "192.168.59.1/24", "HypervVirtualSwitch": "", "KVMNetwork": "default", "KVMQemuURI": "qemu:///system", diff --git a/pkg/minikube/config/testdata/delete-single/.minikube/profiles/p1/config.json b/pkg/minikube/config/testdata/delete-single/.minikube/profiles/p1/config.json index 6c826ebfc680..fc8753225ce0 100644 --- a/pkg/minikube/config/testdata/delete-single/.minikube/profiles/p1/config.json +++ b/pkg/minikube/config/testdata/delete-single/.minikube/profiles/p1/config.json @@ -12,7 +12,7 @@ "DockerEnv": null, "InsecureRegistry": null, "RegistryMirror": null, - "HostOnlyCIDR": "192.168.99.1/24", + "HostOnlyCIDR": "192.168.59.1/24", "HypervVirtualSwitch": "", "KVMNetwork": "default", "KVMQemuURI": "qemu:///system", @@ -46,4 +46,4 @@ "ShouldLoadCachedImages": true, "EnableDefaultCNI": false } -} \ No newline at end of file +} diff --git a/pkg/minikube/config/testdata/delete-single/.minikube/profiles/p4_partial_profile_config/config.json b/pkg/minikube/config/testdata/delete-single/.minikube/profiles/p4_partial_profile_config/config.json index a99c56efe801..58b037cbaa03 100644 --- a/pkg/minikube/config/testdata/delete-single/.minikube/profiles/p4_partial_profile_config/config.json +++ b/pkg/minikube/config/testdata/delete-single/.minikube/profiles/p4_partial_profile_config/config.json @@ -12,7 +12,7 @@ "DockerEnv": null, "InsecureRegistry": null, "RegistryMirror": null, - "HostOnlyCIDR": "192.168.99.1/24", + "HostOnlyCIDR": "192.168.59.1/24", "HypervVirtualSwitch": "", "KVMNetwork": "default", "KVMQemuURI": "qemu:///system", @@ -44,4 +44,4 @@ "ShouldLoadCachedImages": true, "EnableDefaultCNI": false } -} \ No newline at end of file +} diff --git a/pkg/minikube/config/testdata/delete-single/.minikube/profiles/p5_missing_machine_config/config.json b/pkg/minikube/config/testdata/delete-single/.minikube/profiles/p5_missing_machine_config/config.json index 6680e4b784fb..824a77dc75cb 100644 --- a/pkg/minikube/config/testdata/delete-single/.minikube/profiles/p5_missing_machine_config/config.json +++ b/pkg/minikube/config/testdata/delete-single/.minikube/profiles/p5_missing_machine_config/config.json @@ -12,7 +12,7 @@ "DockerEnv": null, "InsecureRegistry": null, "RegistryMirror": null, - "HostOnlyCIDR": "192.168.99.1/24", + "HostOnlyCIDR": "192.168.59.1/24", "HypervVirtualSwitch": "", "KVMNetwork": "default", "KVMQemuURI": "qemu:///system", @@ -46,4 +46,4 @@ "ShouldLoadCachedImages": true, "EnableDefaultCNI": false } -} \ No newline at end of file +} diff --git a/pkg/minikube/config/testdata/delete-single/.minikube/profiles/p6_empty_machine_config/config.json b/pkg/minikube/config/testdata/delete-single/.minikube/profiles/p6_empty_machine_config/config.json index 2bab758640c3..2f7228f63954 100644 --- a/pkg/minikube/config/testdata/delete-single/.minikube/profiles/p6_empty_machine_config/config.json +++ b/pkg/minikube/config/testdata/delete-single/.minikube/profiles/p6_empty_machine_config/config.json @@ -12,7 +12,7 @@ "DockerEnv": null, "InsecureRegistry": null, "RegistryMirror": null, - "HostOnlyCIDR": "192.168.99.1/24", + "HostOnlyCIDR": "192.168.59.1/24", "HypervVirtualSwitch": "", "KVMNetwork": "default", "KVMQemuURI": "qemu:///system", @@ -46,4 +46,4 @@ "ShouldLoadCachedImages": true, "EnableDefaultCNI": false } -} \ No newline at end of file +} diff --git a/pkg/minikube/config/testdata/delete-single/.minikube/profiles/p7_invalid_machine_config/config.json b/pkg/minikube/config/testdata/delete-single/.minikube/profiles/p7_invalid_machine_config/config.json index d56f53688d69..98f9f98f0ac1 100644 --- a/pkg/minikube/config/testdata/delete-single/.minikube/profiles/p7_invalid_machine_config/config.json +++ b/pkg/minikube/config/testdata/delete-single/.minikube/profiles/p7_invalid_machine_config/config.json @@ -12,7 +12,7 @@ "DockerEnv": null, "InsecureRegistry": null, "RegistryMirror": null, - "HostOnlyCIDR": "192.168.99.1/24", + "HostOnlyCIDR": "192.168.59.1/24", "HypervVirtualSwitch": "", "KVMNetwork": "default", "KVMQemuURI": "qemu:///system", @@ -46,4 +46,4 @@ "ShouldLoadCachedImages": true, "EnableDefaultCNI": false } -} \ No newline at end of file +} diff --git a/pkg/minikube/config/testdata/delete-single/.minikube/profiles/p8_partial_machine_config/config.json b/pkg/minikube/config/testdata/delete-single/.minikube/profiles/p8_partial_machine_config/config.json index 26324fc366d1..f371911c14cc 100644 --- a/pkg/minikube/config/testdata/delete-single/.minikube/profiles/p8_partial_machine_config/config.json +++ b/pkg/minikube/config/testdata/delete-single/.minikube/profiles/p8_partial_machine_config/config.json @@ -12,7 +12,7 @@ "DockerEnv": null, "InsecureRegistry": null, "RegistryMirror": null, - "HostOnlyCIDR": "192.168.99.1/24", + "HostOnlyCIDR": "192.168.59.1/24", "HypervVirtualSwitch": "", "KVMNetwork": "default", "KVMQemuURI": "qemu:///system", diff --git a/pkg/minikube/config/testdata/profile/.minikube/profiles/p1/config.json b/pkg/minikube/config/testdata/profile/.minikube/profiles/p1/config.json index a48578f8eee1..b190aeb44a61 100644 --- a/pkg/minikube/config/testdata/profile/.minikube/profiles/p1/config.json +++ b/pkg/minikube/config/testdata/profile/.minikube/profiles/p1/config.json @@ -13,7 +13,7 @@ "DockerEnv": null, "InsecureRegistry": null, "RegistryMirror": null, - "HostOnlyCIDR": "192.168.99.1/24", + "HostOnlyCIDR": "192.168.59.1/24", "HypervVirtualSwitch": "", "KVMNetwork": "default", "KVMQemuURI": "qemu:///system", @@ -46,4 +46,4 @@ "ShouldLoadCachedImages": true, "EnableDefaultCNI": false } -} \ No newline at end of file +} diff --git a/pkg/minikube/config/testdata/profile/.minikube/profiles/p2_newformat/config.json b/pkg/minikube/config/testdata/profile/.minikube/profiles/p2_newformat/config.json index b29f9295d78e..8c96ffeabce5 100644 --- a/pkg/minikube/config/testdata/profile/.minikube/profiles/p2_newformat/config.json +++ b/pkg/minikube/config/testdata/profile/.minikube/profiles/p2_newformat/config.json @@ -12,7 +12,7 @@ "DockerEnv": null, "InsecureRegistry": null, "RegistryMirror": null, - "HostOnlyCIDR": "192.168.99.1/24", + "HostOnlyCIDR": "192.168.59.1/24", "HypervVirtualSwitch": "", "KVMNetwork": "default", "KVMQemuURI": "qemu:///system", @@ -45,11 +45,11 @@ "Nodes": [ { "Name": "m01", - "IP": "192.168.99.136", + "IP": "192.168.59.136", "Port": 8443, "KubernetesVersion": "v1.15.0", "ControlPlane": true, "Worker": true } ] -} \ No newline at end of file +} diff --git a/pkg/minikube/config/testdata/profile/.minikube/profiles/p5_partial_config/config.json b/pkg/minikube/config/testdata/profile/.minikube/profiles/p5_partial_config/config.json index 1ad106caecc8..a51a82c0dc1b 100644 --- a/pkg/minikube/config/testdata/profile/.minikube/profiles/p5_partial_config/config.json +++ b/pkg/minikube/config/testdata/profile/.minikube/profiles/p5_partial_config/config.json @@ -11,7 +11,7 @@ "DockerEnv": null, "InsecureRegistry": null, "RegistryMirror": null, - "HostOnlyCIDR": "192.168.99.1/24", + "HostOnlyCIDR": "192.168.59.1/24", "HypervVirtualSwitch": "", "KVMNetwork": "default", "KVMQemuURI": "qemu:///system", @@ -42,4 +42,4 @@ "ShouldLoadCachedImages": true, "EnableDefaultCNI": false } -} \ No newline at end of file +} diff --git a/pkg/minikube/kubeconfig/kubeconfig_test.go b/pkg/minikube/kubeconfig/kubeconfig_test.go index 0ee7095dd3f7..add06fd4f9fb 100644 --- a/pkg/minikube/kubeconfig/kubeconfig_test.go +++ b/pkg/minikube/kubeconfig/kubeconfig_test.go @@ -559,7 +559,7 @@ func minikubeConfig(config *api.Config) { // cluster clusterName := "minikube" cluster := api.NewCluster() - cluster.Server = "https://192.168.99.100:" + strconv.Itoa(constants.APIServerPort) + cluster.Server = "https://192.168.59.100:" + strconv.Itoa(constants.APIServerPort) cluster.CertificateAuthority = "/home/tux/.minikube/apiserver.crt" config.Clusters[clusterName] = cluster diff --git a/pkg/minikube/machine/client_test.go b/pkg/minikube/machine/client_test.go index cb9091fb5173..1d0d1d831b13 100644 --- a/pkg/minikube/machine/client_test.go +++ b/pkg/minikube/machine/client_test.go @@ -32,7 +32,7 @@ import ( const vboxConfig = ` { - "IPAddress": "192.168.99.101", + "IPAddress": "192.168.59.101", "MachineName": "minikube", "SSHUser": "docker", "SSHPort": 33627, @@ -50,7 +50,7 @@ const vboxConfig = ` "Boot2DockerURL": "file:///home/sundarp/.minikube/cache/iso/minikube-v1.0.6.iso", "Boot2DockerImportVM": "", "HostDNSResolver": false, - "HostOnlyCIDR": "192.168.99.1/24", + "HostOnlyCIDR": "192.168.59.1/24", "HostOnlyNicType": "82540EM", "HostOnlyPromiscMode": "deny", "UIType": "headless", diff --git a/pkg/minikube/service/service_test.go b/pkg/minikube/service/service_test.go index 5f79facee1e3..cf6fa7d30c7b 100644 --- a/pkg/minikube/service/service_test.go +++ b/pkg/minikube/service/service_test.go @@ -364,9 +364,9 @@ func TestOptionallyHttpsFormattedUrlString(t *testing.T) { }{ { description: "no https for http schemed with no https option", - bareURLString: "http://192.168.99.100:30563", + bareURLString: "http://192.168.59.100:30563", https: false, - expectedHTTPSFormattedURLString: "http://192.168.99.100:30563", + expectedHTTPSFormattedURLString: "http://192.168.59.100:30563", expectedIsHTTPSchemedURL: true, }, { @@ -378,9 +378,9 @@ func TestOptionallyHttpsFormattedUrlString(t *testing.T) { }, { description: "https for http schemed with https option", - bareURLString: "http://192.168.99.100:30563", + bareURLString: "http://192.168.59.100:30563", https: true, - expectedHTTPSFormattedURLString: "https://192.168.99.100:30563", + expectedHTTPSFormattedURLString: "https://192.168.59.100:30563", expectedIsHTTPSchemedURL: true, }, { @@ -568,7 +568,7 @@ func TestGetCoreClient(t *testing.T) { mockK8sConfig := `apiVersion: v1 clusters: - cluster: - server: https://192.168.99.102:8443 + server: https://192.168.59.102:8443 name: minikube contexts: - context: diff --git a/pkg/minikube/tunnel/route_windows_test.go b/pkg/minikube/tunnel/route_windows_test.go index 10e99d5a71f8..89c9b11fa7e0 100644 --- a/pkg/minikube/tunnel/route_windows_test.go +++ b/pkg/minikube/tunnel/route_windows_test.go @@ -119,18 +119,18 @@ Network Destination Netmask Gateway Interface Metric 192.168.56.0 255.255.255.0 On-link 192.168.56.1 281 192.168.56.1 255.255.255.255 On-link 192.168.56.1 281 192.168.56.255 255.255.255.255 On-link 192.168.56.1 281 - 192.168.99.0 255.255.255.0 On-link 192.168.99.1 281 - 192.168.99.1 255.255.255.255 On-link 192.168.99.1 281 + 192.168.59.0 255.255.255.0 On-link 192.168.59.1 281 + 192.168.59.1 255.255.255.255 On-link 192.168.59.1 281 10.211.55.0 255.255.255.0 192.168.1.2 10.211.55.3 281 - 192.168.99.255 255.255.255.255 On-link 192.168.99.1 281 + 192.168.59.255 255.255.255.255 On-link 192.168.59.1 281 224.0.0.0 240.0.0.0 On-link 127.0.0.1 331 224.0.0.0 240.0.0.0 On-link 10.211.55.3 281 224.0.0.0 240.0.0.0 On-link 192.168.56.1 281 - 224.0.0.0 240.0.0.0 On-link 192.168.99.1 281 + 224.0.0.0 240.0.0.0 On-link 192.168.59.1 281 255.255.255.255 255.255.255.255 On-link 127.0.0.1 331 255.255.255.255 255.255.255.255 On-link 10.211.55.3 281 255.255.255.255 255.255.255.255 On-link 192.168.56.1 281 - 255.255.255.255 255.255.255.255 On-link 192.168.99.1 281 + 255.255.255.255 255.255.255.255 On-link 192.168.59.1 281 =========================================================================== Persistent Routes: None` diff --git a/pkg/util/crypto_test.go b/pkg/util/crypto_test.go index d8773778d3f4..e285bc8363e6 100644 --- a/pkg/util/crypto_test.go +++ b/pkg/util/crypto_test.go @@ -94,7 +94,7 @@ func TestGenerateSignedCert(t *testing.T) { certPath := filepath.Join(tmpDir, "cert") keyPath := filepath.Join(tmpDir, "key") - ips := []net.IP{net.ParseIP("192.168.99.100"), net.ParseIP("10.0.0.10")} + ips := []net.IP{net.ParseIP("192.168.59.100"), net.ParseIP("10.0.0.10")} alternateDNS := []string{"kubernetes.default.svc.cluster.local", "kubernetes.default"} var tests = []struct { diff --git a/site/content/en/docs/commands/start.md b/site/content/en/docs/commands/start.md index fdf64a0c61f7..4a9349c675e6 100644 --- a/site/content/en/docs/commands/start.md +++ b/site/content/en/docs/commands/start.md @@ -54,7 +54,7 @@ minikube start [flags] --force Force minikube to perform possibly dangerous operations --force-systemd If set, force the container runtime to use systemd as cgroup manager. Defaults to false. --host-dns-resolver Enable host resolver for NAT DNS requests (virtualbox driver only) (default true) - --host-only-cidr string The CIDR to be used for the minikube VM (virtualbox driver only) (default "192.168.99.1/24") + --host-only-cidr string The CIDR to be used for the minikube VM (virtualbox driver only) (default "192.168.59.1/24") --host-only-nic-type string NIC Type used for host only network. One of Am79C970A, Am79C973, 82540EM, 82543GC, 82545EM, or virtio (virtualbox driver only) (default "virtio") --hyperkit-vpnkit-sock string Location of the VPNKit socket used for networking. If empty, disables Hyperkit VPNKitSock, if 'auto' uses Docker for Mac VPNKit connection, otherwise uses the specified VSock (hyperkit driver only) --hyperkit-vsock-ports strings List of guest VSock ports that should be exposed as sockets on the host (hyperkit driver only) diff --git a/site/content/en/docs/drivers/virtualbox.md b/site/content/en/docs/drivers/virtualbox.md index b9158788ad07..0e84f58c603e 100644 --- a/site/content/en/docs/drivers/virtualbox.md +++ b/site/content/en/docs/drivers/virtualbox.md @@ -15,7 +15,8 @@ VirtualBox is minikube's original driver. It may not provide the fastest start-u minikube start supports some VirtualBox specific flags: -* **`--host-only-cidr`**: The CIDR to be used for the minikube VM (default "192.168.99.1/24") +* **`--host-only-cidr`**: The CIDR to be used for the minikube VM (default "192.168.59.1/24") + * On Linux, Mac OS X and Oracle Solaris with VirtualBox >= 6.1.28, [only IP addresses in the 192.68.56.0/21 range are allowed for host-only networking by default](https://www.virtualbox.org/manual/ch06.html#network_hostonly). Passing a disallowed value to `--host-only-cidr` will result in a VirtualBox access denied error: `VBoxManage: error: Code E_ACCESSDENIED (0x80070005) - Access denied (extended info not available)`. * **`--no-vtx-check`**: Disable checking for the availability of hardware virtualization ## Issues diff --git a/site/content/en/docs/handbook/vpn_and_proxy.md b/site/content/en/docs/handbook/vpn_and_proxy.md index 5b9260185346..44e938c1677c 100644 --- a/site/content/en/docs/handbook/vpn_and_proxy.md +++ b/site/content/en/docs/handbook/vpn_and_proxy.md @@ -20,7 +20,7 @@ If a HTTP proxy is required to access the internet, you may need to pass the pro The NO_PROXY variable here is important: Without setting it, minikube may not be able to access resources within the VM. minikube uses two IP ranges, which should not go through the proxy: -* **192.168.99.0/24**: Used by the minikube VM. Configurable for some hypervisors via `--host-only-cidr` +* **192.168.59.0/24**: Used by the minikube VM. Configurable for some hypervisors via `--host-only-cidr` * **192.168.39.0/24**: Used by the minikube kvm2 driver. * **192.168.49.0/24**: Used by the minikube docker driver's first cluster. * **10.96.0.0/12**: Used by service cluster IP's. Configurable via `--service-cluster-ip-range` @@ -34,7 +34,7 @@ One important note: If NO_PROXY is required by non-Kubernetes applications, such ```shell export HTTP_PROXY=http:// export HTTPS_PROXY=https:// -export NO_PROXY=localhost,127.0.0.1,10.96.0.0/12,192.168.99.0/24,192.168.39.0/24 +export NO_PROXY=localhost,127.0.0.1,10.96.0.0/12,192.168.59.0/24,192.168.39.0/24 minikube start ``` @@ -46,7 +46,7 @@ To make the exported variables permanent, consider adding the declarations to ~/ ```shell set HTTP_PROXY=http:// set HTTPS_PROXY=https:// -set NO_PROXY=localhost,127.0.0.1,10.96.0.0/12,192.168.99.0/24,192.168.39.0/24 +set NO_PROXY=localhost,127.0.0.1,10.96.0.0/12,192.168.59.0/24,192.168.39.0/24 minikube start ``` @@ -107,7 +107,7 @@ The supplied value of `HTTPS_PROXY` is probably incorrect. Verify that this valu minikube requires access from the host to the following IP ranges: -* **192.168.99.0/24**: Used by the minikube VM. Configurable for some hypervisors via `--host-only-cidr` +* **192.168.59.0/24**: Used by the minikube VM. Configurable for some hypervisors via `--host-only-cidr` * **192.168.39.0/24**: Used by the minikube kvm2 driver. * **10.96.0.0/12**: Used by service cluster IP's. Configurable via `--service-cluster-ip-range` From 3a90d58d8f3967f5b3f99a46097ea705d3ee1822 Mon Sep 17 00:00:00 2001 From: Sharif Elgamal Date: Tue, 2 Nov 2021 13:36:21 -0700 Subject: [PATCH 066/111] propagate ROOT_JOB_ID into cloud shell tests for proper log storage --- hack/jenkins/cloud_shell_functional_tests_docker.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/hack/jenkins/cloud_shell_functional_tests_docker.sh b/hack/jenkins/cloud_shell_functional_tests_docker.sh index 6a229375c666..c6b8968b133a 100755 --- a/hack/jenkins/cloud_shell_functional_tests_docker.sh +++ b/hack/jenkins/cloud_shell_functional_tests_docker.sh @@ -37,6 +37,7 @@ gcloud cloud-shell ssh --authorize-session << EOF COMMIT=$COMMIT EXTRA_BUILD_ARGS=$EXTRA_BUILD_ARGS access_token=$access_token + ROOT_JOB_ID=$ROOT_JOB_ID # Prevent cloud-shell is ephemeral warnings on apt-get touch ~/.cloudshell/no-apt-get-warning From 79f1b8c55c6c9f3a0bf11e5c09e061b2099d2836 Mon Sep 17 00:00:00 2001 From: Medya Gh Date: Tue, 2 Nov 2021 15:41:40 -0700 Subject: [PATCH 067/111] add --no-kubernetes flag to start minikube without kubernetes --- cmd/minikube/cmd/config/profile_list.go | 6 +++++- cmd/minikube/cmd/start.go | 28 ++++++++++++++++++++++++- cmd/minikube/cmd/start_flags.go | 2 ++ pkg/minikube/node/start.go | 18 +++++++++++----- pkg/minikube/out/out.go | 4 ++-- 5 files changed, 49 insertions(+), 9 deletions(-) diff --git a/cmd/minikube/cmd/config/profile_list.go b/cmd/minikube/cmd/config/profile_list.go index a1c86449473a..8bb2c4525bb5 100644 --- a/cmd/minikube/cmd/config/profile_list.go +++ b/cmd/minikube/cmd/config/profile_list.go @@ -164,7 +164,11 @@ func profilesToTableData(profiles []*config.Profile) [][]string { exit.Error(reason.GuestCpConfig, "error getting primary control plane", err) } - data = append(data, []string{p.Name, p.Config.Driver, p.Config.KubernetesConfig.ContainerRuntime, cp.IP, strconv.Itoa(cp.Port), p.Config.KubernetesConfig.KubernetesVersion, p.Status, strconv.Itoa(len(p.Config.Nodes))}) + k8sVersion := p.Config.KubernetesConfig.KubernetesVersion + if k8sVersion == "v0.0.0" { // for --no-kubernetes flag + k8sVersion = "N/A" + } + data = append(data, []string{p.Name, p.Config.Driver, p.Config.KubernetesConfig.ContainerRuntime, cp.IP, strconv.Itoa(cp.Port), k8sVersion, p.Status, strconv.Itoa(len(p.Config.Nodes))}) } return data } diff --git a/cmd/minikube/cmd/start.go b/cmd/minikube/cmd/start.go index 4a6246f85c43..2d6d463ec7f1 100644 --- a/cmd/minikube/cmd/start.go +++ b/cmd/minikube/cmd/start.go @@ -32,6 +32,7 @@ import ( "strconv" "strings" + "github.com/Delta456/box-cli-maker/v2" "github.com/blang/semver/v4" "github.com/docker/machine/libmachine/ssh" "github.com/google/go-containerregistry/pkg/authn" @@ -432,6 +433,17 @@ func displayEnviron(env []string) { } func showKubectlInfo(kcs *kubeconfig.Settings, k8sVersion string, machineName string) error { + if k8sVersion == "v0.0.0" { + register.Reg.SetStep(register.Done) + out.Step(style.Ready, "Done! minikube is ready without Kubernetes!") + out.BoxedWithConfig(box.Config{Py: 1, Px: 4, Type: "Round", Color: "Green"}, style.Tip, "Things to try without Kubernetes ...", `- "minikube ssh" to SSH into minikube's node. +- "minikube docker-env" to build images by pointing to the docker inside minikube +- "minikube image" to build images without docker`) + return nil + } + + // here are some ideas to do without Kubernetes: + // To be shown at the end, regardless of exit path defer func() { register.Reg.SetStep(register.Done) @@ -1463,7 +1475,6 @@ 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)) - oldestVersion, err := semver.Make(strings.TrimPrefix(constants.OldestKubernetesVersion, version.VersionPrefix)) if err != nil { exit.Message(reason.InternalSemverParse, "Unable to parse oldest Kubernetes version from constants: {{.error}}", out.V{"error": err}) @@ -1473,6 +1484,15 @@ func validateKubernetesVersion(old *config.ClusterConfig) { exit.Message(reason.InternalSemverParse, "Unable to parse default Kubernetes version from constants: {{.error}}", out.V{"error": err}) } + zeroVersion, err := semver.Make("0.0.0") + if err != nil { + exit.Message(reason.InternalSemverParse, "Unable to parse v0.0.0 Kubernetes : {{.error}}", out.V{"error": err}) + } + + if nvs.Equals(zeroVersion) { + klog.Info("No kuberentes version set for minikube, setting Kubernetes version to v0.0.0") + return + } if nvs.LT(oldestVersion) { out.WarningT("Specified Kubernetes version {{.specified}} is less than the oldest supported version: {{.oldest}}", out.V{"specified": nvs, "oldest": constants.OldestKubernetesVersion}) if !viper.GetBool(force) { @@ -1519,6 +1539,12 @@ func isBaseImageApplicable(drv string) bool { } func getKubernetesVersion(old *config.ClusterConfig) string { + if viper.GetBool(noKubernetes) { + klog.Info("No Kubernetes flag is set, setting Kubernetes version to v0.0.0") + viper.Set(kubernetesVersion, "v0.0.0") + + } + paramVersion := viper.GetString(kubernetesVersion) // try to load the old version first if the user didn't specify anything diff --git a/cmd/minikube/cmd/start_flags.go b/cmd/minikube/cmd/start_flags.go index 473816fdee4a..3d4eee832584 100644 --- a/cmd/minikube/cmd/start_flags.go +++ b/cmd/minikube/cmd/start_flags.go @@ -55,6 +55,7 @@ const ( nfsSharesRoot = "nfs-shares-root" nfsShare = "nfs-share" kubernetesVersion = "kubernetes-version" + noKubernetes = "no-kubernetes" hostOnlyCIDR = "host-only-cidr" containerRuntime = "container-runtime" criSocket = "cri-socket" @@ -164,6 +165,7 @@ func initMinikubeFlags() { startCmd.Flags().Bool(installAddons, true, "If set, install addons. Defaults to true.") startCmd.Flags().IntP(nodes, "n", 1, "The number of nodes to spin up. Defaults to 1.") startCmd.Flags().Bool(preload, true, "If set, download tarball of preloaded images if available to improve start time. Defaults to true.") + startCmd.Flags().Bool(noKubernetes, false, "If set, minikube VM/container will start without starting or configuring Kubernetes. (only works on new clusters)") startCmd.Flags().Bool(deleteOnFailure, false, "If set, delete the current cluster if start fails and try again. Defaults to false.") startCmd.Flags().Bool(forceSystemd, false, "If set, force the container runtime to use systemd as cgroup manager. Defaults to false.") startCmd.Flags().StringP(network, "", "", "network to run minikube with. Now it is used by docker/podman and KVM drivers. If left empty, minikube will create a new network.") diff --git a/pkg/minikube/node/start.go b/pkg/minikube/node/start.go index d13aadef1833..e5bd5f29a0a3 100644 --- a/pkg/minikube/node/start.go +++ b/pkg/minikube/node/start.go @@ -88,6 +88,10 @@ type Starter struct { // Start spins up a guest and starts the Kubernetes node. func Start(starter Starter, apiServer bool) (*kubeconfig.Settings, error) { + var kcs *kubeconfig.Settings + if starter.Node.KubernetesVersion == "v0.0.0" { + return kcs, config.Write(viper.GetString(config.ProfileName), starter.Cfg) + } // wait for preloaded tarball to finish downloading before configuring runtimes waitCacheRequiredImages(&cacheGroup) @@ -115,7 +119,6 @@ func Start(starter Starter, apiServer bool) (*kubeconfig.Settings, error) { } var bs bootstrapper.Bootstrapper - var kcs *kubeconfig.Settings if apiServer { // Must be written before bootstrap, otherwise health checks may flake due to stale IP kcs = setupKubeconfig(starter.Host, starter.Cfg, starter.Node, starter.Cfg.Name) @@ -286,11 +289,16 @@ func joinCluster(starter Starter, cpBs bootstrapper.Bootstrapper, bs bootstrappe func Provision(cc *config.ClusterConfig, n *config.Node, apiServer bool, delOnFail bool) (command.Runner, bool, libmachine.API, *host.Host, error) { register.Reg.SetStep(register.StartingNode) name := config.MachineName(*cc, *n) - if apiServer { - out.Step(style.ThumbsUp, "Starting control plane node {{.name}} in cluster {{.cluster}}", out.V{"name": name, "cluster": cc.Name}) - } else { - out.Step(style.ThumbsUp, "Starting node {{.name}} in cluster {{.cluster}}", out.V{"name": name, "cluster": cc.Name}) + + nodeTitle := "Starting control plane node" + if !apiServer { + nodeTitle = "Starting worker node" } + if cc.KubernetesConfig.KubernetesVersion == "v0.0.0" { + nodeTitle = "Starting minikube without Kubernetes" + } + + out.Step(style.ThumbsUp, "{{.nodeName}} {{.name}} in cluster {{.cluster}}", out.V{"nodeName": nodeTitle, "name": name, "cluster": cc.Name}) if driver.IsKIC(cc.Driver) { beginDownloadKicBaseImage(&kicGroup, cc, viper.GetBool("download-only")) diff --git a/pkg/minikube/out/out.go b/pkg/minikube/out/out.go index 8c45898741bf..df5d29b64ccb 100644 --- a/pkg/minikube/out/out.go +++ b/pkg/minikube/out/out.go @@ -134,13 +134,13 @@ func BoxedErr(format string, a ...V) { } // BoxedWithConfig writes a templated message in a box with customized style config to stdout -func BoxedWithConfig(cfg box.Config, st style.Enum, title string, format string, a ...V) { +func BoxedWithConfig(cfg box.Config, st style.Enum, title string, text string, a ...V) { if st != style.None { title = Sprintf(st, title) } // need to make sure no newlines are in the title otherwise box-cli-maker panics title = strings.ReplaceAll(title, "\n", "") - boxedCommon(String, cfg, title, format, a...) + boxedCommon(String, cfg, title, text, a...) } // Sprintf is used for returning the string (doesn't write anything) From c827bf849f5dfc43e9fe29dc9525b7a74a404f18 Mon Sep 17 00:00:00 2001 From: Medya Gh Date: Tue, 2 Nov 2021 15:44:30 -0700 Subject: [PATCH 068/111] better name --- pkg/minikube/node/start.go | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pkg/minikube/node/start.go b/pkg/minikube/node/start.go index e5bd5f29a0a3..c86f8d7202c2 100644 --- a/pkg/minikube/node/start.go +++ b/pkg/minikube/node/start.go @@ -290,15 +290,15 @@ func Provision(cc *config.ClusterConfig, n *config.Node, apiServer bool, delOnFa register.Reg.SetStep(register.StartingNode) name := config.MachineName(*cc, *n) - nodeTitle := "Starting control plane node" + startingPhrase := "Starting control plane node" if !apiServer { - nodeTitle = "Starting worker node" + startingPhrase = "Starting worker node" } if cc.KubernetesConfig.KubernetesVersion == "v0.0.0" { - nodeTitle = "Starting minikube without Kubernetes" + startingPhrase = "Starting minikube without Kubernetes" } - out.Step(style.ThumbsUp, "{{.nodeName}} {{.name}} in cluster {{.cluster}}", out.V{"nodeName": nodeTitle, "name": name, "cluster": cc.Name}) + out.Step(style.ThumbsUp, "{{.nodeName}} {{.name}} in cluster {{.cluster}}", out.V{"nodeName": startingPhrase, "name": name, "cluster": cc.Name}) if driver.IsKIC(cc.Driver) { beginDownloadKicBaseImage(&kicGroup, cc, viper.GetBool("download-only")) From 63a37d2e5315017ffcaf8079a523a6e4a53a1eb9 Mon Sep 17 00:00:00 2001 From: Sharif Elgamal Date: Tue, 2 Nov 2021 15:57:09 -0700 Subject: [PATCH 069/111] stop setting ACLs on preload tarball --- hack/preload-images/upload.go | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/hack/preload-images/upload.go b/hack/preload-images/upload.go index 89bbd8004b45..0a0e41ab50f2 100644 --- a/hack/preload-images/upload.go +++ b/hack/preload-images/upload.go @@ -34,19 +34,5 @@ func uploadTarball(tarballFilename string) error { if output, err := cmd.CombinedOutput(); err != nil { return errors.Wrapf(err, "uploading %s to GCS bucket: %v\n%s", hostPath, err, string(output)) } - // Make tarball public to all users - gcsPath := fmt.Sprintf("%s/%s", gcsDest, tarballFilename) - cmd = exec.Command("gsutil", "acl", "ch", "-u", "AllUsers:R", gcsPath) - fmt.Printf("Running: %v\n", cmd.Args) - if output, err := cmd.CombinedOutput(); err != nil { - fmt.Printf(`Failed to update ACLs on this tarball in GCS. Please run - -gsutil acl ch -u AllUsers:R %s - -manually to make this link public, or rerun this script to rebuild and reupload the tarball. - - `, gcsPath) - return errors.Wrapf(err, "uploading %s to GCS bucket: %v\n%s", hostPath, err, string(output)) - } return nil } From a0edb0b04b7dee9dc26101469e4390cd4bd4c1be Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 3 Nov 2021 00:45:05 +0000 Subject: [PATCH 070/111] Bump github.com/shirou/gopsutil/v3 from 3.21.9 to 3.21.10 Bumps [github.com/shirou/gopsutil/v3](https://github.com/shirou/gopsutil) from 3.21.9 to 3.21.10. - [Release notes](https://github.com/shirou/gopsutil/releases) - [Commits](https://github.com/shirou/gopsutil/compare/v3.21.9...v3.21.10) --- updated-dependencies: - dependency-name: github.com/shirou/gopsutil/v3 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- go.mod | 5 +++-- go.sum | 10 +++++++--- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/go.mod b/go.mod index bcb8ab776286..8cdbafb1a2cf 100644 --- a/go.mod +++ b/go.mod @@ -66,7 +66,7 @@ require ( github.com/pmezard/go-difflib v1.0.0 github.com/russross/blackfriday v1.5.3-0.20200218234912-41c5fccfd6f6 // indirect github.com/samalba/dockerclient v0.0.0-20160414174713-91d7393ff859 // indirect - github.com/shirou/gopsutil/v3 v3.21.9 + github.com/shirou/gopsutil/v3 v3.21.10 github.com/spf13/cobra v1.2.1 github.com/spf13/pflag v1.0.5 github.com/spf13/viper v1.9.0 @@ -134,7 +134,7 @@ require ( github.com/go-fonts/liberation v0.2.0 // indirect github.com/go-latex/latex v0.0.0-20210823091927-c0d11ff05a81 // indirect github.com/go-logr/logr v1.2.0 // indirect - github.com/go-ole/go-ole v1.2.5 // indirect + github.com/go-ole/go-ole v1.2.6 // indirect github.com/go-pdf/fpdf v0.5.0 // indirect github.com/gogo/protobuf v1.3.2 // indirect github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0 // indirect @@ -155,6 +155,7 @@ require ( github.com/jmespath/go-jmespath v0.4.0 // indirect github.com/json-iterator/go v1.1.11 // indirect github.com/klauspost/compress v1.13.0 // indirect + github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 // indirect github.com/magiconair/properties v1.8.5 // indirect github.com/mattn/go-colorable v0.1.8 // indirect github.com/mattn/go-runewidth v0.0.13 // indirect diff --git a/go.sum b/go.sum index 99afff8b0e8f..ba5fa58bc8e0 100644 --- a/go.sum +++ b/go.sum @@ -453,8 +453,9 @@ github.com/go-logr/logr v0.2.0/go.mod h1:z6/tIYblkpsD+a4lm/fGIIU9mZ+XfAiaFtq7xTg github.com/go-logr/logr v0.4.0/go.mod h1:z6/tIYblkpsD+a4lm/fGIIU9mZ+XfAiaFtq7xTgseGU= github.com/go-logr/logr v1.2.0 h1:QK40JKJyMdUDz+h+xvCsru/bJhvG0UxvePV0ufL/AcE= github.com/go-logr/logr v1.2.0/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= -github.com/go-ole/go-ole v1.2.5 h1:t4MGB5xEDZvXI+0rMjjsfBsD7yAgp/s9ZDkL1JndXwY= github.com/go-ole/go-ole v1.2.5/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= +github.com/go-ole/go-ole v1.2.6 h1:/Fpf6oFPoeFik9ty7siob0G6Ke8QvQEuVcuChpwXzpY= +github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= github.com/go-openapi/analysis v0.0.0-20180825180245-b006789cd277/go.mod h1:k70tL6pCuVxPJOHXQ+wIac1FUrvNkHolPie/cLEU6hI= github.com/go-openapi/analysis v0.17.0/go.mod h1:IowGgpVeD0vNm45So8nr+IcQ3pxVtpRoBWb8PVZO0ik= github.com/go-openapi/analysis v0.18.0/go.mod h1:IowGgpVeD0vNm45So8nr+IcQ3pxVtpRoBWb8PVZO0ik= @@ -792,6 +793,8 @@ github.com/lucas-clemente/aes12 v0.0.0-20171027163421-cd47fb39b79f/go.mod h1:JpH github.com/lucas-clemente/quic-clients v0.1.0/go.mod h1:y5xVIEoObKqULIKivu+gD/LU90pL73bTdtQjPBvtCBk= github.com/lucas-clemente/quic-go v0.10.2/go.mod h1:hvaRS9IHjFLMq76puFJeWNfmn+H70QZ/CXoxqw9bzao= github.com/lucas-clemente/quic-go-certificates v0.0.0-20160823095156-d2f86524cced/go.mod h1:NCcRLrOTZbzhZvixZLlERbJtDtYsmMw8Jc4vS8Z0g58= +github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 h1:6E+4a0GO5zZEnZ81pIr0yLvtUWk2if982qA3F3QD6H4= +github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0/go.mod h1:zJYVVT2jmtg6P3p1VtQj7WsuWi/y4VnjVBn7F8KPB3I= github.com/machine-drivers/docker-machine-driver-vmware v0.1.5 h1:51GqJ84u9EBATnn8rWsHNavcuRPlCLnDmvjzZVuliwY= github.com/machine-drivers/docker-machine-driver-vmware v0.1.5/go.mod h1:dTnTzUH3uzhMo0ddV1zRjGYWcVhQWwqiHPxz5l+HPd0= github.com/machine-drivers/machine v0.7.1-0.20210719174735-6eca26732baa h1:RDn5zVjqpQP8yElV/30YUNiDsjksDSqq30JVQfo1wzY= @@ -1052,8 +1055,8 @@ github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg github.com/seccomp/libseccomp-golang v0.9.1/go.mod h1:GbW5+tmTXfcxTToHLXlScSlAvWlF4P2Ca7zGrPiEpWo= github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo= github.com/sergi/go-diff v1.1.0/go.mod h1:STckp+ISIX8hZLjrqAeVduY0gWCT9IjLuqbuNXdaHfM= -github.com/shirou/gopsutil/v3 v3.21.9 h1:Vn4MUz2uXhqLSiCbGFRc0DILbMVLAY92DSkT8bsYrHg= -github.com/shirou/gopsutil/v3 v3.21.9/go.mod h1:YWp/H8Qs5fVmf17v7JNZzA0mPJ+mS2e9JdiUF9LlKzQ= +github.com/shirou/gopsutil/v3 v3.21.10 h1:flTg1DrnV/UVrBqjLgVgDJzx6lf+91rC64/dBHmO2IA= +github.com/shirou/gopsutil/v3 v3.21.10/go.mod h1:t75NhzCZ/dYyPQjyQmrAYP6c8+LCdFANeBMdLPCNnew= github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= github.com/sirupsen/logrus v1.0.4-0.20170822132746-89742aefa4b2/go.mod h1:pMByvHTf9Beacp5x1UXfOR9xyW/9antXMhjMPG0dEzc= github.com/sirupsen/logrus v1.0.6/go.mod h1:pMByvHTf9Beacp5x1UXfOR9xyW/9antXMhjMPG0dEzc= @@ -1495,6 +1498,7 @@ golang.org/x/sys v0.0.0-20210823070655-63515b42dcdf/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20210908233432-aa78b53d3365/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210917161153-d61c044b1678/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211007075335-d3039528d8ac/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20211013075003-97ac67df715c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211025201205-69cdffdb9359 h1:2B5p2L5IfGiD7+b9BOoRMC6DgObAVZV+Fsp050NqXik= golang.org/x/sys v0.0.0-20211025201205-69cdffdb9359/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= From b75de1980a7efd2fc96eb4a01e67169d66499b8e Mon Sep 17 00:00:00 2001 From: Sharif Elgamal Date: Wed, 3 Nov 2021 09:12:38 -0700 Subject: [PATCH 071/111] Add Cloud Shell tests to flake rate chart list --- site/content/en/docs/contrib/test_flakes.en.md | 1 + 1 file changed, 1 insertion(+) diff --git a/site/content/en/docs/contrib/test_flakes.en.md b/site/content/en/docs/contrib/test_flakes.en.md index 6be126624c1b..d6b7f52b4983 100644 --- a/site/content/en/docs/contrib/test_flakes.en.md +++ b/site/content/en/docs/contrib/test_flakes.en.md @@ -21,3 +21,4 @@ description: > |MacOS|hyperkit|docker|[Hyperkit_macOS](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Hyperkit_macOS)| |Windows|docker|docker|[Docker_Windows](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_Windows)| |Windows|hyperv|docker|[Hyper-V_Windows](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Hyper-V_Windows)| +|Cloud Shell|docker|docker|[Docker_Cloud_Shell](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_Cloud_Shell)| From f0f1819123f4b0fcc51237bb8324f916783735f7 Mon Sep 17 00:00:00 2001 From: Steven Powell Date: Wed, 3 Nov 2021 10:12:41 -0700 Subject: [PATCH 072/111] output empty addons objects on JSON --- cmd/minikube/cmd/config/addons_list.go | 9 +++++---- cmd/minikube/cmd/config/addons_list_test.go | 22 +++++++++++++-------- 2 files changed, 19 insertions(+), 12 deletions(-) diff --git a/cmd/minikube/cmd/config/addons_list.go b/cmd/minikube/cmd/config/addons_list.go index 3052a214295e..a76b9768c8c1 100644 --- a/cmd/minikube/cmd/config/addons_list.go +++ b/cmd/minikube/cmd/config/addons_list.go @@ -137,10 +137,6 @@ var printAddonsList = func(cc *config.ClusterConfig) { } var printAddonsJSON = func(cc *config.ClusterConfig) { - if cc == nil { - out.String("{}") - return - } addonNames := make([]string, 0, len(assets.Addons)) for addonName := range assets.Addons { addonNames = append(addonNames, addonName) @@ -150,6 +146,11 @@ var printAddonsJSON = func(cc *config.ClusterConfig) { addonsMap := map[string]map[string]interface{}{} for _, addonName := range addonNames { + if cc == nil { + addonsMap[addonName] = map[string]interface{}{} + continue + } + addonBundle := assets.Addons[addonName] enabled := addonBundle.IsEnabled(cc) diff --git a/cmd/minikube/cmd/config/addons_list_test.go b/cmd/minikube/cmd/config/addons_list_test.go index 7b8a834d2bef..381295d392a7 100644 --- a/cmd/minikube/cmd/config/addons_list_test.go +++ b/cmd/minikube/cmd/config/addons_list_test.go @@ -17,7 +17,7 @@ limitations under the License. package config import ( - "log" + "encoding/json" "os" "testing" @@ -39,7 +39,7 @@ func TestAddonsList(t *testing.T) { t.Fatalf("failed to close pipe: %v", err) } if _, err := r.Read(b); err != nil { - log.Fatalf("failed to read bytes: %v", err) + t.Fatalf("failed to read bytes: %v", err) } got := string(b) expected := `|-----------------------------|-----------------------| @@ -51,7 +51,11 @@ func TestAddonsList(t *testing.T) { }) t.Run("NonExistingClusterJSON", func(t *testing.T) { - b := make([]byte, 2) + type addons struct { + Ambassador *interface{} `json:"ambassador"` + } + + b := make([]byte, 534) r, w, err := os.Pipe() if err != nil { t.Fatalf("failed to create pipe: %v", err) @@ -68,12 +72,14 @@ func TestAddonsList(t *testing.T) { t.Fatalf("failed to close pipe: %v", err) } if _, err := r.Read(b); err != nil { - log.Fatalf("failed to read bytes: %v", err) + t.Fatalf("failed to read bytes: %v", err) } - got := string(b) - expected := "{}" - if got != expected { - t.Errorf("Expected = %q; got = %q", expected, got) + got := addons{} + if err := json.Unmarshal(b, &got); err != nil { + t.Fatalf("failed to unmarshal output; output: %q; err: %v", string(b), err) + } + if got.Ambassador == nil { + t.Errorf("expected `ambassador` field to not be nil, but was") } }) } From 3d0f486d8492f79275d7f4536e481759a4e6e5f9 Mon Sep 17 00:00:00 2001 From: Medya Gh Date: Wed, 3 Nov 2021 14:08:01 -0700 Subject: [PATCH 073/111] add integration test for --no-kubernetes --- cmd/minikube/cmd/start.go | 2 +- test/integration/no_kubernetes.go | 135 ++++++++++++++++++++++++++++++ 2 files changed, 136 insertions(+), 1 deletion(-) create mode 100644 test/integration/no_kubernetes.go diff --git a/cmd/minikube/cmd/start.go b/cmd/minikube/cmd/start.go index 2d6d463ec7f1..a933591cac8a 100644 --- a/cmd/minikube/cmd/start.go +++ b/cmd/minikube/cmd/start.go @@ -437,7 +437,7 @@ func showKubectlInfo(kcs *kubeconfig.Settings, k8sVersion string, machineName st register.Reg.SetStep(register.Done) out.Step(style.Ready, "Done! minikube is ready without Kubernetes!") out.BoxedWithConfig(box.Config{Py: 1, Px: 4, Type: "Round", Color: "Green"}, style.Tip, "Things to try without Kubernetes ...", `- "minikube ssh" to SSH into minikube's node. -- "minikube docker-env" to build images by pointing to the docker inside minikube +- "minikube docker-env" to point your docker-cli to the docker inside minikube. - "minikube image" to build images without docker`) return nil } diff --git a/test/integration/no_kubernetes.go b/test/integration/no_kubernetes.go new file mode 100644 index 000000000000..1530f5e7106e --- /dev/null +++ b/test/integration/no_kubernetes.go @@ -0,0 +1,135 @@ +//go:build integration +// +build integration + +/* +Copyright 2021 The Kubernetes Authors All rights reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package integration + +import ( + "context" + "os/exec" + "strings" + "testing" +) + +// TestNoKubernetes tests starting minikube without Kubernetes, +// for usecases where user only needs to use the container runtime (docker,containerd,crio) inside minikube +func TestNoKubernetes(t *testing.T) { + MaybeParallel(t) + + type validateFunc func(context.Context, *testing.T, string) + profile := UniqueProfileName("NoKubernetes") + ctx, cancel := context.WithTimeout(context.Background(), Minutes(5)) + defer Cleanup(t, profile, cancel) + + // Serial tests + t.Run("serial", func(t *testing.T) { + tests := []struct { + name string + validator validateFunc + }{ + {"Start", validateStartNoK8S}, + {"VerifyK8sNotRunning", validateK8SNotRunning}, + {"ProfileList", validateProfileListNoK8S}, + {"Stop", validateStopNoK8S}, + {"StartNoArgs", validateStartNorArgs}, + {"VerifyK8sNotRunningSecond", validateK8SNotRunning}, + } + + for _, tc := range tests { + tc := tc + + if ctx.Err() == context.DeadlineExceeded { + t.Fatalf("Unable to run more tests (deadline exceeded)") + } + + t.Run(tc.name, func(t *testing.T) { + tc.validator(ctx, t, profile) + if t.Failed() && *postMortemLogs { + PostMortemLogs(t, profile) + } + }) + } + }) +} + +// validateStartNoK8S starts a minikube cluster without kuberentes started/configured +func validateStartNoK8S(ctx context.Context, t *testing.T, profile string) { + defer PostMortemLogs(t, profile) + + args := append([]string{"start", "-p", profile, "--no-kubernetes"}, StartArgs()...) + rr, err := Run(t, exec.CommandContext(ctx, Target(), args...)) + if err != nil { + t.Fatalf("failed to start minikube with args: %q : %v", rr.Command(), err) + } +} + +// validateK8SNotRunning validates that there is no kubernetes running inside minikube +func validateK8SNotRunning(ctx context.Context, t *testing.T, profile string) { + defer PostMortemLogs(t, profile) + + args := []string{"ssh", "-p", profile, "sudo systemctl is-active --quiet service kubelet"} + rr, err := Run(t, exec.CommandContext(ctx, Target(), args...)) + if err == nil { + t.Fatalf("Expected Kubelet not to be running and but it is running : %q : %v", rr.Command(), err) + } +} + +// validateStopNoK8S validates that minikube is stopped after a --no-kubernetes start +func validateStopNoK8S(ctx context.Context, t *testing.T, profile string) { + defer PostMortemLogs(t, profile) + + args := []string{"stop", "-p", profile} + rr, err := Run(t, exec.CommandContext(ctx, Target(), args...)) + if err != nil { + t.Fatalf("Failed to stop minikbue %q : %v", rr.Command(), err) + } +} + +// validateProfileListNoK8S validates that profile list works with --no-kubernetes +func validateProfileListNoK8S(ctx context.Context, t *testing.T, profile string) { + defer PostMortemLogs(t, profile) + + args := []string{"profile", "list"} + rr, err := Run(t, exec.CommandContext(ctx, Target(), args...)) + if err != nil { + t.Fatalf("Profile list failed : %q : %v", rr.Command(), err) + } + + if !strings.Contains(rr.Output(), "N/A") { + t.Fatalf("expected N/A in the profile list for kubernets version but got : %q : %v", rr.Command(), rr.Output()) + } + + args = []string{"profile", "list", "--output=json"} + rr, err = Run(t, exec.CommandContext(ctx, Target(), args...)) + if err != nil { + t.Fatalf("Profile list --output=json failed : %q : %v", rr.Command(), err) + } + +} + +// validateStartNorArgs valides that minikube start with no args works +func validateStartNorArgs(ctx context.Context, t *testing.T, profile string) { + defer PostMortemLogs(t, profile) + + args := append([]string{"start", "-p", profile, "--no-kubernetes"}, StartArgs()...) + rr, err := Run(t, exec.CommandContext(ctx, Target(), args...)) + if err != nil { + t.Fatalf("failed to start minikube with args: %q : %v", rr.Command(), err) + } + +} From bfdc3cfdea84589d5845d6e3109a9839b73aa422 Mon Sep 17 00:00:00 2001 From: Medya Gh Date: Wed, 3 Nov 2021 14:13:04 -0700 Subject: [PATCH 074/111] address review comments --- cmd/minikube/cmd/start.go | 21 +++++---------------- pkg/minikube/constants/constants.go | 3 +++ 2 files changed, 8 insertions(+), 16 deletions(-) diff --git a/cmd/minikube/cmd/start.go b/cmd/minikube/cmd/start.go index a933591cac8a..b0255977005e 100644 --- a/cmd/minikube/cmd/start.go +++ b/cmd/minikube/cmd/start.go @@ -1475,22 +1475,12 @@ 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)) - oldestVersion, err := semver.Make(strings.TrimPrefix(constants.OldestKubernetesVersion, version.VersionPrefix)) - if err != nil { - exit.Message(reason.InternalSemverParse, "Unable to parse oldest Kubernetes version from constants: {{.error}}", out.V{"error": err}) - } - defaultVersion, err := semver.Make(strings.TrimPrefix(constants.DefaultKubernetesVersion, version.VersionPrefix)) - if err != nil { - exit.Message(reason.InternalSemverParse, "Unable to parse default Kubernetes version from constants: {{.error}}", out.V{"error": err}) - } - - zeroVersion, err := semver.Make("0.0.0") - if err != nil { - exit.Message(reason.InternalSemverParse, "Unable to parse v0.0.0 Kubernetes : {{.error}}", out.V{"error": err}) - } + oldestVersion := semver.MustParse(strings.TrimPrefix(constants.OldestKubernetesVersion, version.VersionPrefix)) + defaultVersion := semver.MustParse(strings.TrimPrefix(constants.DefaultKubernetesVersion, version.VersionPrefix)) + zeroVersion := semver.MustParse(strings.TrimPrefix(constants.NoKubernetesVersion, version.VersionPrefix)) if nvs.Equals(zeroVersion) { - klog.Info("No kuberentes version set for minikube, setting Kubernetes version to v0.0.0") + klog.Infof("No Kuberentes version set for minikube, setting Kubernetes version to %s", constants.NoKubernetesVersion) return } if nvs.LT(oldestVersion) { @@ -1541,8 +1531,7 @@ func isBaseImageApplicable(drv string) bool { func getKubernetesVersion(old *config.ClusterConfig) string { if viper.GetBool(noKubernetes) { klog.Info("No Kubernetes flag is set, setting Kubernetes version to v0.0.0") - viper.Set(kubernetesVersion, "v0.0.0") - + viper.Set(kubernetesVersion, constants.NoKubernetesVersion) } paramVersion := viper.GetString(kubernetesVersion) diff --git a/pkg/minikube/constants/constants.go b/pkg/minikube/constants/constants.go index a4cd62876878..583ad3cda17c 100644 --- a/pkg/minikube/constants/constants.go +++ b/pkg/minikube/constants/constants.go @@ -40,6 +40,9 @@ const ( NewestKubernetesVersion = "v1.22.4-rc.0" // OldestKubernetesVersion is the oldest Kubernetes version to test against OldestKubernetesVersion = "v1.14.0" + // NoKubernetesVersion is the version used when users does NOT want to install kubernetes + NoKubernetesVersion = "v0.0.0" + // DefaultClusterName is the default nane for the k8s cluster DefaultClusterName = "minikube" // DockerDaemonPort is the port Docker daemon listening inside a minikube node (vm or container). From cd9d263b9f88b02a34d3ef4fc15d4101850c8767 Mon Sep 17 00:00:00 2001 From: Medya Gh Date: Wed, 3 Nov 2021 14:13:26 -0700 Subject: [PATCH 075/111] address review comments --- cmd/minikube/cmd/start.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmd/minikube/cmd/start.go b/cmd/minikube/cmd/start.go index b0255977005e..1a0b20f14461 100644 --- a/cmd/minikube/cmd/start.go +++ b/cmd/minikube/cmd/start.go @@ -1530,7 +1530,7 @@ func isBaseImageApplicable(drv string) bool { func getKubernetesVersion(old *config.ClusterConfig) string { if viper.GetBool(noKubernetes) { - klog.Info("No Kubernetes flag is set, setting Kubernetes version to v0.0.0") + klog.Infof("No Kubernetes flag is set, setting Kubernetes version to %s", constants.NoKubernetesVersion) viper.Set(kubernetesVersion, constants.NoKubernetesVersion) } From 5bcdba0a09732e78fda7e6a19a5fa027600fae67 Mon Sep 17 00:00:00 2001 From: Medya Gh Date: Wed, 3 Nov 2021 14:16:04 -0700 Subject: [PATCH 076/111] add more constants --- cmd/minikube/cmd/config/profile_list.go | 3 ++- cmd/minikube/cmd/start.go | 2 +- pkg/minikube/node/start.go | 4 ++-- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/cmd/minikube/cmd/config/profile_list.go b/cmd/minikube/cmd/config/profile_list.go index 8bb2c4525bb5..d03def8718a9 100644 --- a/cmd/minikube/cmd/config/profile_list.go +++ b/cmd/minikube/cmd/config/profile_list.go @@ -25,6 +25,7 @@ import ( "k8s.io/minikube/pkg/minikube/bootstrapper/bsutil/kverify" "k8s.io/minikube/pkg/minikube/config" + "k8s.io/minikube/pkg/minikube/constants" "k8s.io/minikube/pkg/minikube/driver" "k8s.io/minikube/pkg/minikube/exit" "k8s.io/minikube/pkg/minikube/machine" @@ -165,7 +166,7 @@ func profilesToTableData(profiles []*config.Profile) [][]string { } k8sVersion := p.Config.KubernetesConfig.KubernetesVersion - if k8sVersion == "v0.0.0" { // for --no-kubernetes flag + if k8sVersion == constants.NoKubernetesVersion { // for --no-kubernetes flag k8sVersion = "N/A" } data = append(data, []string{p.Name, p.Config.Driver, p.Config.KubernetesConfig.ContainerRuntime, cp.IP, strconv.Itoa(cp.Port), k8sVersion, p.Status, strconv.Itoa(len(p.Config.Nodes))}) diff --git a/cmd/minikube/cmd/start.go b/cmd/minikube/cmd/start.go index 1a0b20f14461..17de83b3570d 100644 --- a/cmd/minikube/cmd/start.go +++ b/cmd/minikube/cmd/start.go @@ -433,7 +433,7 @@ func displayEnviron(env []string) { } func showKubectlInfo(kcs *kubeconfig.Settings, k8sVersion string, machineName string) error { - if k8sVersion == "v0.0.0" { + if k8sVersion == constants.NoKubernetesVersion { register.Reg.SetStep(register.Done) out.Step(style.Ready, "Done! minikube is ready without Kubernetes!") out.BoxedWithConfig(box.Config{Py: 1, Px: 4, Type: "Round", Color: "Green"}, style.Tip, "Things to try without Kubernetes ...", `- "minikube ssh" to SSH into minikube's node. diff --git a/pkg/minikube/node/start.go b/pkg/minikube/node/start.go index c86f8d7202c2..d6d063e6b66f 100644 --- a/pkg/minikube/node/start.go +++ b/pkg/minikube/node/start.go @@ -89,7 +89,7 @@ type Starter struct { // Start spins up a guest and starts the Kubernetes node. func Start(starter Starter, apiServer bool) (*kubeconfig.Settings, error) { var kcs *kubeconfig.Settings - if starter.Node.KubernetesVersion == "v0.0.0" { + if starter.Node.KubernetesVersion == constants.NoKubernetesVersion { // do not bootstrap cluster if --no-kubernetes return kcs, config.Write(viper.GetString(config.ProfileName), starter.Cfg) } // wait for preloaded tarball to finish downloading before configuring runtimes @@ -294,7 +294,7 @@ func Provision(cc *config.ClusterConfig, n *config.Node, apiServer bool, delOnFa if !apiServer { startingPhrase = "Starting worker node" } - if cc.KubernetesConfig.KubernetesVersion == "v0.0.0" { + if cc.KubernetesConfig.KubernetesVersion == constants.NoKubernetesVersion { startingPhrase = "Starting minikube without Kubernetes" } From d3ec072193fd7345d1145fc37216db2605deb136 Mon Sep 17 00:00:00 2001 From: Medya Ghazizadeh Date: Wed, 3 Nov 2021 14:24:17 -0700 Subject: [PATCH 077/111] Update test/integration/no_kubernetes.go Co-authored-by: Steven Powell <44844360+spowelljr@users.noreply.github.com> --- test/integration/no_kubernetes.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/integration/no_kubernetes.go b/test/integration/no_kubernetes.go index 1530f5e7106e..bdbed75a5fe5 100644 --- a/test/integration/no_kubernetes.go +++ b/test/integration/no_kubernetes.go @@ -96,7 +96,7 @@ func validateStopNoK8S(ctx context.Context, t *testing.T, profile string) { args := []string{"stop", "-p", profile} rr, err := Run(t, exec.CommandContext(ctx, Target(), args...)) if err != nil { - t.Fatalf("Failed to stop minikbue %q : %v", rr.Command(), err) + t.Fatalf("Failed to stop minikube %q : %v", rr.Command(), err) } } From 47307d71af40f684c777e419284100ca1ffdf34b Mon Sep 17 00:00:00 2001 From: Medya Ghazizadeh Date: Wed, 3 Nov 2021 14:24:28 -0700 Subject: [PATCH 078/111] Update test/integration/no_kubernetes.go Co-authored-by: Steven Powell <44844360+spowelljr@users.noreply.github.com> --- test/integration/no_kubernetes.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/integration/no_kubernetes.go b/test/integration/no_kubernetes.go index bdbed75a5fe5..0f73eb978a59 100644 --- a/test/integration/no_kubernetes.go +++ b/test/integration/no_kubernetes.go @@ -122,7 +122,7 @@ func validateProfileListNoK8S(ctx context.Context, t *testing.T, profile string) } -// validateStartNorArgs valides that minikube start with no args works +// validateStartNoArgs valides that minikube start with no args works func validateStartNorArgs(ctx context.Context, t *testing.T, profile string) { defer PostMortemLogs(t, profile) From 51e612f94a2a564707d9896f64af7ceb5f931a3b Mon Sep 17 00:00:00 2001 From: Medya Ghazizadeh Date: Wed, 3 Nov 2021 14:24:33 -0700 Subject: [PATCH 079/111] Update test/integration/no_kubernetes.go Co-authored-by: Steven Powell <44844360+spowelljr@users.noreply.github.com> --- test/integration/no_kubernetes.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/integration/no_kubernetes.go b/test/integration/no_kubernetes.go index 0f73eb978a59..b085d118d05d 100644 --- a/test/integration/no_kubernetes.go +++ b/test/integration/no_kubernetes.go @@ -111,7 +111,7 @@ func validateProfileListNoK8S(ctx context.Context, t *testing.T, profile string) } if !strings.Contains(rr.Output(), "N/A") { - t.Fatalf("expected N/A in the profile list for kubernets version but got : %q : %v", rr.Command(), rr.Output()) + t.Fatalf("expected N/A in the profile list for kubernetes version but got : %q : %v", rr.Command(), rr.Output()) } args = []string{"profile", "list", "--output=json"} From 1200c8e1779611f73780f0c1c2847f51dc40f278 Mon Sep 17 00:00:00 2001 From: Medya Ghazizadeh Date: Wed, 3 Nov 2021 14:24:38 -0700 Subject: [PATCH 080/111] Update test/integration/no_kubernetes.go Co-authored-by: Steven Powell <44844360+spowelljr@users.noreply.github.com> --- test/integration/no_kubernetes.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/integration/no_kubernetes.go b/test/integration/no_kubernetes.go index b085d118d05d..c0ab1aa00a9a 100644 --- a/test/integration/no_kubernetes.go +++ b/test/integration/no_kubernetes.go @@ -46,7 +46,7 @@ func TestNoKubernetes(t *testing.T) { {"VerifyK8sNotRunning", validateK8SNotRunning}, {"ProfileList", validateProfileListNoK8S}, {"Stop", validateStopNoK8S}, - {"StartNoArgs", validateStartNorArgs}, + {"StartNoArgs", validateStartNoArgs}, {"VerifyK8sNotRunningSecond", validateK8SNotRunning}, } From f54f95d12726bd4003ad4b4c584ca19fa89073df Mon Sep 17 00:00:00 2001 From: Medya Ghazizadeh Date: Wed, 3 Nov 2021 14:24:45 -0700 Subject: [PATCH 081/111] Update test/integration/no_kubernetes.go Co-authored-by: Steven Powell <44844360+spowelljr@users.noreply.github.com> --- test/integration/no_kubernetes.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/integration/no_kubernetes.go b/test/integration/no_kubernetes.go index c0ab1aa00a9a..baf3f42742b0 100644 --- a/test/integration/no_kubernetes.go +++ b/test/integration/no_kubernetes.go @@ -67,7 +67,7 @@ func TestNoKubernetes(t *testing.T) { }) } -// validateStartNoK8S starts a minikube cluster without kuberentes started/configured +// validateStartNoK8S starts a minikube cluster without kubernetes started/configured func validateStartNoK8S(ctx context.Context, t *testing.T, profile string) { defer PostMortemLogs(t, profile) From e15065ae68d2193cd1ab7f5d8135e3599c1a4e1f Mon Sep 17 00:00:00 2001 From: Medya Ghazizadeh Date: Wed, 3 Nov 2021 14:24:51 -0700 Subject: [PATCH 082/111] Update test/integration/no_kubernetes.go Co-authored-by: Steven Powell <44844360+spowelljr@users.noreply.github.com> --- test/integration/no_kubernetes.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/integration/no_kubernetes.go b/test/integration/no_kubernetes.go index baf3f42742b0..74fe15c2046d 100644 --- a/test/integration/no_kubernetes.go +++ b/test/integration/no_kubernetes.go @@ -27,7 +27,7 @@ import ( ) // TestNoKubernetes tests starting minikube without Kubernetes, -// for usecases where user only needs to use the container runtime (docker,containerd,crio) inside minikube +// for use cases where user only needs to use the container runtime (docker, containerd, crio) inside minikube func TestNoKubernetes(t *testing.T) { MaybeParallel(t) From 0ef4fc54e65a01cf1806f3a3b54e293d9ae18e4c Mon Sep 17 00:00:00 2001 From: Medya Ghazizadeh Date: Wed, 3 Nov 2021 14:24:57 -0700 Subject: [PATCH 083/111] Update test/integration/no_kubernetes.go Co-authored-by: Steven Powell <44844360+spowelljr@users.noreply.github.com> --- test/integration/no_kubernetes.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/integration/no_kubernetes.go b/test/integration/no_kubernetes.go index 74fe15c2046d..3617a129d98a 100644 --- a/test/integration/no_kubernetes.go +++ b/test/integration/no_kubernetes.go @@ -123,7 +123,7 @@ func validateProfileListNoK8S(ctx context.Context, t *testing.T, profile string) } // validateStartNoArgs valides that minikube start with no args works -func validateStartNorArgs(ctx context.Context, t *testing.T, profile string) { +func validateStartNoArgs(ctx context.Context, t *testing.T, profile string) { defer PostMortemLogs(t, profile) args := append([]string{"start", "-p", profile, "--no-kubernetes"}, StartArgs()...) From 6806e6980aafae7d86b01b14ae7b902aa99cc579 Mon Sep 17 00:00:00 2001 From: Medya Gh Date: Thu, 4 Nov 2021 11:09:50 -0700 Subject: [PATCH 084/111] fix integration test file name --- test/integration/{no_kubernetes.go => no_kubernetes_test.go} | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename test/integration/{no_kubernetes.go => no_kubernetes_test.go} (98%) diff --git a/test/integration/no_kubernetes.go b/test/integration/no_kubernetes_test.go similarity index 98% rename from test/integration/no_kubernetes.go rename to test/integration/no_kubernetes_test.go index 3617a129d98a..7294c56e110b 100644 --- a/test/integration/no_kubernetes.go +++ b/test/integration/no_kubernetes_test.go @@ -126,7 +126,7 @@ func validateProfileListNoK8S(ctx context.Context, t *testing.T, profile string) func validateStartNoArgs(ctx context.Context, t *testing.T, profile string) { defer PostMortemLogs(t, profile) - args := append([]string{"start", "-p", profile, "--no-kubernetes"}, StartArgs()...) + args := append([]string{"start", "-p", profile}, StartArgs()...) rr, err := Run(t, exec.CommandContext(ctx, Target(), args...)) if err != nil { t.Fatalf("failed to start minikube with args: %q : %v", rr.Command(), err) From 630e02d96bdc9e6c17abf5bf59954526fd442aef Mon Sep 17 00:00:00 2001 From: Medya Ghazizadeh Date: Thu, 4 Nov 2021 11:10:18 -0700 Subject: [PATCH 085/111] Update cmd/minikube/cmd/start.go Co-authored-by: Steven Powell <44844360+spowelljr@users.noreply.github.com> --- cmd/minikube/cmd/start.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmd/minikube/cmd/start.go b/cmd/minikube/cmd/start.go index 17de83b3570d..7b125b59ef9b 100644 --- a/cmd/minikube/cmd/start.go +++ b/cmd/minikube/cmd/start.go @@ -438,7 +438,7 @@ func showKubectlInfo(kcs *kubeconfig.Settings, k8sVersion string, machineName st out.Step(style.Ready, "Done! minikube is ready without Kubernetes!") out.BoxedWithConfig(box.Config{Py: 1, Px: 4, Type: "Round", Color: "Green"}, style.Tip, "Things to try without Kubernetes ...", `- "minikube ssh" to SSH into minikube's node. - "minikube docker-env" to point your docker-cli to the docker inside minikube. -- "minikube image" to build images without docker`) +- "minikube image" to build images without docker.`) return nil } From a108c71ea9d4512a552015fe36e56c3dc6bf8ec7 Mon Sep 17 00:00:00 2001 From: Medya Gh Date: Thu, 4 Nov 2021 11:16:27 -0700 Subject: [PATCH 086/111] remove comment --- cmd/minikube/cmd/start.go | 2 -- 1 file changed, 2 deletions(-) diff --git a/cmd/minikube/cmd/start.go b/cmd/minikube/cmd/start.go index 7b125b59ef9b..324b0235fe46 100644 --- a/cmd/minikube/cmd/start.go +++ b/cmd/minikube/cmd/start.go @@ -442,8 +442,6 @@ func showKubectlInfo(kcs *kubeconfig.Settings, k8sVersion string, machineName st return nil } - // here are some ideas to do without Kubernetes: - // To be shown at the end, regardless of exit path defer func() { register.Reg.SetStep(register.Done) From 92cf41d68634a6bc9af61894318aaa82b19eeccb Mon Sep 17 00:00:00 2001 From: Medya Gh Date: Thu, 4 Nov 2021 12:22:29 -0700 Subject: [PATCH 087/111] do not set global viper config --- cmd/minikube/cmd/start.go | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/cmd/minikube/cmd/start.go b/cmd/minikube/cmd/start.go index 324b0235fe46..4e6783a151b0 100644 --- a/cmd/minikube/cmd/start.go +++ b/cmd/minikube/cmd/start.go @@ -1529,7 +1529,9 @@ func isBaseImageApplicable(drv string) bool { func getKubernetesVersion(old *config.ClusterConfig) string { if viper.GetBool(noKubernetes) { klog.Infof("No Kubernetes flag is set, setting Kubernetes version to %s", constants.NoKubernetesVersion) - viper.Set(kubernetesVersion, constants.NoKubernetesVersion) + if old != nil { + old.KubernetesConfig.KubernetesVersion = constants.NoKubernetesVersion + } } paramVersion := viper.GetString(kubernetesVersion) From 75e6ba6637a70f9b6ebcdc0b1a4253a290d1305c Mon Sep 17 00:00:00 2001 From: Medya Gh Date: Thu, 4 Nov 2021 12:35:12 -0700 Subject: [PATCH 088/111] better translate --- pkg/minikube/node/start.go | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/pkg/minikube/node/start.go b/pkg/minikube/node/start.go index d6d063e6b66f..67e69cfa679e 100644 --- a/pkg/minikube/node/start.go +++ b/pkg/minikube/node/start.go @@ -290,15 +290,17 @@ func Provision(cc *config.ClusterConfig, n *config.Node, apiServer bool, delOnFa register.Reg.SetStep(register.StartingNode) name := config.MachineName(*cc, *n) - startingPhrase := "Starting control plane node" - if !apiServer { - startingPhrase = "Starting worker node" - } + // for sake of trasnlation process be easy we make the code a bit more verbose and the if statements may seem unnessecary if cc.KubernetesConfig.KubernetesVersion == constants.NoKubernetesVersion { - startingPhrase = "Starting minikube without Kubernetes" - } + out.Step(style.ThumbsUp, "Starting minikube without Kubernetes {{.name}} in cluster {{.cluster}}", out.V{"name": name, "cluster": cc.Name}) + } else { + if apiServer { + out.Step(style.ThumbsUp, "Starting control plane node {{.name}} in cluster {{.cluster}}", out.V{"name": name, "cluster": cc.Name}) + } else { + out.Step(style.ThumbsUp, "Starting worker node {{.name}} in cluster {{.cluster}}", out.V{"name": name, "cluster": cc.Name}) + } - out.Step(style.ThumbsUp, "{{.nodeName}} {{.name}} in cluster {{.cluster}}", out.V{"nodeName": startingPhrase, "name": name, "cluster": cc.Name}) + } if driver.IsKIC(cc.Driver) { beginDownloadKicBaseImage(&kicGroup, cc, viper.GetBool("download-only")) From f2c743d2bc76dd27bd48bf2bfa0024512d77b15a Mon Sep 17 00:00:00 2001 From: Medya Gh Date: Thu, 4 Nov 2021 12:36:35 -0700 Subject: [PATCH 089/111] skip test on none --- test/integration/no_kubernetes_test.go | 3 +++ 1 file changed, 3 insertions(+) diff --git a/test/integration/no_kubernetes_test.go b/test/integration/no_kubernetes_test.go index 7294c56e110b..f88734b1f089 100644 --- a/test/integration/no_kubernetes_test.go +++ b/test/integration/no_kubernetes_test.go @@ -31,6 +31,9 @@ import ( func TestNoKubernetes(t *testing.T) { MaybeParallel(t) + if NoneDriver() { + t.Skip("None driver does not need --no-kubernetes test") + } type validateFunc func(context.Context, *testing.T, string) profile := UniqueProfileName("NoKubernetes") ctx, cancel := context.WithTimeout(context.Background(), Minutes(5)) From f4055654a16e59145cef984e064e2f4a497f155f Mon Sep 17 00:00:00 2001 From: Medya Gh Date: Thu, 4 Nov 2021 12:48:28 -0700 Subject: [PATCH 090/111] spell --- pkg/minikube/node/start.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/minikube/node/start.go b/pkg/minikube/node/start.go index 67e69cfa679e..cc4e0bea0931 100644 --- a/pkg/minikube/node/start.go +++ b/pkg/minikube/node/start.go @@ -290,7 +290,7 @@ func Provision(cc *config.ClusterConfig, n *config.Node, apiServer bool, delOnFa register.Reg.SetStep(register.StartingNode) name := config.MachineName(*cc, *n) - // for sake of trasnlation process be easy we make the code a bit more verbose and the if statements may seem unnessecary + // for sake of trasnlation process be easy we make the code a bit more verbose and the if statements may seem unnecessary if cc.KubernetesConfig.KubernetesVersion == constants.NoKubernetesVersion { out.Step(style.ThumbsUp, "Starting minikube without Kubernetes {{.name}} in cluster {{.cluster}}", out.V{"name": name, "cluster": cc.Name}) } else { From 2e65c15d2b705f3f436d508152a38c5d96f009b3 Mon Sep 17 00:00:00 2001 From: Sharif Elgamal Date: Thu, 4 Nov 2021 13:12:57 -0700 Subject: [PATCH 091/111] register node add initial step --- cmd/minikube/cmd/node_add.go | 2 ++ 1 file changed, 2 insertions(+) diff --git a/cmd/minikube/cmd/node_add.go b/cmd/minikube/cmd/node_add.go index 622a2d3d018d..5f281ab04f4d 100644 --- a/cmd/minikube/cmd/node_add.go +++ b/cmd/minikube/cmd/node_add.go @@ -26,6 +26,7 @@ import ( "k8s.io/minikube/pkg/minikube/mustload" "k8s.io/minikube/pkg/minikube/node" "k8s.io/minikube/pkg/minikube/out" + "k8s.io/minikube/pkg/minikube/out/register" "k8s.io/minikube/pkg/minikube/reason" "k8s.io/minikube/pkg/minikube/style" ) @@ -70,6 +71,7 @@ var nodeAddCmd = &cobra.Command{ } } + register.Reg.SetStep(register.InitialSetup) if err := node.Add(cc, n, false); err != nil { _, err := maybeDeleteAndRetry(cmd, *cc, n, nil, err) if err != nil { From 2ec8dc516ae868bb477daa178b96e27825c2cfbe Mon Sep 17 00:00:00 2001 From: Medya Gh Date: Thu, 4 Nov 2021 14:43:43 -0700 Subject: [PATCH 092/111] update suggestion for disalbing internet sharing on hyperkit --- pkg/minikube/reason/known_issues.go | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/pkg/minikube/reason/known_issues.go b/pkg/minikube/reason/known_issues.go index 4df8f740f7b8..bc3f28ece407 100644 --- a/pkg/minikube/reason/known_issues.go +++ b/pkg/minikube/reason/known_issues.go @@ -334,8 +334,9 @@ var providerIssues = []match{ Kind: Kind{ ID: "PR_HYPERKIT_VMNET_FRAMEWORK", ExitCode: ExProviderError, - Advice: "Hyperkit networking is broken. Upgrade to the latest hyperkit version and/or Docker for Desktop. Alternatively, you may choose an alternate --driver", - Issues: []int{6028, 5594}, + Advice: `Hyperkit networking is broken. Try Disabling the internet sharing as described https://github.com/kubernetes/minikube/issues/5594#issuecomment-939372612 +also try upgrade to the latest hyperkit version and/or Docker for Desktop. You may choose an alternate --driver`, + Issues: []int{6028, 5594}, }, Regexp: re(`error from vmnet.framework: -1`), GOOS: []string{"darwin"}, From 8a7f43439aa1d3d34c9e1f510fa9bc5a1622e24e Mon Sep 17 00:00:00 2001 From: Medya Gh Date: Thu, 4 Nov 2021 14:45:50 -0700 Subject: [PATCH 093/111] improve wording --- pkg/minikube/reason/known_issues.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkg/minikube/reason/known_issues.go b/pkg/minikube/reason/known_issues.go index bc3f28ece407..05453cba20d9 100644 --- a/pkg/minikube/reason/known_issues.go +++ b/pkg/minikube/reason/known_issues.go @@ -334,8 +334,8 @@ var providerIssues = []match{ Kind: Kind{ ID: "PR_HYPERKIT_VMNET_FRAMEWORK", ExitCode: ExProviderError, - Advice: `Hyperkit networking is broken. Try Disabling the internet sharing as described https://github.com/kubernetes/minikube/issues/5594#issuecomment-939372612 -also try upgrade to the latest hyperkit version and/or Docker for Desktop. You may choose an alternate --driver`, + Advice: `Hyperkit networking is broken. Try Disabling the internet sharing as described here: https://github.com/kubernetes/minikube/issues/5594#issuecomment-939372612 +Also you could try to upgrade to the latest "hyperkit" version and/or Docker for Desktop. You may choose an alternate --driver`, Issues: []int{6028, 5594}, }, Regexp: re(`error from vmnet.framework: -1`), From fc0b50b74d4735ee4c92fe73c6e1812ff5cf2d3b Mon Sep 17 00:00:00 2001 From: minikube-bot Date: Thu, 4 Nov 2021 21:49:01 +0000 Subject: [PATCH 094/111] Update auto-generated docs and translations --- site/content/en/docs/commands/start.md | 1 + site/content/en/docs/contrib/tests.en.md | 19 +++++++++++++++++++ translations/de.json | 8 +++++--- translations/es.json | 8 +++++--- translations/fr.json | 5 +++++ translations/ja.json | 6 +++++- translations/ko.json | 7 +++++-- translations/pl.json | 8 +++++--- translations/strings.txt | 8 +++++--- translations/zh-CN.json | 6 +++++- 10 files changed, 60 insertions(+), 16 deletions(-) diff --git a/site/content/en/docs/commands/start.md b/site/content/en/docs/commands/start.md index 66aaea6cefff..65ccb672e922 100644 --- a/site/content/en/docs/commands/start.md +++ b/site/content/en/docs/commands/start.md @@ -85,6 +85,7 @@ minikube start [flags] --network-plugin string Kubelet network plug-in to use (default: auto) --nfs-share strings Local folders to share with Guest via NFS mounts (hyperkit driver only) --nfs-shares-root string Where to root the NFS Shares, defaults to /nfsshares (hyperkit driver only) (default "/nfsshares") + --no-kubernetes If set, minikube VM/container will start without starting or configuring Kubernetes. (only works on new clusters) --no-vtx-check Disable checking for the availability of hardware virtualization before the vm is started (virtualbox driver only) -n, --nodes int The number of nodes to spin up. Defaults to 1. (default 1) -o, --output string Format to print stdout in. Options include: [text,json] (default "text") diff --git a/site/content/en/docs/contrib/tests.en.md b/site/content/en/docs/contrib/tests.en.md index 9dbd443b91ff..9395ac7a8407 100644 --- a/site/content/en/docs/contrib/tests.en.md +++ b/site/content/en/docs/contrib/tests.en.md @@ -505,6 +505,25 @@ makes sure the hairpinning (https://en.wikipedia.org/wiki/Hairpinning) is correc try to access deployment/netcat pod using external, obtained from 'netcat' service dns resolution, IP address should fail if hairpinMode is off +## TestNoKubernetes +tests starting minikube without Kubernetes, +for use cases where user only needs to use the container runtime (docker, containerd, crio) inside minikube + +#### validateStartNoK8S +starts a minikube cluster without kubernetes started/configured + +#### validateK8SNotRunning +validates that there is no kubernetes running inside minikube + +#### validateStopNoK8S +validates that minikube is stopped after a --no-kubernetes start + +#### validateProfileListNoK8S +validates that profile list works with --no-kubernetes + +#### validateStartNoArgs +valides that minikube start with no args works + ## TestChangeNoneUser tests to make sure the CHANGE_MINIKUBE_NONE_USER environemt variable is respected and changes the minikube file permissions from root to the correct user. diff --git a/translations/de.json b/translations/de.json index 87220903b237..8ad84eafb245 100644 --- a/translations/de.json +++ b/translations/de.json @@ -155,6 +155,7 @@ "Done! kubectl is now configured to use \"{{.name}}": "Fertig! kubectl ist jetzt für die Verwendung von \"{{.name}} konfiguriert", "Done! kubectl is now configured to use \"{{.name}}\" cluster and \"{{.ns}}\" namespace by default": "", "Done! kubectl is now configured to use \"{{.name}}__1": "Fertig! kubectl ist jetzt für die Verwendung von \"{{.name}}\" konfiguriert", + "Done! minikube is ready without Kubernetes!": "", "Download complete!": "Download abgeschlossen!", "Downloading Kubernetes {{.version}} preload ...": "", "Downloading VM boot image ...": "", @@ -322,6 +323,7 @@ "If set, download tarball of preloaded images if available to improve start time. Defaults to true.": "", "If set, force the container runtime to use systemd as cgroup manager. Defaults to false.": "", "If set, install addons. Defaults to true.": "", + "If set, minikube VM/container will start without starting or configuring Kubernetes. (only works on new clusters)": "", "If set, pause all namespaces": "", "If set, unpause all namespaces": "", "If the above advice does not help, please let us know:": "", @@ -575,8 +577,9 @@ "Specifying extra disks is currently only supported for the following drivers: {{.supported_drivers}}. If you can contribute to add this feature, please create a PR.": "", "StartHost failed, but will try again: {{.error}}": "", "Starting control plane node {{.name}} in cluster {{.cluster}}": "", - "Starting node {{.name}} in cluster {{.cluster}}": "", + "Starting minikube without Kubernetes {{.name}} in cluster {{.cluster}}": "", "Starting tunnel for service {{.service}}.": "", + "Starting worker node {{.name}} in cluster {{.cluster}}": "", "Starts a local Kubernetes cluster": "", "Starts a local kubernetes cluster": "Startet einen lokalen Kubernetes-Cluster", "Starts a node.": "", @@ -691,6 +694,7 @@ "There's a new version for '{{.driver_executable}}'. Please consider upgrading. {{.documentation_url}}": "Es gibt eine neue Version für '{{.driver_executable}}'. Bitte erwägen Sie ein Upgrade. {{.documentation_url}}", "These --extra-config parameters are invalid: {{.invalid_extra_opts}}": "", "These changes will take effect upon a minikube delete and then a minikube start": "", + "Things to try without Kubernetes ...": "", "This addon does not have an endpoint defined for the 'addons open' command.\nYou can add one by annotating a service with the label {{.labelName}}:{{.addonName}}": "", "This can also be done automatically by setting the env var CHANGE_MINIKUBE_NONE_USER=true": "Dies kann auch automatisch erfolgen, indem Sie die env var CHANGE_MINIKUBE_NONE_USER = true setzen", "This control plane is not running! (state={{.state}})": "", @@ -743,9 +747,7 @@ "Unable to load host": "", "Unable to load profile: {{.error}}": "", "Unable to parse \"{{.kubernetes_version}}\": {{.error}}": "\"{{.kubernetes_version}}\" kann nicht geparst werden: {{.error}}", - "Unable to parse default Kubernetes version from constants: {{.error}}": "", "Unable to parse memory '{{.memory}}': {{.error}}": "", - "Unable to parse oldest Kubernetes version from constants: {{.error}}": "", "Unable to pick a default driver. Here is what was considered, in preference order:": "", "Unable to pull images, which may be OK: {{.error}}": "Bilder können nicht abgerufen werden, was möglicherweise kein Problem darstellt: {{.error}}", "Unable to push cached images: {{.error}}": "", diff --git a/translations/es.json b/translations/es.json index f8752aeb8c77..d64ff7893834 100644 --- a/translations/es.json +++ b/translations/es.json @@ -157,6 +157,7 @@ "Done! kubectl is now configured to use \"{{.name}}\" by default": "¡Listo! Se ha configurado kubectl para que use \"{{.name}}\" por defecto", "Done! kubectl is now configured to use \"{{.name}}\" cluster and \"{{.ns}}\" namespace by default": "", "Done! kubectl is now configured to use \"{{.name}}__1": "¡Listo! Se ha configurado kubectl para que use \"{{.name}}__1 \n", + "Done! minikube is ready without Kubernetes!": "", "Download complete!": "Se ha completado la descarga", "Downloading Kubernetes {{.version}} preload ...": "Descargando Kubernetes {{.version}} ...", "Downloading VM boot image ...": "Descargando la imagen de arranque de la VM", @@ -328,6 +329,7 @@ "If set, download tarball of preloaded images if available to improve start time. Defaults to true.": "", "If set, force the container runtime to use systemd as cgroup manager. Defaults to false.": "", "If set, install addons. Defaults to true.": "", + "If set, minikube VM/container will start without starting or configuring Kubernetes. (only works on new clusters)": "", "If set, pause all namespaces": "", "If set, unpause all namespaces": "", "If the above advice does not help, please let us know:": "", @@ -581,8 +583,9 @@ "Specifying extra disks is currently only supported for the following drivers: {{.supported_drivers}}. If you can contribute to add this feature, please create a PR.": "", "StartHost failed, but will try again: {{.error}}": "", "Starting control plane node {{.name}} in cluster {{.cluster}}": "", - "Starting node {{.name}} in cluster {{.cluster}}": "", + "Starting minikube without Kubernetes {{.name}} in cluster {{.cluster}}": "", "Starting tunnel for service {{.service}}.": "", + "Starting worker node {{.name}} in cluster {{.cluster}}": "", "Starts a local Kubernetes cluster": "", "Starts a local kubernetes cluster": "Inicia un clúster de Kubernetes local", "Starts a node.": "", @@ -697,6 +700,7 @@ "There's a new version for '{{.driver_executable}}'. Please consider upgrading. {{.documentation_url}}": "Hay una nueva versión de \"{{.driver_executable}}\". Te recomendamos que realices la actualización. {{.documentation_url}}", "These --extra-config parameters are invalid: {{.invalid_extra_opts}}": "", "These changes will take effect upon a minikube delete and then a minikube start": "", + "Things to try without Kubernetes ...": "", "This addon does not have an endpoint defined for the 'addons open' command.\nYou can add one by annotating a service with the label {{.labelName}}:{{.addonName}}": "", "This can also be done automatically by setting the env var CHANGE_MINIKUBE_NONE_USER=true": "El proceso se puede automatizar si se define la variable de entorno CHANGE_MINIKUBE_NONE_USER=true", "This control plane is not running! (state={{.state}})": "", @@ -749,9 +753,7 @@ "Unable to load host": "", "Unable to load profile: {{.error}}": "", "Unable to parse \"{{.kubernetes_version}}\": {{.error}}": "No se ha podido analizar la versión \"{{.kubernetes_version}}\": {{.error}}", - "Unable to parse default Kubernetes version from constants: {{.error}}": "", "Unable to parse memory '{{.memory}}': {{.error}}": "", - "Unable to parse oldest Kubernetes version from constants: {{.error}}": "", "Unable to pick a default driver. Here is what was considered, in preference order:": "", "Unable to pull images, which may be OK: {{.error}}": "No se ha podido recuperar imágenes, que podrían estar en buen estado: {{.error}}", "Unable to push cached images: {{.error}}": "", diff --git a/translations/fr.json b/translations/fr.json index 0184f88d5912..fd8f8888769d 100644 --- a/translations/fr.json +++ b/translations/fr.json @@ -147,6 +147,7 @@ "Docs have been saved at - {{.path}}": "Les documents ont été enregistrés à - {{.path}}", "Documentation: {{.url}}": "Documentation: {{.url}}", "Done! kubectl is now configured to use \"{{.name}}\" cluster and \"{{.ns}}\" namespace by default": "Terminé ! kubectl est maintenant configuré pour utiliser \"{{.name}}\" cluster et espace de noms \"{{.ns}}\" par défaut.", + "Done! minikube is ready without Kubernetes!": "", "Download complete!": "Téléchargement terminé !", "Downloading Kubernetes {{.version}} preload ...": "Téléchargement du préchargement de Kubernetes {{.version}}...", "Downloading VM boot image ...": "Téléchargement de l'image de démarrage de la VM...", @@ -303,6 +304,7 @@ "If set, download tarball of preloaded images if available to improve start time. Defaults to true.": "Si défini, télécharge l'archive tar des images préchargées si disponibles pour améliorer le temps de démarrage. La valeur par défaut est true.", "If set, force the container runtime to use systemd as cgroup manager. Defaults to false.": "S'il est défini, force l'environnement d'exécution du conteneur à utiliser systemd comme gestionnaire de groupe de contrôle. La valeur par défaut est false.", "If set, install addons. Defaults to true.": "Si défini, installe les modules. La valeur par défaut est true.", + "If set, minikube VM/container will start without starting or configuring Kubernetes. (only works on new clusters)": "", "If set, pause all namespaces": "Si défini, suspend tous les espaces de noms", "If set, unpause all namespaces": "Si défini, annule la pause de tous les espaces de noms", "If the above advice does not help, please let us know:": "Si les conseils ci-dessus ne vous aident pas, veuillez nous en informer :", @@ -545,8 +547,10 @@ "Specifying extra disks is currently only supported for the following drivers: {{.supported_drivers}}. If you can contribute to add this feature, please create a PR.": "La spécification de disques supplémentaires n'est actuellement prise en charge que pour les pilotes suivants : {{.supported_drivers}}. Si vous pouvez contribuer à ajouter cette fonctionnalité, veuillez créer un PR.", "StartHost failed, but will try again: {{.error}}": "StartHost a échoué, mais va réessayer : {{.error}}", "Starting control plane node {{.name}} in cluster {{.cluster}}": "Démarrage du noeud de plan de contrôle {{.name}} dans le cluster {{.cluster}}", + "Starting minikube without Kubernetes {{.name}} in cluster {{.cluster}}": "", "Starting node {{.name}} in cluster {{.cluster}}": "Démarrage du noeud {{.name}} dans le cluster {{.cluster}}", "Starting tunnel for service {{.service}}.": "Tunnel de démarrage pour le service {{.service}}.", + "Starting worker node {{.name}} in cluster {{.cluster}}": "", "Starts a local Kubernetes cluster": "Démarre un cluster Kubernetes local", "Starts a node.": "Démarre un nœud.", "Starts an existing stopped node in a cluster.": "Démarre un nœud arrêté existant dans un cluster.", @@ -646,6 +650,7 @@ "The value passed to --format is invalid: {{.error}}": "La valeur passée à --format n'est pas valide : {{.error}}", "These --extra-config parameters are invalid: {{.invalid_extra_opts}}": "Ces paramètres --extra-config ne sont pas valides : {{.invalid_extra_opts}}", "These changes will take effect upon a minikube delete and then a minikube start": "Ces modifications prendront effet lors d'une suppression de minikube, puis d'un démarrage de minikube", + "Things to try without Kubernetes ...": "", "This addon does not have an endpoint defined for the 'addons open' command.\nYou can add one by annotating a service with the label {{.labelName}}:{{.addonName}}": "Ce module n'a pas de point de terminaison défini pour la commande 'addons open'.\nVous pouvez en ajouter un en annotant un service avec le libellé {{.labelName}} :{{.addonName}}", "This can also be done automatically by setting the env var CHANGE_MINIKUBE_NONE_USER=true": "Cette opération peut également être réalisée en définissant la variable d'environment \"CHANGE_MINIKUBE_NONE_USER=true\".", "This control plane is not running! (state={{.state}})": "Ce plan de contrôle ne fonctionne pas ! (état={{.state}})", diff --git a/translations/ja.json b/translations/ja.json index c14b264d612b..e2f16f796ad4 100644 --- a/translations/ja.json +++ b/translations/ja.json @@ -152,6 +152,7 @@ "Documentation: {{.url}}": "ドキュメント: {{.url}}", "Done! kubectl is now configured to use \"{{.name}}\"": "完了しました! kubectl が「\"{{.name}}\"」を使用するよう構成されました", "Done! kubectl is now configured to use \"{{.name}}\" cluster and \"{{.ns}}\" namespace by default": "完了しました! kubectl が「\"{{.name}}\"」クラスタと「\"{{.ns}}\"」ネームスペースを使用するよう構成されました", + "Done! minikube is ready without Kubernetes!": "", "Download complete!": "ダウンロードが完了しました", "Downloading Kubernetes {{.version}} preload ...": "Kubernetes {{.version}} のダウンロードの準備をしています", "Downloading VM boot image ...": "VM ブートイメージをダウンロードしています...", @@ -313,6 +314,7 @@ "If set, download tarball of preloaded images if available to improve start time. Defaults to true.": "", "If set, force the container runtime to use systemd as cgroup manager. Defaults to false.": "", "If set, install addons. Defaults to true.": "", + "If set, minikube VM/container will start without starting or configuring Kubernetes. (only works on new clusters)": "", "If set, pause all namespaces": "", "If set, unpause all namespaces": "", "If the above advice does not help, please let us know:": "", @@ -574,8 +576,9 @@ "Specifying extra disks is currently only supported for the following drivers: {{.supported_drivers}}. If you can contribute to add this feature, please create a PR.": "", "StartHost failed, but will try again: {{.error}}": "", "Starting control plane node {{.name}} in cluster {{.cluster}}": "コントロールプレーンのノード {{.name}} を {{.cluster}} 上で起動しています", - "Starting node {{.name}} in cluster {{.cluster}}": "", + "Starting minikube without Kubernetes {{.name}} in cluster {{.cluster}}": "", "Starting tunnel for service {{.service}}.": "", + "Starting worker node {{.name}} in cluster {{.cluster}}": "", "Starts a local Kubernetes cluster": "ローカル Kubernetes クラスタを起動します", "Starts a local kubernetes cluster": "ローカル Kubernetes クラスタを起動します", "Starts a node.": "", @@ -691,6 +694,7 @@ "There's a new version for '{{.driver_executable}}'. Please consider upgrading. {{.documentation_url}}": "「{{.driver_executable}}」の新しいバージョンがあります。アップグレードを検討してください。{{.documentation_url}}", "These --extra-config parameters are invalid: {{.invalid_extra_opts}}": "", "These changes will take effect upon a minikube delete and then a minikube start": "", + "Things to try without Kubernetes ...": "", "This addon does not have an endpoint defined for the 'addons open' command.\nYou can add one by annotating a service with the label {{.labelName}}:{{.addonName}}": "", "This can also be done automatically by setting the env var CHANGE_MINIKUBE_NONE_USER=true": "これは環境変数 CHANGE_MINIKUBE_NONE_USER=true を設定して自動的に行うこともできます", "This control plane is not running! (state={{.state}})": "", diff --git a/translations/ko.json b/translations/ko.json index dc91ee78cd1e..62599fb16485 100644 --- a/translations/ko.json +++ b/translations/ko.json @@ -163,6 +163,7 @@ "Documentation: {{.url}}": "문서: {{.url}}", "Done! kubectl is now configured to use \"{{.name}}\"": "끝났습니다! 이제 kubectl 이 \"{{.name}}\" 를 사용할 수 있도록 설정되었습니다", "Done! kubectl is now configured to use \"{{.name}}\" cluster and \"{{.ns}}\" namespace by default": "끝났습니다! kubectl이 \"{{.name}}\" 클러스터와 \"{{.ns}}\" 네임스페이스를 기본적으로 사용하도록 구성되었습니다.", + "Done! minikube is ready without Kubernetes!": "", "Download complete!": "다운로드가 성공하였습니다!", "Downloading Kubernetes {{.version}} preload ...": "쿠버네티스 {{.version}} 을 다운로드 중 ...", "Downloading VM boot image ...": "가상 머신 부트 이미지 다운로드 중 ...", @@ -346,6 +347,7 @@ "If set, download tarball of preloaded images if available to improve start time. Defaults to true.": "", "If set, force the container runtime to use systemd as cgroup manager. Defaults to false.": "", "If set, install addons. Defaults to true.": "", + "If set, minikube VM/container will start without starting or configuring Kubernetes. (only works on new clusters)": "", "If set, pause all namespaces": "", "If set, unpause all namespaces": "", "If the above advice does not help, please let us know:": "", @@ -594,9 +596,11 @@ "Specifying extra disks is currently only supported for the following drivers: {{.supported_drivers}}. If you can contribute to add this feature, please create a PR.": "", "StartHost failed, but will try again: {{.error}}": "", "Starting control plane node {{.name}} in cluster {{.cluster}}": "{{.cluster}} 클러스터의 {{.name}} 컨트롤 플레인 노드를 시작하는 중", + "Starting minikube without Kubernetes {{.name}} in cluster {{.cluster}}": "", "Starting node": "노드를 시작하는 중", "Starting node {{.name}} in cluster {{.cluster}}": "{{.cluster}} 클러스터의 {{.name}} 노드를 시작하는 중", "Starting tunnel for service {{.service}}.": "{{.service}} 서비스의 터널을 시작하는 중", + "Starting worker node {{.name}} in cluster {{.cluster}}": "", "Starts a local Kubernetes cluster": "로컬 쿠버네티스 클러스터를 시작합니다", "Starts a local kubernetes cluster": "로컬 쿠버네티스 클러스터를 시작합니다", "Starts a node.": "노드를 시작합니다", @@ -699,6 +703,7 @@ "The value passed to --format is invalid: {{.error}}": "", "These --extra-config parameters are invalid: {{.invalid_extra_opts}}": "", "These changes will take effect upon a minikube delete and then a minikube start": "", + "Things to try without Kubernetes ...": "", "This addon does not have an endpoint defined for the 'addons open' command.\nYou can add one by annotating a service with the label {{.labelName}}:{{.addonName}}": "", "This can also be done automatically by setting the env var CHANGE_MINIKUBE_NONE_USER=true": "", "This control plane is not running! (state={{.state}})": "", @@ -748,9 +753,7 @@ "Unable to load host": "", "Unable to load profile: {{.error}}": "", "Unable to parse \"{{.kubernetes_version}}\": {{.error}}": " \"{{.kubernetes_version}}\" 를 파싱할 수 없습니다: {{.error}}", - "Unable to parse default Kubernetes version from constants: {{.error}}": "", "Unable to parse memory '{{.memory}}': {{.error}}": "", - "Unable to parse oldest Kubernetes version from constants: {{.error}}": "", "Unable to pick a default driver. Here is what was considered, in preference order:": "", "Unable to push cached images: {{.error}}": "", "Unable to remove machine directory": "", diff --git a/translations/pl.json b/translations/pl.json index 1779098c3052..397453fda76c 100644 --- a/translations/pl.json +++ b/translations/pl.json @@ -163,6 +163,7 @@ "Done! kubectl is now configured to use \"{{.name}}": "Gotowe! kubectl jest skonfigurowany do użycia z \"{{.name}}\".", "Done! kubectl is now configured to use \"{{.name}}\"": "Gotowe! kubectl jest skonfigurowany do użycia z \"{{.name}}\".", "Done! kubectl is now configured to use \"{{.name}}\" cluster and \"{{.ns}}\" namespace by default": "", + "Done! minikube is ready without Kubernetes!": "", "Download complete!": "Pobieranie zakończone!", "Downloading Kubernetes {{.version}} preload ...": "", "Downloading VM boot image ...": "Pobieranie obrazu maszyny wirtualnej ...", @@ -332,6 +333,7 @@ "If set, download tarball of preloaded images if available to improve start time. Defaults to true.": "", "If set, force the container runtime to use systemd as cgroup manager. Defaults to false.": "", "If set, install addons. Defaults to true.": "", + "If set, minikube VM/container will start without starting or configuring Kubernetes. (only works on new clusters)": "", "If set, pause all namespaces": "", "If set, unpause all namespaces": "", "If the above advice does not help, please let us know:": "", @@ -594,8 +596,9 @@ "Specifying extra disks is currently only supported for the following drivers: {{.supported_drivers}}. If you can contribute to add this feature, please create a PR.": "", "StartHost failed, but will try again: {{.error}}": "", "Starting control plane node {{.name}} in cluster {{.cluster}}": "", - "Starting node {{.name}} in cluster {{.cluster}}": "", + "Starting minikube without Kubernetes {{.name}} in cluster {{.cluster}}": "", "Starting tunnel for service {{.service}}.": "", + "Starting worker node {{.name}} in cluster {{.cluster}}": "", "Starts a local Kubernetes cluster": "", "Starts a local kubernetes cluster": "Uruchamianie lokalnego klastra kubernetesa", "Starts a node.": "", @@ -709,6 +712,7 @@ "The {{.driver_name}} driver should not be used with root privileges.": "{{.driver_name}} nie powinien być używany z przywilejami root'a.", "These --extra-config parameters are invalid: {{.invalid_extra_opts}}": "", "These changes will take effect upon a minikube delete and then a minikube start": "", + "Things to try without Kubernetes ...": "", "This addon does not have an endpoint defined for the 'addons open' command.\nYou can add one by annotating a service with the label {{.labelName}}:{{.addonName}}": "", "This can also be done automatically by setting the env var CHANGE_MINIKUBE_NONE_USER=true": "", "This control plane is not running! (state={{.state}})": "", @@ -758,9 +762,7 @@ "Unable to load host": "", "Unable to load profile: {{.error}}": "", "Unable to parse \"{{.kubernetes_version}}\": {{.error}}": "", - "Unable to parse default Kubernetes version from constants: {{.error}}": "", "Unable to parse memory '{{.memory}}': {{.error}}": "", - "Unable to parse oldest Kubernetes version from constants: {{.error}}": "", "Unable to pick a default driver. Here is what was considered, in preference order:": "", "Unable to push cached images: {{.error}}": "", "Unable to remove machine directory": "", diff --git a/translations/strings.txt b/translations/strings.txt index 2d6ca9a7d26e..7a794413feee 100644 --- a/translations/strings.txt +++ b/translations/strings.txt @@ -147,6 +147,7 @@ "Docs have been saved at - {{.path}}": "", "Documentation: {{.url}}": "", "Done! kubectl is now configured to use \"{{.name}}\" cluster and \"{{.ns}}\" namespace by default": "", + "Done! minikube is ready without Kubernetes!": "", "Download complete!": "", "Downloading Kubernetes {{.version}} preload ...": "", "Downloading VM boot image ...": "", @@ -303,6 +304,7 @@ "If set, download tarball of preloaded images if available to improve start time. Defaults to true.": "", "If set, force the container runtime to use systemd as cgroup manager. Defaults to false.": "", "If set, install addons. Defaults to true.": "", + "If set, minikube VM/container will start without starting or configuring Kubernetes. (only works on new clusters)": "", "If set, pause all namespaces": "", "If set, unpause all namespaces": "", "If the above advice does not help, please let us know:": "", @@ -545,8 +547,9 @@ "Specifying extra disks is currently only supported for the following drivers: {{.supported_drivers}}. If you can contribute to add this feature, please create a PR.": "", "StartHost failed, but will try again: {{.error}}": "", "Starting control plane node {{.name}} in cluster {{.cluster}}": "", - "Starting node {{.name}} in cluster {{.cluster}}": "", + "Starting minikube without Kubernetes {{.name}} in cluster {{.cluster}}": "", "Starting tunnel for service {{.service}}.": "", + "Starting worker node {{.name}} in cluster {{.cluster}}": "", "Starts a local Kubernetes cluster": "", "Starts a node.": "", "Starts an existing stopped node in a cluster.": "", @@ -646,6 +649,7 @@ "The value passed to --format is invalid: {{.error}}": "", "These --extra-config parameters are invalid: {{.invalid_extra_opts}}": "", "These changes will take effect upon a minikube delete and then a minikube start": "", + "Things to try without Kubernetes ...": "", "This addon does not have an endpoint defined for the 'addons open' command.\nYou can add one by annotating a service with the label {{.labelName}}:{{.addonName}}": "", "This can also be done automatically by setting the env var CHANGE_MINIKUBE_NONE_USER=true": "", "This control plane is not running! (state={{.state}})": "", @@ -692,9 +696,7 @@ "Unable to load host": "", "Unable to load profile: {{.error}}": "", "Unable to parse \"{{.kubernetes_version}}\": {{.error}}": "", - "Unable to parse default Kubernetes version from constants: {{.error}}": "", "Unable to parse memory '{{.memory}}': {{.error}}": "", - "Unable to parse oldest Kubernetes version from constants: {{.error}}": "", "Unable to pick a default driver. Here is what was considered, in preference order:": "", "Unable to push cached images: {{.error}}": "", "Unable to remove machine directory": "", diff --git a/translations/zh-CN.json b/translations/zh-CN.json index 4912225afd7b..35c865969a2d 100644 --- a/translations/zh-CN.json +++ b/translations/zh-CN.json @@ -188,6 +188,7 @@ "Done! kubectl is now configured to use \"{{.name}}\"": "完成!kubectl 已经配置至 \"{{.name}}\"", "Done! kubectl is now configured to use \"{{.name}}\" cluster and \"{{.ns}}\" namespace by default": "", "Done! kubectl is now configured to use {{.name}}": "完成!kubectl已经配置至{{.name}}", + "Done! minikube is ready without Kubernetes!": "", "Download complete!": "下载完成!", "Downloading Kubernetes {{.version}} preload ...": "", "Downloading VM boot image ...": "正在下载 VM boot image...", @@ -403,6 +404,7 @@ "If set, download tarball of preloaded images if available to improve start time. Defaults to true.": "", "If set, force the container runtime to use systemd as cgroup manager. Defaults to false.": "", "If set, install addons. Defaults to true.": "", + "If set, minikube VM/container will start without starting or configuring Kubernetes. (only works on new clusters)": "", "If set, pause all namespaces": "", "If set, unpause all namespaces": "", "If the above advice does not help, please let us know:": "", @@ -676,8 +678,9 @@ "Specifying extra disks is currently only supported for the following drivers: {{.supported_drivers}}. If you can contribute to add this feature, please create a PR.": "", "StartHost failed, but will try again: {{.error}}": "", "Starting control plane node {{.name}} in cluster {{.cluster}}": "", - "Starting node {{.name}} in cluster {{.cluster}}": "", + "Starting minikube without Kubernetes {{.name}} in cluster {{.cluster}}": "", "Starting tunnel for service {{.service}}.": "", + "Starting worker node {{.name}} in cluster {{.cluster}}": "", "Starts a local Kubernetes cluster": "", "Starts a local kubernetes cluster": "启动本地 kubernetes 集群", "Starts a node.": "", @@ -798,6 +801,7 @@ "There's a new version for '{{.driver_executable}}'. Please consider upgrading. {{.documentation_url}}": "“{{.driver_executable}}”有一个新版本。请考虑升级。{{.documentation_url}}", "These --extra-config parameters are invalid: {{.invalid_extra_opts}}": "", "These changes will take effect upon a minikube delete and then a minikube start": "", + "Things to try without Kubernetes ...": "", "This addon does not have an endpoint defined for the 'addons open' command.\nYou can add one by annotating a service with the label {{.labelName}}:{{.addonName}}": "", "This can also be done automatically by setting the env var CHANGE_MINIKUBE_NONE_USER=true": "此操作还可通过设置环境变量 CHANGE_MINIKUBE_NONE_USER=true 自动完成", "This control plane is not running! (state={{.state}})": "", From bd973bba7c869f54b6354fedb671ef0372d89e86 Mon Sep 17 00:00:00 2001 From: Medya Ghazizadeh Date: Thu, 4 Nov 2021 15:07:33 -0700 Subject: [PATCH 095/111] Update pkg/minikube/reason/known_issues.go Co-authored-by: Sharif Elgamal --- pkg/minikube/reason/known_issues.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/minikube/reason/known_issues.go b/pkg/minikube/reason/known_issues.go index 05453cba20d9..f564cc72d354 100644 --- a/pkg/minikube/reason/known_issues.go +++ b/pkg/minikube/reason/known_issues.go @@ -334,7 +334,7 @@ var providerIssues = []match{ Kind: Kind{ ID: "PR_HYPERKIT_VMNET_FRAMEWORK", ExitCode: ExProviderError, - Advice: `Hyperkit networking is broken. Try Disabling the internet sharing as described here: https://github.com/kubernetes/minikube/issues/5594#issuecomment-939372612 + Advice: `Hyperkit networking is broken. Try disabling Internet Sharing: System Preference > Sharing > Internet Sharing. Also you could try to upgrade to the latest "hyperkit" version and/or Docker for Desktop. You may choose an alternate --driver`, Issues: []int{6028, 5594}, }, From f8c34933fdb86a08729c62b880eb5b6aa9527ecd Mon Sep 17 00:00:00 2001 From: Medya Ghazizadeh Date: Thu, 4 Nov 2021 15:07:40 -0700 Subject: [PATCH 096/111] Update pkg/minikube/reason/known_issues.go Co-authored-by: Sharif Elgamal --- pkg/minikube/reason/known_issues.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/minikube/reason/known_issues.go b/pkg/minikube/reason/known_issues.go index f564cc72d354..aa708b29653e 100644 --- a/pkg/minikube/reason/known_issues.go +++ b/pkg/minikube/reason/known_issues.go @@ -335,7 +335,7 @@ var providerIssues = []match{ ID: "PR_HYPERKIT_VMNET_FRAMEWORK", ExitCode: ExProviderError, Advice: `Hyperkit networking is broken. Try disabling Internet Sharing: System Preference > Sharing > Internet Sharing. -Also you could try to upgrade to the latest "hyperkit" version and/or Docker for Desktop. You may choose an alternate --driver`, +Alternatively, you can try upgrading to the latest hyperkit version, or using an alternate driver.`, Issues: []int{6028, 5594}, }, Regexp: re(`error from vmnet.framework: -1`), From 4ddecc64121cac52fca81dca2247e16061940231 Mon Sep 17 00:00:00 2001 From: minikube-bot Date: Thu, 4 Nov 2021 22:16:12 +0000 Subject: [PATCH 097/111] Update auto-generated docs and translations --- translations/de.json | 2 +- translations/es.json | 2 +- translations/fr.json | 1 + translations/ja.json | 2 +- translations/ko.json | 2 +- translations/pl.json | 2 +- translations/strings.txt | 2 +- translations/zh-CN.json | 2 +- 8 files changed, 8 insertions(+), 7 deletions(-) diff --git a/translations/de.json b/translations/de.json index 8ad84eafb245..94cda0e4cd37 100644 --- a/translations/de.json +++ b/translations/de.json @@ -314,7 +314,7 @@ "Group ID: {{.groupID}}": "", "Hide the hypervisor signature from the guest in minikube (kvm2 driver only)": "Hypervisor-Signatur vor dem Gast in minikube verbergen (nur kvm2-Treiber)", "Hyperkit is broken. Upgrade to the latest hyperkit version and/or Docker for Desktop. Alternatively, you may choose an alternate --driver": "", - "Hyperkit networking is broken. Upgrade to the latest hyperkit version and/or Docker for Desktop. Alternatively, you may choose an alternate --driver": "", + "Hyperkit networking is broken. Try disabling Internet Sharing: System Preference \u003e Sharing \u003e Internet Sharing. \nAlternatively, you can try upgrading to the latest hyperkit version, or using an alternate driver.": "", "IP Address to use to expose ports (docker and podman driver only)": "", "IP address (ssh driver only)": "", "If present, writes to the provided file instead of stdout.": "", diff --git a/translations/es.json b/translations/es.json index d64ff7893834..dbaec07f9e37 100644 --- a/translations/es.json +++ b/translations/es.json @@ -320,7 +320,7 @@ "Group ID: {{.groupID}}": "", "Hide the hypervisor signature from the guest in minikube (kvm2 driver only)": "Permite ocultar la firma del hipervisor al invitado en minikube (solo con el controlador de kvm2)", "Hyperkit is broken. Upgrade to the latest hyperkit version and/or Docker for Desktop. Alternatively, you may choose an alternate --driver": "", - "Hyperkit networking is broken. Upgrade to the latest hyperkit version and/or Docker for Desktop. Alternatively, you may choose an alternate --driver": "", + "Hyperkit networking is broken. Try disabling Internet Sharing: System Preference \u003e Sharing \u003e Internet Sharing. \nAlternatively, you can try upgrading to the latest hyperkit version, or using an alternate driver.": "", "IP Address to use to expose ports (docker and podman driver only)": "", "IP address (ssh driver only)": "", "If present, writes to the provided file instead of stdout.": "", diff --git a/translations/fr.json b/translations/fr.json index fd8f8888769d..fb28a7c244eb 100644 --- a/translations/fr.json +++ b/translations/fr.json @@ -295,6 +295,7 @@ "Group ID: {{.groupID}}": "Identifiant du groupe: {{.groupID}}", "Hide the hypervisor signature from the guest in minikube (kvm2 driver only)": "Masque la signature de l'hyperviseur de l'invité dans minikube (pilote kvm2 uniquement).", "Hyperkit is broken. Upgrade to the latest hyperkit version and/or Docker for Desktop. Alternatively, you may choose an alternate --driver": "Hyperkit ne fonctionne pas. Mettez à niveau vers la dernière version d'hyperkit et/ou Docker for Desktop. Alternativement, vous pouvez choisir un autre --driver", + "Hyperkit networking is broken. Try disabling Internet Sharing: System Preference \u003e Sharing \u003e Internet Sharing. \nAlternatively, you can try upgrading to the latest hyperkit version, or using an alternate driver.": "", "Hyperkit networking is broken. Upgrade to the latest hyperkit version and/or Docker for Desktop. Alternatively, you may choose an alternate --driver": "Le réseau Hyperkit ne fonctionne pas. Mettez à niveau vers la dernière version d'hyperkit et/ou Docker for Desktop. Alternativement, vous pouvez choisir un autre --driver", "IP Address to use to expose ports (docker and podman driver only)": "Adresse IP à utiliser pour exposer les ports (pilote docker et podman uniquement)", "IP address (ssh driver only)": "Adresse IP (pilote ssh uniquement)", diff --git a/translations/ja.json b/translations/ja.json index e2f16f796ad4..329f7ecf7577 100644 --- a/translations/ja.json +++ b/translations/ja.json @@ -305,7 +305,7 @@ "Group ID: {{.groupID}}": "グループ ID: {{.groupID}}", "Hide the hypervisor signature from the guest in minikube (kvm2 driver only)": "minikube でゲストに対し、ハイパーバイザ署名を非表示にします(kvm2 ドライバのみ)", "Hyperkit is broken. Upgrade to the latest hyperkit version and/or Docker for Desktop. Alternatively, you may choose an alternate --driver": "", - "Hyperkit networking is broken. Upgrade to the latest hyperkit version and/or Docker for Desktop. Alternatively, you may choose an alternate --driver": "", + "Hyperkit networking is broken. Try disabling Internet Sharing: System Preference \u003e Sharing \u003e Internet Sharing. \nAlternatively, you can try upgrading to the latest hyperkit version, or using an alternate driver.": "", "IP Address to use to expose ports (docker and podman driver only)": "", "IP address (ssh driver only)": "", "If present, writes to the provided file instead of stdout.": "", diff --git a/translations/ko.json b/translations/ko.json index 62599fb16485..42cd2d29b6d8 100644 --- a/translations/ko.json +++ b/translations/ko.json @@ -338,7 +338,7 @@ "Have you set up libvirt correctly?": "libvirt 설정을 알맞게 하셨습니까?", "Hide the hypervisor signature from the guest in minikube (kvm2 driver only)": "", "Hyperkit is broken. Upgrade to the latest hyperkit version and/or Docker for Desktop. Alternatively, you may choose an alternate --driver": "", - "Hyperkit networking is broken. Upgrade to the latest hyperkit version and/or Docker for Desktop. Alternatively, you may choose an alternate --driver": "", + "Hyperkit networking is broken. Try disabling Internet Sharing: System Preference \u003e Sharing \u003e Internet Sharing. \nAlternatively, you can try upgrading to the latest hyperkit version, or using an alternate driver.": "", "IP Address to use to expose ports (docker and podman driver only)": "", "IP address (ssh driver only)": "", "If present, writes to the provided file instead of stdout.": "", diff --git a/translations/pl.json b/translations/pl.json index 397453fda76c..11a68e7099c8 100644 --- a/translations/pl.json +++ b/translations/pl.json @@ -324,7 +324,7 @@ "Have you set up libvirt correctly?": "Czy napewno skonfigurowano libvirt w sposób prawidłowy?", "Hide the hypervisor signature from the guest in minikube (kvm2 driver only)": "", "Hyperkit is broken. Upgrade to the latest hyperkit version and/or Docker for Desktop. Alternatively, you may choose an alternate --driver": "", - "Hyperkit networking is broken. Upgrade to the latest hyperkit version and/or Docker for Desktop. Alternatively, you may choose an alternate --driver": "", + "Hyperkit networking is broken. Try disabling Internet Sharing: System Preference \u003e Sharing \u003e Internet Sharing. \nAlternatively, you can try upgrading to the latest hyperkit version, or using an alternate driver.": "", "IP Address to use to expose ports (docker and podman driver only)": "", "IP address (ssh driver only)": "", "If present, writes to the provided file instead of stdout.": "", diff --git a/translations/strings.txt b/translations/strings.txt index 7a794413feee..d3010ce7b430 100644 --- a/translations/strings.txt +++ b/translations/strings.txt @@ -295,7 +295,7 @@ "Group ID: {{.groupID}}": "", "Hide the hypervisor signature from the guest in minikube (kvm2 driver only)": "", "Hyperkit is broken. Upgrade to the latest hyperkit version and/or Docker for Desktop. Alternatively, you may choose an alternate --driver": "", - "Hyperkit networking is broken. Upgrade to the latest hyperkit version and/or Docker for Desktop. Alternatively, you may choose an alternate --driver": "", + "Hyperkit networking is broken. Try disabling Internet Sharing: System Preference \u003e Sharing \u003e Internet Sharing. \nAlternatively, you can try upgrading to the latest hyperkit version, or using an alternate driver.": "", "IP Address to use to expose ports (docker and podman driver only)": "", "IP address (ssh driver only)": "", "If present, writes to the provided file instead of stdout.": "", diff --git a/translations/zh-CN.json b/translations/zh-CN.json index 35c865969a2d..2f8fc7147a8c 100644 --- a/translations/zh-CN.json +++ b/translations/zh-CN.json @@ -394,7 +394,7 @@ "Hide the hypervisor signature from the guest in minikube (kvm2 driver only)": "向 minikube 中的访客隐藏管理程序签名(仅限 kvm2 驱动程序)", "Hyperkit is broken. Upgrade to the latest hyperkit version and/or Docker for Desktop. Alternatively, you may choose an alternate --driver": "", "Hyperkit is broken. Upgrade to the latest hyperkit version and/or Docker for Desktop. Alternatively, you may choose an alternate --vm-driver": "Hyperkit 已损坏。升级到最新的 hyperkit 版本以及/或者 Docker 桌面版。或者,你可以通过 --vm-driver 切换其他选项", - "Hyperkit networking is broken. Upgrade to the latest hyperkit version and/or Docker for Desktop. Alternatively, you may choose an alternate --driver": "", + "Hyperkit networking is broken. Try disabling Internet Sharing: System Preference \u003e Sharing \u003e Internet Sharing. \nAlternatively, you can try upgrading to the latest hyperkit version, or using an alternate driver.": "", "Hyperkit networking is broken. Upgrade to the latest hyperkit version and/or Docker for Desktop. Alternatively, you may choose an alternate --vm-driver": "Hyperkit 的网络挂了。升级到最新的 hyperkit 版本以及/或者 Docker 桌面版。或者,你可以通过 --vm-driver 切换其他选项", "IP Address to use to expose ports (docker and podman driver only)": "", "IP address (ssh driver only)": "", From 5a8fd2fd03f0c4ed29a6546ede5cd65b0314f5d1 Mon Sep 17 00:00:00 2001 From: Sharif Elgamal Date: Thu, 4 Nov 2021 15:23:52 -0700 Subject: [PATCH 098/111] Update Makefile for v1.24.0 release --- CHANGELOG.md | 40 ++++++++++++++++++++++++++++++++++++++++ Makefile | 2 +- 2 files changed, 41 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b9d092ef438e..5f6aa6653ae2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,45 @@ # Release Notes +## Version 1.24.0 - 2021-11-04 + +Features: +* Add --no-kubernetes flag to start minikube without kubernetes [#12848](https://github.com/kubernetes/minikube/pull/12848) +* `minikube addons list` shows addons if cluster does not exist [#12837](https://github.com/kubernetes/minikube/pull/12837) + +Bug fixes: +* virtualbox: change default `host-only-cidr` [#12811](https://github.com/kubernetes/minikube/pull/12811) +* fix zsh completion [#12841](https://github.com/kubernetes/minikube/pull/12841) +* Fix starting on Windows with VMware driver on non `C:` drive [#12819](https://github.com/kubernetes/minikube/pull/12819) + +For a more detailed changelog, including changes occuring in pre-release versions, see [CHANGELOG.md](https://github.com/kubernetes/minikube/blob/master/CHANGELOG.md). + +Thank you to our contributors for this release! + +- Akira Yoshiyama +- Keyhoh +- Medya Ghazizadeh +- Nicolas Busseneau +- Sharif Elgamal +- Steven Powell +- Toshiaki Inukai + +Thank you to our PR reviewers for this release! + +- spowelljr (11 comments) +- sharifelgamal (10 comments) +- afbjorklund (6 comments) +- atoato88 (5 comments) +- medyagh (3 comments) +- yosshy (1 comments) + +Thank you to our triage members for this release! + +- sharifelgamal (13 comments) +- afbjorklund (9 comments) +- spowelljr (6 comments) +- medyagh (3 comments) +- Sarathgiggso (2 comments) + ## Version 1.24.0-beta.0 - 2021-10-28 Features: diff --git a/Makefile b/Makefile index b3482f796d88..4e49066be368 100644 --- a/Makefile +++ b/Makefile @@ -15,7 +15,7 @@ # Bump these on release - and please check ISO_VERSION for correctness. VERSION_MAJOR ?= 1 VERSION_MINOR ?= 24 -VERSION_BUILD ?= 0-beta.0 +VERSION_BUILD ?= 0 RAW_VERSION=$(VERSION_MAJOR).$(VERSION_MINOR).$(VERSION_BUILD) VERSION ?= v$(RAW_VERSION) From ee20880a9e6f3db8b9940387dedfa1d88ccd84a3 Mon Sep 17 00:00:00 2001 From: minikube-bot Date: Fri, 5 Nov 2021 09:07:16 -0700 Subject: [PATCH 099/111] Update releases.json to include v1.24.0 --- deploy/minikube/releases.json | 8 ++++++++ site/content/en/docs/_index.md | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/deploy/minikube/releases.json b/deploy/minikube/releases.json index 6f0ab784ce90..3a1281673a27 100644 --- a/deploy/minikube/releases.json +++ b/deploy/minikube/releases.json @@ -1,4 +1,12 @@ [ + { + "name": "v1.24.0", + "checksums": { + "darwin": "55f14e4f411370da18d7b9432ae4edd128f4f047bbc87a278e08ba256ff6f669", + "linux": "3bc218476cf205acf11b078d45210a4882e136d24a3cbb7d8d645408e423b8fe", + "windows": "bb729590e111652d5f444fa66b66196491fa21c0713e4ff29f6e5360ab13a02c" + } + }, { "name": "v1.23.2", "checksums": { diff --git a/site/content/en/docs/_index.md b/site/content/en/docs/_index.md index d67c8933ce89..4ae470f8b69c 100644 --- a/site/content/en/docs/_index.md +++ b/site/content/en/docs/_index.md @@ -11,7 +11,7 @@ minikube quickly sets up a local Kubernetes cluster on macOS, Linux, and Windows ![Screenshot](/images/screenshot.png) -🎉 Latest Release: v1.23.2 - Sep 21, 2021 ([changelog](https://github.com/kubernetes/minikube/blob/master/CHANGELOG.md)) +🎉 Latest Release: v1.24.0 - Nov 05, 2021 ([changelog](https://github.com/kubernetes/minikube/blob/master/CHANGELOG.md)) ## Highlights From b3ea2d0db7ba1ca48481330787da8ef31386100e Mon Sep 17 00:00:00 2001 From: minikube-bot Date: Fri, 5 Nov 2021 16:43:19 +0000 Subject: [PATCH 100/111] add time-to-k8s benchmark for --- .../en/docs/benchmarks/timeToK8s/v1.24.0.md | 7 +++++++ .../images/benchmarks/timeToK8s/v1.24.0.png | Bin 0 -> 35676 bytes 2 files changed, 7 insertions(+) create mode 100644 site/content/en/docs/benchmarks/timeToK8s/v1.24.0.md create mode 100644 site/static/images/benchmarks/timeToK8s/v1.24.0.png diff --git a/site/content/en/docs/benchmarks/timeToK8s/v1.24.0.md b/site/content/en/docs/benchmarks/timeToK8s/v1.24.0.md new file mode 100644 index 000000000000..eb186a44f037 --- /dev/null +++ b/site/content/en/docs/benchmarks/timeToK8s/v1.24.0.md @@ -0,0 +1,7 @@ +--- +title: "v1.24.0 Benchmark" +linkTitle: "v1.24.0 Benchmark" +weight: -20211105 +--- + +![time-to-k8s](/images/benchmarks/timeToK8s/v1.24.0.png) diff --git a/site/static/images/benchmarks/timeToK8s/v1.24.0.png b/site/static/images/benchmarks/timeToK8s/v1.24.0.png new file mode 100644 index 0000000000000000000000000000000000000000..852e8914647d47a21552bea2290bf2cf4e547665 GIT binary patch literal 35676 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
  • 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 Date: Fri, 5 Nov 2021 12:25:30 -0700 Subject: [PATCH 101/111] update FAQ with no-kubernetes --- site/content/en/docs/faq/_index.md | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/site/content/en/docs/faq/_index.md b/site/content/en/docs/faq/_index.md index 13b318fd0748..fdd660c927be 100644 --- a/site/content/en/docs/faq/_index.md +++ b/site/content/en/docs/faq/_index.md @@ -29,6 +29,36 @@ minikube profile list minikube profiles are meant to be isolated from one another, with their own settings and drivers. If you want to create a single cluster with multiple nodes, try the [multi-node feature]({{< ref "/docs/tutorials/multi_node" >}}) instead. +## Can I use minikube as a Docker Desktop replacement ? +minikube's VM includes a Docker daemon running inside Linux for free, you could use +`minikube docker-env` command to point your terminal's docker-cli to the Docker inside minikube. + +You would need to start minikube with a VM driver (instead of docker) for example hyperkit on Mac and HyperV on windows +``` +minikube start --driver=hyperv +``` + +Alternatively, you could use "minikube image build" command instead of "docker build" + +## Can I start minikube without Kuberentes runninng ? +If you do not want to use Kubernetes cluster at all, and only interested in the minikube VM, you could do this + +``` +minikube start --no-kubernetes +``` + +Alternatively if you temporary don't want to use Kubernetes you could use pause and later unpause Kubernetes +``` +minikube pause +``` + +Alternatively you could use the auto-pause addon that will do that for you automatically. + +``` +minikube addons enable auto-pause +``` + + ## Docker Driver: How can I set minikube's cgroup manager? From 887ff73ce729a7f57cfc9a9754d2423440226655 Mon Sep 17 00:00:00 2001 From: Medya Gh Date: Fri, 5 Nov 2021 12:35:52 -0700 Subject: [PATCH 102/111] change wording --- site/content/en/docs/faq/_index.md | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/site/content/en/docs/faq/_index.md b/site/content/en/docs/faq/_index.md index fdd660c927be..2295a95e1bc6 100644 --- a/site/content/en/docs/faq/_index.md +++ b/site/content/en/docs/faq/_index.md @@ -37,12 +37,10 @@ You would need to start minikube with a VM driver (instead of docker) for exampl ``` minikube start --driver=hyperv ``` - Alternatively, you could use "minikube image build" command instead of "docker build" ## Can I start minikube without Kuberentes runninng ? -If you do not want to use Kubernetes cluster at all, and only interested in the minikube VM, you could do this - +if you only want to use minikube as a Docker Desktop replacement and dont want to use kuberentes itself try: ``` minikube start --no-kubernetes ``` From 1eb05bc18cdc4a3300cc4f3416983c5d4dede31e Mon Sep 17 00:00:00 2001 From: Medya Ghazizadeh Date: Fri, 5 Nov 2021 13:32:50 -0700 Subject: [PATCH 103/111] Update site/content/en/docs/faq/_index.md Co-authored-by: Sharif Elgamal --- site/content/en/docs/faq/_index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/site/content/en/docs/faq/_index.md b/site/content/en/docs/faq/_index.md index 2295a95e1bc6..6827feafea21 100644 --- a/site/content/en/docs/faq/_index.md +++ b/site/content/en/docs/faq/_index.md @@ -29,7 +29,7 @@ minikube profile list minikube profiles are meant to be isolated from one another, with their own settings and drivers. If you want to create a single cluster with multiple nodes, try the [multi-node feature]({{< ref "/docs/tutorials/multi_node" >}}) instead. -## Can I use minikube as a Docker Desktop replacement ? +## Can I use minikube as a Docker Desktop replacement? minikube's VM includes a Docker daemon running inside Linux for free, you could use `minikube docker-env` command to point your terminal's docker-cli to the Docker inside minikube. From 13dbf25d4ec7053ff8f6084fe5d2c3a263646f2d Mon Sep 17 00:00:00 2001 From: Medya Ghazizadeh Date: Fri, 5 Nov 2021 13:33:08 -0700 Subject: [PATCH 104/111] Update site/content/en/docs/faq/_index.md Co-authored-by: Sharif Elgamal --- site/content/en/docs/faq/_index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/site/content/en/docs/faq/_index.md b/site/content/en/docs/faq/_index.md index 6827feafea21..fcc9a443ba79 100644 --- a/site/content/en/docs/faq/_index.md +++ b/site/content/en/docs/faq/_index.md @@ -30,7 +30,7 @@ minikube profile list minikube profiles are meant to be isolated from one another, with their own settings and drivers. If you want to create a single cluster with multiple nodes, try the [multi-node feature]({{< ref "/docs/tutorials/multi_node" >}}) instead. ## Can I use minikube as a Docker Desktop replacement? -minikube's VM includes a Docker daemon running inside Linux for free, you could use +minikube's VM includes a Docker daemon running inside Linux for free, so you can use `minikube docker-env` command to point your terminal's docker-cli to the Docker inside minikube. You would need to start minikube with a VM driver (instead of docker) for example hyperkit on Mac and HyperV on windows From 01a917772dd7bddf37cb9384ed5178cd7876297e Mon Sep 17 00:00:00 2001 From: Medya Ghazizadeh Date: Fri, 5 Nov 2021 13:33:27 -0700 Subject: [PATCH 105/111] Update site/content/en/docs/faq/_index.md Co-authored-by: Sharif Elgamal --- site/content/en/docs/faq/_index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/site/content/en/docs/faq/_index.md b/site/content/en/docs/faq/_index.md index fcc9a443ba79..a10cc18356aa 100644 --- a/site/content/en/docs/faq/_index.md +++ b/site/content/en/docs/faq/_index.md @@ -31,7 +31,7 @@ minikube profiles are meant to be isolated from one another, with their own sett ## Can I use minikube as a Docker Desktop replacement? minikube's VM includes a Docker daemon running inside Linux for free, so you can use -`minikube docker-env` command to point your terminal's docker-cli to the Docker inside minikube. +`minikube docker-env` to point your terminal's Docker CLI to the Docker inside minikube. You would need to start minikube with a VM driver (instead of docker) for example hyperkit on Mac and HyperV on windows ``` From 0c5c0504489c83a23dd5d60d701fbe9a6c1bb8a8 Mon Sep 17 00:00:00 2001 From: Medya Ghazizadeh Date: Fri, 5 Nov 2021 13:34:13 -0700 Subject: [PATCH 106/111] Update site/content/en/docs/faq/_index.md Co-authored-by: Sharif Elgamal --- site/content/en/docs/faq/_index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/site/content/en/docs/faq/_index.md b/site/content/en/docs/faq/_index.md index a10cc18356aa..45bc1f17614c 100644 --- a/site/content/en/docs/faq/_index.md +++ b/site/content/en/docs/faq/_index.md @@ -37,7 +37,7 @@ You would need to start minikube with a VM driver (instead of docker) for exampl ``` minikube start --driver=hyperv ``` -Alternatively, you could use "minikube image build" command instead of "docker build" +Alternatively, you can use `minikube image build` instead of `minikube docker-env` and `docker build`. ## Can I start minikube without Kuberentes runninng ? if you only want to use minikube as a Docker Desktop replacement and dont want to use kuberentes itself try: From 117f7f1c9c04c92bd561dab860964d061ed0eed2 Mon Sep 17 00:00:00 2001 From: Medya Ghazizadeh Date: Fri, 5 Nov 2021 13:34:35 -0700 Subject: [PATCH 107/111] Update site/content/en/docs/faq/_index.md Co-authored-by: Sharif Elgamal --- site/content/en/docs/faq/_index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/site/content/en/docs/faq/_index.md b/site/content/en/docs/faq/_index.md index 45bc1f17614c..7ed482b96c7f 100644 --- a/site/content/en/docs/faq/_index.md +++ b/site/content/en/docs/faq/_index.md @@ -40,7 +40,7 @@ minikube start --driver=hyperv Alternatively, you can use `minikube image build` instead of `minikube docker-env` and `docker build`. ## Can I start minikube without Kuberentes runninng ? -if you only want to use minikube as a Docker Desktop replacement and dont want to use kuberentes itself try: +Yes! If you want to use minikube only as a Docker Desktop replacement without starting Kubernetes itself, try: ``` minikube start --no-kubernetes ``` From 026d797052f341e96cefb4e8aa7ff41cb3c853f6 Mon Sep 17 00:00:00 2001 From: Medya Ghazizadeh Date: Fri, 5 Nov 2021 13:34:58 -0700 Subject: [PATCH 108/111] Update site/content/en/docs/faq/_index.md Co-authored-by: Sharif Elgamal --- site/content/en/docs/faq/_index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/site/content/en/docs/faq/_index.md b/site/content/en/docs/faq/_index.md index 7ed482b96c7f..8e444218441c 100644 --- a/site/content/en/docs/faq/_index.md +++ b/site/content/en/docs/faq/_index.md @@ -50,7 +50,7 @@ Alternatively if you temporary don't want to use Kubernetes you could use pause minikube pause ``` -Alternatively you could use the auto-pause addon that will do that for you automatically. +minikube also has an addon that automatically pauses Kubernetes after a certain amount of inactivity: ``` minikube addons enable auto-pause From b11f039e51f6ecd0e1d66f5509ba4016f1774485 Mon Sep 17 00:00:00 2001 From: Medya Ghazizadeh Date: Fri, 5 Nov 2021 13:35:12 -0700 Subject: [PATCH 109/111] Update site/content/en/docs/faq/_index.md Co-authored-by: Sharif Elgamal --- site/content/en/docs/faq/_index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/site/content/en/docs/faq/_index.md b/site/content/en/docs/faq/_index.md index 8e444218441c..0648e37f2a68 100644 --- a/site/content/en/docs/faq/_index.md +++ b/site/content/en/docs/faq/_index.md @@ -45,7 +45,7 @@ Yes! If you want to use minikube only as a Docker Desktop replacement without st minikube start --no-kubernetes ``` -Alternatively if you temporary don't want to use Kubernetes you could use pause and later unpause Kubernetes +Alternatively, if you want to temporarily turn off Kubernetes, you can pause and later unpause Kubernetes ``` minikube pause ``` From 64ef6c02dd4d64e1ac41b53ce533011f11df7350 Mon Sep 17 00:00:00 2001 From: Medya Ghazizadeh Date: Fri, 5 Nov 2021 13:35:19 -0700 Subject: [PATCH 110/111] Update site/content/en/docs/faq/_index.md Co-authored-by: Sharif Elgamal --- site/content/en/docs/faq/_index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/site/content/en/docs/faq/_index.md b/site/content/en/docs/faq/_index.md index 0648e37f2a68..12e22f024614 100644 --- a/site/content/en/docs/faq/_index.md +++ b/site/content/en/docs/faq/_index.md @@ -39,7 +39,7 @@ minikube start --driver=hyperv ``` Alternatively, you can use `minikube image build` instead of `minikube docker-env` and `docker build`. -## Can I start minikube without Kuberentes runninng ? +## Can I start minikube without Kuberentes runninng? Yes! If you want to use minikube only as a Docker Desktop replacement without starting Kubernetes itself, try: ``` minikube start --no-kubernetes From b6fcf309a83d1910a5b51700084ab9c09d6c14f9 Mon Sep 17 00:00:00 2001 From: Medya Ghazizadeh Date: Fri, 5 Nov 2021 13:35:34 -0700 Subject: [PATCH 111/111] Update site/content/en/docs/faq/_index.md Co-authored-by: Sharif Elgamal --- site/content/en/docs/faq/_index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/site/content/en/docs/faq/_index.md b/site/content/en/docs/faq/_index.md index 12e22f024614..2d563f17a145 100644 --- a/site/content/en/docs/faq/_index.md +++ b/site/content/en/docs/faq/_index.md @@ -33,7 +33,7 @@ minikube profiles are meant to be isolated from one another, with their own sett minikube's VM includes a Docker daemon running inside Linux for free, so you can use `minikube docker-env` to point your terminal's Docker CLI to the Docker inside minikube. -You would need to start minikube with a VM driver (instead of docker) for example hyperkit on Mac and HyperV on windows +You would need to start minikube with a VM driver, instead of docker, such as hyperkit on macOS and Hyper-V on Windows. ``` minikube start --driver=hyperv ```