From 5ce895bdc6a5f4195c43b81790bcec4c95551c61 Mon Sep 17 00:00:00 2001 From: Sharif Elgamal Date: Tue, 8 Jun 2021 13:27:33 -0700 Subject: [PATCH 001/111] add mitm test --- hack/benchmark/time-to-k8s/time-to-k8s | 1 - test/integration/functional_test.go | 37 ++++++++++++++++++++++++++ 2 files changed, 37 insertions(+), 1 deletion(-) delete mode 160000 hack/benchmark/time-to-k8s/time-to-k8s diff --git a/hack/benchmark/time-to-k8s/time-to-k8s b/hack/benchmark/time-to-k8s/time-to-k8s deleted file mode 160000 index 72506e948764..000000000000 --- a/hack/benchmark/time-to-k8s/time-to-k8s +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 72506e948764aeeafc01e58e6bec0ea741c61ca0 diff --git a/test/integration/functional_test.go b/test/integration/functional_test.go index 2616bf1535b9..932533756d04 100644 --- a/test/integration/functional_test.go +++ b/test/integration/functional_test.go @@ -1782,6 +1782,43 @@ users: } } +func validateStartWithCorpProxy(ctx context.Context, t *testing.T, profile string) { + if !GithubActionRunner() { + t.Skip("Only run mitmproxy test on github actions") + } + + // Pull down the mitmproxy docker image + dockercmd := exec.CommandContext(ctx, "docker", "pull", "mitmproxy/mitmproxy") + _, err := Run(t, dockercmd) + if err != nil { + t.Fatalf("Failed to download mitmproxy docker image: %v", err) + } + + certDir, err := ioutil.TempDir("", "") + if err != nil { + t.Fatalf("creating temp dir failed: %v", err) + } + + // Start an interactive session (since mitmproxy requires it) asyncronously + // This will create the necessary .mitmproxy directory with its certs + mitmCmd := exec.CommandContext(ctx, "docker", "run", "-it", "--rm", "--name", "mitmproxy", "-v", certDir, ":/home/mitmproxy/.mitmproxy", "-p", "8080:8080", "mitmproxy/mitmproxy") + go Run(t, mitmCmd) + + // Make sure the container is running and grab the containerid for future use + containerID := "" + for containerID == "" { + rr, err := Run(t, exec.CommandContext(ctx, "docker", "ps", "--filter", "name=mitmproxy", "-q")) + if err != nil { + t.Fatalf("docker failure: %v", err) + } + containerID = string(rr.Stdout.Bytes()) + } + defer Run(t, exec.CommandContext(ctx, "docker", "stop", containerID)) + + certFile := path.Join(certDir, "mitmproxy-ca-cert.pem") + +} + // startHTTPProxy runs a local http proxy and sets the env vars for it. func startHTTPProxy(t *testing.T) (*http.Server, error) { port, err := freeport.GetFreePort() From 8390d9de1b0505905aed09ffa27b3e64e0b2c455 Mon Sep 17 00:00:00 2001 From: Sharif Elgamal Date: Thu, 10 Jun 2021 10:40:53 -0700 Subject: [PATCH 002/111] more of the test is written now --- test/integration/functional_test.go | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/test/integration/functional_test.go b/test/integration/functional_test.go index 932533756d04..3d2eff778895 100644 --- a/test/integration/functional_test.go +++ b/test/integration/functional_test.go @@ -1815,8 +1815,34 @@ func validateStartWithCorpProxy(ctx context.Context, t *testing.T, profile strin } defer Run(t, exec.CommandContext(ctx, "docker", "stop", containerID)) + // Add a symlink from the cert to the correct directory certFile := path.Join(certDir, "mitmproxy-ca-cert.pem") + destCertPath := path.Join("/etc/ssl/certs", "mitmproxy-ca-cert.pem") + symLinkCmd := fmt.Sprintf("test -s %s && ln -fs %s %s", certFile, certFile, destCertPath) + if _, err := Run(t, exec.CommandContext(ctx, "sudo", "/bin/bash", "-c", symLinkCmd)); err != nil { + t.Fatalf("cert symlink failure: %v", err) + } + + // Add a symlink of the form {hash}.0 + rr, err := Run(t, exec.CommandContext(ctx, "openssl", "x509", "-hash", "-noout", "-in", certFile)) + if err != nil { + t.Fatalf("cert hashing failure: %v", err) + } + stringHash := strings.TrimSpace(rr.Stdout.String()) + hashLink := path.Join("/etc/ssl/certs", fmt.Sprintf("%s.0", stringHash)) + + hashCmd := fmt.Sprintf("test -L %s || ln -fs %s %s", hashLink, destCertPath, hashLink) + if _, err := Run(t, exec.CommandContext(ctx, "sudo", "/bin/bash", "-c", hashCmd)); err != nil { + t.Fatalf("cert hash symlink failure: %v", err) + } + // ok, now start minikube + startArgs := append([]string{"start", "-p", profile, "--wait=all"}, StartArgs()...) + c := exec.CommandContext(ctx, Target(), startArgs...) + env := os.Environ() + env = append(env, "HTTPS_PROXY=127.0.0.1:8080") + env = append(env, "NO_PROXY=") + c.Env = env } // startHTTPProxy runs a local http proxy and sets the env vars for it. From e367b78e6df406084f8b97562a8e8e7f5e5d27d3 Mon Sep 17 00:00:00 2001 From: Sharif Elgamal Date: Thu, 10 Jun 2021 13:38:52 -0700 Subject: [PATCH 003/111] run minikube start and check for error --- test/integration/functional_test.go | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/test/integration/functional_test.go b/test/integration/functional_test.go index 3d2eff778895..9a90b715e667 100644 --- a/test/integration/functional_test.go +++ b/test/integration/functional_test.go @@ -1843,6 +1843,15 @@ func validateStartWithCorpProxy(ctx context.Context, t *testing.T, profile strin env = append(env, "HTTPS_PROXY=127.0.0.1:8080") env = append(env, "NO_PROXY=") c.Env = env + + rr, err = Run(t, c) + if err != nil { + t.Errorf("minikube start failed: %v", err) + } + + if rr.Stderr.Len() > 0 { + t.Errorf("Unexpected output to std err: %s", rr.Stderr.String()) + } } // startHTTPProxy runs a local http proxy and sets the env vars for it. From eb12283b43bfcca4fce2dc7d24f92c77c61d1f23 Mon Sep 17 00:00:00 2001 From: Sharif Elgamal Date: Thu, 10 Jun 2021 13:50:19 -0700 Subject: [PATCH 004/111] add cleanup --- test/integration/functional_test.go | 3 +++ 1 file changed, 3 insertions(+) diff --git a/test/integration/functional_test.go b/test/integration/functional_test.go index 9a90b715e667..abfcc516e97a 100644 --- a/test/integration/functional_test.go +++ b/test/integration/functional_test.go @@ -93,6 +93,7 @@ func TestFunctional(t *testing.T) { {"MinikubeKubectlCmdDirectly", validateMinikubeKubectlDirectCall}, {"ExtraConfig", validateExtraConfig}, // Ensure extra cmdline config change is saved {"ComponentHealth", validateComponentHealth}, + {"StartWithCorpProxy", validateStartWithCorpProxy}, } for _, tc := range tests { tc := tc @@ -1787,6 +1788,8 @@ func validateStartWithCorpProxy(ctx context.Context, t *testing.T, profile strin t.Skip("Only run mitmproxy test on github actions") } + defer PostMortemLogs(t, profile) + // Pull down the mitmproxy docker image dockercmd := exec.CommandContext(ctx, "docker", "pull", "mitmproxy/mitmproxy") _, err := Run(t, dockercmd) From 318233978d4c33d68f85decd1b4ea00ed3907ed0 Mon Sep 17 00:00:00 2001 From: Sharif Elgamal Date: Thu, 10 Jun 2021 14:34:24 -0700 Subject: [PATCH 005/111] make sure to only run one proxy test or the other --- site/content/en/docs/contrib/tests.en.md | 6 +++++ test/integration/functional_test.go | 31 ++++++++++++++++++++---- 2 files changed, 32 insertions(+), 5 deletions(-) diff --git a/site/content/en/docs/contrib/tests.en.md b/site/content/en/docs/contrib/tests.en.md index 47ea10dca52f..94620c005b2f 100644 --- a/site/content/en/docs/contrib/tests.en.md +++ b/site/content/en/docs/contrib/tests.en.md @@ -94,6 +94,9 @@ check functionality of minikube after evaluating docker-env check functionality of minikube after evaluating podman-env #### validateStartWithProxy +either calls validateStartWithRegularProxy or validateStartWithCorpProxy depending on the test environment + +#### validateStartWithRegularProxy makes sure minikube start respects the HTTP_PROXY environment variable #### validateAuditAfterStart @@ -172,6 +175,9 @@ asserts that for a given runtime, the other runtimes disabled, for example for c #### validateUpdateContextCmd asserts basic "update-context" command functionality +#### validateStartWithCorpProxy +ensures that minikube can run behind a custom proxy + #### validateMountCmd verifies the minikube mount command works properly diff --git a/test/integration/functional_test.go b/test/integration/functional_test.go index abfcc516e97a..6133522102ed 100644 --- a/test/integration/functional_test.go +++ b/test/integration/functional_test.go @@ -93,7 +93,6 @@ func TestFunctional(t *testing.T) { {"MinikubeKubectlCmdDirectly", validateMinikubeKubectlDirectCall}, {"ExtraConfig", validateExtraConfig}, // Ensure extra cmdline config change is saved {"ComponentHealth", validateComponentHealth}, - {"StartWithCorpProxy", validateStartWithCorpProxy}, } for _, tc := range tests { tc := tc @@ -518,8 +517,17 @@ func validatePodmanEnv(ctx context.Context, t *testing.T, profile string) { } } -// validateStartWithProxy makes sure minikube start respects the HTTP_PROXY environment variable +// validateStartWithProxy either calls validateStartWithRegularProxy or validateStartWithCorpProxy depending on the test environment func validateStartWithProxy(ctx context.Context, t *testing.T, profile string) { + if GithubActionRunner() { + validateStartWithCorpProxy(ctx, t, profile) + } else { + validateStartWithRegularProxy(ctx, t, profile) + } +} + +// validateStartWithRegularProxy makes sure minikube start respects the HTTP_PROXY environment variable +func validateStartWithRegularProxy(ctx context.Context, t *testing.T, profile string) { defer PostMortemLogs(t, profile) srv, err := startHTTPProxy(t) @@ -1783,11 +1791,16 @@ users: } } +// validateStartWithCorpProxy ensures that minikube can run behind a custom proxy func validateStartWithCorpProxy(ctx context.Context, t *testing.T, profile string) { if !GithubActionRunner() { t.Skip("Only run mitmproxy test on github actions") } + if runtime.GOOS != "linux" { + t.Skip("Only run mitmproxy test on linux") + } + defer PostMortemLogs(t, profile) // Pull down the mitmproxy docker image @@ -1805,7 +1818,10 @@ func validateStartWithCorpProxy(ctx context.Context, t *testing.T, profile strin // Start an interactive session (since mitmproxy requires it) asyncronously // This will create the necessary .mitmproxy directory with its certs mitmCmd := exec.CommandContext(ctx, "docker", "run", "-it", "--rm", "--name", "mitmproxy", "-v", certDir, ":/home/mitmproxy/.mitmproxy", "-p", "8080:8080", "mitmproxy/mitmproxy") - go Run(t, mitmCmd) + _, err = Start(t, mitmCmd) + if err != nil { + t.Fatalf("starting mitmproxy failed: %v", err) + } // Make sure the container is running and grab the containerid for future use containerID := "" @@ -1814,9 +1830,14 @@ func validateStartWithCorpProxy(ctx context.Context, t *testing.T, profile strin if err != nil { t.Fatalf("docker failure: %v", err) } - containerID = string(rr.Stdout.Bytes()) + containerID = rr.Stdout.String() } - defer Run(t, exec.CommandContext(ctx, "docker", "stop", containerID)) + defer func() { + _, err := Run(t, exec.CommandContext(ctx, "docker", "stop", containerID)) + if err != nil { + t.Logf("failed to stop docker: %v", err) + } + }() // Add a symlink from the cert to the correct directory certFile := path.Join(certDir, "mitmproxy-ca-cert.pem") From 29dda75538ebf6230d8707306787dcb4dda76ed9 Mon Sep 17 00:00:00 2001 From: Sharif Elgamal Date: Thu, 10 Jun 2021 15:06:56 -0700 Subject: [PATCH 006/111] add 90 second timeout --- test/integration/functional_test.go | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/test/integration/functional_test.go b/test/integration/functional_test.go index 6133522102ed..b793627c92be 100644 --- a/test/integration/functional_test.go +++ b/test/integration/functional_test.go @@ -1818,26 +1818,34 @@ func validateStartWithCorpProxy(ctx context.Context, t *testing.T, profile strin // Start an interactive session (since mitmproxy requires it) asyncronously // This will create the necessary .mitmproxy directory with its certs mitmCmd := exec.CommandContext(ctx, "docker", "run", "-it", "--rm", "--name", "mitmproxy", "-v", certDir, ":/home/mitmproxy/.mitmproxy", "-p", "8080:8080", "mitmproxy/mitmproxy") - _, err = Start(t, mitmCmd) + mitmRR, err := Start(t, mitmCmd) if err != nil { t.Fatalf("starting mitmproxy failed: %v", err) } // Make sure the container is running and grab the containerid for future use + // Timeout after 90 seconds containerID := "" + tries := 0 for containerID == "" { rr, err := Run(t, exec.CommandContext(ctx, "docker", "ps", "--filter", "name=mitmproxy", "-q")) if err != nil { t.Fatalf("docker failure: %v", err) } containerID = rr.Stdout.String() - } - defer func() { - _, err := Run(t, exec.CommandContext(ctx, "docker", "stop", containerID)) - if err != nil { - t.Logf("failed to stop docker: %v", err) + time.Sleep(time.Second) + tries++ + if tries > 90 { + break } - }() + } + if containerID == "" { + var stdout []byte + var stderr []byte + mitmRR.Stdout.Read(stdout) + mitmRR.Stdout.Read(stderr) + t.Fatalf("mitmproxy docker container never started\n stdout: %v\n stderr: %v", string(stdout), string(stderr)) + } // Add a symlink from the cert to the correct directory certFile := path.Join(certDir, "mitmproxy-ca-cert.pem") From 8d878532ffa653b7a73d9a2a7dfe901f6a076cfb Mon Sep 17 00:00:00 2001 From: Sharif Elgamal Date: Thu, 10 Jun 2021 15:57:21 -0700 Subject: [PATCH 007/111] lint --- test/integration/functional_test.go | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/test/integration/functional_test.go b/test/integration/functional_test.go index b793627c92be..4eba76e19020 100644 --- a/test/integration/functional_test.go +++ b/test/integration/functional_test.go @@ -1842,8 +1842,14 @@ func validateStartWithCorpProxy(ctx context.Context, t *testing.T, profile strin if containerID == "" { var stdout []byte var stderr []byte - mitmRR.Stdout.Read(stdout) - mitmRR.Stdout.Read(stderr) + _, err := mitmRR.Stdout.Read(stdout) + if err != nil { + t.Logf("reading stdout failed: %s", err) + } + _, err = mitmRR.Stdout.Read(stderr) + if err != nil { + t.Logf("reading stderr failed: %s", err) + } t.Fatalf("mitmproxy docker container never started\n stdout: %v\n stderr: %v", string(stdout), string(stderr)) } From 7d7db7b24309923875006ec24647bc47c2f7ca40 Mon Sep 17 00:00:00 2001 From: Sharif Elgamal Date: Mon, 21 Jun 2021 16:34:02 -0700 Subject: [PATCH 008/111] debugging --- test/integration/functional_test.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/test/integration/functional_test.go b/test/integration/functional_test.go index 4eba76e19020..7af66995315b 100644 --- a/test/integration/functional_test.go +++ b/test/integration/functional_test.go @@ -1850,7 +1850,8 @@ func validateStartWithCorpProxy(ctx context.Context, t *testing.T, profile strin if err != nil { t.Logf("reading stderr failed: %s", err) } - t.Fatalf("mitmproxy docker container never started\n stdout: %v\n stderr: %v", string(stdout), string(stderr)) + rr, _ := Run(t, exec.CommandContext(ctx, "docker", "ps")) + t.Fatalf("mitmproxy docker container never started\n stdout: %v\n stderr: %v", rr.Stdout.String(), string(stderr)) } // Add a symlink from the cert to the correct directory From cc5de4cb6f94327eee000762494cdab6f2075bf4 Mon Sep 17 00:00:00 2001 From: Sharif Elgamal Date: Tue, 22 Jun 2021 14:57:53 -0700 Subject: [PATCH 009/111] use mitmdump binary instead of mitmproxy docker image --- test/integration/functional_test.go | 54 ++++++++--------------------- 1 file changed, 14 insertions(+), 40 deletions(-) diff --git a/test/integration/functional_test.go b/test/integration/functional_test.go index 49d1b672e35e..81efd85c3a04 100644 --- a/test/integration/functional_test.go +++ b/test/integration/functional_test.go @@ -1798,7 +1798,6 @@ users: if err := ioutil.WriteFile(tf.Name(), tc.kubeconfig, 0644); err != nil { t.Fatal(err) } - t.Cleanup(func() { os.Remove(tf.Name()) }) @@ -1830,56 +1829,31 @@ func validateStartWithCorpProxy(ctx context.Context, t *testing.T, profile strin defer PostMortemLogs(t, profile) - // Pull down the mitmproxy docker image - dockercmd := exec.CommandContext(ctx, "docker", "pull", "mitmproxy/mitmproxy") - _, err := Run(t, dockercmd) + // Download the mitmproxy bundle for mitmdump + _, err := Run(t, exec.CommandContext(ctx, "curl", "-LO", "https://snapshots.mitmproxy.org/6.0.2/mitmproxy-6.0.2-linux.tar.gz")) if err != nil { - t.Fatalf("Failed to download mitmproxy docker image: %v", err) + t.Fatalf("failed to download mitmproxy tar: %v", err) } - certDir, err := ioutil.TempDir("", "") + _, err = Run(t, exec.CommandContext(ctx, "tar", "xzf", "mitmproxy-6.0.2-linux.tar.gz")) if err != nil { - t.Fatalf("creating temp dir failed: %v", err) + t.Fatalf("failed untar mitmproxy tar: %v", err) } - // Start an interactive session (since mitmproxy requires it) asyncronously - // This will create the necessary .mitmproxy directory with its certs - mitmCmd := exec.CommandContext(ctx, "docker", "run", "-it", "--rm", "--name", "mitmproxy", "-v", certDir, ":/home/mitmproxy/.mitmproxy", "-p", "8080:8080", "mitmproxy/mitmproxy") - mitmRR, err := Start(t, mitmCmd) + // Start mitmdump in the background, this will create the needed certs + // and provide the necessary proxy at 127.0.0.1:8080 + mitmRR, err := Start(t, exec.CommandContext(ctx, "./mitmproxy-6.0.2-linux/mitmdump")) if err != nil { t.Fatalf("starting mitmproxy failed: %v", err) } + defer mitmRR.Stop(t) - // Make sure the container is running and grab the containerid for future use - // Timeout after 90 seconds - containerID := "" - tries := 0 - for containerID == "" { - rr, err := Run(t, exec.CommandContext(ctx, "docker", "ps", "--filter", "name=mitmproxy", "-q")) - if err != nil { - t.Fatalf("docker failure: %v", err) - } - containerID = rr.Stdout.String() - time.Sleep(time.Second) - tries++ - if tries > 90 { - break - } - } - if containerID == "" { - var stdout []byte - var stderr []byte - _, err := mitmRR.Stdout.Read(stdout) - if err != nil { - t.Logf("reading stdout failed: %s", err) - } - _, err = mitmRR.Stdout.Read(stderr) - if err != nil { - t.Logf("reading stderr failed: %s", err) - } - rr, _ := Run(t, exec.CommandContext(ctx, "docker", "ps")) - t.Fatalf("mitmproxy docker container never started\n stdout: %v\n stderr: %v", rr.Stdout.String(), string(stderr)) + // Find cert directory + homeDir, err := os.UserHomeDir() + if err != nil { + t.Fatalf("failed to find user home dir: %v", err) } + certDir := path.Join(homeDir, ".mitmproxy") // Add a symlink from the cert to the correct directory certFile := path.Join(certDir, "mitmproxy-ca-cert.pem") From f9d87ca4b734ad0a87d214064d1e9e917901b50c Mon Sep 17 00:00:00 2001 From: Sharif Elgamal Date: Tue, 22 Jun 2021 16:58:05 -0700 Subject: [PATCH 010/111] untar to specific dir --- test/integration/functional_test.go | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/test/integration/functional_test.go b/test/integration/functional_test.go index 81efd85c3a04..18b30d7fec32 100644 --- a/test/integration/functional_test.go +++ b/test/integration/functional_test.go @@ -1835,14 +1835,16 @@ func validateStartWithCorpProxy(ctx context.Context, t *testing.T, profile strin t.Fatalf("failed to download mitmproxy tar: %v", err) } - _, err = Run(t, exec.CommandContext(ctx, "tar", "xzf", "mitmproxy-6.0.2-linux.tar.gz")) + mitmDir, err := ioutil.TempDir("", "") + + _, err = Run(t, exec.CommandContext(ctx, "tar", "xzf", "mitmproxy-6.0.2-linux.tar.gz", "-C", mitmDir)) if err != nil { t.Fatalf("failed untar mitmproxy tar: %v", err) } // Start mitmdump in the background, this will create the needed certs // and provide the necessary proxy at 127.0.0.1:8080 - mitmRR, err := Start(t, exec.CommandContext(ctx, "./mitmproxy-6.0.2-linux/mitmdump")) + mitmRR, err := Start(t, exec.CommandContext(ctx, path.Join(mitmDir, "mitmdump"))) if err != nil { t.Fatalf("starting mitmproxy failed: %v", err) } From 0932900abb941f4365de2cb0a559c55933d4d1bc Mon Sep 17 00:00:00 2001 From: Sharif Elgamal Date: Tue, 22 Jun 2021 17:15:04 -0700 Subject: [PATCH 011/111] fix lint --- test/integration/functional_test.go | 3 +++ 1 file changed, 3 insertions(+) diff --git a/test/integration/functional_test.go b/test/integration/functional_test.go index 18b30d7fec32..6c93c4ba85d5 100644 --- a/test/integration/functional_test.go +++ b/test/integration/functional_test.go @@ -1836,6 +1836,9 @@ func validateStartWithCorpProxy(ctx context.Context, t *testing.T, profile strin } mitmDir, err := ioutil.TempDir("", "") + if err != nil { + t.Fatalf("failed to create temp dir: %v", err) + } _, err = Run(t, exec.CommandContext(ctx, "tar", "xzf", "mitmproxy-6.0.2-linux.tar.gz", "-C", mitmDir)) if err != nil { From a602fc21d657de555870204d59e5c84178ee392c Mon Sep 17 00:00:00 2001 From: Sharif Elgamal Date: Wed, 23 Jun 2021 16:02:57 -0700 Subject: [PATCH 012/111] explicitly set cert directory --- test/integration/functional_test.go | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) diff --git a/test/integration/functional_test.go b/test/integration/functional_test.go index 6c93c4ba85d5..2d8f62a10df5 100644 --- a/test/integration/functional_test.go +++ b/test/integration/functional_test.go @@ -1842,26 +1842,19 @@ func validateStartWithCorpProxy(ctx context.Context, t *testing.T, profile strin _, err = Run(t, exec.CommandContext(ctx, "tar", "xzf", "mitmproxy-6.0.2-linux.tar.gz", "-C", mitmDir)) if err != nil { - t.Fatalf("failed untar mitmproxy tar: %v", err) + t.Fatalf("failed to untar mitmproxy tar: %v", err) } // Start mitmdump in the background, this will create the needed certs // and provide the necessary proxy at 127.0.0.1:8080 - mitmRR, err := Start(t, exec.CommandContext(ctx, path.Join(mitmDir, "mitmdump"))) + mitmRR, err := Start(t, exec.CommandContext(ctx, path.Join(mitmDir, "mitmdump", "--set", "confdir", mitmDir))) if err != nil { t.Fatalf("starting mitmproxy failed: %v", err) } defer mitmRR.Stop(t) - // Find cert directory - homeDir, err := os.UserHomeDir() - if err != nil { - t.Fatalf("failed to find user home dir: %v", err) - } - certDir := path.Join(homeDir, ".mitmproxy") - // Add a symlink from the cert to the correct directory - certFile := path.Join(certDir, "mitmproxy-ca-cert.pem") + certFile := path.Join(mitmDir, "mitmproxy-ca-cert.pem") destCertPath := path.Join("/etc/ssl/certs", "mitmproxy-ca-cert.pem") symLinkCmd := fmt.Sprintf("test -s %s && ln -fs %s %s", certFile, certFile, destCertPath) if _, err := Run(t, exec.CommandContext(ctx, "sudo", "/bin/bash", "-c", symLinkCmd)); err != nil { From 348c34a291974e00ae0541745f56d8e8a7eca114 Mon Sep 17 00:00:00 2001 From: Sharif Elgamal Date: Wed, 23 Jun 2021 17:41:52 -0700 Subject: [PATCH 013/111] explicitly test for cert file existence --- test/integration/functional_test.go | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/test/integration/functional_test.go b/test/integration/functional_test.go index 2d8f62a10df5..5157c39a9af8 100644 --- a/test/integration/functional_test.go +++ b/test/integration/functional_test.go @@ -1847,7 +1847,7 @@ func validateStartWithCorpProxy(ctx context.Context, t *testing.T, profile strin // Start mitmdump in the background, this will create the needed certs // and provide the necessary proxy at 127.0.0.1:8080 - mitmRR, err := Start(t, exec.CommandContext(ctx, path.Join(mitmDir, "mitmdump", "--set", "confdir", mitmDir))) + mitmRR, err := Start(t, exec.CommandContext(ctx, path.Join(mitmDir, "mitmdump"), "--set", fmt.Sprintf("confdir=%s", mitmDir))) if err != nil { t.Fatalf("starting mitmproxy failed: %v", err) } @@ -1855,8 +1855,23 @@ func validateStartWithCorpProxy(ctx context.Context, t *testing.T, profile strin // Add a symlink from the cert to the correct directory certFile := path.Join(mitmDir, "mitmproxy-ca-cert.pem") + // wait 15 seconds for the certs to show up + _, err = os.Stat(certFile) + tries := 1 + for os.IsNotExist(err) { + time.Sleep(1 * time.Second) + tries++ + if tries > 15 { + break + } + _, err = os.Stat(certFile) + } + if os.IsNotExist(err) { + t.Fatalf("cert files never showed up: %v", err) + } + destCertPath := path.Join("/etc/ssl/certs", "mitmproxy-ca-cert.pem") - symLinkCmd := fmt.Sprintf("test -s %s && ln -fs %s %s", certFile, certFile, destCertPath) + symLinkCmd := fmt.Sprintf("ln -fs %s %s", certFile, destCertPath) if _, err := Run(t, exec.CommandContext(ctx, "sudo", "/bin/bash", "-c", symLinkCmd)); err != nil { t.Fatalf("cert symlink failure: %v", err) } From cf7fab6c24ab9ae37290ec2526707a5b23435fb4 Mon Sep 17 00:00:00 2001 From: Sharif Elgamal Date: Thu, 24 Jun 2021 10:05:47 -0700 Subject: [PATCH 014/111] proper cleanup for the proxy --- test/integration/functional_test.go | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/test/integration/functional_test.go b/test/integration/functional_test.go index 5157c39a9af8..068c5d23df53 100644 --- a/test/integration/functional_test.go +++ b/test/integration/functional_test.go @@ -59,6 +59,9 @@ type validateFunc func(context.Context, *testing.T, string) // used in validateStartWithProxy and validateSoftStart var apiPortTest = 8441 +// Store the proxy session so we can clean it up at the end +var mitm *StartSession + // TestFunctional are functionality tests which can safely share a profile in parallel func TestFunctional(t *testing.T) { @@ -105,7 +108,12 @@ func TestFunctional(t *testing.T) { } }) - defer cleanupUnwantedImages(ctx, t, profile) + defer func() { + cleanupUnwantedImages(ctx, t, profile) + if GithubActionRunner() { + mitm.Stop(t) + } + }() // Parallelized tests t.Run("parallel", func(t *testing.T) { @@ -1834,6 +1842,12 @@ func validateStartWithCorpProxy(ctx context.Context, t *testing.T, profile strin if err != nil { t.Fatalf("failed to download mitmproxy tar: %v", err) } + defer func() { + err := os.Remove("mitmproxy-6.0.2-linux.tar.gz") + if err != nil { + t.Logf("failed to remove tarball: %v", err) + } + }() mitmDir, err := ioutil.TempDir("", "") if err != nil { @@ -1851,7 +1865,9 @@ func validateStartWithCorpProxy(ctx context.Context, t *testing.T, profile strin if err != nil { t.Fatalf("starting mitmproxy failed: %v", err) } - defer mitmRR.Stop(t) + + // Store it for cleanup later + mitm = mitmRR // Add a symlink from the cert to the correct directory certFile := path.Join(mitmDir, "mitmproxy-ca-cert.pem") From b19593d9aa6f8f3abc3929f5aa30fa3c89b37551 Mon Sep 17 00:00:00 2001 From: Sharif Elgamal Date: Thu, 24 Jun 2021 10:49:47 -0700 Subject: [PATCH 015/111] mimic other proxy test more closely --- test/integration/functional_test.go | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/test/integration/functional_test.go b/test/integration/functional_test.go index 068c5d23df53..095172a71c7c 100644 --- a/test/integration/functional_test.go +++ b/test/integration/functional_test.go @@ -1905,8 +1905,15 @@ func validateStartWithCorpProxy(ctx context.Context, t *testing.T, profile strin t.Fatalf("cert hash symlink failure: %v", err) } + // Use more memory so that we may reliably fit MySQL and nginx + memoryFlag := "--memory=4000" + // to avoid failure for mysq/pv on virtualbox on darwin on free github actions, + if GithubActionRunner() && VirtualboxDriver() { + memoryFlag = "--memory=6000" + } + // ok, now start minikube - startArgs := append([]string{"start", "-p", profile, "--wait=all"}, StartArgs()...) + startArgs := append([]string{"start", "-p", profile, memoryFlag, fmt.Sprintf("--apiserver-port=%d", apiPortTest), "--wait=all"}, StartArgs()...) c := exec.CommandContext(ctx, Target(), startArgs...) env := os.Environ() env = append(env, "HTTPS_PROXY=127.0.0.1:8080") From 1f1ec555aa57599a855e14e8400f867a006749e6 Mon Sep 17 00:00:00 2001 From: Sharif Elgamal Date: Thu, 24 Jun 2021 11:10:00 -0700 Subject: [PATCH 016/111] fix checks for which proxy to use --- test/integration/functional_test.go | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) diff --git a/test/integration/functional_test.go b/test/integration/functional_test.go index 095172a71c7c..dac90e6afaaf 100644 --- a/test/integration/functional_test.go +++ b/test/integration/functional_test.go @@ -110,7 +110,7 @@ func TestFunctional(t *testing.T) { defer func() { cleanupUnwantedImages(ctx, t, profile) - if GithubActionRunner() { + if GithubActionRunner() && runtime.GOOS == "linux" { mitm.Stop(t) } }() @@ -528,7 +528,7 @@ func validatePodmanEnv(ctx context.Context, t *testing.T, profile string) { // validateStartWithProxy either calls validateStartWithRegularProxy or validateStartWithCorpProxy depending on the test environment func validateStartWithProxy(ctx context.Context, t *testing.T, profile string) { - if GithubActionRunner() { + if GithubActionRunner() && runtime.GOOS == "linux" { validateStartWithCorpProxy(ctx, t, profile) } else { validateStartWithRegularProxy(ctx, t, profile) @@ -1827,14 +1827,6 @@ users: // validateStartWithCorpProxy ensures that minikube can run behind a custom proxy func validateStartWithCorpProxy(ctx context.Context, t *testing.T, profile string) { - if !GithubActionRunner() { - t.Skip("Only run mitmproxy test on github actions") - } - - if runtime.GOOS != "linux" { - t.Skip("Only run mitmproxy test on linux") - } - defer PostMortemLogs(t, profile) // Download the mitmproxy bundle for mitmdump From b91fda34966e0878e8d8c546997b1d5c1cce620c Mon Sep 17 00:00:00 2001 From: Sharif Elgamal Date: Thu, 24 Jun 2021 12:49:43 -0700 Subject: [PATCH 017/111] don't run corp proxy test on arm64 --- test/integration/functional_test.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/integration/functional_test.go b/test/integration/functional_test.go index dac90e6afaaf..85dca0f88f93 100644 --- a/test/integration/functional_test.go +++ b/test/integration/functional_test.go @@ -110,7 +110,7 @@ func TestFunctional(t *testing.T) { defer func() { cleanupUnwantedImages(ctx, t, profile) - if GithubActionRunner() && runtime.GOOS == "linux" { + if GithubActionRunner() && runtime.GOOS == "linux" && !arm64Platform() { mitm.Stop(t) } }() @@ -528,7 +528,7 @@ func validatePodmanEnv(ctx context.Context, t *testing.T, profile string) { // validateStartWithProxy either calls validateStartWithRegularProxy or validateStartWithCorpProxy depending on the test environment func validateStartWithProxy(ctx context.Context, t *testing.T, profile string) { - if GithubActionRunner() && runtime.GOOS == "linux" { + if GithubActionRunner() && runtime.GOOS == "linux" && !arm64Platform() { validateStartWithCorpProxy(ctx, t, profile) } else { validateStartWithRegularProxy(ctx, t, profile) From a1b348851e217869ea661b6c88c407ec9aefb3fc Mon Sep 17 00:00:00 2001 From: Sharif Elgamal Date: Thu, 24 Jun 2021 13:12:47 -0700 Subject: [PATCH 018/111] improve success check --- test/integration/functional_test.go | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/test/integration/functional_test.go b/test/integration/functional_test.go index 85dca0f88f93..8522c6c70cdf 100644 --- a/test/integration/functional_test.go +++ b/test/integration/functional_test.go @@ -1917,8 +1917,14 @@ func validateStartWithCorpProxy(ctx context.Context, t *testing.T, profile strin t.Errorf("minikube start failed: %v", err) } - if rr.Stderr.Len() > 0 { - t.Errorf("Unexpected output to std err: %s", rr.Stderr.String()) + want := "Found network options:" + if !strings.Contains(rr.Stdout.String(), want) { + t.Errorf("start stdout=%s, want: *%s*", rr.Stdout.String(), want) + } + + want = "You appear to be using a proxy" + if !strings.Contains(rr.Stderr.String(), want) { + t.Errorf("start stderr=%s, want: *%s*", rr.Stderr.String(), want) } } From b37ddae69e876a89a7c79f8a3065f2a8838c7072 Mon Sep 17 00:00:00 2001 From: Sharif Elgamal Date: Thu, 24 Jun 2021 13:47:03 -0700 Subject: [PATCH 019/111] refactor test to avoid copy/paste nonsense --- test/integration/functional_test.go | 88 +++++++++++------------------ 1 file changed, 32 insertions(+), 56 deletions(-) diff --git a/test/integration/functional_test.go b/test/integration/functional_test.go index 8522c6c70cdf..5a8e45beb0db 100644 --- a/test/integration/functional_test.go +++ b/test/integration/functional_test.go @@ -526,22 +526,28 @@ func validatePodmanEnv(ctx context.Context, t *testing.T, profile string) { } } -// validateStartWithProxy either calls validateStartWithRegularProxy or validateStartWithCorpProxy depending on the test environment +// validateStartWithProxy makes sure minikube start respects the HTTP_PROXY (or HTTPS_PROXY) environment variable func validateStartWithProxy(ctx context.Context, t *testing.T, profile string) { - if GithubActionRunner() && runtime.GOOS == "linux" && !arm64Platform() { - validateStartWithCorpProxy(ctx, t, profile) - } else { - validateStartWithRegularProxy(ctx, t, profile) - } -} - -// validateStartWithRegularProxy makes sure minikube start respects the HTTP_PROXY environment variable -func validateStartWithRegularProxy(ctx context.Context, t *testing.T, profile string) { defer PostMortemLogs(t, profile) - srv, err := startHTTPProxy(t) - if err != nil { - t.Fatalf("failed to set up the test proxy: %s", err) + https := GithubActionRunner() && runtime.GOOS == "linux" && !arm64Platform() + + var addr string + proxyEnv := "HTTP_PROXY" + // If we're in the correct environemnt, mimic a corp proxy and use HTTPS_PROXY + if https { + err := startCorpProxy(ctx, t) + if err != nil { + t.Fatalf("failed to set up the test proxy: %s", err) + } + addr = "127.0.0.1:8080" + proxyEnv = "HTTPS_PROXY" + } else { + srv, err := startHTTPProxy(t) + if err != nil { + t.Fatalf("failed to set up the test proxy: %s", err) + } + addr = srv.Addr } // Use more memory so that we may reliably fit MySQL and nginx @@ -554,7 +560,7 @@ func validateStartWithRegularProxy(ctx context.Context, t *testing.T, profile st startArgs := append([]string{"start", "-p", profile, memoryFlag, fmt.Sprintf("--apiserver-port=%d", apiPortTest), "--wait=all"}, StartArgs()...) c := exec.CommandContext(ctx, Target(), startArgs...) env := os.Environ() - env = append(env, fmt.Sprintf("HTTP_PROXY=%s", srv.Addr)) + env = append(env, fmt.Sprintf("%s=%s", proxyEnv, addr)) env = append(env, "NO_PROXY=") c.Env = env rr, err := Run(t, c) @@ -1825,37 +1831,35 @@ users: } } -// validateStartWithCorpProxy ensures that minikube can run behind a custom proxy -func validateStartWithCorpProxy(ctx context.Context, t *testing.T, profile string) { - defer PostMortemLogs(t, profile) - +// startCorpProxy mimics starting a corp proxy by using mitmproxy and installing its certs +func startCorpProxy(ctx context.Context, t *testing.T) error { // Download the mitmproxy bundle for mitmdump _, err := Run(t, exec.CommandContext(ctx, "curl", "-LO", "https://snapshots.mitmproxy.org/6.0.2/mitmproxy-6.0.2-linux.tar.gz")) if err != nil { - t.Fatalf("failed to download mitmproxy tar: %v", err) + return errors.Wrap(err, "download mitmproxy tar") } defer func() { err := os.Remove("mitmproxy-6.0.2-linux.tar.gz") if err != nil { - t.Logf("failed to remove tarball: %v", err) + t.Logf("remove tarball: %v", err) } }() mitmDir, err := ioutil.TempDir("", "") if err != nil { - t.Fatalf("failed to create temp dir: %v", err) + return errors.Wrap(err, "create temp dir: %v") } _, err = Run(t, exec.CommandContext(ctx, "tar", "xzf", "mitmproxy-6.0.2-linux.tar.gz", "-C", mitmDir)) if err != nil { - t.Fatalf("failed to untar mitmproxy tar: %v", err) + return errors.Wrap(err, "untar mitmproxy tar") } // Start mitmdump in the background, this will create the needed certs // and provide the necessary proxy at 127.0.0.1:8080 mitmRR, err := Start(t, exec.CommandContext(ctx, path.Join(mitmDir, "mitmdump"), "--set", fmt.Sprintf("confdir=%s", mitmDir))) if err != nil { - t.Fatalf("starting mitmproxy failed: %v", err) + return errors.Wrap(err, "starting mitmproxy") } // Store it for cleanup later @@ -1875,57 +1879,29 @@ func validateStartWithCorpProxy(ctx context.Context, t *testing.T, profile strin _, err = os.Stat(certFile) } if os.IsNotExist(err) { - t.Fatalf("cert files never showed up: %v", err) + return errors.Wrap(err, "cert files never showed up") } destCertPath := path.Join("/etc/ssl/certs", "mitmproxy-ca-cert.pem") symLinkCmd := fmt.Sprintf("ln -fs %s %s", certFile, destCertPath) if _, err := Run(t, exec.CommandContext(ctx, "sudo", "/bin/bash", "-c", symLinkCmd)); err != nil { - t.Fatalf("cert symlink failure: %v", err) + return errors.Wrap(err, "cert symlink") } // Add a symlink of the form {hash}.0 rr, err := Run(t, exec.CommandContext(ctx, "openssl", "x509", "-hash", "-noout", "-in", certFile)) if err != nil { - t.Fatalf("cert hashing failure: %v", err) + return errors.Wrap(err, "cert hashing") } stringHash := strings.TrimSpace(rr.Stdout.String()) hashLink := path.Join("/etc/ssl/certs", fmt.Sprintf("%s.0", stringHash)) hashCmd := fmt.Sprintf("test -L %s || ln -fs %s %s", hashLink, destCertPath, hashLink) if _, err := Run(t, exec.CommandContext(ctx, "sudo", "/bin/bash", "-c", hashCmd)); err != nil { - t.Fatalf("cert hash symlink failure: %v", err) - } - - // Use more memory so that we may reliably fit MySQL and nginx - memoryFlag := "--memory=4000" - // to avoid failure for mysq/pv on virtualbox on darwin on free github actions, - if GithubActionRunner() && VirtualboxDriver() { - memoryFlag = "--memory=6000" + return errors.Wrap(err, "cert hash symlink failure: %v") } - // ok, now start minikube - startArgs := append([]string{"start", "-p", profile, memoryFlag, fmt.Sprintf("--apiserver-port=%d", apiPortTest), "--wait=all"}, StartArgs()...) - c := exec.CommandContext(ctx, Target(), startArgs...) - env := os.Environ() - env = append(env, "HTTPS_PROXY=127.0.0.1:8080") - env = append(env, "NO_PROXY=") - c.Env = env - - rr, err = Run(t, c) - if err != nil { - t.Errorf("minikube start failed: %v", err) - } - - want := "Found network options:" - if !strings.Contains(rr.Stdout.String(), want) { - t.Errorf("start stdout=%s, want: *%s*", rr.Stdout.String(), want) - } - - want = "You appear to be using a proxy" - if !strings.Contains(rr.Stderr.String(), want) { - t.Errorf("start stderr=%s, want: *%s*", rr.Stderr.String(), want) - } + return nil } // startHTTPProxy runs a local http proxy and sets the env vars for it. From a770cfe2eb272e249a0e149d27e2f7713eb4b518 Mon Sep 17 00:00:00 2001 From: Sharif Elgamal Date: Thu, 24 Jun 2021 13:48:51 -0700 Subject: [PATCH 020/111] fix error message --- test/integration/functional_test.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/integration/functional_test.go b/test/integration/functional_test.go index 5a8e45beb0db..b053fc1b9743 100644 --- a/test/integration/functional_test.go +++ b/test/integration/functional_test.go @@ -1847,7 +1847,7 @@ func startCorpProxy(ctx context.Context, t *testing.T) error { mitmDir, err := ioutil.TempDir("", "") if err != nil { - return errors.Wrap(err, "create temp dir: %v") + return errors.Wrap(err, "create temp dir") } _, err = Run(t, exec.CommandContext(ctx, "tar", "xzf", "mitmproxy-6.0.2-linux.tar.gz", "-C", mitmDir)) @@ -1898,7 +1898,7 @@ func startCorpProxy(ctx context.Context, t *testing.T) error { hashCmd := fmt.Sprintf("test -L %s || ln -fs %s %s", hashLink, destCertPath, hashLink) if _, err := Run(t, exec.CommandContext(ctx, "sudo", "/bin/bash", "-c", hashCmd)); err != nil { - return errors.Wrap(err, "cert hash symlink failure: %v") + return errors.Wrap(err, "cert hash symlink") } return nil From c7372d2f591386ddf78be7277e1d64e6ac62ecc8 Mon Sep 17 00:00:00 2001 From: Sharif Elgamal Date: Thu, 24 Jun 2021 13:50:21 -0700 Subject: [PATCH 021/111] docs --- site/content/en/docs/contrib/tests.en.md | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/site/content/en/docs/contrib/tests.en.md b/site/content/en/docs/contrib/tests.en.md index 4d9c64c81ffa..42ededcce645 100644 --- a/site/content/en/docs/contrib/tests.en.md +++ b/site/content/en/docs/contrib/tests.en.md @@ -94,10 +94,7 @@ check functionality of minikube after evaluating docker-env check functionality of minikube after evaluating podman-env #### validateStartWithProxy -either calls validateStartWithRegularProxy or validateStartWithCorpProxy depending on the test environment - -#### validateStartWithRegularProxy -makes sure minikube start respects the HTTP_PROXY environment variable +makes sure minikube start respects the HTTP_PROXY (or HTTPS_PROXY) environment variable #### validateAuditAfterStart makes sure the audit log contains the correct logging after minikube start @@ -178,9 +175,6 @@ asserts that for a given runtime, the other runtimes disabled, for example for c #### validateUpdateContextCmd asserts basic "update-context" command functionality -#### validateStartWithCorpProxy -ensures that minikube can run behind a custom proxy - #### validateMountCmd verifies the minikube mount command works properly From 7b4f21bc391dcdd4d4ddfe09c89ccbb62cc89d4f Mon Sep 17 00:00:00 2001 From: Sharif Elgamal Date: Thu, 24 Jun 2021 14:32:26 -0700 Subject: [PATCH 022/111] lint --- test/integration/functional_test.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/integration/functional_test.go b/test/integration/functional_test.go index b053fc1b9743..2afec956e02b 100644 --- a/test/integration/functional_test.go +++ b/test/integration/functional_test.go @@ -534,7 +534,7 @@ func validateStartWithProxy(ctx context.Context, t *testing.T, profile string) { var addr string proxyEnv := "HTTP_PROXY" - // If we're in the correct environemnt, mimic a corp proxy and use HTTPS_PROXY + // If we're in the correct environment, mimic a corp proxy and use HTTPS_PROXY if https { err := startCorpProxy(ctx, t) if err != nil { From c6e64f8148c35ec2f96ea34178bc69bce71d22ef Mon Sep 17 00:00:00 2001 From: Sharif Elgamal Date: Thu, 24 Jun 2021 15:41:04 -0700 Subject: [PATCH 023/111] split them out to separate tests for easier debugging --- site/content/en/docs/contrib/tests.en.md | 6 +- test/integration/functional_test.go | 95 +++++++++++++----------- 2 files changed, 55 insertions(+), 46 deletions(-) diff --git a/site/content/en/docs/contrib/tests.en.md b/site/content/en/docs/contrib/tests.en.md index 42ededcce645..1617d2ba4d14 100644 --- a/site/content/en/docs/contrib/tests.en.md +++ b/site/content/en/docs/contrib/tests.en.md @@ -94,7 +94,11 @@ check functionality of minikube after evaluating docker-env check functionality of minikube after evaluating podman-env #### validateStartWithProxy -makes sure minikube start respects the HTTP_PROXY (or HTTPS_PROXY) environment variable +makes sure minikube start respects the HTTP_PROXY environment variable + +#### validateStartWithCorpProxy +makes sure minikube start respects the HTTPS_PROXY environment variable +only runs on Github Actions for amd64 linux #### validateAuditAfterStart makes sure the audit log contains the correct logging after minikube start diff --git a/test/integration/functional_test.go b/test/integration/functional_test.go index 2afec956e02b..8049a18f96f5 100644 --- a/test/integration/functional_test.go +++ b/test/integration/functional_test.go @@ -62,6 +62,8 @@ var apiPortTest = 8441 // Store the proxy session so we can clean it up at the end var mitm *StartSession +var runCorpProxy = GithubActionRunner() && runtime.GOOS == "linux" && !arm64Platform() + // TestFunctional are functionality tests which can safely share a profile in parallel func TestFunctional(t *testing.T) { @@ -102,6 +104,10 @@ func TestFunctional(t *testing.T) { if ctx.Err() == context.DeadlineExceeded { t.Fatalf("Unable to run more tests (deadline exceeded)") } + if tc.name == "StartWithProxy" && runCorpProxy { + tc.name = "StartWithCorpProxy" + tc.validator = validateStartWithCorpProxy + } t.Run(tc.name, func(t *testing.T) { tc.validator(ctx, t, profile) }) @@ -110,7 +116,7 @@ func TestFunctional(t *testing.T) { defer func() { cleanupUnwantedImages(ctx, t, profile) - if GithubActionRunner() && runtime.GOOS == "linux" && !arm64Platform() { + if runCorpProxy { mitm.Stop(t) } }() @@ -526,58 +532,27 @@ func validatePodmanEnv(ctx context.Context, t *testing.T, profile string) { } } -// validateStartWithProxy makes sure minikube start respects the HTTP_PROXY (or HTTPS_PROXY) environment variable +// validateStartWithProxy makes sure minikube start respects the HTTP_PROXY environment variable func validateStartWithProxy(ctx context.Context, t *testing.T, profile string) { defer PostMortemLogs(t, profile) - - https := GithubActionRunner() && runtime.GOOS == "linux" && !arm64Platform() - - var addr string - proxyEnv := "HTTP_PROXY" - // If we're in the correct environment, mimic a corp proxy and use HTTPS_PROXY - if https { - err := startCorpProxy(ctx, t) - if err != nil { - t.Fatalf("failed to set up the test proxy: %s", err) - } - addr = "127.0.0.1:8080" - proxyEnv = "HTTPS_PROXY" - } else { - srv, err := startHTTPProxy(t) - if err != nil { - t.Fatalf("failed to set up the test proxy: %s", err) - } - addr = srv.Addr - } - - // Use more memory so that we may reliably fit MySQL and nginx - memoryFlag := "--memory=4000" - // to avoid failure for mysq/pv on virtualbox on darwin on free github actions, - if GithubActionRunner() && VirtualboxDriver() { - memoryFlag = "--memory=6000" - } - // passing --api-server-port so later verify it didn't change in soft start. - startArgs := append([]string{"start", "-p", profile, memoryFlag, fmt.Sprintf("--apiserver-port=%d", apiPortTest), "--wait=all"}, StartArgs()...) - c := exec.CommandContext(ctx, Target(), startArgs...) - env := os.Environ() - env = append(env, fmt.Sprintf("%s=%s", proxyEnv, addr)) - env = append(env, "NO_PROXY=") - c.Env = env - rr, err := Run(t, c) + srv, err := startHTTPProxy(t) if err != nil { - t.Errorf("failed minikube start. args %q: %v", rr.Command(), err) + t.Fatalf("failed to set up the test proxy: %s", err) } - want := "Found network options:" - if !strings.Contains(rr.Stdout.String(), want) { - t.Errorf("start stdout=%s, want: *%s*", rr.Stdout.String(), want) - } + startMinikubeWithProxy(ctx, t, profile, "HTTP_PROXY", srv.Addr) +} - want = "You appear to be using a proxy" - if !strings.Contains(rr.Stderr.String(), want) { - t.Errorf("start stderr=%s, want: *%s*", rr.Stderr.String(), want) +// validateStartWithCorpProxy makes sure minikube start respects the HTTPS_PROXY environment variable +// only runs on Github Actions for amd64 linux +func validateStartWithCorpProxy(ctx context.Context, t *testing.T, profile string) { + defer PostMortemLogs(t, profile) + err := startCorpProxy(ctx, t) + if err != nil { + t.Fatalf("failed to set up the test proxy: %s", err) } + startMinikubeWithProxy(ctx, t, profile, "HTTPS_PROXY", "127.0.0.1:8080") } // validateAuditAfterStart makes sure the audit log contains the correct logging after minikube start @@ -1921,3 +1896,33 @@ func startHTTPProxy(t *testing.T) (*http.Server, error) { }(srv, t) return srv, nil } + +func startMinikubeWithProxy(ctx context.Context, t *testing.T, profile string, proxyEnv string, addr string) { + // Use more memory so that we may reliably fit MySQL and nginx + memoryFlag := "--memory=4000" + // to avoid failure for mysq/pv on virtualbox on darwin on free github actions, + if GithubActionRunner() && VirtualboxDriver() { + memoryFlag = "--memory=6000" + } + // passing --api-server-port so later verify it didn't change in soft start. + startArgs := append([]string{"start", "-p", profile, memoryFlag, fmt.Sprintf("--apiserver-port=%d", apiPortTest), "--wait=all"}, StartArgs()...) + c := exec.CommandContext(ctx, Target(), startArgs...) + env := os.Environ() + env = append(env, fmt.Sprintf("%s=%s", proxyEnv, addr)) + env = append(env, "NO_PROXY=") + c.Env = env + rr, err := Run(t, c) + if err != nil { + t.Errorf("failed minikube start. args %q: %v", rr.Command(), err) + } + + want := "Found network options:" + if !strings.Contains(rr.Stdout.String(), want) { + t.Errorf("start stdout=%s, want: *%s*", rr.Stdout.String(), want) + } + + want = "You appear to be using a proxy" + if !strings.Contains(rr.Stderr.String(), want) { + t.Errorf("start stderr=%s, want: *%s*", rr.Stderr.String(), want) + } +} From a964cee33dbfbe091932a6bc40f500f2281335db Mon Sep 17 00:00:00 2001 From: Ilya Zuyev Date: Thu, 24 Jun 2021 18:37:51 -0700 Subject: [PATCH 024/111] add makefile rules for arm64 kvm2 driver --- Makefile | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/Makefile b/Makefile index e31255169154..de1dea5296fd 100644 --- a/Makefile +++ b/Makefile @@ -322,7 +322,10 @@ test-pkg/%: ## Trigger packaging test all: cross drivers e2e-cross cross-tars exotic retro out/gvisor-addon ## Build all different minikube components .PHONY: drivers -drivers: docker-machine-driver-hyperkit docker-machine-driver-kvm2 ## Build Hyperkit and KVM2 drivers +drivers: docker-machine-driver-hyperkit \ + docker-machine-driver-kvm2 \ + out/docker-machine-driver-kvm2-amd64 \ + out/docker-machine-driver-kvm2-arm64 ## Build Hyperkit and KVM2 drivers .PHONY: docker-machine-driver-hyperkit docker-machine-driver-hyperkit: out/docker-machine-driver-hyperkit ## Build Hyperkit driver From 0033bf7ed3d8bd61aec9bbcc89b81caedec1a84a Mon Sep 17 00:00:00 2001 From: Ilya Zuyev Date: Thu, 24 Jun 2021 20:02:21 -0700 Subject: [PATCH 025/111] make targets for deb and rpm --- Makefile | 70 ++++++++++++++---------- hack/jenkins/release_build_and_upload.sh | 4 +- 2 files changed, 43 insertions(+), 31 deletions(-) diff --git a/Makefile b/Makefile index de1dea5296fd..e6e1e8cd6f78 100644 --- a/Makefile +++ b/Makefile @@ -427,7 +427,8 @@ checksum: ## Generate checksums for f in out/minikube.iso out/minikube-linux-amd64 out/minikube-linux-arm \ out/minikube-linux-arm64 out/minikube-linux-ppc64le out/minikube-linux-s390x \ out/minikube-darwin-amd64 out/minikube-windows-amd64.exe \ - out/docker-machine-driver-kvm2 out/docker-machine-driver-hyperkit; do \ + out/docker-machine-driver-kvm2 out/docker-machine-driver-kvm2-amd64 out/docker-machine-driver-kvm2-arm64 \ + out/docker-machine-driver-hyperkit; do \ if [ -f "$${f}" ]; then \ openssl sha256 "$${f}" | awk '{print $$2}' > "$${f}.sha256" ; \ fi ; \ @@ -513,12 +514,12 @@ verify-iso: # Make sure the current ISO exists in the expected bucket out/docs/minikube.md: $(shell find "cmd") $(shell find "pkg/minikube/constants") go run -ldflags="$(MINIKUBE_LDFLAGS)" -tags gendocs hack/help_text/gen_help_text.go - .PHONY: debs ## Build all deb packages debs: out/minikube_$(DEB_VERSION)-$(DEB_REVISION)_amd64.deb \ out/minikube_$(DEB_VERSION)-$(DEB_REVISION)_arm64.deb \ - out/docker-machine-driver-kvm2_$(DEB_VERSION).deb - + out/docker-machine-driver-kvm2_$(DEB_VERSION).deb \ + out/docker-machine-driver-kvm2_$(DEB_VERSION)-$(DEB_REVISION)_amd64.deb \ + out/docker-machine-driver-kvm2_$(DEB_VERSION)-$(DEB_REVISION)_arm64.deb .PHONY: deb_version deb_version: @@ -788,44 +789,39 @@ out/docker-machine-driver-kvm2-aarch64: out/docker-machine-driver-kvm2-arm64 $(if $(quiet),@echo " CP $@") $(Q)cp $< $@ -out/docker-machine-driver-kvm2-%: -ifeq ($(MINIKUBE_BUILD_IN_DOCKER),y) - docker image inspect -f '{{.Id}} {{.RepoTags}}' $(KVM_BUILD_IMAGE) || $(MAKE) kvm-image - $(call DOCKER,$(KVM_BUILD_IMAGE),/usr/bin/make $@ COMMIT=$(COMMIT)) - # make extra sure that we are linking with the older version of libvirt (1.3.1) - test "`strings $@ | grep '^LIBVIRT_[0-9]' | sort | tail -n 1`" = "LIBVIRT_1.2.9" -else - $(if $(quiet),@echo " GO $@") - $(Q)GOARCH=$* \ - go build \ - -installsuffix "static" \ - -ldflags="$(KVM2_LDFLAGS)" \ - -tags "libvirt.1.3.1 without_lxc" \ - -o $@ \ - k8s.io/minikube/cmd/drivers/kvm -endif - chmod +X $@ out/docker-machine-driver-kvm2_$(DEB_VERSION).deb: out/docker-machine-driver-kvm2_$(DEB_VERSION)-0_amd64.deb cp $< $@ +out/docker-machine-driver-kvm2_$(DEB_VERSION)-$(DEB_REVISION)_amd64.deb: out/docker-machine-driver-kvm2_$(DEB_VERSION)-0_x86_64.deb + cp $< $@ + +out/docker-machine-driver-kvm2_$(DEB_VERSION)-$(DEB_REVISION)_arm64.deb: out/docker-machine-driver-kvm2_$(DEB_VERSION)-0_aarch64.deb + cp $< $@ + out/docker-machine-driver-kvm2_$(DEB_VERSION)-0_%.deb: out/docker-machine-driver-kvm2-% cp -r installers/linux/deb/kvm2_deb_template out/docker-machine-driver-kvm2_$(DEB_VERSION) chmod 0755 out/docker-machine-driver-kvm2_$(DEB_VERSION)/DEBIAN - sed -E -i 's/--VERSION--/'$(DEB_VERSION)'/g' out/docker-machine-driver-kvm2_$(DEB_VERSION)/DEBIAN/control - sed -E -i 's/--ARCH--/'$*'/g' out/docker-machine-driver-kvm2_$(DEB_VERSION)/DEBIAN/control + sed -E -i -e 's/--VERSION--/$(DEB_VERSION)/g' out/docker-machine-driver-kvm2_$(DEB_VERSION)/DEBIAN/control + sed -E -i -e 's/--ARCH--/'$*'/g' out/docker-machine-driver-kvm2_$(DEB_VERSION)/DEBIAN/control mkdir -p out/docker-machine-driver-kvm2_$(DEB_VERSION)/usr/bin cp $< out/docker-machine-driver-kvm2_$(DEB_VERSION)/usr/bin/docker-machine-driver-kvm2 fakeroot dpkg-deb --build out/docker-machine-driver-kvm2_$(DEB_VERSION) $@ rm -rf out/docker-machine-driver-kvm2_$(DEB_VERSION) -out/docker-machine-driver-kvm2-$(RPM_VERSION).rpm: out/docker-machine-driver-kvm2-$(RPM_VERSION)-0.x86_64.deb +out/docker-machine-driver-kvm2-$(RPM_VERSION).rpm: out/docker-machine-driver-kvm2-$(RPM_VERSION)-0.x86_64.rpm + cp $< $@ + +out/docker-machine-driver-kvm2_$(RPM_VERSION).amd64.rpm: out/docker-machine-driver-kvm2-$(RPM_VERSION)-0.x86_64.rpm + cp $< $@ + +out/docker-machine-driver-kvm2_$(RPM_VERSION).arm64.rpm: out/docker-machine-driver-kvm2-$(RPM_VERSION)-0.aarch64.rpm cp $< $@ out/docker-machine-driver-kvm2-$(RPM_VERSION)-0.%.rpm: out/docker-machine-driver-kvm2-% cp -r installers/linux/rpm/kvm2_rpm_template out/docker-machine-driver-kvm2-$(RPM_VERSION) - sed -E -i 's/--VERSION--/'$(RPM_VERSION)'/g' out/docker-machine-driver-kvm2-$(RPM_VERSION)/docker-machine-driver-kvm2.spec - sed -E -i 's|--OUT--|'$(PWD)/out'|g' out/docker-machine-driver-kvm2-$(RPM_VERSION)/docker-machine-driver-kvm2.spec + sed -E -i -e 's/--VERSION--/'$(RPM_VERSION)'/g' out/docker-machine-driver-kvm2-$(RPM_VERSION)/docker-machine-driver-kvm2.spec + sed -E -i -e 's|--OUT--|'$(PWD)/out'|g' out/docker-machine-driver-kvm2-$(RPM_VERSION)/docker-machine-driver-kvm2.spec rpmbuild -bb -D "_rpmdir $(PWD)/out" --target $* \ out/docker-machine-driver-kvm2-$(RPM_VERSION)/docker-machine-driver-kvm2.spec @mv out/$*/docker-machine-driver-kvm2-$(RPM_VERSION)-0.$*.rpm out/ && rmdir out/$* @@ -847,10 +843,24 @@ install-kvm-driver: out/docker-machine-driver-kvm2 ## Install KVM Driver mkdir -p $(GOBIN) cp out/docker-machine-driver-kvm2 $(GOBIN)/docker-machine-driver-kvm2 -.PHONY: release-kvm-driver -release-kvm-driver: install-kvm-driver checksum ## Release KVM Driver - gsutil cp $(GOBIN)/docker-machine-driver-kvm2 gs://minikube/drivers/kvm/$(VERSION)/ - gsutil cp $(GOBIN)/docker-machine-driver-kvm2.sha256 gs://minikube/drivers/kvm/$(VERSION)/ +out/docker-machine-driver-kvm2-%: +ifeq ($(MINIKUBE_BUILD_IN_DOCKER),y) + docker image inspect -f '{{.Id}} {{.RepoTags}}' $(KVM_BUILD_IMAGE) || $(MAKE) kvm-image + $(call DOCKER,$(KVM_BUILD_IMAGE),/usr/bin/make $@ COMMIT=$(COMMIT)) + # make extra sure that we are linking with the older version of libvirt (1.3.1) + test "`strings $@ | grep '^LIBVIRT_[0-9]' | sort | tail -n 1`" = "LIBVIRT_1.2.9" +else + $(if $(quiet),@echo " GO $@") + $(Q)GOARCH=$* \ + go build \ + -installsuffix "static" \ + -ldflags="$(KVM2_LDFLAGS)" \ + -tags "libvirt.1.3.1 without_lxc" \ + -o $@ \ + k8s.io/minikube/cmd/drivers/kvm +endif + chmod +X $@ + site/themes/docsy/assets/vendor/bootstrap/package.js: ## update the website docsy theme git submodule git submodule update -f --init --recursive diff --git a/hack/jenkins/release_build_and_upload.sh b/hack/jenkins/release_build_and_upload.sh index 701d05329f0e..6465f7bc33df 100755 --- a/hack/jenkins/release_build_and_upload.sh +++ b/hack/jenkins/release_build_and_upload.sh @@ -64,7 +64,9 @@ env BUILD_IN_DOCKER=y \ "out/minikube-${RPM_VERSION}-${RPM_REVISION}.ppc64le.rpm" \ "out/minikube-${RPM_VERSION}-${RPM_REVISION}.s390x.rpm" \ "out/docker-machine-driver-kvm2_${DEB_VERSION}-${DEB_REVISION}_amd64.deb" \ - "out/docker-machine-driver-kvm2-${RPM_VERSION}-${RPM_REVISION}.x86_64.rpm" + "out/docker-machine-driver-kvm2_${DEB_VERSION}-${DEB_REVISION}_arm64.deb" \ + "out/docker-machine-driver-kvm2-${RPM_VERSION}-${RPM_REVISION}.x86_64.rpm" \ + "out/docker-machine-driver-kvm2-${RPM_VERSION}-${RPM_REVISION}.arm64.rpm" # check if 'commit: ' line contains '-dirty' commit suffix BUILT_VERSION=$("out/minikube-$(go env GOOS)-$(go env GOARCH)" version) From 6152571fe0fddbc27078870c55bfae640431cea2 Mon Sep 17 00:00:00 2001 From: Ilya Zuyev Date: Thu, 24 Jun 2021 23:01:03 -0700 Subject: [PATCH 026/111] build kvm-arm64 in docker --- Makefile | 27 +++++++++----- .../kvm/{Dockerfile => Dockerfile.amd64} | 0 installers/linux/kvm/Dockerfile.arm64 | 35 +++++++++++++++++++ 3 files changed, 54 insertions(+), 8 deletions(-) rename installers/linux/kvm/{Dockerfile => Dockerfile.amd64} (100%) create mode 100644 installers/linux/kvm/Dockerfile.arm64 diff --git a/Makefile b/Makefile index e6e1e8cd6f78..881638ed1a32 100644 --- a/Makefile +++ b/Makefile @@ -54,7 +54,9 @@ HYPERKIT_BUILD_IMAGE ?= neilotoole/xcgo:go1.15 BUILD_IMAGE ?= us.gcr.io/k8s-artifacts-prod/build-image/kube-cross:v$(GO_VERSION)-1 ISO_BUILD_IMAGE ?= $(REGISTRY)/buildroot-image -KVM_BUILD_IMAGE ?= $(REGISTRY)/kvm-build-image:$(KVM_GO_VERSION) + +KVM_BUILD_IMAGE_AMD64 ?= $(REGISTRY)/kvm-build-image_amd64:$(KVM_GO_VERSION) +KVM_BUILD_IMAGE_ARM64 ?= $(REGISTRY)/kvm-build-image_arm64:$(KVM_GO_VERSION) ISO_BUCKET ?= minikube/iso @@ -827,26 +829,35 @@ out/docker-machine-driver-kvm2-$(RPM_VERSION)-0.%.rpm: out/docker-machine-driver @mv out/$*/docker-machine-driver-kvm2-$(RPM_VERSION)-0.$*.rpm out/ && rmdir out/$* rm -rf out/docker-machine-driver-kvm2-$(RPM_VERSION) -.PHONY: kvm-image -kvm-image: installers/linux/kvm/Dockerfile ## Convenient alias to build the docker container - docker build --build-arg "GO_VERSION=$(KVM_GO_VERSION)" -t $(KVM_BUILD_IMAGE) -f $< $(dir $<) +.PHONY: kvm-image-amd64 +kvm-image-amd64: installers/linux/kvm/Dockerfile.amd64 ## Convenient alias to build the docker container + docker build --build-arg "GO_VERSION=$(KVM_GO_VERSION)" -t $(KVM_BUILD_IMAGE_AMD64) -f $< $(dir $<) + @echo "" + @echo "$(@) successfully built" + +.PHONY: kvm-image-arm64 +kvm-image-arm64: installers/linux/kvm/Dockerfile.arm64 ## Convenient alias to build the docker container + docker build --build-arg "GO_VERSION=$(KVM_GO_VERSION)" -t $(KVM_BUILD_IMAGE_AMD64) -f $< $(dir $<) @echo "" @echo "$(@) successfully built" kvm_in_docker: - docker image inspect -f '{{.Id}} {{.RepoTags}}' $(KVM_BUILD_IMAGE) || $(MAKE) kvm-image + docker image inspect -f '{{.Id}} {{.RepoTags}}' $(KVM_BUILD_IMAGE_AMD64) || $(MAKE) kvm-image-amd64 rm -f out/docker-machine-driver-kvm2 - $(call DOCKER,$(KVM_BUILD_IMAGE),/usr/bin/make out/docker-machine-driver-kvm2 COMMIT=$(COMMIT)) + $(call DOCKER,$(KVM_BUILD_IMAGE_AMD64),/usr/bin/make out/docker-machine-driver-kvm2 COMMIT=$(COMMIT)) .PHONY: install-kvm-driver install-kvm-driver: out/docker-machine-driver-kvm2 ## Install KVM Driver mkdir -p $(GOBIN) cp out/docker-machine-driver-kvm2 $(GOBIN)/docker-machine-driver-kvm2 + +out/docker-machine-driver-kvm2-aarch64: kvm-image-arm64 + out/docker-machine-driver-kvm2-%: ifeq ($(MINIKUBE_BUILD_IN_DOCKER),y) - docker image inspect -f '{{.Id}} {{.RepoTags}}' $(KVM_BUILD_IMAGE) || $(MAKE) kvm-image - $(call DOCKER,$(KVM_BUILD_IMAGE),/usr/bin/make $@ COMMIT=$(COMMIT)) + docker image inspect -f '{{.Id}} {{.RepoTags}}' $(KVM_BUILD_IMAGE_AMD64) || $(MAKE) kvm-image-amd64 + $(call DOCKER,$(KVM_BUILD_IMAGE_AMD64),/usr/bin/make $@ COMMIT=$(COMMIT)) # make extra sure that we are linking with the older version of libvirt (1.3.1) test "`strings $@ | grep '^LIBVIRT_[0-9]' | sort | tail -n 1`" = "LIBVIRT_1.2.9" else diff --git a/installers/linux/kvm/Dockerfile b/installers/linux/kvm/Dockerfile.amd64 similarity index 100% rename from installers/linux/kvm/Dockerfile rename to installers/linux/kvm/Dockerfile.amd64 diff --git a/installers/linux/kvm/Dockerfile.arm64 b/installers/linux/kvm/Dockerfile.arm64 new file mode 100644 index 000000000000..036c7482977b --- /dev/null +++ b/installers/linux/kvm/Dockerfile.arm64 @@ -0,0 +1,35 @@ +# Copyright 2019 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. + +FROM ubuntu:21.04 + +RUN echo "deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports hirsute main universe restricted multiverse" >> /etc/apt/sources.list + +RUN apt update && apt install -y \ + gcc-aarch64-linux-gnu \ + make \ + pkg-config \ + curl + +RUN apt install -y libvirt-dev:arm64 + +ARG GO_VERSION +RUN curl -sSL https://golang.org/dl/go${GO_VERSION}.linux-amd64.tar.gz | tar -C /usr/local -xzf - + +ENV GOPATH /go + +# CC=aarch64-linux-gnu-gcc CGO_ENABLED=1 make out/docker-machine-driver-kvm2-arm64 +ENV CC=aarch64-linux-gnu-gcc +ENV CGO_ENABLED=1 +ENV PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/go/bin:/go/bin From b85722cd4aa7b90588feed81a3576ea42b32a358 Mon Sep 17 00:00:00 2001 From: Ilya Zuyev Date: Fri, 25 Jun 2021 00:38:30 -0700 Subject: [PATCH 027/111] fix Dockerfile.arm64 build --- Makefile | 18 ++++++++++++++++-- installers/linux/kvm/Dockerfile.arm64 | 19 ++++++++++++------- 2 files changed, 28 insertions(+), 9 deletions(-) diff --git a/Makefile b/Makefile index 881638ed1a32..4b0fb68fc533 100644 --- a/Makefile +++ b/Makefile @@ -837,7 +837,7 @@ kvm-image-amd64: installers/linux/kvm/Dockerfile.amd64 ## Convenient alias to b .PHONY: kvm-image-arm64 kvm-image-arm64: installers/linux/kvm/Dockerfile.arm64 ## Convenient alias to build the docker container - docker build --build-arg "GO_VERSION=$(KVM_GO_VERSION)" -t $(KVM_BUILD_IMAGE_AMD64) -f $< $(dir $<) + docker build --build-arg "GO_VERSION=$(KVM_GO_VERSION)" -t $(KVM_BUILD_IMAGE_ARM64) -f $< $(dir $<) @echo "" @echo "$(@) successfully built" @@ -852,7 +852,21 @@ install-kvm-driver: out/docker-machine-driver-kvm2 ## Install KVM Driver cp out/docker-machine-driver-kvm2 $(GOBIN)/docker-machine-driver-kvm2 -out/docker-machine-driver-kvm2-aarch64: kvm-image-arm64 +out/docker-machine-driver-kvm2-arm64: +ifeq ($(MINIKUBE_BUILD_IN_DOCKER),y) + docker image inspect -f '{{.Id}} {{.RepoTags}}' $(KVM_BUILD_IMAGE_ARM64) || $(MAKE) kvm-image-arm64 + $(call DOCKER,$(KVM_BUILD_IMAGE_ARM64),/usr/bin/make $@ COMMIT=$(COMMIT)) +else + $(if $(quiet),@echo " GO $@") + $(Q)GOARCH=arm64 \ + go build \ + -installsuffix "static" \ + -ldflags="$(KVM2_LDFLAGS)" \ + -tags "libvirt.1.3.1 without_lxc" \ + -o $@ \ + k8s.io/minikube/cmd/drivers/kvm +endif + chmod +X $@ out/docker-machine-driver-kvm2-%: ifeq ($(MINIKUBE_BUILD_IN_DOCKER),y) diff --git a/installers/linux/kvm/Dockerfile.arm64 b/installers/linux/kvm/Dockerfile.arm64 index 036c7482977b..247c367efea2 100644 --- a/installers/linux/kvm/Dockerfile.arm64 +++ b/installers/linux/kvm/Dockerfile.arm64 @@ -14,22 +14,27 @@ FROM ubuntu:21.04 -RUN echo "deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports hirsute main universe restricted multiverse" >> /etc/apt/sources.list +ARG GO_VERSION + +RUN apt update + +RUN echo "deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports hirsute main universe multiverse" >> /etc/apt/sources.list && \ + echo "deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports hirsute-updates main universe restricted multiverse" >> /etc/apt/sources.list && \ + dpkg --add-architecture arm64 && \ + (apt update || true) -RUN apt update && apt install -y \ +RUN apt install -y \ gcc-aarch64-linux-gnu \ make \ pkg-config \ - curl + curl \ + libvirt-dev:arm64 -RUN apt install -y libvirt-dev:arm64 - -ARG GO_VERSION RUN curl -sSL https://golang.org/dl/go${GO_VERSION}.linux-amd64.tar.gz | tar -C /usr/local -xzf - ENV GOPATH /go -# CC=aarch64-linux-gnu-gcc CGO_ENABLED=1 make out/docker-machine-driver-kvm2-arm64 ENV CC=aarch64-linux-gnu-gcc ENV CGO_ENABLED=1 +ENV PKG_CONFIG_PATH=/usr/lib/aarch64-linux-gnu/pkgconfig ENV PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/go/bin:/go/bin From cb31ce2e7d0ce64a31da44b190177b790ce123fd Mon Sep 17 00:00:00 2001 From: Ilya Zuyev Date: Fri, 25 Jun 2021 10:08:40 -0700 Subject: [PATCH 028/111] remove kvm2-arm64 rpm --- hack/jenkins/release_build_and_upload.sh | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/hack/jenkins/release_build_and_upload.sh b/hack/jenkins/release_build_and_upload.sh index 6465f7bc33df..48cf78d1987e 100755 --- a/hack/jenkins/release_build_and_upload.sh +++ b/hack/jenkins/release_build_and_upload.sh @@ -65,8 +65,7 @@ env BUILD_IN_DOCKER=y \ "out/minikube-${RPM_VERSION}-${RPM_REVISION}.s390x.rpm" \ "out/docker-machine-driver-kvm2_${DEB_VERSION}-${DEB_REVISION}_amd64.deb" \ "out/docker-machine-driver-kvm2_${DEB_VERSION}-${DEB_REVISION}_arm64.deb" \ - "out/docker-machine-driver-kvm2-${RPM_VERSION}-${RPM_REVISION}.x86_64.rpm" \ - "out/docker-machine-driver-kvm2-${RPM_VERSION}-${RPM_REVISION}.arm64.rpm" + "out/docker-machine-driver-kvm2-${RPM_VERSION}-${RPM_REVISION}.x86_64.rpm" # check if 'commit: ' line contains '-dirty' commit suffix BUILT_VERSION=$("out/minikube-$(go env GOOS)-$(go env GOARCH)" version) From c283c807a989c74ae206768bc53cf2f0476c9c6f Mon Sep 17 00:00:00 2001 From: Sharif Elgamal Date: Fri, 25 Jun 2021 11:36:18 -0700 Subject: [PATCH 029/111] better functional and test name --- test/integration/functional_test.go | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/test/integration/functional_test.go b/test/integration/functional_test.go index 8049a18f96f5..5d0d5948b811 100644 --- a/test/integration/functional_test.go +++ b/test/integration/functional_test.go @@ -105,8 +105,8 @@ func TestFunctional(t *testing.T) { t.Fatalf("Unable to run more tests (deadline exceeded)") } if tc.name == "StartWithProxy" && runCorpProxy { - tc.name = "StartWithCorpProxy" - tc.validator = validateStartWithCorpProxy + tc.name = "StartWithCustomCerts" + tc.validator = validateStartWithCustomCerts } t.Run(tc.name, func(t *testing.T) { tc.validator(ctx, t, profile) @@ -543,9 +543,9 @@ func validateStartWithProxy(ctx context.Context, t *testing.T, profile string) { startMinikubeWithProxy(ctx, t, profile, "HTTP_PROXY", srv.Addr) } -// validateStartWithCorpProxy makes sure minikube start respects the HTTPS_PROXY environment variable +// validateStartWithCustomCerts makes sure minikube start respects the HTTPS_PROXY environment variable // only runs on Github Actions for amd64 linux -func validateStartWithCorpProxy(ctx context.Context, t *testing.T, profile string) { +func validateStartWithCustomCerts(ctx context.Context, t *testing.T, profile string) { defer PostMortemLogs(t, profile) err := startCorpProxy(ctx, t) if err != nil { From c3b7f7e44ec1dd62d1f3e21e8ed986c43d987004 Mon Sep 17 00:00:00 2001 From: Sharif Elgamal Date: Fri, 25 Jun 2021 11:38:08 -0700 Subject: [PATCH 030/111] gen docs --- site/content/en/docs/contrib/tests.en.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/site/content/en/docs/contrib/tests.en.md b/site/content/en/docs/contrib/tests.en.md index 1617d2ba4d14..409b5545318b 100644 --- a/site/content/en/docs/contrib/tests.en.md +++ b/site/content/en/docs/contrib/tests.en.md @@ -96,7 +96,7 @@ check functionality of minikube after evaluating podman-env #### validateStartWithProxy makes sure minikube start respects the HTTP_PROXY environment variable -#### validateStartWithCorpProxy +#### validateStartWithCustomCerts makes sure minikube start respects the HTTPS_PROXY environment variable only runs on Github Actions for amd64 linux From bd2a9daa007be1f79b08d23cd3fb768fd6124a8e Mon Sep 17 00:00:00 2001 From: Sharif Elgamal Date: Fri, 25 Jun 2021 14:12:38 -0700 Subject: [PATCH 031/111] let's fix generate_docs for good --- hack/generate_docs.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hack/generate_docs.sh b/hack/generate_docs.sh index b900fd921ace..dc862c8074d9 100755 --- a/hack/generate_docs.sh +++ b/hack/generate_docs.sh @@ -49,5 +49,5 @@ if [ "$changes" != "" ]; then git remote add minikube-bot https://minikube-bot:"$1"@github.com/minikube-bot/minikube.git git push -u minikube-bot $branch - gh pr create --repo kubernetes/minikube --base master --head minikube-bot:$branch --title "Update auto-generated docs and translations" --body "Committing changes resulting from \`make generate-docs\`" + gh pr create --base master --head minikube-bot:$branch --title "Update auto-generated docs and translations" --body "Committing changes resulting from \`make generate-docs\`" fi From 806c326d1d7b76b893dde921bd5c06be61beec79 Mon Sep 17 00:00:00 2001 From: Sharif Elgamal Date: Fri, 25 Jun 2021 14:24:13 -0700 Subject: [PATCH 032/111] run on specific prs --- .github/workflows/docs.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index 6ba172a754e5..85e94fa74581 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -3,6 +3,9 @@ on: push: branches: - master + pull_request: + paths: + - "hack/generate_docs.sh" env: GOPROXY: https://proxy.golang.org GO_VERSION: 1.16.4 From 13d03a588bc2f11dff502c05885397d7471c12df Mon Sep 17 00:00:00 2001 From: Sharif Elgamal Date: Fri, 25 Jun 2021 15:53:35 -0700 Subject: [PATCH 033/111] idk trying stuff --- hack/generate_docs.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/hack/generate_docs.sh b/hack/generate_docs.sh index dc862c8074d9..f83dc0d9be3c 100755 --- a/hack/generate_docs.sh +++ b/hack/generate_docs.sh @@ -48,6 +48,6 @@ if [ "$changes" != "" ]; then git commit -m "Update generate-docs" git remote add minikube-bot https://minikube-bot:"$1"@github.com/minikube-bot/minikube.git - git push -u minikube-bot $branch - gh pr create --base master --head minikube-bot:$branch --title "Update auto-generated docs and translations" --body "Committing changes resulting from \`make generate-docs\`" + git push -f minikube-bot $branch + gh pr create --base master --head minikube-bot:$branch --title "Update auto-generated docs and translations" --body "Committing changes resulting from \`make generate-docs\`\n\n${changes}" fi From 4f114dafb9289cf966b914d8d86e26c31918310a Mon Sep 17 00:00:00 2001 From: Andriy Dzikh Date: Mon, 28 Jun 2021 09:19:43 -0700 Subject: [PATCH 034/111] Add comment to report_flakes.sh to see environment flake charts. --- hack/jenkins/test-flake-chart/report_flakes.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/hack/jenkins/test-flake-chart/report_flakes.sh b/hack/jenkins/test-flake-chart/report_flakes.sh index 62ceed336079..bfe288edd573 100755 --- a/hack/jenkins/test-flake-chart/report_flakes.sh +++ b/hack/jenkins/test-flake-chart/report_flakes.sh @@ -81,6 +81,8 @@ if [[ "$FAILED_RATES_LINES" -gt 30 ]]; then printf "|More tests...|Continued...|\n\nToo many tests failed - See test logs for more details." >> "$TMP_COMMENT" fi +printf "\n\nTo see the flake rates of all tests on $ENVIRONMENT, click [here](https:\/\/storage.googleapis.com\/minikube-flake-rate\/flake_chart.html?env=$ENVIRONMENT)." >> "$TMP_COMMENT" + # install gh if not present $DIR/../installers/check_install_gh.sh From 59ef6606c94739554edb33af5d179138bd73e982 Mon Sep 17 00:00:00 2001 From: Ilya Zuyev Date: Mon, 28 Jun 2021 10:45:07 -0700 Subject: [PATCH 035/111] fix makefile comments --- Makefile | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/Makefile b/Makefile index 4b0fb68fc533..62aa4df33f95 100644 --- a/Makefile +++ b/Makefile @@ -324,10 +324,12 @@ test-pkg/%: ## Trigger packaging test all: cross drivers e2e-cross cross-tars exotic retro out/gvisor-addon ## Build all different minikube components .PHONY: drivers -drivers: docker-machine-driver-hyperkit \ - docker-machine-driver-kvm2 \ - out/docker-machine-driver-kvm2-amd64 \ - out/docker-machine-driver-kvm2-arm64 ## Build Hyperkit and KVM2 drivers +drivers: ## Build Hyperkit and KVM2 drivers +drivers: docker-machine-driver-hyperkit \ + docker-machine-driver-kvm2 \ + out/docker-machine-driver-kvm2-amd64 \ + out/docker-machine-driver-kvm2-arm64 + .PHONY: docker-machine-driver-hyperkit docker-machine-driver-hyperkit: out/docker-machine-driver-hyperkit ## Build Hyperkit driver From d84d74e74c92cc22002034640fb9fce67fe1a8ef Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 28 Jun 2021 18:32:49 +0000 Subject: [PATCH 036/111] Bump github.com/spf13/viper from 1.8.0 to 1.8.1 Bumps [github.com/spf13/viper](https://github.com/spf13/viper) from 1.8.0 to 1.8.1. - [Release notes](https://github.com/spf13/viper/releases) - [Commits](https://github.com/spf13/viper/compare/v1.8.0...v1.8.1) --- updated-dependencies: - dependency-name: github.com/spf13/viper 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 ba4612cecf7c..1594207128c4 100644 --- a/go.mod +++ b/go.mod @@ -72,7 +72,7 @@ require ( github.com/shirou/gopsutil/v3 v3.21.5 github.com/spf13/cobra v1.1.3 github.com/spf13/pflag v1.0.5 - github.com/spf13/viper v1.8.0 + github.com/spf13/viper v1.8.1 github.com/xeipuuv/gojsonschema v0.0.0-20180618132009-1d523034197f github.com/zchee/go-vmnet v0.0.0-20161021174912-97ebf9174097 go.opencensus.io v0.23.0 diff --git a/go.sum b/go.sum index d13706b9f4e6..1be3ac887fb5 100644 --- a/go.sum +++ b/go.sum @@ -997,8 +997,8 @@ github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/spf13/viper v1.4.0/go.mod h1:PTJ7Z/lr49W6bUbkmS1V3by4uWynFiR9p7+dSq/yZzE= github.com/spf13/viper v1.7.0/go.mod h1:8WkrPz2fc9jxqZNCJI/76HCieCp4Q8HaLFoCha5qpdg= -github.com/spf13/viper v1.8.0 h1:QRwDgoG8xX+kp69di68D+YYTCWfYEckbZRfUlEIAal0= -github.com/spf13/viper v1.8.0/go.mod h1:o0Pch8wJ9BVSWGQMbra6iw0oQ5oktSIBaujf1rJH9Ns= +github.com/spf13/viper v1.8.1 h1:Kq1fyeebqsBfbjZj4EL7gj2IO0mMaiyjYUWcUsl2O44= +github.com/spf13/viper v1.8.1/go.mod h1:o0Pch8wJ9BVSWGQMbra6iw0oQ5oktSIBaujf1rJH9Ns= github.com/storageos/go-api v2.2.0+incompatible/go.mod h1:ZrLn+e0ZuF3Y65PNF6dIwbJPZqfmtCXxFm9ckv0agOY= github.com/stretchr/objx v0.0.0-20180129172003-8a3f7159479f/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= From 0e0697f3f70b4ab849d61dc3064ede67e55b7c9a Mon Sep 17 00:00:00 2001 From: Ilya Zuyev Date: Mon, 28 Jun 2021 12:58:31 -0700 Subject: [PATCH 037/111] Bump version and update changelog for beta release 1.22.0-beta.0 --- CHANGELOG.md | 71 ++++++++++++++++++++++++++++++++++++++++++++++++++++ Makefile | 4 +-- 2 files changed, 73 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 947990df5587..443a13b8d1bb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,76 @@ # Release Notes +## Version 1.22.0-beta.0 - 2021-06-28 + +Features: + +* Add auto pause on arm64 image [#11743](https://github.com/kubernetes/minikube/pull/11743) +* Addon list: Add info on each addon's maintainer [#11753](https://github.com/kubernetes/minikube/pull/11753) +* Add ability to pass 'max' value to memory and cpus flags [#11692](https://github.com/kubernetes/minikube/pull/11692) + +Bugs: + +* Fix --base-image caching for images specified by name:tag [#11603](https://github.com/kubernetes/minikube/pull/11603) +* Fix embed-certs global config [#11576](https://github.com/kubernetes/minikube/pull/11576) +* Fix a download link to use arm64 instead of amd64 [#11653](https://github.com/kubernetes/minikube/pull/11653) +* Move daemon cache check before file cache check [#11690](https://github.com/kubernetes/minikube/pull/11690) +* Move node config deletion out of drainNode and into Delete [#11731](https://github.com/kubernetes/minikube/pull/11731) +* gcp-auth: do not override existing environment variables in pods [#11665](https://github.com/kubernetes/minikube/pull/11665) + +Minor improvements: + +* Allow running amd64 binary on M1 [#11674](https://github.com/kubernetes/minikube/pull/11674) +* Upgrade containerd config [#11632](https://github.com/kubernetes/minikube/pull/11632) +* Improve French locale [#11728](https://github.com/kubernetes/minikube/pull/11728) +* Do not return an error from Systemd.ForceStop(svc) if svc is already stopped [#11667](https://github.com/kubernetes/minikube/pull/11667) +* Let windows users use the LC_ALL env var to set locale [#11721](https://github.com/kubernetes/minikube/pull/11721) +* Remove unused config options [#11668](https://github.com/kubernetes/minikube/pull/11668) +* Fix intersected log boxes when running with --alsologtostderr [#11694](https://github.com/kubernetes/minikube/pull/11694) +* Change registery_mirror to registery-mirror [#11678](https://github.com/kubernetes/minikube/pull/11678) + +Version Upgrades: + +* lib: Upgrade docker go module from 19.03 to 20.10 [#11726](https://github.com/kubernetes/minikube/pull/11726) +* bump k8s lib to v1.21.2 [#11720](https://github.com/kubernetes/minikube/pull/11720) +* ISO: Upgrade podman to 3.1.2 [#11704](https://github.com/kubernetes/minikube/pull/11704) +* Bump google.golang.org/api from 0.47.0 to 0.48.0 [#11646](https://github.com/kubernetes/minikube/pull/11646) +* Bump github.com/hashicorp/go-getter from 1.5.2 to 1.5.4 [#11719](https://github.com/kubernetes/minikube/pull/11719) +* Bump github.com/spf13/viper from 1.7.1 to 1.8.0 [#11714](https://github.com/kubernetes/minikube/pull/11714) +* Upgrade Buildroot to 2021.02 LTS with Linux 4.19 [#11688](https://github.com/kubernetes/minikube/pull/11688) + +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! + +- Anders F Björklund +- Andriy Dzikh +- Daehyeok Mun +- Dongjoon Hyun +- Felipe Crescencio de Oliveira +- Ilya Zuyev +- JacekDuszenko +- Jeff MAURY +- Medya Ghazizadeh +- Peixuan Ding +- RA489 +- Sharif Elgamal +- Steven Powell +- Vishal Jain +- zhangdb-git + +Thank you to our PR reviewers for this release! + +- medyagh (63 comments) +- sharifelgamal (9 comments) +- ilya-zuyev (6 comments) +- andriyDev (3 comments) +- spowelljr (3 comments) +- afbjorklund (1 comments) +- prezha (1 comments) +- tharun208 (1 comments) + +Thank you to our triage members for this release! + ## Version 1.21.0 - 2021-06-10 * add more polish translations [#11587](https://github.com/kubernetes/minikube/pull/11587) * Modify MetricsServer to use v1 api version (instead of v1beta1). [#11584](https://github.com/kubernetes/minikube/pull/11584) diff --git a/Makefile b/Makefile index dd51d6f728d0..4257194d37b4 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 ?= 21 -VERSION_BUILD ?= 0 +VERSION_MINOR ?= 22 +VERSION_BUILD ?= 0-beta.0 RAW_VERSION=$(VERSION_MAJOR).$(VERSION_MINOR).$(VERSION_BUILD) VERSION ?= v$(RAW_VERSION) From b8ae8cdda426c1360b9c0fa27895d5e6f18f1b8e Mon Sep 17 00:00:00 2001 From: Ilya Zuyev Date: Mon, 28 Jun 2021 13:53:33 -0700 Subject: [PATCH 038/111] fix the changelog --- CHANGELOG.md | 5 ----- 1 file changed, 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 443a13b8d1bb..c4e993da1161 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -30,12 +30,7 @@ Minor improvements: Version Upgrades: -* lib: Upgrade docker go module from 19.03 to 20.10 [#11726](https://github.com/kubernetes/minikube/pull/11726) -* bump k8s lib to v1.21.2 [#11720](https://github.com/kubernetes/minikube/pull/11720) * ISO: Upgrade podman to 3.1.2 [#11704](https://github.com/kubernetes/minikube/pull/11704) -* Bump google.golang.org/api from 0.47.0 to 0.48.0 [#11646](https://github.com/kubernetes/minikube/pull/11646) -* Bump github.com/hashicorp/go-getter from 1.5.2 to 1.5.4 [#11719](https://github.com/kubernetes/minikube/pull/11719) -* Bump github.com/spf13/viper from 1.7.1 to 1.8.0 [#11714](https://github.com/kubernetes/minikube/pull/11714) * Upgrade Buildroot to 2021.02 LTS with Linux 4.19 [#11688](https://github.com/kubernetes/minikube/pull/11688) For a more detailed changelog, including changes occuring in pre-release versions, see [CHANGELOG.md](https://github.com/kubernetes/minikube/blob/master/CHANGELOG.md). From 86e402888c79104c11f4d3024ad4043d7ed0e4b6 Mon Sep 17 00:00:00 2001 From: Andriy Dzikh Date: Mon, 28 Jun 2021 13:53:45 -0700 Subject: [PATCH 039/111] Create new page on website containing all integration test chart links. --- .../content/en/docs/contrib/test_flakes.en.md | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 site/content/en/docs/contrib/test_flakes.en.md diff --git a/site/content/en/docs/contrib/test_flakes.en.md b/site/content/en/docs/contrib/test_flakes.en.md new file mode 100644 index 000000000000..ea64744b49e4 --- /dev/null +++ b/site/content/en/docs/contrib/test_flakes.en.md @@ -0,0 +1,22 @@ +--- +title: "Integration Test Flake Rates" +description: > + Charts to visualize flake rates of all integration tests, split by environment +--- +## Flake rate charts by Environment + +|OS|Driver|ContainerRuntime|Link| +|---|---|---|---| +|Linux|docker|docker|[Docker_Linux](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_Linux)| +|Linux|docker|containerd|[Docker_Linux_containerd](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_Linux_containerd)| +|Linux|docker|crio|[Docker_Linux_crio](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_Linux_crio)| +|Linux - arm64|docker|crio|[Docker_Linux_crio_arm64](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_Linux_crio_arm64)| +|Linux - arm64|docker|docker|[Docker_Linux_docker_arm64](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_Linux_docker_arm64)| +|Linux|kvm2|docker|[KVM_Linux](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=KVM_Linux)| +|Linux|kvm2|containerd|[KVM_Linux_containerd](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=KVM_Linux_containerd)| +|Linux|kvm2|crio|[KVM_Linux_crio](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=KVM_Linux_crio)| +|Linux|virtualbox| |[VirtualBox_Linux](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=VirtualBox_Linux)| +|Linux|none| |[none_Linux](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=none_Linux)| +|MacOS|docker|docker|[Docker_macOS](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_macOS)| +|MacOS|hyperkit| |[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)| From 71609921424a85d484148f33686cdd0f5edf9a0e Mon Sep 17 00:00:00 2001 From: Steven Powell Date: Mon, 28 Jun 2021 15:17:12 -0700 Subject: [PATCH 040/111] add time-to-k8s benchmark for v1.20.0 --- .../images/benchmarks/timeToK8s/v1.20.0.png | Bin 35247 -> 35106 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/site/static/images/benchmarks/timeToK8s/v1.20.0.png b/site/static/images/benchmarks/timeToK8s/v1.20.0.png index 974ede799ab9daf3b44ab3cb18f7cefe428e8846..23ba2e7fa688da77a6361dfb1974254e3ed20e51 100644 GIT binary patch literal 35106 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�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 Date: Mon, 28 Jun 2021 15:23:57 -0700 Subject: [PATCH 041/111] add time-to-k8s benchmark for v1.21.0 --- .../en/docs/benchmarks/timeToK8s/v1.21.0.md | 7 +++++++ .../images/benchmarks/timeToK8s/v1.21.0.png | Bin 0 -> 34972 bytes 2 files changed, 7 insertions(+) create mode 100644 site/content/en/docs/benchmarks/timeToK8s/v1.21.0.md create mode 100644 site/static/images/benchmarks/timeToK8s/v1.21.0.png diff --git a/site/content/en/docs/benchmarks/timeToK8s/v1.21.0.md b/site/content/en/docs/benchmarks/timeToK8s/v1.21.0.md new file mode 100644 index 000000000000..94c3ce9a7d11 --- /dev/null +++ b/site/content/en/docs/benchmarks/timeToK8s/v1.21.0.md @@ -0,0 +1,7 @@ +--- +title: "v1.21.0 Benchmark" +linkTitle: "v1.21.0 Benchmark" +weight: 1 +--- + +![time-to-k8s](/images/benchmarks/timeToK8s/v1.21.0.png) diff --git a/site/static/images/benchmarks/timeToK8s/v1.21.0.png b/site/static/images/benchmarks/timeToK8s/v1.21.0.png new file mode 100644 index 0000000000000000000000000000000000000000..9c1fd87848fbc9f028fe8174c4ad5b55522bfcd1 GIT binary patch literal 34972 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 literal 0 HcmV?d00001 From 8b45846088b52e0d25a80282720951757a9c6b83 Mon Sep 17 00:00:00 2001 From: Steven Powell Date: Mon, 28 Jun 2021 15:25:58 -0700 Subject: [PATCH 042/111] make minor changes to time-to-k8s benchmarking --- .github/workflows/time-to-k8s.yml | 2 +- hack/benchmark/time-to-k8s/time-to-k8s.sh | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/time-to-k8s.yml b/.github/workflows/time-to-k8s.yml index 4917d8fd6e79..18762b1093ec 100644 --- a/.github/workflows/time-to-k8s.yml +++ b/.github/workflows/time-to-k8s.yml @@ -7,7 +7,7 @@ env: GO_VERSION: 1.16.4 jobs: benchmark: - runs-on: ubuntu-18.04 + runs-on: ubuntu-20.04 steps: - uses: actions/checkout@v2 - name: Checkout submodules diff --git a/hack/benchmark/time-to-k8s/time-to-k8s.sh b/hack/benchmark/time-to-k8s/time-to-k8s.sh index a16beea807cd..c074eb4026c1 100755 --- a/hack/benchmark/time-to-k8s/time-to-k8s.sh +++ b/hack/benchmark/time-to-k8s/time-to-k8s.sh @@ -17,9 +17,9 @@ set -e install_kind() { - curl -Lo ./kind https://kind.sigs.k8s.io/dl/v0.11.0/kind-linux-amd64 + curl -Lo ./kind https://github.com/kubernetes-sigs/kind/releases/latest/download/kind-linux-amd64 chmod +x ./kind - sudo mv ./kind /usr/local + sudo mv ./kind /usr/local/bin/kind } install_k3d() { @@ -51,7 +51,7 @@ run_benchmark() { pwd ( cd ./hack/benchmark/time-to-k8s/time-to-k8s-repo/ && git submodule update --init && - go run . --config local-kubernetes.yaml --iterations 5 --output output.csv ) + go run . --config local-kubernetes.yaml --iterations 10 --output output.csv ) } generate_chart() { From 51d2e89fe4988a35e19ed0310f968ccfb56fef31 Mon Sep 17 00:00:00 2001 From: Ilya Zuyev Date: Mon, 28 Jun 2021 17:11:05 -0700 Subject: [PATCH 043/111] Revert "Merge pull request #11778 from minikube-bot/iso-release-v1.22.0-beta.0" This reverts commit fd703f95f64e5c80fff0679568b2e4ef451788da, reversing changes made to 0b170db6cd79e04e203050cb94aa62e9b9f905f6. --- 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 dd51d6f728d0..6007486c58d9 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.22.0-beta.0 +ISO_VERSION ?= v1.21.0-1624660371-11688 # 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 08f4042ba102..3dc506f885f9 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/iso" + isoBucket := "minikube-builds/iso/11688" 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 b6f02258be71..4399e4bdd729 100644 --- a/site/content/en/docs/commands/start.md +++ b/site/content/en/docs/commands/start.md @@ -64,7 +64,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/iso/minikube-v1.22.0-beta.0.iso,https://github.com/kubernetes/minikube/releases/download/v1.22.0-beta.0/minikube-v1.22.0-beta.0.iso,https://kubernetes.oss-cn-hangzhou.aliyuncs.com/minikube/iso/minikube-v1.22.0-beta.0.iso]) + --iso-url strings Locations to fetch the minikube ISO from. (default [https://storage.googleapis.com/minikube-builds/iso/11688/minikube-v1.21.0-1624660371-11688.iso,https://github.com/kubernetes/minikube/releases/download/v1.21.0-1624660371-11688/minikube-v1.21.0-1624660371-11688.iso,https://kubernetes.oss-cn-hangzhou.aliyuncs.com/minikube/iso/minikube-v1.21.0-1624660371-11688.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.20.7, 'latest' for v1.22.0-alpha.2). Defaults to 'stable'. --kvm-gpu Enable experimental NVIDIA GPU support in minikube From 68c4d072fe9574e9290e68501f170ffc76b6b751 Mon Sep 17 00:00:00 2001 From: Ilya Zuyev Date: Mon, 28 Jun 2021 17:11:11 -0700 Subject: [PATCH 044/111] Revert "Merge pull request #11688 from afbjorklund/buildroot-2021.02" This reverts commit 02abe7856c7502e1724c4358a8e4fd7255e49482, reversing changes made to 4d078ae82f505825d20f852eda2ebaf6f7e40a73. --- Makefile | 8 +- ...dist-generate-stub-go.mod-in-workdir.patch | 78 ------------------- .../minikube-iso/configs/minikube_defconfig | 8 +- .../package/crio-bin/crio-bin.hash | 2 +- pkg/minikube/download/iso.go | 2 +- site/content/en/docs/commands/start.md | 2 +- 6 files changed, 10 insertions(+), 90 deletions(-) delete mode 100644 deploy/iso/minikube-iso/board/coreos/minikube/patches/go/1.15.13/dist-generate-stub-go.mod-in-workdir.patch diff --git a/Makefile b/Makefile index 6007486c58d9..268793b0c028 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.21.0-1624660371-11688 +ISO_VERSION ?= v1.21.0-1623378770-11632 # Dashes are valid in semver, but not Linux packaging. Use ~ to delimit alpha/beta DEB_VERSION ?= $(subst -,~,$(RAW_VERSION)) DEB_REVISION ?= 0 @@ -39,7 +39,7 @@ KVM_GO_VERSION ?= $(GO_VERSION:.0=) INSTALL_SIZE ?= $(shell du out/minikube-windows-amd64.exe | cut -f1) -BUILDROOT_BRANCH ?= 2021.02.3 +BUILDROOT_BRANCH ?= 2020.02.12 REGISTRY ?= gcr.io/k8s-minikube # Get git commit id @@ -63,7 +63,7 @@ MINIKUBE_BUCKET ?= minikube/releases MINIKUBE_UPLOAD_LOCATION := gs://${MINIKUBE_BUCKET} MINIKUBE_RELEASES_URL=https://github.com/kubernetes/minikube/releases/download -KERNEL_VERSION ?= 4.19.194 +KERNEL_VERSION ?= 4.19.182 # latest from https://github.com/golangci/golangci-lint/releases GOLINT_VERSION ?= v1.39.0 # Limit number of default jobs, to avoid the CI builds running out of memory @@ -278,6 +278,8 @@ minikube_iso: deploy/iso/minikube-iso/board/coreos/minikube/rootfs-overlay/usr/b git clone --depth=1 --branch=$(BUILDROOT_BRANCH) https://github.com/buildroot/buildroot $(BUILD_DIR)/buildroot; \ fi; $(MAKE) BR2_EXTERNAL=../../deploy/iso/minikube-iso minikube_defconfig -C $(BUILD_DIR)/buildroot + mkdir -p $(BUILD_DIR)/buildroot/output/build + echo "module buildroot.org/go" > $(BUILD_DIR)/buildroot/output/build/go.mod $(MAKE) -C $(BUILD_DIR)/buildroot host-python $(MAKE) -C $(BUILD_DIR)/buildroot mv $(BUILD_DIR)/buildroot/output/images/rootfs.iso9660 $(BUILD_DIR)/minikube.iso diff --git a/deploy/iso/minikube-iso/board/coreos/minikube/patches/go/1.15.13/dist-generate-stub-go.mod-in-workdir.patch b/deploy/iso/minikube-iso/board/coreos/minikube/patches/go/1.15.13/dist-generate-stub-go.mod-in-workdir.patch deleted file mode 100644 index 937028f379fe..000000000000 --- a/deploy/iso/minikube-iso/board/coreos/minikube/patches/go/1.15.13/dist-generate-stub-go.mod-in-workdir.patch +++ /dev/null @@ -1,78 +0,0 @@ -From 536d42e628595565b521dc534ace78d4816f4712 Mon Sep 17 00:00:00 2001 -From: Tamir Duberstein -Date: Thu, 25 Feb 2021 16:44:46 -0500 -Subject: [PATCH] dist: generate stub go.mod in workdir - -(cherry picked from commit c6374f516206c02b905d0d76ee1a66dab6fcd212) ---- - src/cmd/dist/build.go | 26 ++++++-------------------- - 1 file changed, 6 insertions(+), 20 deletions(-) - -diff --git a/src/cmd/dist/build.go b/src/cmd/dist/build.go -index 9e2b4f33b8..e5a7f9e9c4 100644 ---- a/src/cmd/dist/build.go -+++ b/src/cmd/dist/build.go -@@ -110,9 +110,6 @@ func xinit() { - fatalf("$GOROOT must be set") - } - goroot = filepath.Clean(b) -- if modRoot := findModuleRoot(goroot); modRoot != "" { -- fatalf("found go.mod file in %s: $GOROOT must not be inside a module", modRoot) -- } - - b = os.Getenv("GOROOT_FINAL") - if b == "" { -@@ -244,6 +241,9 @@ func xinit() { - os.Setenv("LANGUAGE", "en_US.UTF8") - - workdir = xworkdir() -+ if err := ioutil.WriteFile(pathf("%s/go.mod", workdir), []byte("module bootstrap"), 0666); err != nil { -+ fatalf("cannot write stub go.mod: %s", err) -+ } - xatexit(rmworkdir) - - tooldir = pathf("%s/pkg/tool/%s_%s", goroot, gohostos, gohostarch) -@@ -1484,11 +1484,11 @@ func goCmd(goBinary string, cmd string, args ...string) { - goCmd = append(goCmd, "-p=1") - } - -- run(goroot, ShowOutput|CheckExit, append(goCmd, args...)...) -+ run(workdir, ShowOutput|CheckExit, append(goCmd, args...)...) - } - - func checkNotStale(goBinary string, targets ...string) { -- out := run(goroot, CheckExit, -+ out := run(workdir, CheckExit, - append([]string{ - goBinary, - "list", "-gcflags=all=" + gogcflags, "-ldflags=all=" + goldflags, -@@ -1498,7 +1498,7 @@ func checkNotStale(goBinary string, targets ...string) { - os.Setenv("GODEBUG", "gocachehash=1") - for _, target := range []string{"runtime/internal/sys", "cmd/dist", "cmd/link"} { - if strings.Contains(out, "STALE "+target) { -- run(goroot, ShowOutput|CheckExit, goBinary, "list", "-f={{.ImportPath}} {{.Stale}}", target) -+ run(workdir, ShowOutput|CheckExit, goBinary, "list", "-f={{.ImportPath}} {{.Stale}}", target) - break - } - } -@@ -1590,20 +1590,6 @@ func checkCC() { - } - } - --func findModuleRoot(dir string) (root string) { -- for { -- if fi, err := os.Stat(filepath.Join(dir, "go.mod")); err == nil && !fi.IsDir() { -- return dir -- } -- d := filepath.Dir(dir) -- if d == dir { -- break -- } -- dir = d -- } -- return "" --} -- - func defaulttarg() string { - // xgetwd might return a path with symlinks fully resolved, and if - // there happens to be symlinks in goroot, then the hasprefix test diff --git a/deploy/iso/minikube-iso/configs/minikube_defconfig b/deploy/iso/minikube-iso/configs/minikube_defconfig index ff249d6fa1fc..dcae296ff5f9 100644 --- a/deploy/iso/minikube-iso/configs/minikube_defconfig +++ b/deploy/iso/minikube-iso/configs/minikube_defconfig @@ -18,12 +18,13 @@ BR2_ROOTFS_USERS_TABLES="$(BR2_EXTERNAL_MINIKUBE_PATH)/board/coreos/minikube/use BR2_ROOTFS_OVERLAY="$(BR2_EXTERNAL_MINIKUBE_PATH)/board/coreos/minikube/rootfs-overlay" BR2_LINUX_KERNEL=y BR2_LINUX_KERNEL_CUSTOM_VERSION=y -BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.19.194" +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.19.182" BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="$(BR2_EXTERNAL_MINIKUBE_PATH)/board/coreos/minikube/linux_defconfig" BR2_LINUX_KERNEL_LZ4=y BR2_LINUX_KERNEL_NEEDS_HOST_LIBELF=y BR2_PACKAGE_GZIP=y +BR2_PACKAGE_LZ4=y BR2_PACKAGE_XZ=y BR2_PACKAGE_STRACE=y BR2_PACKAGE_SYSDIG=y @@ -36,9 +37,6 @@ BR2_PACKAGE_SSHFS=y BR2_PACKAGE_XFSPROGS=y BR2_PACKAGE_PARTED=y BR2_PACKAGE_SYSSTAT=y -BR2_PACKAGE_LUAJIT=y -BR2_PACKAGE_LZ4=y -BR2_PACKAGE_LZ4_PROGS=y BR2_PACKAGE_CA_CERTIFICATES=y BR2_PACKAGE_LIBOPENSSL_BIN=y BR2_PACKAGE_LIBCURL_CURL=y @@ -60,9 +58,7 @@ BR2_PACKAGE_PSMISC=y BR2_PACKAGE_SYSTEMD_LOGIND=y BR2_PACKAGE_SYSTEMD_MACHINED=y BR2_PACKAGE_TAR=y -BR2_PACKAGE_UTIL_LINUX_BINARIES=y BR2_PACKAGE_UTIL_LINUX_LOSETUP=y -BR2_PACKAGE_UTIL_LINUX_NOLOGIN=y BR2_PACKAGE_UTIL_LINUX_NSENTER=y BR2_PACKAGE_UTIL_LINUX_SCHEDUTILS=y BR2_TARGET_ROOTFS_CPIO_GZIP=y diff --git a/deploy/iso/minikube-iso/package/crio-bin/crio-bin.hash b/deploy/iso/minikube-iso/package/crio-bin/crio-bin.hash index 1f4dca1868db..11dd505068f1 100644 --- a/deploy/iso/minikube-iso/package/crio-bin/crio-bin.hash +++ b/deploy/iso/minikube-iso/package/crio-bin/crio-bin.hash @@ -21,4 +21,4 @@ sha256 74a4e916acddc6cf47ab5752bdebb6732ce2c028505ef57b7edc21d2da9039b6 v1.18.4. sha256 fc8a8e61375e3ce30563eeb0fd6534c4f48fc20300a72e6ff51cc99cb2703516 v1.19.0.tar.gz sha256 6165c5b8212ea03be2a465403177318bfe25a54c3e8d66d720344643913a0223 v1.19.1.tar.gz sha256 76fd7543bc92d4364a11060f43a5131893a76c6e6e9d6de3a6bb6292c110b631 v1.20.0.tar.gz -sha256 36d9f4cf4966342e2d4099e44d8156c55c6a10745c67ce4f856aa9f6dcc2d9ba v1.20.2.tar.gz +sha256 1c01d4a76cdcfe3ac24147eb1d5f6ebd782bd98fb0ac0c19b79bd5a6560b1481 v1.20.2.tar.gz diff --git a/pkg/minikube/download/iso.go b/pkg/minikube/download/iso.go index 3dc506f885f9..3bd1a512f3b2 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/11688" + isoBucket := "minikube-builds/iso/11632" 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 4399e4bdd729..dea09fc3a8f4 100644 --- a/site/content/en/docs/commands/start.md +++ b/site/content/en/docs/commands/start.md @@ -64,7 +64,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/11688/minikube-v1.21.0-1624660371-11688.iso,https://github.com/kubernetes/minikube/releases/download/v1.21.0-1624660371-11688/minikube-v1.21.0-1624660371-11688.iso,https://kubernetes.oss-cn-hangzhou.aliyuncs.com/minikube/iso/minikube-v1.21.0-1624660371-11688.iso]) + --iso-url strings Locations to fetch the minikube ISO from. (default [https://storage.googleapis.com/minikube-builds/iso/11632/minikube-v1.21.0-1623378770-11632.iso,https://github.com/kubernetes/minikube/releases/download/v1.21.0-1623378770-11632/minikube-v1.21.0-1623378770-11632.iso,https://kubernetes.oss-cn-hangzhou.aliyuncs.com/minikube/iso/minikube-v1.21.0-1623378770-11632.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.20.7, 'latest' for v1.22.0-alpha.2). Defaults to 'stable'. --kvm-gpu Enable experimental NVIDIA GPU support in minikube From 065929ffd0d19745a57dc19ee7a5927f1c72e904 Mon Sep 17 00:00:00 2001 From: Sharif Elgamal Date: Tue, 29 Jun 2021 09:22:42 -0700 Subject: [PATCH 045/111] try less parallelization for macOS tests --- hack/jenkins/osx_integration_tests_docker.sh | 9 +-------- hack/jenkins/osx_integration_tests_hyperkit.sh | 2 +- 2 files changed, 2 insertions(+), 9 deletions(-) diff --git a/hack/jenkins/osx_integration_tests_docker.sh b/hack/jenkins/osx_integration_tests_docker.sh index da32f9d44669..db96d54c4101 100755 --- a/hack/jenkins/osx_integration_tests_docker.sh +++ b/hack/jenkins/osx_integration_tests_docker.sh @@ -30,17 +30,10 @@ ARCH="amd64" OS="darwin" DRIVER="docker" JOB_NAME="Docker_macOS" -EXTRA_TEST_ARGS="" +EXTRA_TEST_ARGS="-test.parallel=2" EXPECTED_DEFAULT_DRIVER="docker" EXTERNAL="yes" -# fix mac os as a service on mac os -# https://github.com/docker/for-mac/issues/882#issuecomment-506372814 -#osascript -e 'quit app "Docker"' -#/Applications/Docker.app/Contents/MacOS/Docker --quit-after-install --unattended || true -#osascript -e 'quit app "Docker"' -#/Applications/Docker.app/Contents/MacOS/Docker --unattended & - begin=$(date +%s) while [ -z "$(docker info 2> /dev/null )" ]; do diff --git a/hack/jenkins/osx_integration_tests_hyperkit.sh b/hack/jenkins/osx_integration_tests_hyperkit.sh index f1acffbdefdf..33b561909fb6 100755 --- a/hack/jenkins/osx_integration_tests_hyperkit.sh +++ b/hack/jenkins/osx_integration_tests_hyperkit.sh @@ -30,7 +30,7 @@ ARCH="amd64" OS="darwin" DRIVER="hyperkit" JOB_NAME="Hyperkit_macOS" -EXTRA_TEST_ARGS="" +EXTRA_TEST_ARGS="-test.parallel=2" EXPECTED_DEFAULT_DRIVER="hyperkit" EXTERNAL="yes" From 452d3023b1320edb1d12036565d7226e8f9e8ce6 Mon Sep 17 00:00:00 2001 From: Steven Powell Date: Tue, 29 Jun 2021 09:38:22 -0700 Subject: [PATCH 046/111] lower parallelism when testing on Windows --- test/integration/main_test.go | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/test/integration/main_test.go b/test/integration/main_test.go index 3e1003df0b08..7c7a9604ebce 100644 --- a/test/integration/main_test.go +++ b/test/integration/main_test.go @@ -97,6 +97,11 @@ func setMaxParallelism() { // Each "minikube start" consumes up to 2 cores, though the average usage is somewhat lower limit := int(math.Floor(float64(maxp) / 1.75)) + // Windows tests were failing from timeouts due to too much parallelization + if runtime.GOOS == "windows" { + limit = int(limit / 2) + } + fmt.Fprintf(os.Stderr, "Found %d cores, limiting parallelism with --test.parallel=%d\n", maxp, limit) if err := flag.Set("test.parallel", strconv.Itoa(limit)); err != nil { fmt.Fprintf(os.Stderr, "Unable to set test.parallel: %v\n", err) From 5024c491971a95ffdc92b76782d34f5ff27607e2 Mon Sep 17 00:00:00 2001 From: Steven Powell Date: Tue, 29 Jun 2021 09:42:10 -0700 Subject: [PATCH 047/111] update comment --- test/integration/main_test.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/integration/main_test.go b/test/integration/main_test.go index 7c7a9604ebce..9a2d799f75b6 100644 --- a/test/integration/main_test.go +++ b/test/integration/main_test.go @@ -97,7 +97,7 @@ func setMaxParallelism() { // Each "minikube start" consumes up to 2 cores, though the average usage is somewhat lower limit := int(math.Floor(float64(maxp) / 1.75)) - // Windows tests were failing from timeouts due to too much parallelization + // Windows tests were failing from timeouts due to too much parallelism if runtime.GOOS == "windows" { limit = int(limit / 2) } From 5b9a73fc2330a6089d0f1d58e85bee0ac4e8b5f0 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 29 Jun 2021 18:26:06 +0000 Subject: [PATCH 048/111] Bump google.golang.org/api from 0.48.0 to 0.49.0 Bumps [google.golang.org/api](https://github.com/googleapis/google-api-go-client) from 0.48.0 to 0.49.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.48.0...v0.49.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 | 6 +++--- go.sum | 19 +++++++++++++------ 2 files changed, 16 insertions(+), 9 deletions(-) diff --git a/go.mod b/go.mod index 1594207128c4..929586d113d9 100644 --- a/go.mod +++ b/go.mod @@ -83,13 +83,13 @@ require ( golang.org/x/crypto v0.0.0-20210220033148-5ea612d1eb83 golang.org/x/exp v0.0.0-20210220032938-85be41e4509f golang.org/x/mod v0.4.2 - golang.org/x/oauth2 v0.0.0-20210514164344-f6687ab2804c + golang.org/x/oauth2 v0.0.0-20210615190721-d04028783cf1 golang.org/x/sync v0.0.0-20210220032951-036812b2e83c - golang.org/x/sys v0.0.0-20210603125802-9665404d3644 + golang.org/x/sys v0.0.0-20210616094352-59db8d763f22 golang.org/x/term v0.0.0-20210406210042-72f3dc4e9b72 golang.org/x/text v0.3.6 gonum.org/v1/plot v0.9.0 - google.golang.org/api v0.48.0 + google.golang.org/api v0.49.0 gopkg.in/mgo.v2 v2.0.0-20190816093944-a6b53ec6cb22 // indirect gopkg.in/yaml.v2 v2.4.0 k8s.io/api v0.21.2 diff --git a/go.sum b/go.sum index 1be3ac887fb5..1afd603efe2a 100644 --- a/go.sum +++ b/go.sum @@ -22,8 +22,9 @@ cloud.google.com/go v0.74.0/go.mod h1:VV1xSbzvo+9QJOxLDaJfTjx5e+MePCpCWwvftOeQmW cloud.google.com/go v0.78.0/go.mod h1:QjdrLG0uq+YwhjoVOLsS1t7TW8fs36kLs4XO5R5ECHg= cloud.google.com/go v0.79.0/go.mod h1:3bzgcEeQlzbuEAYu4mrWhKqWjmpprinYgKJLgKHnbb8= cloud.google.com/go v0.81.0/go.mod h1:mk/AM35KwGk/Nm2YSeZbxXdrNK3KZOYHmLkOqC2V6E0= -cloud.google.com/go v0.83.0 h1:bAMqZidYkmIsUqe6PtkEPT7Q+vfizScn+jfNA6jwK9c= cloud.google.com/go v0.83.0/go.mod h1:Z7MJUsANfY0pYPdw0lbnivPx4/vhy/e2FEkSkF7vAVY= +cloud.google.com/go v0.84.0 h1:hVhK90DwCdOAYGME/FJd9vNIZye9HBR6Yy3fu4js3N8= +cloud.google.com/go v0.84.0/go.mod h1:RazrYuxIK6Kb7YrzzhPoLmCVzl7Sup4NrbKPg8KHSUM= cloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o= cloud.google.com/go/bigquery v1.3.0/go.mod h1:PjpwJnslEMmckchkHFfq+HTD2DmtT67aNFKH1/VBDHE= cloud.google.com/go/bigquery v1.4.0/go.mod h1:S8dzgnTigyfTmLBfrtrhyYhwRxG72rYxvftPBK2Dvzc= @@ -1261,8 +1262,9 @@ golang.org/x/oauth2 v0.0.0-20210220000619-9bb904979d93/go.mod h1:KelEdhl1UZF7XfJ golang.org/x/oauth2 v0.0.0-20210313182246-cd4f82c27b84/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= golang.org/x/oauth2 v0.0.0-20210402161424-2e8d93401602/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= golang.org/x/oauth2 v0.0.0-20210413134643-5e61552d6c78/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20210514164344-f6687ab2804c h1:pkQiBZBvdos9qq4wBAHqlzuZHEXo07pqV06ef90u1WI= golang.org/x/oauth2 v0.0.0-20210514164344-f6687ab2804c/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20210615190721-d04028783cf1 h1:x622Z2o4hgCr/4CiKWc51jHVKaWdtVpBNmEI8wI9Qns= +golang.org/x/oauth2 v0.0.0-20210615190721-d04028783cf1/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= @@ -1368,8 +1370,9 @@ golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20210426230700-d19ff857e887/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210514084401-e8d321eab015/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20210603125802-9665404d3644 h1:CA1DEQ4NdKphKeL70tvsWNdT5oFh1lOjihRcEDROi0I= golang.org/x/sys v0.0.0-20210603125802-9665404d3644/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210616094352-59db8d763f22 h1:RqytpXGR1iVNX7psjB3ff8y7sNFinVFvkx1c8SjBkio= +golang.org/x/sys v0.0.0-20210616094352-59db8d763f22/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= @@ -1459,8 +1462,9 @@ golang.org/x/tools v0.0.0-20210105154028-b0ab187a4818/go.mod h1:emZCQorbCU4vsT4f golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0= golang.org/x/tools v0.1.1/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= -golang.org/x/tools v0.1.2 h1:kRBLX7v7Af8W7Gdbbc908OJcdgtK8bOz9Uaj8/F1ACA= golang.org/x/tools v0.1.2/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= +golang.org/x/tools v0.1.3 h1:L69ShwSZEyCsLKoAxDKeMvLDZkumEe8gXUZAjab0tX8= +golang.org/x/tools v0.1.3/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= @@ -1503,8 +1507,9 @@ google.golang.org/api v0.43.0/go.mod h1:nQsDGjRXMo4lvh5hP0TKqF244gqhGcr/YSIykhUk google.golang.org/api v0.44.0/go.mod h1:EBOGZqzyhtvMDoxwS97ctnh0zUmYY6CxqXsc1AvkYD8= google.golang.org/api v0.45.0/go.mod h1:ISLIJCedJolbZvDfAk+Ctuq5hf+aJ33WgtUsfyFoLXA= google.golang.org/api v0.47.0/go.mod h1:Wbvgpq1HddcWVtzsVLyfLp8lDg6AA241LmgIL59tHXo= -google.golang.org/api v0.48.0 h1:RDAPWfNFY06dffEXfn7hZF5Fr1ZbnChzfQZAPyBd1+I= google.golang.org/api v0.48.0/go.mod h1:71Pr1vy+TAZRPkPs/xlCf5SsU8WjuAWv1Pfjbtukyy4= +google.golang.org/api v0.49.0 h1:gjIBDxlTG7vnzMmEnYwTnvLTF8Rjzo+ETCgEX1YZ/fY= +google.golang.org/api v0.49.0/go.mod h1:BECiH72wsfwUvOVn3+btPD5WHi0LzavZReBndi42L18= 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= @@ -1565,8 +1570,10 @@ google.golang.org/genproto v0.0.0-20210413151531-c14fb6ef47c3/go.mod h1:P3QM42oQ google.golang.org/genproto v0.0.0-20210420162539-3c870d7478d2/go.mod h1:P3QM42oQyzQSnHPnZ/vqoCdDmzH28fzWByN9asMeM8A= google.golang.org/genproto v0.0.0-20210513213006-bf773b8c8384/go.mod h1:P3QM42oQyzQSnHPnZ/vqoCdDmzH28fzWByN9asMeM8A= google.golang.org/genproto v0.0.0-20210602131652-f16073e35f0c/go.mod h1:UODoCrxHCcBojKKwX1terBiRUaqAsFqJiF615XL43r0= -google.golang.org/genproto v0.0.0-20210604141403-392c879c8b08 h1:pc16UedxnxXXtGxHCSUhafAoVHQZ0yXl8ZelMH4EETc= google.golang.org/genproto v0.0.0-20210604141403-392c879c8b08/go.mod h1:UODoCrxHCcBojKKwX1terBiRUaqAsFqJiF615XL43r0= +google.golang.org/genproto v0.0.0-20210608205507-b6d2f5bf0d7d/go.mod h1:UODoCrxHCcBojKKwX1terBiRUaqAsFqJiF615XL43r0= +google.golang.org/genproto v0.0.0-20210617175327-b9e0b3197ced h1:c5geK1iMU3cDKtFrCVQIcjR3W+JOZMuhIyICMCTbtus= +google.golang.org/genproto v0.0.0-20210617175327-b9e0b3197ced/go.mod h1:SzzZ/N+nwJDaO1kznhnlzqS8ocJICar6hYhVyhi++24= 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 47938ea6d3e4e4ce793545c1d0cda4c2088d54d9 Mon Sep 17 00:00:00 2001 From: Ilya Zuyev Date: Tue, 29 Jun 2021 11:32:50 -0700 Subject: [PATCH 049/111] fix crio-bin hash --- deploy/iso/minikube-iso/package/crio-bin/crio-bin.hash | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/deploy/iso/minikube-iso/package/crio-bin/crio-bin.hash b/deploy/iso/minikube-iso/package/crio-bin/crio-bin.hash index 11dd505068f1..1f4dca1868db 100644 --- a/deploy/iso/minikube-iso/package/crio-bin/crio-bin.hash +++ b/deploy/iso/minikube-iso/package/crio-bin/crio-bin.hash @@ -21,4 +21,4 @@ sha256 74a4e916acddc6cf47ab5752bdebb6732ce2c028505ef57b7edc21d2da9039b6 v1.18.4. sha256 fc8a8e61375e3ce30563eeb0fd6534c4f48fc20300a72e6ff51cc99cb2703516 v1.19.0.tar.gz sha256 6165c5b8212ea03be2a465403177318bfe25a54c3e8d66d720344643913a0223 v1.19.1.tar.gz sha256 76fd7543bc92d4364a11060f43a5131893a76c6e6e9d6de3a6bb6292c110b631 v1.20.0.tar.gz -sha256 1c01d4a76cdcfe3ac24147eb1d5f6ebd782bd98fb0ac0c19b79bd5a6560b1481 v1.20.2.tar.gz +sha256 36d9f4cf4966342e2d4099e44d8156c55c6a10745c67ce4f856aa9f6dcc2d9ba v1.20.2.tar.gz From 8ba7bdbcc514baad3daded548df9f102f5a5a593 Mon Sep 17 00:00:00 2001 From: Medya Ghazizadeh Date: Tue, 29 Jun 2021 14:41:02 -0400 Subject: [PATCH 050/111] Update test_flakes.en.md --- site/content/en/docs/contrib/test_flakes.en.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/site/content/en/docs/contrib/test_flakes.en.md b/site/content/en/docs/contrib/test_flakes.en.md index ea64744b49e4..febd82bf3301 100644 --- a/site/content/en/docs/contrib/test_flakes.en.md +++ b/site/content/en/docs/contrib/test_flakes.en.md @@ -15,8 +15,8 @@ description: > |Linux|kvm2|docker|[KVM_Linux](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=KVM_Linux)| |Linux|kvm2|containerd|[KVM_Linux_containerd](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=KVM_Linux_containerd)| |Linux|kvm2|crio|[KVM_Linux_crio](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=KVM_Linux_crio)| -|Linux|virtualbox| |[VirtualBox_Linux](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=VirtualBox_Linux)| -|Linux|none| |[none_Linux](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=none_Linux)| +|Linux|virtualbox|docker|[VirtualBox_Linux](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=VirtualBox_Linux)| +|Linux|none|docker|[none_Linux](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=none_Linux)| |MacOS|docker|docker|[Docker_macOS](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_macOS)| -|MacOS|hyperkit| |[Hyperkit_macOS](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Hyperkit_macOS)| +|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)| From 858aab3f5540329ff946f480a051a8361219e196 Mon Sep 17 00:00:00 2001 From: Andriy Dzikh Date: Tue, 29 Jun 2021 11:44:36 -0700 Subject: [PATCH 051/111] Create sync_tests.sh to be triggered by each integration test on completion. --- hack/jenkins/common.sh | 27 ++++++++-- .../jenkins/test-flake-chart/report_flakes.sh | 31 ++++++------ hack/jenkins/test-flake-chart/sync_tests.sh | 49 +++++++++++++++++++ hack/jenkins/test-flake-chart/upload_tests.sh | 4 +- hack/jenkins/upload_integration_report.sh | 13 +++-- 5 files changed, 99 insertions(+), 25 deletions(-) create mode 100644 hack/jenkins/test-flake-chart/sync_tests.sh diff --git a/hack/jenkins/common.sh b/hack/jenkins/common.sh index a8d8f4d5e4f7..c36162563cd9 100755 --- a/hack/jenkins/common.sh +++ b/hack/jenkins/common.sh @@ -142,6 +142,17 @@ fi # Add the out/ directory to the PATH, for using new drivers. export PATH="$(pwd)/out/":$PATH +STARTED_ENVIRONMENTS="gs://minikube-builds/logs/${MINIKUBE_LOCATION}/${COMMIT:0:7}/started_environments_${ROOT_JOB_ID}.txt" +# Ensure STARTED_ENVIRONMENTS exists (but don't clobber) +< /dev/null gsutil cp -n - "${STARTED_ENVIRONMENTS}" +# Copy the job name to APPEND_TMP +APPEND_TMP="gs://minikube-builds/logs/${MINIKUBE_LOCATION}/${COMMIT:0:7}/$(basename $(mktemp))" +echo "${JOB_NAME}"\ + | gsutil cp - "${APPEND_TMP}" +# Append +gsutil compose "${STARTED_ENVIRONMENTS}" "${APPEND_TMP}" "${STARTED_ENVIRONMENTS}" +gsutil rm "${APPEND_TMP}" + echo echo ">> Downloading test inputs from ${MINIKUBE_LOCATION} ..." gsutil -qm cp \ @@ -441,11 +452,17 @@ if [ -z "${EXTERNAL}" ]; then gsutil -qm cp "${HTML_OUT}" "gs://${JOB_GCS_BUCKET}.html" || true echo ">> uploading ${SUMMARY_OUT}" gsutil -qm cp "${SUMMARY_OUT}" "gs://${JOB_GCS_BUCKET}_summary.json" || true - if [[ "${MINIKUBE_LOCATION}" == "master" ]]; then - ./test-flake-chart/upload_tests.sh "${SUMMARY_OUT}" - elif [[ "${JOB_NAME}" == "Docker_Linux" || "${JOB_NAME}" == "Docker_Linux_containerd" || "${JOB_NAME}" == "KVM_Linux" || "${JOB_NAME}" == "KVM_Linux_containerd" ]]; then - ./test-flake-chart/report_flakes.sh "${MINIKUBE_LOCATION}" "${SUMMARY_OUT}" "${JOB_NAME}" - fi + + FINISHED_ENVIRONMENTS="gs://minikube-builds/logs/${MINIKUBE_LOCATION}/${COMMIT:0:7}/finished_environments_${ROOT_JOB_ID}.txt" + # Ensure STARTED_ENVIRONMENTS exists (but don't clobber) + < /dev/null gsutil cp -n - "${STARTED_ENVIRONMENTS}" + # Copy the job name to APPEND_TMP + APPEND_TMP="gs://minikube-builds/logs/${MINIKUBE_LOCATION}/${COMMIT:0:7}/$(basename $(mktemp))" + echo "${JOB_NAME}"\ + | gsutil cp - "${APPEND_TMP}" + # Append + gsutil compose "${STARTED_ENVIRONMENTS}" "${APPEND_TMP}" "${STARTED_ENVIRONMENTS}" + gsutil rm "${APPEND_TMP}" else # Otherwise, put the results in a predictable spot so the upload job can find them REPORTS_PATH=test_reports diff --git a/hack/jenkins/test-flake-chart/report_flakes.sh b/hack/jenkins/test-flake-chart/report_flakes.sh index 62ceed336079..b198cba860cb 100755 --- a/hack/jenkins/test-flake-chart/report_flakes.sh +++ b/hack/jenkins/test-flake-chart/report_flakes.sh @@ -21,13 +21,13 @@ set -eu -o pipefail if [ "$#" -ne 3 ]; then - echo "Wrong number of arguments. Usage: report_flakes.sh " 1>&2 + echo "Wrong number of arguments. Usage: report_flakes.sh " 1>&2 exit 1 fi PR_NUMBER=$1 -SUMMARY_DATA=$2 -ENVIRONMENT=$3 +SHORT_COMMIT=$2 +ENVIRONMENT_LIST=$3 # To prevent having a super-long comment, add a maximum number of tests to report. MAX_REPORTED_TESTS=30 @@ -35,13 +35,14 @@ MAX_REPORTED_TESTS=30 DIR=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd ) TMP_DATA=$(mktemp) -# 1) Process the data in the gopogh summary. -# 2) Filter tests to only include failed tests on the environment (and only get their names). -# 3) Sort the names of the tests. +# 1) Process the data in each gopogh summary. +# 2) Filter tests to only include failed tests (and only get their names and environment). +# 3) Sort by environment, then test name. # 4) Store in file $TMP_DATA. -< "$SUMMARY_DATA" $DIR/process_data.sh \ - | sed -n -r -e "s/[0-9a-f]*,[0-9-]*,$ENVIRONMENT,([a-zA-Z\/_-]*),Failed,[.0-9]*/\1/p" \ - | sort \ +gsutil cat $(< "${ENVIRONMENT_LIST}" sed -r "s/^/gs:\\/\\/minikube-builds\\/logs\\/${PR_NUMBER}\\/${SHORT_COMMIT}\\/; s/$/_summary.json/") \ + | $DIR/process_data.sh \ + | sed -n -r -e "s/[0-9a-f]*,[0-9-]*,([a-zA-Z\/_0-9-]*),([a-zA-Z\/_0-9-]*),Failed,[.0-9]*/\1:\2/p" \ + | sort -t, -k\ > "$TMP_DATA" # Download the precomputed flake rates from the GCS bucket into file $TMP_FLAKE_RATES. @@ -49,12 +50,12 @@ TMP_FLAKE_RATES=$(mktemp) gsutil cp gs://minikube-flake-rate/flake_rates.csv "$TMP_FLAKE_RATES" TMP_FAILED_RATES="$TMP_FLAKE_RATES\_filtered" -# 1) Parse/filter the flake rates to only include the test name and flake rates for environment. -# 2) Sort the flake rates based on test name. +# 1) Parse the flake rates to only include the environment, test name, and flake rates. +# 2) Sort the flake rates based on environment+test name. # 3) Join the flake rates with the failing tests to only get flake rates of failing tests. # 4) Sort failed test flake rates based on the flakiness of that test - stable tests should be first on the list. # 5) Store in file $TMP_FAILED_RATES. -< "$TMP_FLAKE_RATES" sed -n -r -e "s/$ENVIRONMENT,([a-zA-Z\/_-]*),([.0-9]*),[.0-9]*/\1,\2/p" \ +< "$TMP_FLAKE_RATES" sed -n -r -e "s/([a-zA-Z0-9_-]*),([a-zA-Z\/0-9_-]*),([.0-9]*),[.0-9]*/\1:\2,\3/p" \ | sort -t, -k1,1 \ | join -t , -j 1 "$TMP_DATA" - \ | sort -g -t, -k2,2 \ @@ -68,12 +69,12 @@ fi # Create the comment template. TMP_COMMENT=$(mktemp) -printf "These are the flake rates of all failed tests on %s.\n|Failed Tests|Flake Rate (%%)|\n|---|---|\n" "$ENVIRONMENT" > "$TMP_COMMENT" +printf "These are the flake rates of all failed tests per %s.\n|Environment|Failed Tests|Flake Rate (%%)|\n|---|---|---|\n" "$ENVIRONMENT" > "$TMP_COMMENT" # 1) Get the first $MAX_REPORTED_TESTS lines. -# 2) Print a row in the table with the test name, flake rate, and a link to the flake chart for that test. +# 2) Print a row in the table with the environment, test name, flake rate, and a link to the flake chart for that test. # 3) Append these rows to file $TMP_COMMENT. < "$TMP_FAILED_RATES" head -n $MAX_REPORTED_TESTS \ - | sed -n -r -e "s/([a-zA-Z\/_-]*),([.0-9]*)/|\1|\2 ([chart](https:\/\/storage.googleapis.com\/minikube-flake-rate\/flake_chart.html?env=$ENVIRONMENT\&test=\1))|/p" \ + | sed -n -r -e "s/([a-zA-Z\/0-9_-]*):([a-zA-Z\/0-9_-]*),([.0-9]*)/|\1|\2|\3 ([chart](https:\/\/storage.googleapis.com\/minikube-flake-rate\/flake_chart.html?env=\1\&test=\2))|/p" \ >> "$TMP_COMMENT" # If there are too many failing tests, add an extra row explaining this, and a message after the table. diff --git a/hack/jenkins/test-flake-chart/sync_tests.sh b/hack/jenkins/test-flake-chart/sync_tests.sh new file mode 100644 index 000000000000..86b59949675d --- /dev/null +++ b/hack/jenkins/test-flake-chart/sync_tests.sh @@ -0,0 +1,49 @@ +#!/bin/bash + +set -o pipefail + +BUCKET_PATH="gs://minikube-builds/logs/${MINIKUBE_LOCATION}/${COMMIT:0:7}" +STARTED_LIST=$(gsutil cat "${BUCKET_PATH}/started_environments_${ROOT_JOB_ID}.txt" | sort | uniq) + +if [ $? -ne 0 ]; then + echo "Unable to read environment list. Likely being run before all tests are ready or after tests have already been uploaded." 1>&2 + exit 0 +fi + +set -eu -o pipefail + +FINISHED_LIST=$(mktemp) +gsutil cat "${BUCKET_PATH}/finished_environments_${ROOT_JOB_ID}.txt"\ + | sort\ + | uniq > "${FINISHED_LIST}" + +STARTED_COUNT=$(echo "${STARTED_LIST}" | wc -l) +FINISHED_COUNT=$(\ + echo "${STARTED_LIST}"\ + | join - "${FINISHED_LIST}"\ + | wc -l) + +if [ ${STARTED_COUNT} -ne ${FINISHED_COUNT} ]; then + echo "Started environments are not all finished! Started: ${STARTED_LIST}, Finished: $(cat ${FINISHED_LIST}))" + exit 0 +fi + +# Prevent other invocations of this script from uploading the same thing multiple times. +gsutil rm "${BUCKET_PATH}/started_environments_${ROOT_JOB_ID}.txt" + +# At this point, we know all integration tests are done and we can process all summaries safely. + +# Get directory of this script. +DIR=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd ) + +if [[ "${MINIKUBE_LOCATION}" == "master" ]]; then + for ENVIRONMENT in ${STARTED_LIST}; do + SUMMARY="${BUCKET_PATH}/${ENVIRONMENT}_summary.json" + "${DIR}/upload_tests.sh" "${SUMMARY}" + done +else + "${DIR}/report_flakes.sh" "${MINIKUBE_LOCATION}" "${COMMIT:0:7}" "${FINISHED_LIST}" +fi + +gsutil rm "${BUCKET_PATH}/finished_environments_${ROOT_JOB_ID}.txt" +rm "${FINISHED_LIST}" diff --git a/hack/jenkins/test-flake-chart/upload_tests.sh b/hack/jenkins/test-flake-chart/upload_tests.sh index 5906f73ae173..1630ef7ab0e7 100755 --- a/hack/jenkins/test-flake-chart/upload_tests.sh +++ b/hack/jenkins/test-flake-chart/upload_tests.sh @@ -16,12 +16,12 @@ # Takes a gopogh summary, extracts test data as a CSV and appends to the # existing CSV data in the GCS bucket. -# Example usage: ./jenkins_upload_tests.sh gopogh_summary.json +# Example usage: ./upload_tests.sh gopogh_summary.json set -eu -o pipefail if [ "$#" -ne 1 ]; then - echo "Wrong number of arguments. Usage: jenkins_upload_tests.sh " 1>&2 + echo "Wrong number of arguments. Usage: upload_tests.sh " 1>&2 exit 1 fi diff --git a/hack/jenkins/upload_integration_report.sh b/hack/jenkins/upload_integration_report.sh index 8bb6735e66f2..960a6a4da738 100644 --- a/hack/jenkins/upload_integration_report.sh +++ b/hack/jenkins/upload_integration_report.sh @@ -48,6 +48,13 @@ SUMMARY_OUT="$ARTIFACTS/summary.txt" echo ">> uploading ${SUMMARY_OUT}" gsutil -qm cp "${SUMMARY_OUT}" "gs://${JOB_GCS_BUCKET}_summary.json" || true -if [[ "${MINIKUBE_LOCATION}" == "master" ]]; then - ./test-flake-chart/upload_tests.sh "${SUMMARY_OUT}" -fi +FINISHED_ENVIRONMENTS="gs://minikube-builds/logs/${MINIKUBE_LOCATION}/${COMMIT:0:7}/finished_environments_${ROOT_JOB_ID}.txt" +# Ensure STARTED_ENVIRONMENTS exists (but don't clobber) +< /dev/null gsutil cp -n - "${STARTED_ENVIRONMENTS}" +# Copy the job name to APPEND_TMP +APPEND_TMP="gs://minikube-builds/logs/${MINIKUBE_LOCATION}/${COMMIT:0:7}/$(basename $(mktemp))" +echo "${JOB_NAME}"\ + | gsutil cp - "${APPEND_TMP}" +# Append +gsutil compose "${STARTED_ENVIRONMENTS}" "${APPEND_TMP}" "${STARTED_ENVIRONMENTS}" +gsutil rm "${APPEND_TMP}" From 73e42a9a8c52916c2d336a7744687e02913baad0 Mon Sep 17 00:00:00 2001 From: Sharif Elgamal Date: Tue, 29 Jun 2021 11:46:38 -0700 Subject: [PATCH 052/111] change parallelization in code --- hack/jenkins/osx_integration_tests_docker.sh | 2 +- hack/jenkins/osx_integration_tests_hyperkit.sh | 2 +- test/integration/main_test.go | 5 +++++ 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/hack/jenkins/osx_integration_tests_docker.sh b/hack/jenkins/osx_integration_tests_docker.sh index db96d54c4101..3635553cb564 100755 --- a/hack/jenkins/osx_integration_tests_docker.sh +++ b/hack/jenkins/osx_integration_tests_docker.sh @@ -30,7 +30,7 @@ ARCH="amd64" OS="darwin" DRIVER="docker" JOB_NAME="Docker_macOS" -EXTRA_TEST_ARGS="-test.parallel=2" +EXTRA_TEST_ARGS="" EXPECTED_DEFAULT_DRIVER="docker" EXTERNAL="yes" diff --git a/hack/jenkins/osx_integration_tests_hyperkit.sh b/hack/jenkins/osx_integration_tests_hyperkit.sh index 33b561909fb6..f1acffbdefdf 100755 --- a/hack/jenkins/osx_integration_tests_hyperkit.sh +++ b/hack/jenkins/osx_integration_tests_hyperkit.sh @@ -30,7 +30,7 @@ ARCH="amd64" OS="darwin" DRIVER="hyperkit" JOB_NAME="Hyperkit_macOS" -EXTRA_TEST_ARGS="-test.parallel=2" +EXTRA_TEST_ARGS="" EXPECTED_DEFAULT_DRIVER="hyperkit" EXTERNAL="yes" diff --git a/test/integration/main_test.go b/test/integration/main_test.go index 3e1003df0b08..d105754a58bb 100644 --- a/test/integration/main_test.go +++ b/test/integration/main_test.go @@ -97,6 +97,11 @@ func setMaxParallelism() { // Each "minikube start" consumes up to 2 cores, though the average usage is somewhat lower limit := int(math.Floor(float64(maxp) / 1.75)) + // cut the number of parallel tests in half for macOS + if runtime.GOOS == "darwin" && limit > 2 { + limit /= 2 + } + fmt.Fprintf(os.Stderr, "Found %d cores, limiting parallelism with --test.parallel=%d\n", maxp, limit) if err := flag.Set("test.parallel", strconv.Itoa(limit)); err != nil { fmt.Fprintf(os.Stderr, "Unable to set test.parallel: %v\n", err) From 89c7853601d0cc8a2ea9f63857ae264dcd2a5514 Mon Sep 17 00:00:00 2001 From: Medya Gh Date: Tue, 29 Jun 2021 15:24:59 -0400 Subject: [PATCH 053/111] bump go mod libs manually --- cmd/minikube/cmd/start.go | 2 +- cmd/minikube/cmd/start_flags.go | 2 +- cmd/minikube/cmd/start_test.go | 2 +- go.mod | 13 +-- go.sum | 110 ++++++++++++++---- pkg/drivers/kic/oci/network.go | 2 +- .../bootstrapper/bsutil/extraconfig.go | 2 +- pkg/minikube/bootstrapper/bsutil/kubeadm.go | 2 +- pkg/minikube/bootstrapper/bsutil/versions.go | 2 +- .../bootstrapper/bsutil/versions_test.go | 2 +- pkg/minikube/bootstrapper/images/images.go | 2 +- .../bootstrapper/images/images_test.go | 2 +- pkg/minikube/bootstrapper/images/kubeadm.go | 2 +- pkg/minikube/bootstrapper/kubeadm/kubeadm.go | 2 +- pkg/minikube/config/types.go | 2 +- pkg/minikube/cruntime/containerd.go | 2 +- pkg/minikube/cruntime/crio.go | 2 +- pkg/minikube/cruntime/cruntime.go | 2 +- pkg/minikube/cruntime/docker.go | 2 +- pkg/minikube/download/binary.go | 2 +- pkg/minikube/download/driver.go | 2 +- pkg/minikube/driver/auxdriver/install.go | 2 +- pkg/minikube/driver/auxdriver/version.go | 2 +- pkg/minikube/driver/auxdriver/version_test.go | 2 +- pkg/minikube/node/start.go | 2 +- pkg/minikube/notify/notify.go | 2 +- pkg/minikube/notify/notify_test.go | 2 +- pkg/minikube/reason/k8s.go | 2 +- pkg/minikube/registry/drvs/podman/podman.go | 2 +- pkg/util/retry/retry.go | 2 +- pkg/util/utils.go | 2 +- pkg/util/utils_test.go | 2 +- pkg/version/version.go | 2 +- .../driver_install_or_update_test.go | 4 +- 34 files changed, 128 insertions(+), 61 deletions(-) diff --git a/cmd/minikube/cmd/start.go b/cmd/minikube/cmd/start.go index ed1ffff1fb50..c65d532d4272 100644 --- a/cmd/minikube/cmd/start.go +++ b/cmd/minikube/cmd/start.go @@ -32,7 +32,7 @@ import ( "strconv" "strings" - "github.com/blang/semver" + "github.com/blang/semver/v4" "github.com/docker/machine/libmachine/ssh" "github.com/google/go-containerregistry/pkg/authn" "github.com/google/go-containerregistry/pkg/name" diff --git a/cmd/minikube/cmd/start_flags.go b/cmd/minikube/cmd/start_flags.go index ccf30226ca71..2152ca7a5831 100644 --- a/cmd/minikube/cmd/start_flags.go +++ b/cmd/minikube/cmd/start_flags.go @@ -21,7 +21,7 @@ import ( "strings" "time" - "github.com/blang/semver" + "github.com/blang/semver/v4" "github.com/pkg/errors" "github.com/shirou/gopsutil/v3/cpu" "github.com/spf13/cobra" diff --git a/cmd/minikube/cmd/start_test.go b/cmd/minikube/cmd/start_test.go index 5d03d3d95cb7..398a3c2c8ea7 100644 --- a/cmd/minikube/cmd/start_test.go +++ b/cmd/minikube/cmd/start_test.go @@ -21,7 +21,7 @@ import ( "strings" "testing" - "github.com/blang/semver" + "github.com/blang/semver/v4" "github.com/spf13/cobra" "github.com/spf13/viper" diff --git a/go.mod b/go.mod index 929586d113d9..43f0bb5fcda2 100644 --- a/go.mod +++ b/go.mod @@ -5,16 +5,15 @@ go 1.16 require ( cloud.google.com/go/storage v1.15.0 contrib.go.opencensus.io/exporter/stackdriver v0.12.1 - github.com/Azure/azure-sdk-for-go v43.3.0+incompatible + github.com/Azure/azure-sdk-for-go/tools/internal v0.1.0 github.com/Delta456/box-cli-maker/v2 v2.2.1 github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/trace v0.16.0 - github.com/Microsoft/hcsshim v0.8.15 // indirect + github.com/Microsoft/hcsshim v0.8.17 // indirect github.com/Parallels/docker-machine-parallels/v2 v2.0.1 - github.com/VividCortex/godaemon v0.0.0-20201030160542-15e3f4925a21 - github.com/blang/semver v3.5.1+incompatible + github.com/VividCortex/godaemon v1.0.0 + github.com/blang/semver/v4 v4.0.0 github.com/briandowns/spinner v1.11.1 github.com/c4milo/gotoolkit v0.0.0-20170318115440-bcc06269efa9 // indirect - github.com/cenkalti/backoff v2.2.1+incompatible github.com/cenkalti/backoff/v4 v4.1.1 github.com/cheggaaa/pb/v3 v3.0.8 github.com/cloudevents/sdk-go/v2 v2.3.1 @@ -31,7 +30,7 @@ require ( github.com/google/go-containerregistry v0.4.1 github.com/google/go-github v17.0.0+incompatible github.com/google/go-github/v32 v32.1.0 - github.com/google/slowjam v0.0.0-20200530021616-df27e642fe7b + github.com/google/slowjam v1.0.0 github.com/google/uuid v1.2.0 github.com/hashicorp/go-getter v1.5.4 github.com/hashicorp/go-retryablehttp v0.7.0 @@ -80,7 +79,7 @@ require ( go.opentelemetry.io/otel/sdk v0.16.0 go.opentelemetry.io/otel/trace v0.17.0 golang.org/x/build v0.0.0-20190927031335-2835ba2e683f - golang.org/x/crypto v0.0.0-20210220033148-5ea612d1eb83 + golang.org/x/crypto v0.0.0-20210322153248-0c34fe9e7dc2 golang.org/x/exp v0.0.0-20210220032938-85be41e4509f golang.org/x/mod v0.4.2 golang.org/x/oauth2 v0.0.0-20210615190721-d04028783cf1 diff --git a/go.sum b/go.sum index 1afd603efe2a..c741fd9f26f6 100644 --- a/go.sum +++ b/go.sum @@ -53,19 +53,24 @@ dmitri.shuralyov.com/gpu/mtl v0.0.0-20201218220906-28db891af037/go.mod h1:H6x//7 gioui.org v0.0.0-20210308172011-57750fc8a0a6/go.mod h1:RSH6KIUZ0p2xy5zHDxgAM4zumjgTw83q2ge/PI+yyw8= github.com/Azure/azure-sdk-for-go v16.2.1+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc= github.com/Azure/azure-sdk-for-go v43.0.0+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc= -github.com/Azure/azure-sdk-for-go v43.3.0+incompatible h1:o0G4JAsOzeVJEwU0Ud9bh+lUHPUc0GkFENJ02dk51Uo= -github.com/Azure/azure-sdk-for-go v43.3.0+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc= +github.com/Azure/azure-sdk-for-go v54.2.1+incompatible h1:RiwBAqYP8Xz2yTPNzrwiHX5+lfPkRlHuk/x4BOAyAjA= +github.com/Azure/azure-sdk-for-go v54.2.1+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc= +github.com/Azure/azure-sdk-for-go/tools/internal v0.1.0 h1:14XW+q/1MOOtbnU8icLjxfkZv+FwtnvxPrpPvNptVpI= +github.com/Azure/azure-sdk-for-go/tools/internal v0.1.0/go.mod h1:Vmf0KH/Ytn20T2KjFqwBAyl9gBQBp9ci0RGPCru9lOA= github.com/Azure/go-ansiterm v0.0.0-20170929234023-d6e3b3328b78 h1:w+iIsaOQNcT7OZ575w+acHgRric5iCyQh+xv+KJ4HB8= github.com/Azure/go-ansiterm v0.0.0-20170929234023-d6e3b3328b78/go.mod h1:LmzpDX56iTiv29bbRTIsUNlaFfuhWRQBWjQdVyAevI8= github.com/Azure/go-autorest v10.8.1+incompatible/go.mod h1:r+4oMnoxhatjLLJ6zxSWATqVooLgysK6ZNox3g/xq24= github.com/Azure/go-autorest v14.2.0+incompatible/go.mod h1:r+4oMnoxhatjLLJ6zxSWATqVooLgysK6ZNox3g/xq24= github.com/Azure/go-autorest/autorest v0.11.12/go.mod h1:eipySxLmqSyC5s5k1CLupqet0PSENBEDP93LQ9a8QYw= +github.com/Azure/go-autorest/autorest v0.11.18/go.mod h1:dSiJPy22c3u0OtOKDNttNgqpNFY/GeWa7GH/Pz56QRA= github.com/Azure/go-autorest/autorest/adal v0.9.5/go.mod h1:B7KF7jKIeC9Mct5spmyCB/A8CG/sEz1vwIRGv/bbw7A= +github.com/Azure/go-autorest/autorest/adal v0.9.13/go.mod h1:W/MM4U6nLxnIskrw4UwWzlHfGjwUS50aOsc/I3yuU8M= github.com/Azure/go-autorest/autorest/date v0.3.0/go.mod h1:BI0uouVdmngYNUzGWeSYnokU+TrmwEsOqdt8Y6sso74= github.com/Azure/go-autorest/autorest/mocks v0.4.1/go.mod h1:LTp+uSrOhSkaKrUy935gNZuuIPPVsHlr9DSOxSayd+k= github.com/Azure/go-autorest/autorest/to v0.2.0/go.mod h1:GunWKJp1AEqgMaGLV+iocmRAJWqST1wQYhyyjXJ3SJc= github.com/Azure/go-autorest/autorest/validation v0.1.0/go.mod h1:Ha3z/SqBeaalWQvokg3NZAlQTalVMtOIAs1aGK7G6u8= github.com/Azure/go-autorest/logger v0.2.0/go.mod h1:T9E3cAhj2VqvPOtCYAvby9aBXkZmbF5NWuPV8+WeEW8= +github.com/Azure/go-autorest/logger v0.2.1/go.mod h1:T9E3cAhj2VqvPOtCYAvby9aBXkZmbF5NWuPV8+WeEW8= github.com/Azure/go-autorest/tracing v0.6.0/go.mod h1:+vhtPC754Xsa23ID7GlGsrdKBpUA79WCAKPPZVC2DeU= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= @@ -77,23 +82,29 @@ github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/trace v0.16. github.com/JeffAshton/win_pdh v0.0.0-20161109143554-76bb4ee9f0ab/go.mod h1:3VYc5hodBMJ5+l/7J4xAyMeuM2PNuepvHlGs8yilUCA= github.com/MakeNowJust/heredoc v0.0.0-20170808103936-bb23615498cd h1:sjQovDkwrZp8u+gxLtPgKGjk5hCxuy2hrRejBTA9xFU= github.com/MakeNowJust/heredoc v0.0.0-20170808103936-bb23615498cd/go.mod h1:64YHyfSL2R96J44Nlwm39UHepQbyR5q10x7iYa1ks2E= +github.com/Masterminds/semver v1.5.0/go.mod h1:MB6lktGJrhw8PrUyiEoblNEGEQ+RzHPF078ddwwvV3Y= github.com/Microsoft/go-winio v0.4.11/go.mod h1:VhR8bwka0BXejwEJY73c50VrPtXAaKcyvVC4A4RozmA= github.com/Microsoft/go-winio v0.4.14/go.mod h1:qXqCSQ3Xa7+6tgxaGTIe4Kpcdsi+P8jBhyzoq1bpyYA= github.com/Microsoft/go-winio v0.4.15-0.20190919025122-fc70bd9a86b5/go.mod h1:tTuCMEN+UleMWgg9dVx4Hu52b1bJo+59jBh3ajtinzw= github.com/Microsoft/go-winio v0.4.15/go.mod h1:tTuCMEN+UleMWgg9dVx4Hu52b1bJo+59jBh3ajtinzw= github.com/Microsoft/go-winio v0.4.16-0.20201130162521-d1ffc52c7331/go.mod h1:XB6nPKklQyQ7GC9LdcBEcBl8PF76WugXOPRXwdLnMv0= github.com/Microsoft/go-winio v0.4.16/go.mod h1:XB6nPKklQyQ7GC9LdcBEcBl8PF76WugXOPRXwdLnMv0= -github.com/Microsoft/go-winio v0.4.17-0.20210211115548-6eac466e5fa3 h1:mw6pDQqv38/WGF1cO/jF5t/jyAJ2yi7CmtFLLO5tGFI= github.com/Microsoft/go-winio v0.4.17-0.20210211115548-6eac466e5fa3/go.mod h1:JPGBdM1cNvN/6ISo+n8V5iA4v8pBzdOpzfwIujj1a84= +github.com/Microsoft/go-winio v0.4.17-0.20210324224401-5516f17a5958/go.mod h1:JPGBdM1cNvN/6ISo+n8V5iA4v8pBzdOpzfwIujj1a84= +github.com/Microsoft/go-winio v0.4.17 h1:iT12IBVClFevaf8PuVyi3UmZOVh4OqnaLxDTW2O6j3w= +github.com/Microsoft/go-winio v0.4.17/go.mod h1:JPGBdM1cNvN/6ISo+n8V5iA4v8pBzdOpzfwIujj1a84= github.com/Microsoft/hcsshim v0.8.6/go.mod h1:Op3hHsoHPAvb6lceZHDtd9OkTew38wNoXnJs8iY7rUg= github.com/Microsoft/hcsshim v0.8.7-0.20190325164909-8abdbb8205e4/go.mod h1:Op3hHsoHPAvb6lceZHDtd9OkTew38wNoXnJs8iY7rUg= github.com/Microsoft/hcsshim v0.8.7/go.mod h1:OHd7sQqRFrYd3RmSgbgji+ctCwkbq2wbEYNSzOYtcBQ= github.com/Microsoft/hcsshim v0.8.9/go.mod h1:5692vkUqntj1idxauYlpoINNKeqCiG6Sg38RRsjT5y8= github.com/Microsoft/hcsshim v0.8.10-0.20200715222032-5eafd1556990/go.mod h1:ay/0dTb7NsG8QMDfsRfLHgZo/6xAJShLe1+ePPflihk= github.com/Microsoft/hcsshim v0.8.14/go.mod h1:NtVKoYxQuTLx6gEq0L96c9Ju4JbRJ4nY2ow3VK6a9Lg= -github.com/Microsoft/hcsshim v0.8.15 h1:Aof83YILRs2Vx3GhHqlvvfyx1asRJKMFIMeVlHsZKtI= github.com/Microsoft/hcsshim v0.8.15/go.mod h1:x38A4YbHbdxJtc0sF6oIz+RG0npwSCAvn69iY6URG00= +github.com/Microsoft/hcsshim v0.8.16/go.mod h1:o5/SZqmR7x9JNKsW3pu+nqHm0MF8vbA+VxGOoXdC600= +github.com/Microsoft/hcsshim v0.8.17 h1:yFHH5bghP9ij5Y34PPaMOE8g//oXZ0uJQeMENVo2zcI= +github.com/Microsoft/hcsshim v0.8.17/go.mod h1:+w2gRZ5ReXQhFOrvSQeNfhrYB/dg3oDwTOcER2fw4I4= github.com/Microsoft/hcsshim/test v0.0.0-20201218223536-d3e5debf77da/go.mod h1:5hlzMzRKMLyo42nCZ9oml8AdTlq/0cvIaBv6tK1RehU= +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/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= @@ -107,8 +118,8 @@ github.com/StackExchange/wmi v0.0.0-20190523213315-cbe66965904d h1:G0m3OIz70MZUW github.com/StackExchange/wmi v0.0.0-20190523213315-cbe66965904d/go.mod h1:3eOhrUMpNV+6aFIbp5/iudMxNCF27Vw2OZgy4xEx0Fg= github.com/VividCortex/ewma v1.1.1 h1:MnEK4VOv6n0RSY4vtRe3h11qjxL3+t0B8yOL8iMXdcM= github.com/VividCortex/ewma v1.1.1/go.mod h1:2Tkkvm3sRDVXaiyucHiACn4cqf7DpdyLvmxzcbUokwA= -github.com/VividCortex/godaemon v0.0.0-20201030160542-15e3f4925a21 h1:Pgxfz/g+XyfRjYqRjKUFpDh5IciFncmA/Uio6AU/z9g= -github.com/VividCortex/godaemon v0.0.0-20201030160542-15e3f4925a21/go.mod h1:Y8CJ3IwPIAkMhv/rRUWIlczaeqd9ty9yrl+nc2AbaL4= +github.com/VividCortex/godaemon v1.0.0 h1:aHYrScWvgaSOdAoYCdObWXLm+e1rldP9Pwb1ZvuZkQw= +github.com/VividCortex/godaemon v1.0.0/go.mod h1:hBWe/72KbGt/lb95E+Sh9ersdYbB57Dt6CG66S1YPno= github.com/afbjorklund/go-containerregistry v0.4.1-0.20210321165649-761f6f9626b1 h1:AI8EIk8occ3pruhaTpkaQxQGlC1dHx3J9hAtg7t+FLI= github.com/afbjorklund/go-containerregistry v0.4.1-0.20210321165649-761f6f9626b1/go.mod h1:Ct15B4yir3PLOP5jsy0GNeYVaIZs/MK/Jz5any1wFW0= github.com/agnivade/levenshtein v1.0.1/go.mod h1:CURSv5d9Uaml+FovSIICkLbAUZ9S4RqaHDIsdSBg7lM= @@ -153,6 +164,8 @@ github.com/blang/semver v3.1.0+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnweb github.com/blang/semver v3.5.0+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk= github.com/blang/semver v3.5.1+incompatible h1:cQNTCjp13qL8KC3Nbxr/y2Bqb63oX6wdnnjpJbkM4JQ= github.com/blang/semver v3.5.1+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk= +github.com/blang/semver/v4 v4.0.0 h1:1PFHFE6yCCTv8C1TeyNNarDzntLi7wMI5i/pzqYIsAM= +github.com/blang/semver/v4 v4.0.0/go.mod h1:IbckMUScFkM3pff0VJDNKRiT6TG/YpiHIM2yvyW5YoQ= github.com/bmizerany/assert v0.0.0-20160611221934-b7ed37b82869/go.mod h1:Ekp36dRnpXw/yCqJaO+ZrUyxD+3VXMFFr56k5XYrpB4= github.com/boltdb/bolt v1.3.1/go.mod h1:clJnj/oiGkjum5o1McbSZDSLxVThjynRyGBgiAx27Ps= github.com/boombuler/barcode v1.0.0/go.mod h1:paBWMcWSl3LHKBqUq+rly7CNSldXjb2rDl3JlRe0mD8= @@ -165,9 +178,8 @@ github.com/bugsnag/panicwrap v0.0.0-20151223152923-e2c28503fcd0/go.mod h1:D/8v3k github.com/c4milo/gotoolkit v0.0.0-20170318115440-bcc06269efa9 h1:+ziP/wVJWuAORkjv7386TRidVKY57X0bXBZFMeFlW+U= github.com/c4milo/gotoolkit v0.0.0-20170318115440-bcc06269efa9/go.mod h1:txokOny9wavBtq2PWuHmj1P+eFwpCsj+gQeNNANChfU= github.com/caddyserver/caddy v1.0.3/go.mod h1:G+ouvOY32gENkJC+jhgl62TyhvqEsFaDiZ4uw0RzP1E= +github.com/cenkalti/backoff v2.1.1+incompatible h1:tKJnvO2kl0zmb/jA5UKAt4VoEVw1qxKWjE/Bpp46npY= github.com/cenkalti/backoff v2.1.1+incompatible/go.mod h1:90ReRw6GdpyfrHakVjL/QHaoyV4aDUVVkXQJJJ3NXXM= -github.com/cenkalti/backoff v2.2.1+incompatible h1:tNowT99t7UNflLxfYYSlKYsBpXdEet03Pg2g16Swow4= -github.com/cenkalti/backoff v2.2.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= @@ -191,6 +203,7 @@ github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMn github.com/cilium/ebpf v0.0.0-20200110133405-4032b1d8aae3/go.mod h1:MA5e5Lr8slmEg9bt0VpxxWqJlO4iwu3FBdHUzV7wQVg= github.com/cilium/ebpf v0.0.0-20200702112145-1c8d4c9ef775/go.mod h1:7cR51M8ViRLIdUjrmSXlK9pkrsDlLHbO8jiB8X8JnOc= github.com/cilium/ebpf v0.2.0/go.mod h1:To2CFviqOWL/M0gIMsvSMlqe7em/l1ALkX1PyjrX2Qs= +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.3.1 h1:QRTu0yRA4FbznjRSds0/4Hy6cVYpWV2wInlNJSHWAtw= @@ -206,13 +219,20 @@ github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnht 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= github.com/containerd/aufs v0.0.0-20200908144142-dab0cbea06f4/go.mod h1:nukgQABAEopAHvB6j7cnP5zJ+/3aVcE7hCYqvIwAHyE= +github.com/containerd/aufs v0.0.0-20201003224125-76a6863f2989/go.mod h1:AkGGQs9NM2vtYHaUen+NljV0/baGCAPELGm2q9ZXpWU= +github.com/containerd/aufs v0.0.0-20210316121734-20793ff83c97/go.mod h1:kL5kd6KM5TzQjR79jljyi4olc1Vrx6XBlcyj3gNv2PU= +github.com/containerd/aufs v1.0.0/go.mod h1:kL5kd6KM5TzQjR79jljyi4olc1Vrx6XBlcyj3gNv2PU= github.com/containerd/btrfs v0.0.0-20201111183144-404b9149801e/go.mod h1:jg2QkJcsabfHugurUvvPhS3E08Oxiuh5W/g1ybB4e0E= +github.com/containerd/btrfs v0.0.0-20210316141732-918d888fb676/go.mod h1:zMcX3qkXTAi9GI50+0HOeuV8LU2ryCE/V2vG/ZBiTss= +github.com/containerd/btrfs v1.0.0/go.mod h1:zMcX3qkXTAi9GI50+0HOeuV8LU2ryCE/V2vG/ZBiTss= github.com/containerd/cgroups v0.0.0-20190717030353-c4b9ac5c7601/go.mod h1:X9rLEHIqSf/wfK8NsPqxJmeZgW4pcfzdXITDrUSJ6uI= github.com/containerd/cgroups v0.0.0-20190919134610-bf292b21730f/go.mod h1:OApqhQ4XNSNC13gXIwDjhOQxjWa/NxkwZXJ1EvqT0ko= github.com/containerd/cgroups v0.0.0-20200531161412-0dbf7f05ba59/go.mod h1:pA0z1pT8KYB3TCXK/ocprsh7MAkoW8bZVzPdih9snmM= github.com/containerd/cgroups v0.0.0-20200710171044-318312a37340/go.mod h1:s5q4SojHctfxANBDvMeIaIovkq29IP48TKAxnhYRxvo= -github.com/containerd/cgroups v0.0.0-20200824123100-0b889c03f102 h1:Qf4HiqfvmB7zS6scsmNgTLmByHbq8n9RTF39v+TzP7A= github.com/containerd/cgroups v0.0.0-20200824123100-0b889c03f102/go.mod h1:s5q4SojHctfxANBDvMeIaIovkq29IP48TKAxnhYRxvo= +github.com/containerd/cgroups v0.0.0-20210114181951-8a68de567b68/go.mod h1:ZJeTFisyysqgcCdecO57Dj79RfL0LNeGiFUqLYQRYLE= +github.com/containerd/cgroups v1.0.1 h1:iJnMvco9XGvKUvNQkv88bE4uJXxRQH18efbKo9w5vHQ= +github.com/containerd/cgroups v1.0.1/go.mod h1:0SJrPIenamHDcZhEcJMNBB85rHcUsw4f25ZfBiPYRkU= github.com/containerd/console v0.0.0-20180822173158-c12b1e7919c1/go.mod h1:Tj/on1eG8kiEhd0+fhSDzsPAFESxzBBvdyEgyryXffw= github.com/containerd/console v0.0.0-20181022165439-0650fd9eeb50/go.mod h1:Tj/on1eG8kiEhd0+fhSDzsPAFESxzBBvdyEgyryXffw= github.com/containerd/console v0.0.0-20191206165004-02ecf6a7291e/go.mod h1:8Pf4gM6VEbTNRIT26AyyU7hxdQU3MvAvxVI0sc00XBE= @@ -224,25 +244,43 @@ github.com/containerd/containerd v1.3.0/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMX github.com/containerd/containerd v1.3.1-0.20191213020239-082f7e3aed57/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA= github.com/containerd/containerd v1.3.2/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA= github.com/containerd/containerd v1.4.0-beta.2.0.20200729163537-40b22ef07410/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA= +github.com/containerd/containerd v1.4.1/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA= +github.com/containerd/containerd v1.4.3/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA= github.com/containerd/containerd v1.4.4/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA= -github.com/containerd/containerd v1.5.0-beta.1 h1:IK6yirB4X7wpKyFSikWiT++nZsyIxGAAgNEv3fEGuls= github.com/containerd/containerd v1.5.0-beta.1/go.mod h1:5HfvG1V2FsKesEGQ17k5/T7V960Tmcumvqn8Mc+pCYQ= +github.com/containerd/containerd v1.5.0-beta.3/go.mod h1:/wr9AVtEM7x9c+n0+stptlo/uBBoBORwEx6ardVcmKU= +github.com/containerd/containerd v1.5.0-beta.4/go.mod h1:GmdgZd2zA2GYIBZ0w09ZvgqEq8EfBp/m3lcVZIvPHhI= +github.com/containerd/containerd v1.5.0-rc.0/go.mod h1:V/IXoMqNGgBlabz3tHD2TWDoTJseu1FGOKuoA4nNb2s= +github.com/containerd/containerd v1.5.1 h1:xWHPAoe6VkUiI9GAvndJM7s/0MTrmwX3AQiYTr3olf0= +github.com/containerd/containerd v1.5.1/go.mod h1:0DOxVqwDy2iZvrZp2JUx/E+hS0UNTVn7dJnIOwtYR4g= github.com/containerd/continuity v0.0.0-20190426062206-aaeac12a7ffc/go.mod h1:GL3xCUCBDV3CZiTSEKksMWbLE66hEyuu9qyDOOqM47Y= github.com/containerd/continuity v0.0.0-20190815185530-f2a389ac0a02/go.mod h1:GL3xCUCBDV3CZiTSEKksMWbLE66hEyuu9qyDOOqM47Y= github.com/containerd/continuity v0.0.0-20191127005431-f65d91d395eb/go.mod h1:GL3xCUCBDV3CZiTSEKksMWbLE66hEyuu9qyDOOqM47Y= github.com/containerd/continuity v0.0.0-20200710164510-efbc4488d8fe/go.mod h1:cECdGN1O8G9bgKTlLhuPJimka6Xb/Gg7vYzCTNVxhvo= -github.com/containerd/continuity v0.0.0-20201208142359-180525291bb7 h1:6ejg6Lkk8dskcM7wQ28gONkukbQkM4qpj4RnYbpFzrI= github.com/containerd/continuity v0.0.0-20201208142359-180525291bb7/go.mod h1:kR3BEg7bDFaEddKm54WSmrol1fKWDU1nKYkgrcgZT7Y= +github.com/containerd/continuity v0.0.0-20210208174643-50096c924a4e/go.mod h1:EXlVlkqNba9rJe3j7w3Xa924itAMLgZH4UD/Q4PExuQ= +github.com/containerd/continuity v0.1.0 h1:UFRRY5JemiAhPZrr/uE0n8fMTLcZsUvySPr1+D7pgr8= +github.com/containerd/continuity v0.1.0/go.mod h1:ICJu0PwR54nI0yPEnJ6jcS+J7CZAUXrLh8lPo2knzsM= github.com/containerd/fifo v0.0.0-20180307165137-3d5202aec260/go.mod h1:ODA38xgv3Kuk8dQz2ZQXpnv/UZZUHUCL7pnLehbXgQI= github.com/containerd/fifo v0.0.0-20190226154929-a9fb20d87448/go.mod h1:ODA38xgv3Kuk8dQz2ZQXpnv/UZZUHUCL7pnLehbXgQI= github.com/containerd/fifo v0.0.0-20200410184934-f15a3290365b/go.mod h1:jPQ2IAeZRCYxpS/Cm1495vGFww6ecHmMk1YJH2Q5ln0= github.com/containerd/fifo v0.0.0-20201026212402-0724c46b320c/go.mod h1:jPQ2IAeZRCYxpS/Cm1495vGFww6ecHmMk1YJH2Q5ln0= +github.com/containerd/fifo v0.0.0-20210316144830-115abcc95a1d/go.mod h1:ocF/ME1SX5b1AOlWi9r677YJmCPSwwWnQ9O123vzpE4= +github.com/containerd/fifo v1.0.0/go.mod h1:ocF/ME1SX5b1AOlWi9r677YJmCPSwwWnQ9O123vzpE4= github.com/containerd/go-cni v1.0.1/go.mod h1:+vUpYxKvAF72G9i1WoDOiPGRtQpqsNW/ZHtSlv++smU= +github.com/containerd/go-cni v1.0.2/go.mod h1:nrNABBHzu0ZwCug9Ije8hL2xBCYh/pjfMb1aZGrrohk= github.com/containerd/go-runc v0.0.0-20180907222934-5a6d9f37cfa3/go.mod h1:IV7qH3hrUgRmyYrtgEeGWJfWbgcHL9CSRruz2Vqcph0= github.com/containerd/go-runc v0.0.0-20190911050354-e029b79d8cda/go.mod h1:IV7qH3hrUgRmyYrtgEeGWJfWbgcHL9CSRruz2Vqcph0= github.com/containerd/go-runc v0.0.0-20200220073739-7016d3ce2328/go.mod h1:PpyHrqVs8FTi9vpyHwPwiNEGaACDxT/N/pLcvMSRA9g= +github.com/containerd/go-runc v0.0.0-20201020171139-16b287bc67d0/go.mod h1:cNU0ZbCgCQVZK4lgG3P+9tn9/PaJNmoDXPpoJhDR+Ok= +github.com/containerd/go-runc v1.0.0/go.mod h1:cNU0ZbCgCQVZK4lgG3P+9tn9/PaJNmoDXPpoJhDR+Ok= github.com/containerd/imgcrypt v1.0.1/go.mod h1:mdd8cEPW7TPgNG4FpuP3sGBiQ7Yi/zak9TYCG3juvb0= +github.com/containerd/imgcrypt v1.0.4-0.20210301171431-0ae5c75f59ba/go.mod h1:6TNsg0ctmizkrOgXRNQjAPFWpMYRWuiB6dSF4Pfa5SA= +github.com/containerd/imgcrypt v1.1.1-0.20210312161619-7ed62a527887/go.mod h1:5AZJNI6sLHJljKuI9IHnw1pWqo/F0nGDOuR9zgTs7ow= +github.com/containerd/imgcrypt v1.1.1/go.mod h1:xpLnwiQmEUJPvQoAapeb2SNCxz7Xr6PJrXQb0Dpc4ms= github.com/containerd/nri v0.0.0-20201007170849-eb1350a75164/go.mod h1:+2wGSDGFYfE5+So4M5syatU0N0f0LbWpuqyMi4/BE8c= +github.com/containerd/nri v0.0.0-20210316161719-dbaa18c31c14/go.mod h1:lmxnXF6oMkbqs39FiCt1s0R2HSMhcLel9vNL3m4AaeY= +github.com/containerd/nri v0.1.0/go.mod h1:lmxnXF6oMkbqs39FiCt1s0R2HSMhcLel9vNL3m4AaeY= github.com/containerd/stargz-snapshotter/estargz v0.4.1 h1:5e7heayhB7CcgdTkqfZqrNaNv15gABwr3Q2jBTbLlt4= github.com/containerd/stargz-snapshotter/estargz v0.4.1/go.mod h1:x7Q9dg9QYb4+ELgxmo4gBUeJB0tl5dqH1Sdz0nJU1QM= github.com/containerd/ttrpc v0.0.0-20190828154514-0e0f228740de/go.mod h1:PvCDdDGpgqzQIzDW1TphrGLssLDZp2GuS+X5DkEJB8o= @@ -253,16 +291,26 @@ github.com/containerd/ttrpc v1.0.2/go.mod h1:UAxOpgT9ziI0gJrmKvgcZivgxOp8iFPSk8h github.com/containerd/typeurl v0.0.0-20180627222232-a93fcdb778cd/go.mod h1:Cm3kwCdlkCfMSHURc+r6fwoGH6/F1hH3S4sg0rLFWPc= github.com/containerd/typeurl v0.0.0-20190911142611-5eb25027c9fd/go.mod h1:GeKYzf2pQcqv7tJ0AoCuuhtnqhva5LNU3U+OyKxxJpk= github.com/containerd/typeurl v1.0.1/go.mod h1:TB1hUtrpaiO88KEK56ijojHS1+NeF0izUACaJW2mdXg= +github.com/containerd/typeurl v1.0.2/go.mod h1:9trJWW2sRlGub4wZJRTW83VtbOLS6hwcDZXTn6oPz9s= github.com/containerd/zfs v0.0.0-20200918131355-0a33824f23a2/go.mod h1:8IgZOBdv8fAgXddBT4dBXJPtxyRsejFIpXoklgxgEjw= +github.com/containerd/zfs v0.0.0-20210301145711-11e8f1707f62/go.mod h1:A9zfAbMlQwE+/is6hi0Xw8ktpL+6glmqZYtevJgaB8Y= +github.com/containerd/zfs v0.0.0-20210315114300-dde8f0fda960/go.mod h1:m+m51S1DvAP6r3FcmYCp54bQ34pyOwTieQDNRIRHsFY= +github.com/containerd/zfs v0.0.0-20210324211415-d5c4544f0433/go.mod h1:m+m51S1DvAP6r3FcmYCp54bQ34pyOwTieQDNRIRHsFY= +github.com/containerd/zfs v1.0.0/go.mod h1:m+m51S1DvAP6r3FcmYCp54bQ34pyOwTieQDNRIRHsFY= github.com/containernetworking/cni v0.7.1/go.mod h1:LGwApLUm2FpoOfxTDEeq8T9ipbpZ61X79hmU3w8FmsY= github.com/containernetworking/cni v0.8.0/go.mod h1:LGwApLUm2FpoOfxTDEeq8T9ipbpZ61X79hmU3w8FmsY= +github.com/containernetworking/cni v0.8.1/go.mod h1:LGwApLUm2FpoOfxTDEeq8T9ipbpZ61X79hmU3w8FmsY= github.com/containernetworking/plugins v0.8.6/go.mod h1:qnw5mN19D8fIwkqW7oHHYDHVlzhJpcY6TQxn/fUyDDM= +github.com/containernetworking/plugins v0.9.1/go.mod h1:xP/idU2ldlzN6m4p5LmGiwRDjeJr6FLK6vuiUwoH7P8= github.com/containers/ocicrypt v1.0.1/go.mod h1:MeJDzk1RJHv89LjsH0Sp5KTY3ZYkjXO/C+bKAeWFIrc= +github.com/containers/ocicrypt v1.1.0/go.mod h1:b8AOe0YR67uU8OqfVNcznfFpAzu3rdgUV4GP9qXPfu4= +github.com/containers/ocicrypt v1.1.1/go.mod h1:Dm55fwWm1YZAjYRaJ94z2mfZikIyIN4B0oB3dj3jFxY= github.com/coredns/corefile-migration v1.0.11/go.mod h1:RMy/mXdeDlYwzt0vdMEJvT2hGJ2I86/eO0UdXmH9XNI= github.com/coreos/bbolt v1.3.2/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk= github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= github.com/coreos/etcd v3.3.13+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= github.com/coreos/go-iptables v0.4.5/go.mod h1:/mVI274lEDI2ns62jHCDnCyBF9Iwsmekav8Dbxlm1MU= +github.com/coreos/go-iptables v0.5.0/go.mod h1:/mVI274lEDI2ns62jHCDnCyBF9Iwsmekav8Dbxlm1MU= github.com/coreos/go-oidc v2.1.0+incompatible/go.mod h1:CgnwVTmzoESiwO9qyAFEMiHoZ1nMCKZlZ9V6mm3/LKc= github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= github.com/coreos/go-semver v0.3.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= @@ -531,8 +579,8 @@ 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/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 v0.0.0-20200530021616-df27e642fe7b h1:x3aElhKtGmXLo6RI2FJSBaPBT0acmn2LFfKVP1CqH8o= -github.com/google/slowjam v0.0.0-20200530021616-df27e642fe7b/go.mod h1:i4b4iDjZbKPkbD7z9Ycy4gtcALPoh8E9O3+wvtw7IB0= +github.com/google/slowjam v1.0.0 h1:dA9flW4oGTJcSy8FpEvdq8JKwPFVgqYwMmjhqlb2L+s= +github.com/google/slowjam v1.0.0/go.mod h1:mNktULbvWfYVMKKmpt94Rp3jMtmhQZLS0iR+W84S0mM= github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= @@ -612,14 +660,14 @@ github.com/hooklift/assert v0.0.0-20170704181755-9d1defd6d214 h1:WgfvpuKg42WVLkx github.com/hooklift/assert v0.0.0-20170704181755-9d1defd6d214/go.mod h1:kj6hFWqfwSjFjLnYW5PK1DoxZ4O0uapwHRmd9jhln4E= github.com/hooklift/iso9660 v0.0.0-20170318115843-1cf07e5970d8 h1:ARl0RuGZTqBOMXQIfXen0twVSJ8kMojd7ThJf4EBcrc= github.com/hooklift/iso9660 v0.0.0-20170318115843-1cf07e5970d8/go.mod h1:sOC47ru8lB0DlU0EZ7BJ0KCP5rDqOvx0c/5K5ADm8H0= -github.com/hpcloud/tail v1.0.0 h1:nfCOvKYfkgYP8hkirhJocXT2+zOD8yUNjXaWfTlyFKI= github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= github.com/imdario/mergo v0.3.5/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA= github.com/imdario/mergo v0.3.8/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA= -github.com/imdario/mergo v0.3.10 h1:6q5mVkdH/vYmqngx7kZQTjJ5HRsx+ImorDIEQ+beJgc= github.com/imdario/mergo v0.3.10/go.mod h1:jmQim1M+e3UYxmgPu/WyfjB3N3VflVyUjjjwH0dnCYA= +github.com/imdario/mergo v0.3.11 h1:3tnifQM4i+fbajXKBHXWEH+KvNHqojZ778UH75j3bGA= +github.com/imdario/mergo v0.3.11/go.mod h1:jmQim1M+e3UYxmgPu/WyfjB3N3VflVyUjjjwH0dnCYA= github.com/inconshreveable/mousetrap v1.0.0 h1:Z8tu5sraLXCXIcARxBp/8cbvlwVa7Z1NHg9XEKhtSvM= github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= github.com/intel-go/cpuid v0.0.0-20181003105527-1a4a6f06a1c6 h1:XboatR7lasl05yel5hNXF7kQBw2oFUGdMztcgisfhNU= @@ -679,8 +727,9 @@ github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQL github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= github.com/klauspost/compress v1.11.2/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs= -github.com/klauspost/compress v1.11.3 h1:dB4Bn0tN3wdCzQxnS8r06kV74qN/TAfaIS0bVE8h3jc= github.com/klauspost/compress v1.11.3/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs= +github.com/klauspost/compress v1.11.13 h1:eSvu8Tmq6j2psUJqJrLcWH6K3w5Dwc+qipbaA6eVEN4= +github.com/klauspost/compress v1.11.13/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs= github.com/klauspost/cpuid v1.2.0 h1:NMpwD2G9JSFOE1/TJjGSo5zG7Yb2bTe7eq1jH+irmeE= github.com/klauspost/cpuid v1.2.0/go.mod h1:Pj4uuM528wm8OyEC2QMXAi2YiTZ96dNQPGgoMS4s3ek= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= @@ -759,6 +808,7 @@ github.com/miekg/dns v1.1.3/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nr github.com/miekg/dns v1.1.29/go.mod h1:KNUDUusw/aVsxyTYZM1oqvCicbwhgbNgztCETuNZ7xM= github.com/miekg/dns v1.1.35 h1:oTfOaDH+mZkdcgdIjH6yBajRGtIwcwcaR+rt23ZSrJs= github.com/miekg/dns v1.1.35/go.mod h1:KNUDUusw/aVsxyTYZM1oqvCicbwhgbNgztCETuNZ7xM= +github.com/miekg/pkcs11 v1.0.3/go.mod h1:XsNlhZGX73bx86s2hdc/FuaLm2CPZJemRLMA+WTFxgs= github.com/mindprince/gonvml v0.0.0-20190828220739-9ebdce4bb989/go.mod h1:2eu9pRWp8mo84xCg6KswZ+USQHjwgRhNp06sozOdsTY= github.com/mistifyio/go-zfs v2.1.2-0.20190413222219-f784269be439+incompatible/go.mod h1:8AuVvqP/mXw1px98n46wfvcGfQ4ci2FwoAjKYxuo3Z4= github.com/mitchellh/cli v1.0.0/go.mod h1:hNIlj7HEI86fIcpObd7a0FcrxTWetlwJDGcceTlRvqc= @@ -781,6 +831,7 @@ github.com/mitchellh/osext v0.0.0-20151018003038-5e2d6d41470f/go.mod h1:OkQIRizQ github.com/moby/hyperkit v0.0.0-20210108224842-2f061e447e14 h1:XGy4iMfaG4r1uZKZQmEPSYSH0Nj5JJuKgPNUhWGQ08E= github.com/moby/hyperkit v0.0.0-20210108224842-2f061e447e14/go.mod h1:aBcAEoy5u01cPAYvosR85gzSrMZ0TVVnkPytOQN+9z8= github.com/moby/ipvs v1.0.1/go.mod h1:2pngiyseZbIKXNv7hsKj3O9UEz30c53MT9005gt2hxQ= +github.com/moby/locker v1.0.1/go.mod h1:S7SDdo5zpBK84bzzVlKr2V0hz+7x9hWbYC/kq7oQppc= github.com/moby/spdystream v0.2.0 h1:cjW1zVyyoiM0T7b6UoySUFqzXMoqRckQtXwGPiBhOM8= github.com/moby/spdystream v0.2.0/go.mod h1:f7i0iNDQJ059oMTcWxx8MA/zKFIuD/lY+0GqbN2Wy8c= github.com/moby/sys/mount v0.2.0 h1:WhCW5B355jtxndN5ovugJlMFJawbUODuW8fSnEH6SSM= @@ -811,6 +862,8 @@ github.com/naoina/go-stringutil v0.1.0/go.mod h1:XJ2SJL9jCtBh+P9q5btrd/Ylo8XwT/h github.com/naoina/toml v0.1.1/go.mod h1:NBIhNtsFMo3G2szEBne+bO4gS192HuIYRqfvOWb4i1E= github.com/ncw/swift v1.0.47/go.mod h1:23YIA4yWVnGwv2dQlN4bB7egfYX6YLn0Yo/S6zZO/ZM= github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno= +github.com/nxadm/tail v1.4.4 h1:DQuhQpB1tVlglWS2hLQ5OV6B5r8aGxSrPc5Qo6uTN78= +github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A= github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= github.com/olekukonko/tablewriter v0.0.0-20170122224234-a0225b3f23b5/go.mod h1:vsDQFd/mU46D+Z4whnwzcISnGGzXWMclvtLoiIKAKIo= github.com/olekukonko/tablewriter v0.0.4/go.mod h1:zq6QwlOf5SlnkVbMSr5EoBv3636FWnp+qbPhuoO21uA= @@ -824,15 +877,17 @@ github.com/onsi/ginkgo v1.10.1/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+ github.com/onsi/ginkgo v1.10.2/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/ginkgo v1.10.3/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/ginkgo v1.11.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= -github.com/onsi/ginkgo v1.12.0 h1:Iw5WCbBcaAAd0fpRb1c9r5YCylv4XDoCSigm1zLevwU= github.com/onsi/ginkgo v1.12.0/go.mod h1:oUhWkIvk5aDxtKvDDuw8gItl8pKl42LzjC9KZE0HfGg= +github.com/onsi/ginkgo v1.12.1 h1:mFwc4LvZ0xpSvDZ3E+k8Yte0hLOMxXUlP+yXtJqkYfQ= +github.com/onsi/ginkgo v1.12.1/go.mod h1:zj2OWP4+oCPe1qIXoGWkgMRwljMUYCdkwsT2108oapk= github.com/onsi/gomega v0.0.0-20151007035656-2152b45fa28a/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA= github.com/onsi/gomega v0.0.0-20170829124025-dcabb60a477c/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA= github.com/onsi/gomega v1.5.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= github.com/onsi/gomega v1.7.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY= -github.com/onsi/gomega v1.9.0 h1:R1uwffexN6Pr340GtYRIdZmAiN4J+iw6WG4wog1DUXg= github.com/onsi/gomega v1.9.0/go.mod h1:Ho0h+IUsWyvy1OpqCwxlQ/21gkhVunqlU8fDGcoTdcA= +github.com/onsi/gomega v1.10.3 h1:gph6h/qe9GSUw1NhH1gp+qb+h8rXD8Cy60Z32Qw3ELA= +github.com/onsi/gomega v1.10.3/go.mod h1:V9xEwhxec5O8UDM77eCW8vLymOMltsqPVYWrpDsH8xc= github.com/opencontainers/go-digest v0.0.0-20170106003457-a6d0ee40d420/go.mod h1:cMLVZDEM3+U2I4VmLI6N8jQYUd2OVphdqWwCJHrFt2s= github.com/opencontainers/go-digest v0.0.0-20180430190053-c9281466c8b2/go.mod h1:cMLVZDEM3+U2I4VmLI6N8jQYUd2OVphdqWwCJHrFt2s= github.com/opencontainers/go-digest v1.0.0-rc1/go.mod h1:cMLVZDEM3+U2I4VmLI6N8jQYUd2OVphdqWwCJHrFt2s= @@ -870,6 +925,7 @@ github.com/pborman/uuid v1.2.0/go.mod h1:X/NO0urCmaxf9VXbdlT7C2Yzkj2IKimNn4k+gtP github.com/pborman/uuid v1.2.1 h1:+ZZIw58t/ozdjRaXh/3awHfmWRbzYxJoAdNJxe/3pvw= github.com/pborman/uuid v1.2.1/go.mod h1:X/NO0urCmaxf9VXbdlT7C2Yzkj2IKimNn4k+gtPdI/k= github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= +github.com/pelletier/go-toml v1.8.1/go.mod h1:T2/BmBdy8dvIRq1a/8aqjN41wvWlN4lrapLU/GW4pbc= github.com/pelletier/go-toml v1.9.3 h1:zeC5b1GviRUyKYd6OJPvBU/mcVDVoL1OhT17FCt5dSQ= github.com/pelletier/go-toml v1.9.3/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c= github.com/peterbourgon/diskv v2.0.1+incompatible/go.mod h1:uqqh8zWWbv1HBMNONnaR/tNboyR3/BZd58JJSHlUSCU= @@ -923,8 +979,9 @@ github.com/prometheus/procfs v0.0.3/go.mod h1:4A/X28fw3Fc593LaREMrKMqOKvUAntwMDa github.com/prometheus/procfs v0.0.5/go.mod h1:4A/X28fw3Fc593LaREMrKMqOKvUAntwMDaekg4FpcdQ= github.com/prometheus/procfs v0.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A= github.com/prometheus/procfs v0.1.3/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= -github.com/prometheus/procfs v0.2.0 h1:wH4vA7pcjKuZzjF7lM8awk4fnuJO6idemZXoKnULUx4= github.com/prometheus/procfs v0.2.0/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= +github.com/prometheus/procfs v0.6.0 h1:mxy4L2jP6qMonqmq+aTtOx1ifVWUgG/TAmntgbh3xv4= +github.com/prometheus/procfs v0.6.0/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA= github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= github.com/quobyte/api v0.1.8/go.mod h1:jL7lIHrmqQ7yh05OJ+eEEdHr0u/kmT1Ff9iHd+4H6VI= github.com/remyoudompheng/bigfft v0.0.0-20170806203942-52369c62f446/go.mod h1:uYEyJGbgTkfkS4+E/PavXkNJcbFIpEtjt2B0KDQ5+9M= @@ -1000,6 +1057,7 @@ github.com/spf13/viper v1.4.0/go.mod h1:PTJ7Z/lr49W6bUbkmS1V3by4uWynFiR9p7+dSq/y github.com/spf13/viper v1.7.0/go.mod h1:8WkrPz2fc9jxqZNCJI/76HCieCp4Q8HaLFoCha5qpdg= github.com/spf13/viper v1.8.1 h1:Kq1fyeebqsBfbjZj4EL7gj2IO0mMaiyjYUWcUsl2O44= github.com/spf13/viper v1.8.1/go.mod h1:o0Pch8wJ9BVSWGQMbra6iw0oQ5oktSIBaujf1rJH9Ns= +github.com/stefanberger/go-pkcs11uri v0.0.0-20201008174630-78d3cae3a980/go.mod h1:AO3tvPzVZ/ayst6UlUKUv6rcPQInYe3IknH3jYhAKu8= github.com/storageos/go-api v2.2.0+incompatible/go.mod h1:ZrLn+e0ZuF3Y65PNF6dIwbJPZqfmtCXxFm9ckv0agOY= github.com/stretchr/objx v0.0.0-20180129172003-8a3f7159479f/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= @@ -1042,6 +1100,7 @@ github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyC github.com/vektah/gqlparser v1.1.2/go.mod h1:1ycwN7Ij5njmMkPPAOaRFY4rET2Enx7IkVv3vaXspKw= github.com/vishvananda/netlink v0.0.0-20181108222139-023a6dafdcdf/go.mod h1:+SR5DhBJrl6ZM7CoCKvpw5BKroDKQ+PJqOg65H/2ktk= github.com/vishvananda/netlink v1.1.0/go.mod h1:cTgwzPIzzgDAYoQrMm0EdrjRUBkTqKYppBueQtXaqoE= +github.com/vishvananda/netlink v1.1.1-0.20201029203352-d40f9887b852/go.mod h1:twkDnbuQxJYemMlGd4JFIcuhgX83tXhKS2B/PRMpOho= github.com/vishvananda/netns v0.0.0-20180720170159-13995c7128cc/go.mod h1:ZjcWmFBXmLKZu9Nxj3WKYEafiSqer2rnvPr0en9UNpI= github.com/vishvananda/netns v0.0.0-20191106174202-0a2b9b5464df/go.mod h1:JP3t17pCcGlemwknint6hfoeCVQrEMVwxRLRjXpq+BU= github.com/vishvananda/netns v0.0.0-20200728191858-db3c7e526aae/go.mod h1:DD4vA1DwXk04H54A1oHXtwZmA0grkVMdPxx/VGLCah0= @@ -1079,6 +1138,7 @@ go.etcd.io/etcd/client/v2 v2.305.0/go.mod h1:h9puh54ZTgAKtEbut2oe9P4L/oqKCVB6xsX go.mongodb.org/mongo-driver v1.0.3/go.mod h1:u7ryQJ+DOzQmeO7zB6MHyr8jkEQvC8vH7qLUO4lqsUM= go.mongodb.org/mongo-driver v1.1.1/go.mod h1:u7ryQJ+DOzQmeO7zB6MHyr8jkEQvC8vH7qLUO4lqsUM= go.mongodb.org/mongo-driver v1.1.2/go.mod h1:u7ryQJ+DOzQmeO7zB6MHyr8jkEQvC8vH7qLUO4lqsUM= +go.mozilla.org/pkcs7 v0.0.0-20200128120323-432b2356ecb1/go.mod h1:SNgMg+EgDFwmvSmLRTNKC5fegJjB7v23qTQ0XLGUNHk= go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8= go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= @@ -1131,10 +1191,12 @@ golang.org/x/crypto v0.0.0-20190701094942-4def268fd1a4/go.mod h1:yigFU9vqHzYiE8U golang.org/x/crypto v0.0.0-20190820162420-60c769a6c586/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/crypto v0.0.0-20200728195943-123391ffb6de/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200820211705-5c72a883971a/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20201002170205-7f63de1d35b0/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.0.0-20210220033148-5ea612d1eb83 h1:/ZScEX8SfEmUGRHs0gxpqteO5nfNW6axyZbBdw9A12g= golang.org/x/crypto v0.0.0-20210220033148-5ea612d1eb83/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I= +golang.org/x/crypto v0.0.0-20210322153248-0c34fe9e7dc2 h1:It14KIkyBFYkHkwZ7k45minvA9aorojkyjGk9KJ5B/w= +golang.org/x/crypto v0.0.0-20210322153248-0c34fe9e7dc2/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4= golang.org/x/exp v0.0.0-20180321215751-8460e604b9de/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20180807140117-3d87b88a115f/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= @@ -1236,6 +1298,7 @@ golang.org/x/net v0.0.0-20200602114024-627f9648deb9/go.mod h1:qpuaurCH72eLCgpAm/ golang.org/x/net v0.0.0-20200625001655-4c5254603344/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= golang.org/x/net v0.0.0-20200707034311-ab3426394381/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= +golang.org/x/net v0.0.0-20201006153459-a7d1128ccaa0/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20201031054903-ff519b6c9102/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= @@ -1311,6 +1374,7 @@ golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20190801041406-cbf593c0f2f3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190812073006-9eafafc0a87e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190826190057-c7b8b68b1456/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190904154756-749cb33beabd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190924154521-2837fb4f24fe/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191001151750-bb3f8db39f24/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -1341,8 +1405,10 @@ golang.org/x/sys v0.0.0-20200511232937-7e40ca221e25/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20200515095857-1151b9dac4a9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200523222454-059865788121/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200615200032-f1bc736245b1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200622214017-ed371f2e16b4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200728102440-3e129f6d46b1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200803210538-64077c9b5642/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200817155316-9781c653f443/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200831180312-196b9ba8737a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200905004654-be1d3432aa8f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200909081042-eff7692f9009/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -1350,6 +1416,7 @@ golang.org/x/sys v0.0.0-20200916030750-2334cc1a136f/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20200922070232-aee5d888a860/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201015000850-e3ed0017c211/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20201117170446-d9b008d0a637/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201201145000-ef89a241ccb3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201202213521-69691e467435/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -1363,6 +1430,7 @@ golang.org/x/sys v0.0.0-20210304124612-50617c2ba197/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20210305230114-8fe3ee5dd75b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210315160823-c6e025ad8005/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210320140829-1e4c9ba3b0c4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210324051608-47abb6519492/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210403161142-5e06dd20ab57/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210412220455-f1c623a9e750/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -1628,7 +1696,6 @@ gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EV gopkg.in/cheggaaa/pb.v1 v1.0.25/go.mod h1:V/YB90LKu/1FcN3WVnfiiE5oMCibMjukxqG/qStrOgw= gopkg.in/cheggaaa/pb.v1 v1.0.27/go.mod h1:V/YB90LKu/1FcN3WVnfiiE5oMCibMjukxqG/qStrOgw= gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= -gopkg.in/fsnotify.v1 v1.4.7 h1:xOHLXZwVvI9hhs+cLKq5+I5onOuwQLhQwiu63xxlHs4= gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= gopkg.in/gcfg.v1 v1.2.0/go.mod h1:yesOnuUOFQAhST5vPY4nbZsb/huCgGGXlipJsBn0b3o= gopkg.in/gemnasium/logrus-airbrake-hook.v2 v2.1.2/go.mod h1:Xk6kEKp8OKb+X14hQBKWaSkCsqBpgog8nAV2xsGOxlo= @@ -1644,6 +1711,7 @@ gopkg.in/natefinch/lumberjack.v2 v2.0.0/go.mod h1:l0ndWWf7gzL7RNwBG7wST/UCcT4T24 gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo= gopkg.in/square/go-jose.v2 v2.2.2/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI= gopkg.in/square/go-jose.v2 v2.3.1/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI= +gopkg.in/square/go-jose.v2 v2.5.1/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= gopkg.in/warnings.v0 v0.1.1/go.mod h1:jksf8JmL6Qr/oQM2OXTHunEvvTAsrWBLb6OOjuVWRNI= diff --git a/pkg/drivers/kic/oci/network.go b/pkg/drivers/kic/oci/network.go index b48fefdf6fea..b8c34533404b 100644 --- a/pkg/drivers/kic/oci/network.go +++ b/pkg/drivers/kic/oci/network.go @@ -24,7 +24,7 @@ import ( "strconv" "strings" - "github.com/blang/semver" + "github.com/blang/semver/v4" "github.com/pkg/errors" "k8s.io/klog/v2" diff --git a/pkg/minikube/bootstrapper/bsutil/extraconfig.go b/pkg/minikube/bootstrapper/bsutil/extraconfig.go index 7e8c04944afe..6c5f13216500 100644 --- a/pkg/minikube/bootstrapper/bsutil/extraconfig.go +++ b/pkg/minikube/bootstrapper/bsutil/extraconfig.go @@ -22,7 +22,7 @@ import ( "sort" "strings" - "github.com/blang/semver" + "github.com/blang/semver/v4" "github.com/pkg/errors" "k8s.io/klog/v2" "k8s.io/minikube/pkg/minikube/config" diff --git a/pkg/minikube/bootstrapper/bsutil/kubeadm.go b/pkg/minikube/bootstrapper/bsutil/kubeadm.go index 2a1f750cf4cf..746584b7d672 100644 --- a/pkg/minikube/bootstrapper/bsutil/kubeadm.go +++ b/pkg/minikube/bootstrapper/bsutil/kubeadm.go @@ -22,7 +22,7 @@ import ( "fmt" "path" - "github.com/blang/semver" + "github.com/blang/semver/v4" "github.com/pkg/errors" "k8s.io/klog/v2" "k8s.io/minikube/pkg/minikube/bootstrapper/bsutil/ktmpl" diff --git a/pkg/minikube/bootstrapper/bsutil/versions.go b/pkg/minikube/bootstrapper/bsutil/versions.go index 5362fb533985..3f0a294953c4 100644 --- a/pkg/minikube/bootstrapper/bsutil/versions.go +++ b/pkg/minikube/bootstrapper/bsutil/versions.go @@ -20,7 +20,7 @@ import ( "path" "strings" - "github.com/blang/semver" + "github.com/blang/semver/v4" "k8s.io/minikube/pkg/minikube/config" "k8s.io/minikube/pkg/minikube/vmpath" "k8s.io/minikube/pkg/util" diff --git a/pkg/minikube/bootstrapper/bsutil/versions_test.go b/pkg/minikube/bootstrapper/bsutil/versions_test.go index a22efeeb35d1..87ef7256d105 100644 --- a/pkg/minikube/bootstrapper/bsutil/versions_test.go +++ b/pkg/minikube/bootstrapper/bsutil/versions_test.go @@ -19,7 +19,7 @@ package bsutil import ( "testing" - "github.com/blang/semver" + "github.com/blang/semver/v4" ) func TestVersionIsBetween(t *testing.T) { diff --git a/pkg/minikube/bootstrapper/images/images.go b/pkg/minikube/bootstrapper/images/images.go index d6c822ee88aa..2d0a13e3a367 100644 --- a/pkg/minikube/bootstrapper/images/images.go +++ b/pkg/minikube/bootstrapper/images/images.go @@ -21,7 +21,7 @@ import ( "fmt" "path" - "github.com/blang/semver" + "github.com/blang/semver/v4" "k8s.io/minikube/pkg/version" ) diff --git a/pkg/minikube/bootstrapper/images/images_test.go b/pkg/minikube/bootstrapper/images/images_test.go index 679f260c25dc..5db9d5d18143 100644 --- a/pkg/minikube/bootstrapper/images/images_test.go +++ b/pkg/minikube/bootstrapper/images/images_test.go @@ -20,7 +20,7 @@ import ( "strings" "testing" - "github.com/blang/semver" + "github.com/blang/semver/v4" "github.com/google/go-cmp/cmp" "k8s.io/minikube/pkg/version" ) diff --git a/pkg/minikube/bootstrapper/images/kubeadm.go b/pkg/minikube/bootstrapper/images/kubeadm.go index 10bab0a1c050..31dca93a8b2a 100644 --- a/pkg/minikube/bootstrapper/images/kubeadm.go +++ b/pkg/minikube/bootstrapper/images/kubeadm.go @@ -20,7 +20,7 @@ import ( "fmt" "strings" - "github.com/blang/semver" + "github.com/blang/semver/v4" "github.com/pkg/errors" ) diff --git a/pkg/minikube/bootstrapper/kubeadm/kubeadm.go b/pkg/minikube/bootstrapper/kubeadm/kubeadm.go index dcea23707f3e..e2990381a166 100644 --- a/pkg/minikube/bootstrapper/kubeadm/kubeadm.go +++ b/pkg/minikube/bootstrapper/kubeadm/kubeadm.go @@ -32,7 +32,7 @@ import ( // WARNING: Do not use path/filepath in this package unless you want bizarre Windows paths - "github.com/blang/semver" + "github.com/blang/semver/v4" "github.com/docker/machine/libmachine" "github.com/docker/machine/libmachine/state" "github.com/pkg/errors" diff --git a/pkg/minikube/config/types.go b/pkg/minikube/config/types.go index aee9b1ac2840..34dc7065c0da 100644 --- a/pkg/minikube/config/types.go +++ b/pkg/minikube/config/types.go @@ -20,7 +20,7 @@ import ( "net" "time" - "github.com/blang/semver" + "github.com/blang/semver/v4" ) // Profile represents a minikube profile diff --git a/pkg/minikube/cruntime/containerd.go b/pkg/minikube/cruntime/containerd.go index 0ce5207646b0..24e872bc663a 100644 --- a/pkg/minikube/cruntime/containerd.go +++ b/pkg/minikube/cruntime/containerd.go @@ -29,7 +29,7 @@ import ( "text/template" "time" - "github.com/blang/semver" + "github.com/blang/semver/v4" "github.com/pkg/errors" "k8s.io/klog/v2" "k8s.io/minikube/pkg/minikube/assets" diff --git a/pkg/minikube/cruntime/crio.go b/pkg/minikube/cruntime/crio.go index f0da74092c00..82d30647f647 100644 --- a/pkg/minikube/cruntime/crio.go +++ b/pkg/minikube/cruntime/crio.go @@ -25,7 +25,7 @@ import ( "strings" "time" - "github.com/blang/semver" + "github.com/blang/semver/v4" "github.com/pkg/errors" "k8s.io/klog/v2" "k8s.io/minikube/pkg/minikube/assets" diff --git a/pkg/minikube/cruntime/cruntime.go b/pkg/minikube/cruntime/cruntime.go index 6510f905369c..95d90848396e 100644 --- a/pkg/minikube/cruntime/cruntime.go +++ b/pkg/minikube/cruntime/cruntime.go @@ -21,7 +21,7 @@ import ( "fmt" "os/exec" - "github.com/blang/semver" + "github.com/blang/semver/v4" "github.com/pkg/errors" "k8s.io/klog/v2" "k8s.io/minikube/pkg/minikube/assets" diff --git a/pkg/minikube/cruntime/docker.go b/pkg/minikube/cruntime/docker.go index 9ec896676cfa..c25c6cc9303d 100644 --- a/pkg/minikube/cruntime/docker.go +++ b/pkg/minikube/cruntime/docker.go @@ -24,7 +24,7 @@ import ( "strings" "time" - "github.com/blang/semver" + "github.com/blang/semver/v4" "github.com/pkg/errors" "k8s.io/klog/v2" "k8s.io/minikube/pkg/minikube/assets" diff --git a/pkg/minikube/download/binary.go b/pkg/minikube/download/binary.go index 83743558475c..dc9de3a14ef5 100644 --- a/pkg/minikube/download/binary.go +++ b/pkg/minikube/download/binary.go @@ -24,7 +24,7 @@ import ( "k8s.io/minikube/pkg/minikube/detect" - "github.com/blang/semver" + "github.com/blang/semver/v4" "github.com/pkg/errors" "k8s.io/klog/v2" "k8s.io/minikube/pkg/minikube/localpath" diff --git a/pkg/minikube/download/driver.go b/pkg/minikube/download/driver.go index 2a3f12194980..93ce6e105b0b 100644 --- a/pkg/minikube/download/driver.go +++ b/pkg/minikube/download/driver.go @@ -20,7 +20,7 @@ import ( "fmt" "os" - "github.com/blang/semver" + "github.com/blang/semver/v4" "github.com/pkg/errors" "k8s.io/minikube/pkg/minikube/out" "k8s.io/minikube/pkg/minikube/style" diff --git a/pkg/minikube/driver/auxdriver/install.go b/pkg/minikube/driver/auxdriver/install.go index e498f85bfe1a..76d119215570 100644 --- a/pkg/minikube/driver/auxdriver/install.go +++ b/pkg/minikube/driver/auxdriver/install.go @@ -25,7 +25,7 @@ import ( "strings" "time" - "github.com/blang/semver" + "github.com/blang/semver/v4" "github.com/juju/mutex" "github.com/pkg/errors" diff --git a/pkg/minikube/driver/auxdriver/version.go b/pkg/minikube/driver/auxdriver/version.go index 298ac1094ab6..8fcc971c501d 100644 --- a/pkg/minikube/driver/auxdriver/version.go +++ b/pkg/minikube/driver/auxdriver/version.go @@ -17,7 +17,7 @@ limitations under the License. package auxdriver import ( - "github.com/blang/semver" + "github.com/blang/semver/v4" "k8s.io/klog/v2" "k8s.io/minikube/pkg/minikube/driver" ) diff --git a/pkg/minikube/driver/auxdriver/version_test.go b/pkg/minikube/driver/auxdriver/version_test.go index d5569cc9f7d7..6cc652a80578 100644 --- a/pkg/minikube/driver/auxdriver/version_test.go +++ b/pkg/minikube/driver/auxdriver/version_test.go @@ -19,7 +19,7 @@ package auxdriver import ( "testing" - "github.com/blang/semver" + "github.com/blang/semver/v4" "k8s.io/minikube/pkg/minikube/driver" ) diff --git a/pkg/minikube/node/start.go b/pkg/minikube/node/start.go index 5d5ac2e1f07a..c8a79d088970 100644 --- a/pkg/minikube/node/start.go +++ b/pkg/minikube/node/start.go @@ -28,7 +28,7 @@ import ( "sync" "time" - "github.com/blang/semver" + "github.com/blang/semver/v4" "github.com/docker/machine/libmachine" "github.com/docker/machine/libmachine/host" "github.com/pkg/errors" diff --git a/pkg/minikube/notify/notify.go b/pkg/minikube/notify/notify.go index 7bb7de76d6cf..c993714814a5 100644 --- a/pkg/minikube/notify/notify.go +++ b/pkg/minikube/notify/notify.go @@ -25,7 +25,7 @@ import ( "strings" "time" - "github.com/blang/semver" + "github.com/blang/semver/v4" "github.com/pkg/errors" "github.com/spf13/viper" "k8s.io/klog/v2" diff --git a/pkg/minikube/notify/notify_test.go b/pkg/minikube/notify/notify_test.go index 6c6363c57e73..839e559a7893 100644 --- a/pkg/minikube/notify/notify_test.go +++ b/pkg/minikube/notify/notify_test.go @@ -28,7 +28,7 @@ import ( "testing" "time" - "github.com/blang/semver" + "github.com/blang/semver/v4" "github.com/spf13/viper" "k8s.io/minikube/pkg/minikube/config" "k8s.io/minikube/pkg/minikube/out" diff --git a/pkg/minikube/reason/k8s.go b/pkg/minikube/reason/k8s.go index bbaa22c4fc96..d713f5e4cb41 100644 --- a/pkg/minikube/reason/k8s.go +++ b/pkg/minikube/reason/k8s.go @@ -16,7 +16,7 @@ limitations under the License. package reason -import "github.com/blang/semver" +import "github.com/blang/semver/v4" // K8sIssue represents a known issue with a particular version of Kubernetes type K8sIssue struct { diff --git a/pkg/minikube/registry/drvs/podman/podman.go b/pkg/minikube/registry/drvs/podman/podman.go index a0d3f42062a0..f92220db87c9 100644 --- a/pkg/minikube/registry/drvs/podman/podman.go +++ b/pkg/minikube/registry/drvs/podman/podman.go @@ -26,7 +26,7 @@ import ( "strings" "time" - "github.com/blang/semver" + "github.com/blang/semver/v4" "github.com/docker/machine/libmachine/drivers" "k8s.io/klog/v2" "k8s.io/minikube/pkg/drivers/kic" diff --git a/pkg/util/retry/retry.go b/pkg/util/retry/retry.go index 3e40547f4e45..09f1ae65cf15 100644 --- a/pkg/util/retry/retry.go +++ b/pkg/util/retry/retry.go @@ -20,7 +20,7 @@ package retry import ( "time" - "github.com/cenkalti/backoff" + "github.com/cenkalti/backoff/v4" "k8s.io/klog/v2" ) diff --git a/pkg/util/utils.go b/pkg/util/utils.go index 227c8402bb1b..8ce9df808de8 100644 --- a/pkg/util/utils.go +++ b/pkg/util/utils.go @@ -23,7 +23,7 @@ import ( "path/filepath" "strconv" - "github.com/blang/semver" + "github.com/blang/semver/v4" units "github.com/docker/go-units" "github.com/pkg/errors" ) diff --git a/pkg/util/utils_test.go b/pkg/util/utils_test.go index 4ad1ba2bf42a..f0fc06cc6da3 100644 --- a/pkg/util/utils_test.go +++ b/pkg/util/utils_test.go @@ -24,7 +24,7 @@ import ( "syscall" "testing" - "github.com/blang/semver" + "github.com/blang/semver/v4" ) func TestGetBinaryDownloadURL(t *testing.T) { diff --git a/pkg/version/version.go b/pkg/version/version.go index 0faeb4964f75..dd348ff126b5 100644 --- a/pkg/version/version.go +++ b/pkg/version/version.go @@ -19,7 +19,7 @@ package version import ( "strings" - "github.com/blang/semver" + "github.com/blang/semver/v4" ) // VersionPrefix is the prefix of the git tag for a version diff --git a/test/integration/driver_install_or_update_test.go b/test/integration/driver_install_or_update_test.go index 018077e160da..e5b3d53ba493 100644 --- a/test/integration/driver_install_or_update_test.go +++ b/test/integration/driver_install_or_update_test.go @@ -25,8 +25,8 @@ import ( "runtime" "testing" - "github.com/Azure/azure-sdk-for-go/tools/apidiff/ioext" - "github.com/blang/semver" + "github.com/Azure/azure-sdk-for-go/tools/internal/ioext" + "github.com/blang/semver/v4" "k8s.io/minikube/pkg/minikube/driver/auxdriver" "k8s.io/minikube/pkg/minikube/localpath" From 8e62a7d4a063e67678a180b45be7ff86cdb22679 Mon Sep 17 00:00:00 2001 From: minikube-bot Date: Tue, 29 Jun 2021 19:32:53 +0000 Subject: [PATCH 054/111] Update ISO to v1.22.0-beta.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 268793b0c028..4d853df2f6e9 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.21.0-1623378770-11632 +ISO_VERSION ?= v1.22.0-beta.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 3bd1a512f3b2..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/11632" + 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 dea09fc3a8f4..b6f02258be71 100644 --- a/site/content/en/docs/commands/start.md +++ b/site/content/en/docs/commands/start.md @@ -64,7 +64,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/11632/minikube-v1.21.0-1623378770-11632.iso,https://github.com/kubernetes/minikube/releases/download/v1.21.0-1623378770-11632/minikube-v1.21.0-1623378770-11632.iso,https://kubernetes.oss-cn-hangzhou.aliyuncs.com/minikube/iso/minikube-v1.21.0-1623378770-11632.iso]) + --iso-url strings Locations to fetch the minikube ISO from. (default [https://storage.googleapis.com/minikube/iso/minikube-v1.22.0-beta.0.iso,https://github.com/kubernetes/minikube/releases/download/v1.22.0-beta.0/minikube-v1.22.0-beta.0.iso,https://kubernetes.oss-cn-hangzhou.aliyuncs.com/minikube/iso/minikube-v1.22.0-beta.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.20.7, 'latest' for v1.22.0-alpha.2). Defaults to 'stable'. --kvm-gpu Enable experimental NVIDIA GPU support in minikube From a75a742e71332af6c266028c31378535b31e7950 Mon Sep 17 00:00:00 2001 From: Steven Powell Date: Tue, 29 Jun 2021 12:40:15 -0700 Subject: [PATCH 055/111] simplified calculating limit --- test/integration/main_test.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/integration/main_test.go b/test/integration/main_test.go index 9a2d799f75b6..519d0be3aff8 100644 --- a/test/integration/main_test.go +++ b/test/integration/main_test.go @@ -99,7 +99,7 @@ func setMaxParallelism() { // Windows tests were failing from timeouts due to too much parallelism if runtime.GOOS == "windows" { - limit = int(limit / 2) + limit /= 2 } fmt.Fprintf(os.Stderr, "Found %d cores, limiting parallelism with --test.parallel=%d\n", maxp, limit) From a714161f31badbe9de4bcad071899d18fe0ae587 Mon Sep 17 00:00:00 2001 From: Medya Gh Date: Tue, 29 Jun 2021 15:46:23 -0400 Subject: [PATCH 056/111] update go-github to v36 --- go.mod | 3 +-- go.sum | 4 ++-- hack/preload-images/kubernetes.go | 2 +- hack/update/github.go | 2 +- pkg/perf/monitor/github.go | 2 +- 5 files changed, 6 insertions(+), 7 deletions(-) diff --git a/go.mod b/go.mod index 43f0bb5fcda2..82c003ac793b 100644 --- a/go.mod +++ b/go.mod @@ -28,8 +28,7 @@ require ( github.com/golang-collections/collections v0.0.0-20130729185459-604e922904d3 github.com/google/go-cmp v0.5.6 github.com/google/go-containerregistry v0.4.1 - github.com/google/go-github v17.0.0+incompatible - github.com/google/go-github/v32 v32.1.0 + github.com/google/go-github/v36 v36.0.0 github.com/google/slowjam v1.0.0 github.com/google/uuid v1.2.0 github.com/hashicorp/go-getter v1.5.4 diff --git a/go.sum b/go.sum index c741fd9f26f6..320bd7c05522 100644 --- a/go.sum +++ b/go.sum @@ -552,8 +552,8 @@ github.com/google/go-cmp v0.5.6 h1:BKbKCqvP6I+rmFHt06ZmyQtvB8xAkWdhFyr0ZUNZcxQ= github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-github v17.0.0+incompatible h1:N0LgJ1j65A7kfXrZnUDaYCs/Sf4rEjNlfyDHW9dolSY= github.com/google/go-github v17.0.0+incompatible/go.mod h1:zLgOLi98H3fifZn+44m+umXrS52loVEgC2AApnigrVQ= -github.com/google/go-github/v32 v32.1.0 h1:GWkQOdXqviCPx7Q7Fj+KyPoGm4SwHRh8rheoPhd27II= -github.com/google/go-github/v32 v32.1.0/go.mod h1:rIEpZD9CTDQwDK9GDrtMTycQNA4JU3qBsCizh3q2WCI= +github.com/google/go-github/v36 v36.0.0 h1:ndCzM616/oijwufI7nBRa+5eZHLldT+4yIB68ib5ogs= +github.com/google/go-github/v36 v36.0.0/go.mod h1:LFlKC047IOqiglRGNqNb9s/iAPTnnjtlshm+bxp+kwk= github.com/google/go-querystring v1.0.0 h1:Xkwi/a1rcvNg1PPYe5vI8GbeBY/jrVuDX5ASuANWTrk= github.com/google/go-querystring v1.0.0/go.mod h1:odCYkC5MyYFN7vkCjXpyrEuKhc/BUO6wN/zVPAxq5ck= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= diff --git a/hack/preload-images/kubernetes.go b/hack/preload-images/kubernetes.go index 898208bb6d6b..6d01cc378636 100644 --- a/hack/preload-images/kubernetes.go +++ b/hack/preload-images/kubernetes.go @@ -19,7 +19,7 @@ package main import ( "context" - "github.com/google/go-github/github" + "github.com/google/go-github/v36/github" "k8s.io/klog/v2" ) diff --git a/hack/update/github.go b/hack/update/github.go index 7de188f6dfa5..97b55258d731 100644 --- a/hack/update/github.go +++ b/hack/update/github.go @@ -26,7 +26,7 @@ import ( "golang.org/x/mod/semver" "golang.org/x/oauth2" - "github.com/google/go-github/v32/github" + "github.com/google/go-github/v36/github" "k8s.io/klog/v2" ) diff --git a/pkg/perf/monitor/github.go b/pkg/perf/monitor/github.go index eb3146136ed7..bded6c3a658e 100644 --- a/pkg/perf/monitor/github.go +++ b/pkg/perf/monitor/github.go @@ -22,7 +22,7 @@ import ( "os" "time" - "github.com/google/go-github/github" + "github.com/google/go-github/v36/github" "github.com/pkg/errors" "golang.org/x/oauth2" ) From 6abf41e08983b0725832e5b067062f2b9771b2dc Mon Sep 17 00:00:00 2001 From: Medya Gh Date: Tue, 29 Jun 2021 15:48:28 -0400 Subject: [PATCH 057/111] bump more things --- go.mod | 9 +++++---- go.sum | 15 +++++++++++++++ 2 files changed, 20 insertions(+), 4 deletions(-) diff --git a/go.mod b/go.mod index 82c003ac793b..07815132a0fd 100644 --- a/go.mod +++ b/go.mod @@ -13,7 +13,7 @@ require ( github.com/VividCortex/godaemon v1.0.0 github.com/blang/semver/v4 v4.0.0 github.com/briandowns/spinner v1.11.1 - github.com/c4milo/gotoolkit v0.0.0-20170318115440-bcc06269efa9 // indirect + 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.3.1 @@ -23,14 +23,14 @@ require ( github.com/docker/docker v20.10.7+incompatible github.com/docker/go-units v0.4.0 github.com/docker/machine v0.16.2 - github.com/elazarl/goproxy v0.0.0-20190421051319-9d40249d3c2f - github.com/elazarl/goproxy/ext v0.0.0-20190421051319-9d40249d3c2f // indirect + github.com/elazarl/goproxy v0.0.0-20210110162100-a92cc753f88e github.com/golang-collections/collections v0.0.0-20130729185459-604e922904d3 github.com/google/go-cmp v0.5.6 github.com/google/go-containerregistry v0.4.1 github.com/google/go-github/v36 v36.0.0 github.com/google/slowjam v1.0.0 github.com/google/uuid v1.2.0 + github.com/gookit/color v1.4.2 // indirect github.com/hashicorp/go-getter v1.5.4 github.com/hashicorp/go-retryablehttp v0.7.0 github.com/hectane/go-acl v0.0.0-20190604041725-da78bae5fc95 // indirect @@ -53,6 +53,7 @@ require ( github.com/machine-drivers/docker-machine-driver-vmware v0.1.3 github.com/mattbaird/jsonpatch v0.0.0-20200820163806-098863c1fc24 github.com/mattn/go-isatty v0.0.13 + github.com/mattn/go-runewidth v0.0.13 // indirect github.com/mitchellh/go-ps v1.0.0 github.com/moby/hyperkit v0.0.0-20210108224842-2f061e447e14 github.com/moby/sys/mount v0.2.0 // indirect @@ -83,7 +84,7 @@ require ( golang.org/x/mod v0.4.2 golang.org/x/oauth2 v0.0.0-20210615190721-d04028783cf1 golang.org/x/sync v0.0.0-20210220032951-036812b2e83c - golang.org/x/sys v0.0.0-20210616094352-59db8d763f22 + golang.org/x/sys v0.0.0-20210629170331-7dc0b73dc9fb golang.org/x/term v0.0.0-20210406210042-72f3dc4e9b72 golang.org/x/text v0.3.6 gonum.org/v1/plot v0.9.0 diff --git a/go.sum b/go.sum index 320bd7c05522..d51ad34bdd17 100644 --- a/go.sum +++ b/go.sum @@ -177,6 +177,8 @@ github.com/bugsnag/osext v0.0.0-20130617224835-0dd3f918b21b/go.mod h1:obH5gd0Bsq github.com/bugsnag/panicwrap v0.0.0-20151223152923-e2c28503fcd0/go.mod h1:D/8v3kj0zr8ZAKg1AQ6crr+5VwKN5eIywRkfhyM/+dE= github.com/c4milo/gotoolkit v0.0.0-20170318115440-bcc06269efa9 h1:+ziP/wVJWuAORkjv7386TRidVKY57X0bXBZFMeFlW+U= github.com/c4milo/gotoolkit v0.0.0-20170318115440-bcc06269efa9/go.mod h1:txokOny9wavBtq2PWuHmj1P+eFwpCsj+gQeNNANChfU= +github.com/c4milo/gotoolkit v0.0.0-20190525173301-67483a18c17a h1:+uvtaGSLJh0YpLLHCQ9F+UVGy4UOS542hsjj8wBjvH0= +github.com/c4milo/gotoolkit v0.0.0-20190525173301-67483a18c17a/go.mod h1:txokOny9wavBtq2PWuHmj1P+eFwpCsj+gQeNNANChfU= github.com/caddyserver/caddy v1.0.3/go.mod h1:G+ouvOY32gENkJC+jhgl62TyhvqEsFaDiZ4uw0RzP1E= github.com/cenkalti/backoff v2.1.1+incompatible h1:tKJnvO2kl0zmb/jA5UKAt4VoEVw1qxKWjE/Bpp46npY= github.com/cenkalti/backoff v2.1.1+incompatible/go.mod h1:90ReRw6GdpyfrHakVjL/QHaoyV4aDUVVkXQJJJ3NXXM= @@ -348,6 +350,8 @@ github.com/dnaeon/go-vcr v1.0.1/go.mod h1:aBB1+wY4s93YsC3HHjMBMrwTj2R9FHDzUr9KyG github.com/docker/cli v0.0.0-20191017083524-a8ff7f821017/go.mod h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8= github.com/docker/cli v0.0.0-20200303162255-7d407207c304 h1:A7SYzidcyuQ/yS4wezWGYeUioUFJQk8HYWY9aMYTF4I= github.com/docker/cli v0.0.0-20200303162255-7d407207c304/go.mod h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8= +github.com/docker/cli v20.10.7+incompatible h1:pv/3NqibQKphWZiAskMzdz8w0PRbtTaEB+f6NwdU7Is= +github.com/docker/cli v20.10.7+incompatible/go.mod h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8= github.com/docker/distribution v0.0.0-20190905152932-14b96e55d84c/go.mod h1:0+TTO4EOBfRPhZXAeF1Vu+W3hHZ8eLp8PgKVZlcvtFY= github.com/docker/distribution v2.7.1-0.20190205005809-0d3efadf0154+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w= github.com/docker/distribution v2.7.1+incompatible h1:a5mlkVzth6W5A4fOsS3D2EO5BUmsJpcB+cRlLU7cSug= @@ -376,8 +380,11 @@ github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25Kn github.com/elazarl/goproxy v0.0.0-20180725130230-947c36da3153/go.mod h1:/Zj4wYkgs4iZTTu3o/KG3Itv/qCCa8VVMlb3i9OVuzc= github.com/elazarl/goproxy v0.0.0-20190421051319-9d40249d3c2f h1:8GDPb0tCY8LQ+OJ3dbHb5sA6YZWXFORQYZx5sdsTlMs= github.com/elazarl/goproxy v0.0.0-20190421051319-9d40249d3c2f/go.mod h1:/Zj4wYkgs4iZTTu3o/KG3Itv/qCCa8VVMlb3i9OVuzc= +github.com/elazarl/goproxy v0.0.0-20210110162100-a92cc753f88e h1:/cwV7t2xezilMljIftb7WlFtzGANRCnoOhPjtl2ifcs= +github.com/elazarl/goproxy v0.0.0-20210110162100-a92cc753f88e/go.mod h1:Ro8st/ElPeALwNFlcTpWmkr6IoMFfkjXAvTHpevnDsM= github.com/elazarl/goproxy/ext v0.0.0-20190421051319-9d40249d3c2f h1:AUj1VoZUfhPhOPHULCQQDnGhRelpFWHMLhQVWDsS0v4= github.com/elazarl/goproxy/ext v0.0.0-20190421051319-9d40249d3c2f/go.mod h1:gNh8nYJoAm43RfaxurUnxr+N1PwuFV3ZMl/efxlIlY8= +github.com/elazarl/goproxy/ext v0.0.0-20190711103511-473e67f1d7d2/go.mod h1:gNh8nYJoAm43RfaxurUnxr+N1PwuFV3ZMl/efxlIlY8= github.com/emicklei/go-restful v0.0.0-20170410110728-ff4f55a20633/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs= github.com/emicklei/go-restful v2.9.5+incompatible/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs= github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= @@ -595,6 +602,8 @@ github.com/googleinterns/cloud-operations-api-mock v0.0.0-20200709193332-a1e58c2 github.com/googleinterns/cloud-operations-api-mock v0.0.0-20200709193332-a1e58c29bdd3/go.mod h1:h/KNeRx7oYU4SpA4SoY7W2/NxDKEEVuwA6j9A27L4OI= github.com/gookit/color v1.3.6 h1:Rgbazd4JO5AgSTVGS3o0nvaSdwdrS8bzvIXwtK6OiMk= github.com/gookit/color v1.3.6/go.mod h1:R3ogXq2B9rTbXoSHJ1HyUVAZ3poOJHpd9nQmyGZsfvQ= +github.com/gookit/color v1.4.2 h1:tXy44JFSFkKnELV6WaMo/lLfu/meqITX3iAV52do7lk= +github.com/gookit/color v1.4.2/go.mod h1:fqRyamkC1W8uxl+lxCQxOT09l/vYfZ+QeiX3rKQHCoQ= github.com/gophercloud/gophercloud v0.1.0/go.mod h1:vxM41WHh5uqHVBMZHzuwNOHh8XEoIEcSTewFxm1c5g8= github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1 h1:EGx4pi6eqNxGaHF6qqu48+N2wcFQ5qg5FXgOdqsJ5d8= github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= @@ -796,6 +805,8 @@ github.com/mattn/go-runewidth v0.0.7/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m github.com/mattn/go-runewidth v0.0.9/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI= github.com/mattn/go-runewidth v0.0.12 h1:Y41i/hVW3Pgwr8gV+J23B9YEY0zxjptBuCWEaxmAOow= github.com/mattn/go-runewidth v0.0.12/go.mod h1:RAqKPSqVFrSLVXbA8x7dzmKdmGzieGRCM46jaSJTDAk= +github.com/mattn/go-runewidth v0.0.13 h1:lTGmDsbAYt5DmK6OnoV7EuIF1wEIFAcxld6ypU4OSgU= +github.com/mattn/go-runewidth v0.0.13/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w= github.com/mattn/go-shellwords v1.0.3/go.mod h1:3xCvwCdWdlDJUrvuMn7Wuy9eWs4pE8vqg+NOMyg4B2o= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369 h1:I0XW9+e1XWDxdcEniV4rQAIOPUGDq67JSCiRCgGCZLI= @@ -1117,6 +1128,8 @@ github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q github.com/xlab/treeprint v0.0.0-20181112141820-a009c3971eca/go.mod h1:ce1O1j6UtZfjr22oyGxGLbauSBp2YVXpARAosm7dHBg= github.com/xo/terminfo v0.0.0-20200218205459-454e5b68f9e8 h1:woqigIZtZUZxws1zZA99nAvuz2mQrxtWsuZSR9c8I/A= github.com/xo/terminfo v0.0.0-20200218205459-454e5b68f9e8/go.mod h1:6Yhx5ZJl5942QrNRWLwITArVT9okUXc5c3brgWJMoDc= +github.com/xo/terminfo v0.0.0-20210125001918-ca9a967f8778 h1:QldyIu/L63oPpyvQmHgvgickp1Yw510KJOqX7H24mg8= +github.com/xo/terminfo v0.0.0-20210125001918-ca9a967f8778/go.mod h1:2MuV+tbUrU1zIOPMxZ5EncGwgmMJsa+9ucAQZXxsObs= github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q= github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= @@ -1441,6 +1454,8 @@ golang.org/x/sys v0.0.0-20210514084401-e8d321eab015/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20210603125802-9665404d3644/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210616094352-59db8d763f22 h1:RqytpXGR1iVNX7psjB3ff8y7sNFinVFvkx1c8SjBkio= golang.org/x/sys v0.0.0-20210616094352-59db8d763f22/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210629170331-7dc0b73dc9fb h1:sgcyLNYiHqEd8eFVh0PflG5ABPTGcPSJacD3s19RTcY= +golang.org/x/sys v0.0.0-20210629170331-7dc0b73dc9fb/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= From 47dbbac0d9d58c1f4cbb6f905be66d62cb6b4821 Mon Sep 17 00:00:00 2001 From: Medya Gh Date: Tue, 29 Jun 2021 16:03:27 -0400 Subject: [PATCH 058/111] revert azure sdk --- go.mod | 2 +- go.sum | 23 +++---------------- .../driver_install_or_update_test.go | 3 ++- 3 files changed, 6 insertions(+), 22 deletions(-) diff --git a/go.mod b/go.mod index 07815132a0fd..b6fdbb9ebe46 100644 --- a/go.mod +++ b/go.mod @@ -5,7 +5,7 @@ go 1.16 require ( cloud.google.com/go/storage v1.15.0 contrib.go.opencensus.io/exporter/stackdriver v0.12.1 - github.com/Azure/azure-sdk-for-go/tools/internal v0.1.0 + github.com/Azure/azure-sdk-for-go v43.3.0+incompatible github.com/Delta456/box-cli-maker/v2 v2.2.1 github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/trace v0.16.0 github.com/Microsoft/hcsshim v0.8.17 // indirect diff --git a/go.sum b/go.sum index d51ad34bdd17..2108c2a16f11 100644 --- a/go.sum +++ b/go.sum @@ -53,24 +53,19 @@ dmitri.shuralyov.com/gpu/mtl v0.0.0-20201218220906-28db891af037/go.mod h1:H6x//7 gioui.org v0.0.0-20210308172011-57750fc8a0a6/go.mod h1:RSH6KIUZ0p2xy5zHDxgAM4zumjgTw83q2ge/PI+yyw8= github.com/Azure/azure-sdk-for-go v16.2.1+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc= github.com/Azure/azure-sdk-for-go v43.0.0+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc= -github.com/Azure/azure-sdk-for-go v54.2.1+incompatible h1:RiwBAqYP8Xz2yTPNzrwiHX5+lfPkRlHuk/x4BOAyAjA= -github.com/Azure/azure-sdk-for-go v54.2.1+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc= -github.com/Azure/azure-sdk-for-go/tools/internal v0.1.0 h1:14XW+q/1MOOtbnU8icLjxfkZv+FwtnvxPrpPvNptVpI= -github.com/Azure/azure-sdk-for-go/tools/internal v0.1.0/go.mod h1:Vmf0KH/Ytn20T2KjFqwBAyl9gBQBp9ci0RGPCru9lOA= +github.com/Azure/azure-sdk-for-go v43.3.0+incompatible h1:o0G4JAsOzeVJEwU0Ud9bh+lUHPUc0GkFENJ02dk51Uo= +github.com/Azure/azure-sdk-for-go v43.3.0+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc= github.com/Azure/go-ansiterm v0.0.0-20170929234023-d6e3b3328b78 h1:w+iIsaOQNcT7OZ575w+acHgRric5iCyQh+xv+KJ4HB8= github.com/Azure/go-ansiterm v0.0.0-20170929234023-d6e3b3328b78/go.mod h1:LmzpDX56iTiv29bbRTIsUNlaFfuhWRQBWjQdVyAevI8= github.com/Azure/go-autorest v10.8.1+incompatible/go.mod h1:r+4oMnoxhatjLLJ6zxSWATqVooLgysK6ZNox3g/xq24= github.com/Azure/go-autorest v14.2.0+incompatible/go.mod h1:r+4oMnoxhatjLLJ6zxSWATqVooLgysK6ZNox3g/xq24= github.com/Azure/go-autorest/autorest v0.11.12/go.mod h1:eipySxLmqSyC5s5k1CLupqet0PSENBEDP93LQ9a8QYw= -github.com/Azure/go-autorest/autorest v0.11.18/go.mod h1:dSiJPy22c3u0OtOKDNttNgqpNFY/GeWa7GH/Pz56QRA= github.com/Azure/go-autorest/autorest/adal v0.9.5/go.mod h1:B7KF7jKIeC9Mct5spmyCB/A8CG/sEz1vwIRGv/bbw7A= -github.com/Azure/go-autorest/autorest/adal v0.9.13/go.mod h1:W/MM4U6nLxnIskrw4UwWzlHfGjwUS50aOsc/I3yuU8M= github.com/Azure/go-autorest/autorest/date v0.3.0/go.mod h1:BI0uouVdmngYNUzGWeSYnokU+TrmwEsOqdt8Y6sso74= github.com/Azure/go-autorest/autorest/mocks v0.4.1/go.mod h1:LTp+uSrOhSkaKrUy935gNZuuIPPVsHlr9DSOxSayd+k= github.com/Azure/go-autorest/autorest/to v0.2.0/go.mod h1:GunWKJp1AEqgMaGLV+iocmRAJWqST1wQYhyyjXJ3SJc= github.com/Azure/go-autorest/autorest/validation v0.1.0/go.mod h1:Ha3z/SqBeaalWQvokg3NZAlQTalVMtOIAs1aGK7G6u8= github.com/Azure/go-autorest/logger v0.2.0/go.mod h1:T9E3cAhj2VqvPOtCYAvby9aBXkZmbF5NWuPV8+WeEW8= -github.com/Azure/go-autorest/logger v0.2.1/go.mod h1:T9E3cAhj2VqvPOtCYAvby9aBXkZmbF5NWuPV8+WeEW8= github.com/Azure/go-autorest/tracing v0.6.0/go.mod h1:+vhtPC754Xsa23ID7GlGsrdKBpUA79WCAKPPZVC2DeU= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= @@ -82,7 +77,6 @@ github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/trace v0.16. github.com/JeffAshton/win_pdh v0.0.0-20161109143554-76bb4ee9f0ab/go.mod h1:3VYc5hodBMJ5+l/7J4xAyMeuM2PNuepvHlGs8yilUCA= github.com/MakeNowJust/heredoc v0.0.0-20170808103936-bb23615498cd h1:sjQovDkwrZp8u+gxLtPgKGjk5hCxuy2hrRejBTA9xFU= github.com/MakeNowJust/heredoc v0.0.0-20170808103936-bb23615498cd/go.mod h1:64YHyfSL2R96J44Nlwm39UHepQbyR5q10x7iYa1ks2E= -github.com/Masterminds/semver v1.5.0/go.mod h1:MB6lktGJrhw8PrUyiEoblNEGEQ+RzHPF078ddwwvV3Y= github.com/Microsoft/go-winio v0.4.11/go.mod h1:VhR8bwka0BXejwEJY73c50VrPtXAaKcyvVC4A4RozmA= github.com/Microsoft/go-winio v0.4.14/go.mod h1:qXqCSQ3Xa7+6tgxaGTIe4Kpcdsi+P8jBhyzoq1bpyYA= github.com/Microsoft/go-winio v0.4.15-0.20190919025122-fc70bd9a86b5/go.mod h1:tTuCMEN+UleMWgg9dVx4Hu52b1bJo+59jBh3ajtinzw= @@ -175,8 +169,6 @@ github.com/buger/jsonparser v0.0.0-20180808090653-f4dd9f5a6b44/go.mod h1:bbYlZJ7 github.com/bugsnag/bugsnag-go v0.0.0-20141110184014-b1d153021fcd/go.mod h1:2oa8nejYd4cQ/b0hMIopN0lCRxU0bueqREvZLWFrtK8= github.com/bugsnag/osext v0.0.0-20130617224835-0dd3f918b21b/go.mod h1:obH5gd0BsqsP2LwDJ9aOkm/6J86V6lyAXCoQWGw3K50= github.com/bugsnag/panicwrap v0.0.0-20151223152923-e2c28503fcd0/go.mod h1:D/8v3kj0zr8ZAKg1AQ6crr+5VwKN5eIywRkfhyM/+dE= -github.com/c4milo/gotoolkit v0.0.0-20170318115440-bcc06269efa9 h1:+ziP/wVJWuAORkjv7386TRidVKY57X0bXBZFMeFlW+U= -github.com/c4milo/gotoolkit v0.0.0-20170318115440-bcc06269efa9/go.mod h1:txokOny9wavBtq2PWuHmj1P+eFwpCsj+gQeNNANChfU= github.com/c4milo/gotoolkit v0.0.0-20190525173301-67483a18c17a h1:+uvtaGSLJh0YpLLHCQ9F+UVGy4UOS542hsjj8wBjvH0= github.com/c4milo/gotoolkit v0.0.0-20190525173301-67483a18c17a/go.mod h1:txokOny9wavBtq2PWuHmj1P+eFwpCsj+gQeNNANChfU= github.com/caddyserver/caddy v1.0.3/go.mod h1:G+ouvOY32gENkJC+jhgl62TyhvqEsFaDiZ4uw0RzP1E= @@ -350,8 +342,6 @@ github.com/dnaeon/go-vcr v1.0.1/go.mod h1:aBB1+wY4s93YsC3HHjMBMrwTj2R9FHDzUr9KyG github.com/docker/cli v0.0.0-20191017083524-a8ff7f821017/go.mod h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8= github.com/docker/cli v0.0.0-20200303162255-7d407207c304 h1:A7SYzidcyuQ/yS4wezWGYeUioUFJQk8HYWY9aMYTF4I= github.com/docker/cli v0.0.0-20200303162255-7d407207c304/go.mod h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8= -github.com/docker/cli v20.10.7+incompatible h1:pv/3NqibQKphWZiAskMzdz8w0PRbtTaEB+f6NwdU7Is= -github.com/docker/cli v20.10.7+incompatible/go.mod h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8= github.com/docker/distribution v0.0.0-20190905152932-14b96e55d84c/go.mod h1:0+TTO4EOBfRPhZXAeF1Vu+W3hHZ8eLp8PgKVZlcvtFY= github.com/docker/distribution v2.7.1-0.20190205005809-0d3efadf0154+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w= github.com/docker/distribution v2.7.1+incompatible h1:a5mlkVzth6W5A4fOsS3D2EO5BUmsJpcB+cRlLU7cSug= @@ -378,12 +368,9 @@ github.com/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815/go.mod h1:WwZ+bS3 github.com/dustin/go-humanize v0.0.0-20171111073723-bb3d318650d4/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= github.com/elazarl/goproxy v0.0.0-20180725130230-947c36da3153/go.mod h1:/Zj4wYkgs4iZTTu3o/KG3Itv/qCCa8VVMlb3i9OVuzc= -github.com/elazarl/goproxy v0.0.0-20190421051319-9d40249d3c2f h1:8GDPb0tCY8LQ+OJ3dbHb5sA6YZWXFORQYZx5sdsTlMs= -github.com/elazarl/goproxy v0.0.0-20190421051319-9d40249d3c2f/go.mod h1:/Zj4wYkgs4iZTTu3o/KG3Itv/qCCa8VVMlb3i9OVuzc= github.com/elazarl/goproxy v0.0.0-20210110162100-a92cc753f88e h1:/cwV7t2xezilMljIftb7WlFtzGANRCnoOhPjtl2ifcs= github.com/elazarl/goproxy v0.0.0-20210110162100-a92cc753f88e/go.mod h1:Ro8st/ElPeALwNFlcTpWmkr6IoMFfkjXAvTHpevnDsM= -github.com/elazarl/goproxy/ext v0.0.0-20190421051319-9d40249d3c2f h1:AUj1VoZUfhPhOPHULCQQDnGhRelpFWHMLhQVWDsS0v4= -github.com/elazarl/goproxy/ext v0.0.0-20190421051319-9d40249d3c2f/go.mod h1:gNh8nYJoAm43RfaxurUnxr+N1PwuFV3ZMl/efxlIlY8= +github.com/elazarl/goproxy/ext v0.0.0-20190711103511-473e67f1d7d2 h1:dWB6v3RcOy03t/bUadywsbyrQwCqZeNIEX6M1OtSZOM= github.com/elazarl/goproxy/ext v0.0.0-20190711103511-473e67f1d7d2/go.mod h1:gNh8nYJoAm43RfaxurUnxr+N1PwuFV3ZMl/efxlIlY8= github.com/emicklei/go-restful v0.0.0-20170410110728-ff4f55a20633/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs= github.com/emicklei/go-restful v2.9.5+incompatible/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs= @@ -600,7 +587,6 @@ github.com/googleapis/gnostic v0.4.1 h1:DLJCy1n/vrD4HPjOvYcT8aYQXpPIzoRZONaYwyyc github.com/googleapis/gnostic v0.4.1/go.mod h1:LRhVm6pbyptWbWbuZ38d1eyptfvIytN3ir6b65WBswg= github.com/googleinterns/cloud-operations-api-mock v0.0.0-20200709193332-a1e58c29bdd3 h1:eHv/jVY/JNop1xg2J9cBb4EzyMpWZoNCP1BslSAIkOI= github.com/googleinterns/cloud-operations-api-mock v0.0.0-20200709193332-a1e58c29bdd3/go.mod h1:h/KNeRx7oYU4SpA4SoY7W2/NxDKEEVuwA6j9A27L4OI= -github.com/gookit/color v1.3.6 h1:Rgbazd4JO5AgSTVGS3o0nvaSdwdrS8bzvIXwtK6OiMk= github.com/gookit/color v1.3.6/go.mod h1:R3ogXq2B9rTbXoSHJ1HyUVAZ3poOJHpd9nQmyGZsfvQ= github.com/gookit/color v1.4.2 h1:tXy44JFSFkKnELV6WaMo/lLfu/meqITX3iAV52do7lk= github.com/gookit/color v1.4.2/go.mod h1:fqRyamkC1W8uxl+lxCQxOT09l/vYfZ+QeiX3rKQHCoQ= @@ -803,7 +789,6 @@ github.com/mattn/go-runewidth v0.0.2/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzp github.com/mattn/go-runewidth v0.0.4/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= github.com/mattn/go-runewidth v0.0.7/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI= github.com/mattn/go-runewidth v0.0.9/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI= -github.com/mattn/go-runewidth v0.0.12 h1:Y41i/hVW3Pgwr8gV+J23B9YEY0zxjptBuCWEaxmAOow= github.com/mattn/go-runewidth v0.0.12/go.mod h1:RAqKPSqVFrSLVXbA8x7dzmKdmGzieGRCM46jaSJTDAk= github.com/mattn/go-runewidth v0.0.13 h1:lTGmDsbAYt5DmK6OnoV7EuIF1wEIFAcxld6ypU4OSgU= github.com/mattn/go-runewidth v0.0.13/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w= @@ -1126,7 +1111,6 @@ github.com/xeipuuv/gojsonschema v0.0.0-20180618132009-1d523034197f h1:mvXjJIHRZy github.com/xeipuuv/gojsonschema v0.0.0-20180618132009-1d523034197f/go.mod h1:5yf86TLmAcydyeJq5YvxkGPE2fm/u4myDekKRoLuqhs= github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= github.com/xlab/treeprint v0.0.0-20181112141820-a009c3971eca/go.mod h1:ce1O1j6UtZfjr22oyGxGLbauSBp2YVXpARAosm7dHBg= -github.com/xo/terminfo v0.0.0-20200218205459-454e5b68f9e8 h1:woqigIZtZUZxws1zZA99nAvuz2mQrxtWsuZSR9c8I/A= github.com/xo/terminfo v0.0.0-20200218205459-454e5b68f9e8/go.mod h1:6Yhx5ZJl5942QrNRWLwITArVT9okUXc5c3brgWJMoDc= github.com/xo/terminfo v0.0.0-20210125001918-ca9a967f8778 h1:QldyIu/L63oPpyvQmHgvgickp1Yw510KJOqX7H24mg8= github.com/xo/terminfo v0.0.0-20210125001918-ca9a967f8778/go.mod h1:2MuV+tbUrU1zIOPMxZ5EncGwgmMJsa+9ucAQZXxsObs= @@ -1452,7 +1436,6 @@ golang.org/x/sys v0.0.0-20210426230700-d19ff857e887/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210514084401-e8d321eab015/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210603125802-9665404d3644/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20210616094352-59db8d763f22 h1:RqytpXGR1iVNX7psjB3ff8y7sNFinVFvkx1c8SjBkio= golang.org/x/sys v0.0.0-20210616094352-59db8d763f22/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210629170331-7dc0b73dc9fb h1:sgcyLNYiHqEd8eFVh0PflG5ABPTGcPSJacD3s19RTcY= golang.org/x/sys v0.0.0-20210629170331-7dc0b73dc9fb/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= diff --git a/test/integration/driver_install_or_update_test.go b/test/integration/driver_install_or_update_test.go index e5b3d53ba493..4742b0537198 100644 --- a/test/integration/driver_install_or_update_test.go +++ b/test/integration/driver_install_or_update_test.go @@ -25,7 +25,7 @@ import ( "runtime" "testing" - "github.com/Azure/azure-sdk-for-go/tools/internal/ioext" + "github.com/Azure/azure-sdk-for-go/tools/apidiff/ioext" "github.com/blang/semver/v4" "k8s.io/minikube/pkg/minikube/driver/auxdriver" @@ -290,6 +290,7 @@ func prepareTempMinikubeDirWithHyperkitDriver(name, driver string) (string, stri } // copy driver to temp bin testDriverPath := filepath.Join(mkBinDir, "docker-machine-driver-hyperkit") + if err = ioext.CopyFile(testDataDriverPath, testDriverPath, false); err != nil { return "", "", fmt.Errorf("failed to setup current hyperkit driver: %v", err) } From 861d81b33575cee42c8d7fda677ee3bce68d9a55 Mon Sep 17 00:00:00 2001 From: Medya Gh Date: Tue, 29 Jun 2021 16:07:37 -0400 Subject: [PATCH 059/111] remove dep to azure lib --- go.mod | 1 - go.sum | 2 - .../driver_install_or_update_test.go | 6 +- test/integration/helpers_test.go | 113 ++++++++++++++++++ 4 files changed, 115 insertions(+), 7 deletions(-) diff --git a/go.mod b/go.mod index b6fdbb9ebe46..9159b9425553 100644 --- a/go.mod +++ b/go.mod @@ -5,7 +5,6 @@ go 1.16 require ( cloud.google.com/go/storage v1.15.0 contrib.go.opencensus.io/exporter/stackdriver v0.12.1 - github.com/Azure/azure-sdk-for-go v43.3.0+incompatible github.com/Delta456/box-cli-maker/v2 v2.2.1 github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/trace v0.16.0 github.com/Microsoft/hcsshim v0.8.17 // indirect diff --git a/go.sum b/go.sum index 2108c2a16f11..7dfc4df2224d 100644 --- a/go.sum +++ b/go.sum @@ -53,8 +53,6 @@ dmitri.shuralyov.com/gpu/mtl v0.0.0-20201218220906-28db891af037/go.mod h1:H6x//7 gioui.org v0.0.0-20210308172011-57750fc8a0a6/go.mod h1:RSH6KIUZ0p2xy5zHDxgAM4zumjgTw83q2ge/PI+yyw8= github.com/Azure/azure-sdk-for-go v16.2.1+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc= github.com/Azure/azure-sdk-for-go v43.0.0+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc= -github.com/Azure/azure-sdk-for-go v43.3.0+incompatible h1:o0G4JAsOzeVJEwU0Ud9bh+lUHPUc0GkFENJ02dk51Uo= -github.com/Azure/azure-sdk-for-go v43.3.0+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc= github.com/Azure/go-ansiterm v0.0.0-20170929234023-d6e3b3328b78 h1:w+iIsaOQNcT7OZ575w+acHgRric5iCyQh+xv+KJ4HB8= github.com/Azure/go-ansiterm v0.0.0-20170929234023-d6e3b3328b78/go.mod h1:LmzpDX56iTiv29bbRTIsUNlaFfuhWRQBWjQdVyAevI8= github.com/Azure/go-autorest v10.8.1+incompatible/go.mod h1:r+4oMnoxhatjLLJ6zxSWATqVooLgysK6ZNox3g/xq24= diff --git a/test/integration/driver_install_or_update_test.go b/test/integration/driver_install_or_update_test.go index 4742b0537198..24d16623489c 100644 --- a/test/integration/driver_install_or_update_test.go +++ b/test/integration/driver_install_or_update_test.go @@ -25,7 +25,6 @@ import ( "runtime" "testing" - "github.com/Azure/azure-sdk-for-go/tools/apidiff/ioext" "github.com/blang/semver/v4" "k8s.io/minikube/pkg/minikube/driver/auxdriver" @@ -290,13 +289,12 @@ func prepareTempMinikubeDirWithHyperkitDriver(name, driver string) (string, stri } // copy driver to temp bin testDriverPath := filepath.Join(mkBinDir, "docker-machine-driver-hyperkit") - - if err = ioext.CopyFile(testDataDriverPath, testDriverPath, false); err != nil { + if err = CopyFile(testDataDriverPath, testDriverPath, false); err != nil { return "", "", fmt.Errorf("failed to setup current hyperkit driver: %v", err) } // try to copy cached files to the temp minikube folder to avoid downloading of iso and preloads - _ = ioext.CopyDir(filepath.Join(localpath.MakeMiniPath("cache")), filepath.Join(mkDir, "cache")) + _ = CopyDir(filepath.Join(localpath.MakeMiniPath("cache")), filepath.Join(mkDir, "cache")) // change permission to allow driver to be executable if err = os.Chmod(testDriverPath, 0755); err != nil { diff --git a/test/integration/helpers_test.go b/test/integration/helpers_test.go index da436f79cbfb..5e1fa1fc9e0b 100644 --- a/test/integration/helpers_test.go +++ b/test/integration/helpers_test.go @@ -26,8 +26,11 @@ import ( "bufio" "bytes" "context" + "errors" "fmt" + "io" "io/ioutil" + "os" "os/exec" "path/filepath" "strconv" @@ -557,3 +560,113 @@ func testCpCmd(ctx context.Context, t *testing.T, profile string, node string) { t.Errorf("/testdata/cp-test.txt content mismatch (-want +got):\n%s", diff) } } + +// CopyFile copies the specified source file to the specified destination file. +// Specify true for overwrite to overwrite the destination file if it already exits. +func CopyFile(src, dst string, overwrite bool) error { + srcFile, err := os.Open(src) + if err != nil { + return err + } + defer srcFile.Close() + + if !overwrite { + // check if the file exists, if it does then return an error + _, err := os.Stat(dst) + if err != nil && !os.IsNotExist(err) { + return errors.New("won't overwrite destination file") + } + } + + dstFile, err := os.Create(dst) + if err != nil { + return err + } + defer dstFile.Close() + + _, err = io.Copy(dstFile, srcFile) + if err != nil { + return err + } + + // flush the buffer + err = dstFile.Sync() + if err != nil { + return err + } + + // copy file permissions + srcInfo, err := os.Stat(src) + if err != nil { + return err + } + + err = os.Chmod(dst, srcInfo.Mode()) + if err != nil { + return err + } + + return nil +} + +// CopyDir recursively copies the specified source directory tree to the +// specified destination. The destination directory must not exist. Any +// symlinks under src are ignored. +func CopyDir(src, dst string) error { + src = filepath.Clean(src) + dst = filepath.Clean(dst) + + // verify that src is a directory + srcInfo, err := os.Stat(src) + if err != nil { + return err + } + if !srcInfo.IsDir() { + return fmt.Errorf("source is not a directory") + } + + // now verify that dst doesn't exist + _, err = os.Stat(dst) + if err != nil && !os.IsNotExist(err) { + return err + } + if err == nil { + return fmt.Errorf("destination directory already exists") + } + + err = os.MkdirAll(dst, srcInfo.Mode()) + if err != nil { + return err + } + + // get the collection of directory entries under src. + // for each entry build its corresponding path under dst. + entries, err := ioutil.ReadDir(src) + if err != nil { + return err + } + + for _, entry := range entries { + // skip symlinks + if entry.Mode()&os.ModeSymlink != 0 { + continue + } + + srcPath := filepath.Join(src, entry.Name()) + dstPath := filepath.Join(dst, entry.Name()) + + if entry.IsDir() { + err = CopyDir(srcPath, dstPath) + if err != nil { + return err + } + } else { + err = CopyFile(srcPath, dstPath, true) + if err != nil { + return err + } + } + } + + return nil +} From f2c64cdb2b5303ddd5c99b3b92744a2d8807aeaa Mon Sep 17 00:00:00 2001 From: Andriy Dzikh Date: Tue, 29 Jun 2021 13:32:54 -0700 Subject: [PATCH 060/111] Add support for syncing Docker_Windows. --- .../jenkins/windows_integration_test_docker.ps1 | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/hack/jenkins/windows_integration_test_docker.ps1 b/hack/jenkins/windows_integration_test_docker.ps1 index 244279a2362c..44c00eae3c8e 100644 --- a/hack/jenkins/windows_integration_test_docker.ps1 +++ b/hack/jenkins/windows_integration_test_docker.ps1 @@ -39,6 +39,15 @@ If ($lastexitcode -gt 0) { Exit $lastexitcode } +$started_environments="gs://$gcs_bucket/started_environments_$env:ROOT_JOB_ID.txt" +$append_tmp="gs://$gcs_bucket/tmp$(-join ((65..90) + (97..122) | Get-Random -Count 10 | % {[char]$_}))" +# Ensure started_environments exists (but don't clobber) +$null | gsutil cp -n - "$started_environments" +# Copy the Docker_Windows to append_tmp +echo "Docker_Windows" | gsutil cp - "$append_tmp" +gsutil compose "$started_environments" "$append_tmp" "$started_environments" +gsutil rm "$append_tmp" + # Remove unused images and containers docker system prune --all --force @@ -89,6 +98,14 @@ gsutil -qm cp testout.json gs://$gcs_bucket/Docker_Windows.json gsutil -qm cp testout.html gs://$gcs_bucket/Docker_Windows.html gsutil -qm cp testout_summary.json gs://$gcs_bucket/Docker_Windows_summary.json +$finished_environments="gs://$gcs_bucket/finished_environments_$env:ROOT_JOB_ID.txt" +$append_tmp="gs://$gcs_bucket/tmp$(-join ((65..90) + (97..122) | Get-Random -Count 10 | % {[char]$_}))" +# Ensure finished_environments exists (but don't clobber) +$null | gsutil cp -n - "$finished_environments" +# Copy the Docker_Windows to append_tmp +echo "Docker_Windows" | gsutil cp - "$append_tmp" +gsutil compose "$started_environments" "$append_tmp" "$started_environments" +gsutil rm "$append_tmp" # Update the PR with the new info $json = "{`"state`": `"$env:status`", `"description`": `"Jenkins: $description`", `"target_url`": `"$env:target_url`", `"context`": `"Docker_Windows`"}" From 108db820fe702ab18c2516c05072832f64d8fccb Mon Sep 17 00:00:00 2001 From: Sharif Elgamal Date: Tue, 29 Jun 2021 13:34:04 -0700 Subject: [PATCH 061/111] try committing from actions directly --- .github/workflows/docs.yml | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index 85e94fa74581..99a453e0fdd6 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -12,6 +12,8 @@ env: jobs: generate-docs: runs-on: ubuntu-18.04 + env: + BRANCH: gendocs$(date +%s%N) steps: - uses: actions/checkout@v2 - uses: actions/setup-go@v2 @@ -20,4 +22,15 @@ jobs: stable: true - name: gendocs run: | - ./hack/generate_docs.sh ${{ secrets.MINIKUBE_BOT_PAT }} + make generate-docs + - name: Create PR + uses: peter-evans/create-pull-request@v3 + with: + token: ${{ secrets.MINIKUBE_BOT_PAT }} + commit-message: Update auto-generated docs and translations + committer: minikube-bot + author: minikube-bot + branch: gendocs + delete-branch: true + title: 'Update auto-generated docs and translations' + body: 'Committing changes resulting from `make generate-docs`' From 667178e223764f61b609522147af3eaaea1aef3e Mon Sep 17 00:00:00 2001 From: Sharif Elgamal Date: Tue, 29 Jun 2021 13:41:23 -0700 Subject: [PATCH 062/111] set base branch --- .github/workflows/docs.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index 99a453e0fdd6..27b0a7cdb8c0 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -31,6 +31,7 @@ jobs: committer: minikube-bot author: minikube-bot branch: gendocs + base: master delete-branch: true title: 'Update auto-generated docs and translations' body: 'Committing changes resulting from `make generate-docs`' From 02899b2b51f9d94ea3b735152d8b9bc361c5c7b3 Mon Sep 17 00:00:00 2001 From: Ilya Zuyev Date: Tue, 29 Jun 2021 13:45:01 -0700 Subject: [PATCH 063/111] reword changes --- CHANGELOG.md | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c4e993da1161..8defdc628cc1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,27 +4,26 @@ Features: -* Add auto pause on arm64 image [#11743](https://github.com/kubernetes/minikube/pull/11743) -* Addon list: Add info on each addon's maintainer [#11753](https://github.com/kubernetes/minikube/pull/11753) -* Add ability to pass 'max' value to memory and cpus flags [#11692](https://github.com/kubernetes/minikube/pull/11692) +* auto-pause addon: add support for arm64 [#11743](https://github.com/kubernetes/minikube/pull/11743) +* addon list: add info on each addon's maintainer [#11753](https://github.com/kubernetes/minikube/pull/11753) +* add ability to pass max to --cpu and --memory flags [#11692](https://github.com/kubernetes/minikube/pull/11692) Bugs: * Fix --base-image caching for images specified by name:tag [#11603](https://github.com/kubernetes/minikube/pull/11603) * Fix embed-certs global config [#11576](https://github.com/kubernetes/minikube/pull/11576) * Fix a download link to use arm64 instead of amd64 [#11653](https://github.com/kubernetes/minikube/pull/11653) -* Move daemon cache check before file cache check [#11690](https://github.com/kubernetes/minikube/pull/11690) -* Move node config deletion out of drainNode and into Delete [#11731](https://github.com/kubernetes/minikube/pull/11731) +* fix downloading duplicate base image [#11690](https://github.com/kubernetes/minikube/pull/11690) +* fix multi-node loosing track of nodes after second restart [#11731](https://github.com/kubernetes/minikube/pull/11731) * gcp-auth: do not override existing environment variables in pods [#11665](https://github.com/kubernetes/minikube/pull/11665) Minor improvements: * Allow running amd64 binary on M1 [#11674](https://github.com/kubernetes/minikube/pull/11674) -* Upgrade containerd config [#11632](https://github.com/kubernetes/minikube/pull/11632) +* improve containerd experience on cgroup v2 [#11632](https://github.com/kubernetes/minikube/pull/11632) * Improve French locale [#11728](https://github.com/kubernetes/minikube/pull/11728) -* Do not return an error from Systemd.ForceStop(svc) if svc is already stopped [#11667](https://github.com/kubernetes/minikube/pull/11667) -* Let windows users use the LC_ALL env var to set locale [#11721](https://github.com/kubernetes/minikube/pull/11721) -* Remove unused config options [#11668](https://github.com/kubernetes/minikube/pull/11668) +* Fix UI error for stoppping systemd service [#11667](https://github.com/kubernetes/minikube/pull/11667) +* international languages: allow using LC_ALL env to set local language for windows [#11721](https://github.com/kubernetes/minikube/pull/11721) * Fix intersected log boxes when running with --alsologtostderr [#11694](https://github.com/kubernetes/minikube/pull/11694) * Change registery_mirror to registery-mirror [#11678](https://github.com/kubernetes/minikube/pull/11678) From dc985ef282c244df710788a6b37f672df9e06ed7 Mon Sep 17 00:00:00 2001 From: Sharif Elgamal Date: Tue, 29 Jun 2021 13:52:45 -0700 Subject: [PATCH 064/111] push to fork --- .github/workflows/docs.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index 27b0a7cdb8c0..1c878690eab5 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -31,6 +31,7 @@ jobs: committer: minikube-bot author: minikube-bot branch: gendocs + push-to-fork: minikube-bot/minikube base: master delete-branch: true title: 'Update auto-generated docs and translations' From 7fabb90eaf077470829f99dc80be93eea48c20a5 Mon Sep 17 00:00:00 2001 From: Sharif Elgamal Date: Tue, 29 Jun 2021 13:56:33 -0700 Subject: [PATCH 065/111] remove old script --- hack/generate_docs.sh | 53 ------------------------------------------- 1 file changed, 53 deletions(-) delete mode 100755 hack/generate_docs.sh diff --git a/hack/generate_docs.sh b/hack/generate_docs.sh deleted file mode 100755 index f83dc0d9be3c..000000000000 --- a/hack/generate_docs.sh +++ /dev/null @@ -1,53 +0,0 @@ -#!/bin/bash - -# 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. - -set -x - -if [ "$#" -ne 1 ]; then - # there's no secret and therefore no reason to run this script - exit 0 -fi - -install_gh() { - export access_token="$1" - - # Make sure gh is installed and configured - ./hack/jenkins/installers/check_install_gh.sh -} - -config_git() { - git config user.name "minikube-bot" - git config user.email "minikube-bot@google.com" -} - -make generate-docs - -# If there are changes, open a PR -changes=$(git status --porcelain) -if [ "$changes" != "" ]; then - install_gh $1 - config_git - - branch=gendocs$(date +%s%N) - git checkout -b $branch - - git add . - git commit -m "Update generate-docs" - - git remote add minikube-bot https://minikube-bot:"$1"@github.com/minikube-bot/minikube.git - git push -f minikube-bot $branch - gh pr create --base master --head minikube-bot:$branch --title "Update auto-generated docs and translations" --body "Committing changes resulting from \`make generate-docs\`\n\n${changes}" -fi From 522b8f4012c43abdb13458f36926bd33561913d4 Mon Sep 17 00:00:00 2001 From: Sharif Elgamal Date: Tue, 29 Jun 2021 13:57:16 -0700 Subject: [PATCH 066/111] run on changes to yml file --- .github/workflows/docs.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index 1c878690eab5..406205d95b8c 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -5,7 +5,7 @@ on: - master pull_request: paths: - - "hack/generate_docs.sh" + - ".github/workflows/docs.yml" env: GOPROXY: https://proxy.golang.org GO_VERSION: 1.16.4 From 71682703d8fc6f503db095489b426ec7e5ba8cab Mon Sep 17 00:00:00 2001 From: Sharif Elgamal Date: Tue, 29 Jun 2021 13:58:18 -0700 Subject: [PATCH 067/111] remove unused env --- .github/workflows/docs.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index 406205d95b8c..d62dc25463de 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -12,8 +12,6 @@ env: jobs: generate-docs: runs-on: ubuntu-18.04 - env: - BRANCH: gendocs$(date +%s%N) steps: - uses: actions/checkout@v2 - uses: actions/setup-go@v2 From 6cb587a8736fe4fb414867df984d0db50cbbc9a6 Mon Sep 17 00:00:00 2001 From: Ilya Zuyev Date: Tue, 29 Jun 2021 14:03:39 -0700 Subject: [PATCH 068/111] set `SYSTEMCTL_SKIP_SYSV` for "systemctl disable --now" to suppress attempts to interract with sysv scripts --- pkg/minikube/sysinit/systemd.go | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/pkg/minikube/sysinit/systemd.go b/pkg/minikube/sysinit/systemd.go index c452bba729d3..54d4084d773d 100644 --- a/pkg/minikube/sysinit/systemd.go +++ b/pkg/minikube/sysinit/systemd.go @@ -59,7 +59,10 @@ func (s *Systemd) Disable(svc string) error { // DisableNow disables a service and stops it too (not waiting for next restart) func (s *Systemd) DisableNow(svc string) error { - _, err := s.r.RunCmd(exec.Command("sudo", "systemctl", "disable", "--now", svc)) + cmd := exec.Command("sudo", "systemctl", "disable", "--now", svc) + // See https://github.com/kubernetes/minikube/issues/11615#issuecomment-861794258 + cmd.Env = append(cmd.Env, "SYSTEMCTL_SKIP_SYSV=1") + _, err := s.r.RunCmd(cmd) return err } From efb79192b41b7cb0f97973a3768f08ebf51e1d8e Mon Sep 17 00:00:00 2001 From: Ilya Zuyev Date: Tue, 29 Jun 2021 14:29:43 -0700 Subject: [PATCH 069/111] fix changelog --- CHANGELOG.md | 1 - 1 file changed, 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8defdc628cc1..1ad53cc57600 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -24,7 +24,6 @@ Minor improvements: * Improve French locale [#11728](https://github.com/kubernetes/minikube/pull/11728) * Fix UI error for stoppping systemd service [#11667](https://github.com/kubernetes/minikube/pull/11667) * international languages: allow using LC_ALL env to set local language for windows [#11721](https://github.com/kubernetes/minikube/pull/11721) -* Fix intersected log boxes when running with --alsologtostderr [#11694](https://github.com/kubernetes/minikube/pull/11694) * Change registery_mirror to registery-mirror [#11678](https://github.com/kubernetes/minikube/pull/11678) Version Upgrades: From 806b59e5b19113f7e8f1dbaa1437ce3476119deb Mon Sep 17 00:00:00 2001 From: Ilya Zuyev Date: Tue, 29 Jun 2021 14:34:29 -0700 Subject: [PATCH 070/111] fix changelog --- CHANGELOG.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1ad53cc57600..d76cf2cf4cff 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,12 +5,12 @@ Features: * auto-pause addon: add support for arm64 [#11743](https://github.com/kubernetes/minikube/pull/11743) -* addon list: add info on each addon's maintainer [#11753](https://github.com/kubernetes/minikube/pull/11753) -* add ability to pass max to --cpu and --memory flags [#11692](https://github.com/kubernetes/minikube/pull/11692) +* `addon list`: add info on each addon's maintainer [#11753](https://github.com/kubernetes/minikube/pull/11753) +* add ability to pass max to `--cpu` and `--memory` flags [#11692](https://github.com/kubernetes/minikube/pull/11692) Bugs: -* Fix --base-image caching for images specified by name:tag [#11603](https://github.com/kubernetes/minikube/pull/11603) +* Fix `--base-image` caching for images specified by name:tag [#11603](https://github.com/kubernetes/minikube/pull/11603) * Fix embed-certs global config [#11576](https://github.com/kubernetes/minikube/pull/11576) * Fix a download link to use arm64 instead of amd64 [#11653](https://github.com/kubernetes/minikube/pull/11653) * fix downloading duplicate base image [#11690](https://github.com/kubernetes/minikube/pull/11690) From e3883d0b564a383f094b9d8bab98fcc984d99f03 Mon Sep 17 00:00:00 2001 From: Andriy Dzikh Date: Tue, 29 Jun 2021 14:47:13 -0700 Subject: [PATCH 071/111] Fix writing wrong files, and added better comments. --- hack/jenkins/common.sh | 9 ++++----- hack/jenkins/upload_integration_report.sh | 6 +++--- hack/jenkins/windows_integration_test_docker.ps1 | 4 ++-- 3 files changed, 9 insertions(+), 10 deletions(-) diff --git a/hack/jenkins/common.sh b/hack/jenkins/common.sh index c36162563cd9..0efd10423f10 100755 --- a/hack/jenkins/common.sh +++ b/hack/jenkins/common.sh @@ -143,7 +143,7 @@ fi export PATH="$(pwd)/out/":$PATH STARTED_ENVIRONMENTS="gs://minikube-builds/logs/${MINIKUBE_LOCATION}/${COMMIT:0:7}/started_environments_${ROOT_JOB_ID}.txt" -# Ensure STARTED_ENVIRONMENTS exists (but don't clobber) +# Ensure STARTED_ENVIRONMENTS exists so we can append (but don't erase any existing entries in STARTED_ENVIRONMENTS) < /dev/null gsutil cp -n - "${STARTED_ENVIRONMENTS}" # Copy the job name to APPEND_TMP APPEND_TMP="gs://minikube-builds/logs/${MINIKUBE_LOCATION}/${COMMIT:0:7}/$(basename $(mktemp))" @@ -454,14 +454,13 @@ if [ -z "${EXTERNAL}" ]; then gsutil -qm cp "${SUMMARY_OUT}" "gs://${JOB_GCS_BUCKET}_summary.json" || true FINISHED_ENVIRONMENTS="gs://minikube-builds/logs/${MINIKUBE_LOCATION}/${COMMIT:0:7}/finished_environments_${ROOT_JOB_ID}.txt" - # Ensure STARTED_ENVIRONMENTS exists (but don't clobber) - < /dev/null gsutil cp -n - "${STARTED_ENVIRONMENTS}" + # Ensure FINISHED_ENVIRONMENTS exists so we can append (but don't erase any existing entries in FINISHED_ENVIRONMENTS) + < /dev/null gsutil cp -n - "${FINISHED_ENVIRONMENTS}" # Copy the job name to APPEND_TMP APPEND_TMP="gs://minikube-builds/logs/${MINIKUBE_LOCATION}/${COMMIT:0:7}/$(basename $(mktemp))" echo "${JOB_NAME}"\ | gsutil cp - "${APPEND_TMP}" - # Append - gsutil compose "${STARTED_ENVIRONMENTS}" "${APPEND_TMP}" "${STARTED_ENVIRONMENTS}" + gsutil compose "${FINISHED_ENVIRONMENTS}" "${APPEND_TMP}" "${FINISHED_ENVIRONMENTS}" gsutil rm "${APPEND_TMP}" else # Otherwise, put the results in a predictable spot so the upload job can find them diff --git a/hack/jenkins/upload_integration_report.sh b/hack/jenkins/upload_integration_report.sh index 960a6a4da738..7d788e7ff731 100644 --- a/hack/jenkins/upload_integration_report.sh +++ b/hack/jenkins/upload_integration_report.sh @@ -49,12 +49,12 @@ echo ">> uploading ${SUMMARY_OUT}" gsutil -qm cp "${SUMMARY_OUT}" "gs://${JOB_GCS_BUCKET}_summary.json" || true FINISHED_ENVIRONMENTS="gs://minikube-builds/logs/${MINIKUBE_LOCATION}/${COMMIT:0:7}/finished_environments_${ROOT_JOB_ID}.txt" -# Ensure STARTED_ENVIRONMENTS exists (but don't clobber) -< /dev/null gsutil cp -n - "${STARTED_ENVIRONMENTS}" +# Ensure FINISHED_ENVIRONMENTS exists so we can append (but don't erase any existing entries in FINISHED_ENVIRONMENTS) +< /dev/null gsutil cp -n - "${FINISHED_ENVIRONMENTS}" # Copy the job name to APPEND_TMP APPEND_TMP="gs://minikube-builds/logs/${MINIKUBE_LOCATION}/${COMMIT:0:7}/$(basename $(mktemp))" echo "${JOB_NAME}"\ | gsutil cp - "${APPEND_TMP}" # Append -gsutil compose "${STARTED_ENVIRONMENTS}" "${APPEND_TMP}" "${STARTED_ENVIRONMENTS}" +gsutil compose "${FINISHED_ENVIRONMENTS}" "${APPEND_TMP}" "${FINISHED_ENVIRONMENTS}" gsutil rm "${APPEND_TMP}" diff --git a/hack/jenkins/windows_integration_test_docker.ps1 b/hack/jenkins/windows_integration_test_docker.ps1 index 44c00eae3c8e..8fdf4a3a8d2b 100644 --- a/hack/jenkins/windows_integration_test_docker.ps1 +++ b/hack/jenkins/windows_integration_test_docker.ps1 @@ -41,7 +41,7 @@ If ($lastexitcode -gt 0) { $started_environments="gs://$gcs_bucket/started_environments_$env:ROOT_JOB_ID.txt" $append_tmp="gs://$gcs_bucket/tmp$(-join ((65..90) + (97..122) | Get-Random -Count 10 | % {[char]$_}))" -# Ensure started_environments exists (but don't clobber) +# Ensure started_environments exists so we can append (but don't erase any existing entries in started_environments) $null | gsutil cp -n - "$started_environments" # Copy the Docker_Windows to append_tmp echo "Docker_Windows" | gsutil cp - "$append_tmp" @@ -100,7 +100,7 @@ gsutil -qm cp testout_summary.json gs://$gcs_bucket/Docker_Windows_summary.json $finished_environments="gs://$gcs_bucket/finished_environments_$env:ROOT_JOB_ID.txt" $append_tmp="gs://$gcs_bucket/tmp$(-join ((65..90) + (97..122) | Get-Random -Count 10 | % {[char]$_}))" -# Ensure finished_environments exists (but don't clobber) +# Ensure finished_environments exists so we can append (but don't erase any existing entries in finished_environments) $null | gsutil cp -n - "$finished_environments" # Copy the Docker_Windows to append_tmp echo "Docker_Windows" | gsutil cp - "$append_tmp" From 7ea94ed00a8a36358850977f1f8e6ea34beda54a Mon Sep 17 00:00:00 2001 From: Andriy Dzikh Date: Tue, 29 Jun 2021 14:51:31 -0700 Subject: [PATCH 072/111] Add license and comment describing what the script does. --- hack/jenkins/test-flake-chart/sync_tests.sh | 24 +++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/hack/jenkins/test-flake-chart/sync_tests.sh b/hack/jenkins/test-flake-chart/sync_tests.sh index 86b59949675d..94e303725589 100644 --- a/hack/jenkins/test-flake-chart/sync_tests.sh +++ b/hack/jenkins/test-flake-chart/sync_tests.sh @@ -1,5 +1,29 @@ #!/bin/bash +# 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. + +# This script is called once per integration test. If all integration tests that +# have registered themselves in the started environment list have also +# registered themselves in the finished environment list, this script reports +# flakes or uploads flakes to flake data. +# +# This script expects the following env variables: +# MINIKUBE_LOCATION: The Github location being run on (e.g. master, 11000). +# COMMIT: Commit hash the tests ran on. +# ROOT_JOB_ID: Job ID to use for synchronization. + set -o pipefail BUCKET_PATH="gs://minikube-builds/logs/${MINIKUBE_LOCATION}/${COMMIT:0:7}" From 5ce20a8397c4e61090460ce04fd605d741c3a03a Mon Sep 17 00:00:00 2001 From: Sharif Elgamal Date: Tue, 29 Jun 2021 14:57:50 -0700 Subject: [PATCH 073/111] remove PR condition --- .github/workflows/docs.yml | 3 --- 1 file changed, 3 deletions(-) diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index d62dc25463de..9efacd1f6534 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -3,9 +3,6 @@ on: push: branches: - master - pull_request: - paths: - - ".github/workflows/docs.yml" env: GOPROXY: https://proxy.golang.org GO_VERSION: 1.16.4 From 9626f1320bd5e947221e4dbfc5c5cbc5cc78469b Mon Sep 17 00:00:00 2001 From: minikube-bot Date: Tue, 29 Jun 2021 22:12:18 +0000 Subject: [PATCH 074/111] Update auto-generated docs and translations --- translations/fr.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/translations/fr.json b/translations/fr.json index d5b484734497..a3165acb282f 100644 --- a/translations/fr.json +++ b/translations/fr.json @@ -949,4 +949,4 @@ "{{.profile}} profile is not valid: {{.err}}": "Le profil {{.profile}} n'est pas valide : {{.err}}", "{{.type}} is not yet a supported filesystem. We will try anyways!": "{{.type}} n'est pas encore un système de fichiers pris en charge. Nous essaierons quand même !", "{{.url}} is not accessible: {{.error}}": "{{.url}} n'est pas accessible : {{.error}}" -} +} \ No newline at end of file From 98e7796af7d6e5d3c26549cab9204a10f0c81f3f Mon Sep 17 00:00:00 2001 From: minikube-bot Date: Tue, 29 Jun 2021 15:43:22 -0700 Subject: [PATCH 075/111] Update releases-beta.json to include v1.22.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 8570f295c666..e46b6fbc0369 100644 --- a/deploy/minikube/releases-beta.json +++ b/deploy/minikube/releases-beta.json @@ -1,5 +1,13 @@ [ { + "name": "v1.22.0-beta.0", + "checksums": { + "darwin": "1ec06c37be5c6c79a7255da09ff83490a44d1e8cd2b2f45e4b489edfdeacde94", + "linux": "c9d9ac605a94748379188cced6b832037b8069441744b889214990c4ca3485a5", + "windows": "68fb9c24f0ea55b985856d0cce9fa0c288b8a4d7e13519d6f0790038165d7ef1" + } + }, + { "name": "v1.21.0-beta.0", "checksums": { "darwin": "69ab001eb4984d09ed731d5ac92afd8310e5c7672c2275b39d7a4c7e2dcfb4c6", From ebf3c9d572e252f12f9318b6adb6c7604290afa3 Mon Sep 17 00:00:00 2001 From: Steven Powell Date: Tue, 29 Jun 2021 15:58:52 -0700 Subject: [PATCH 076/111] fixing previously renamed func --- deploy/minikube/release_sanity_test.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/deploy/minikube/release_sanity_test.go b/deploy/minikube/release_sanity_test.go index 07eba31e8d74..9a09873e0239 100644 --- a/deploy/minikube/release_sanity_test.go +++ b/deploy/minikube/release_sanity_test.go @@ -48,7 +48,7 @@ func getSHAFromURL(url string) (string, error) { } func TestReleasesJSON(t *testing.T) { - releases, err := notify.GetAllVersionsFromURL(notify.GithubMinikubeReleasesURL) + releases, err := notify.AllVersionsFromURL(notify.GithubMinikubeReleasesURL) if err != nil { t.Fatalf("Error getting releases.json: %v", err) } From 045411ea5723542f0df081fc2615e46a5ccd90f6 Mon Sep 17 00:00:00 2001 From: Sharif Elgamal Date: Tue, 29 Jun 2021 16:39:41 -0700 Subject: [PATCH 077/111] hardcode to 2 --- test/integration/main_test.go | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/test/integration/main_test.go b/test/integration/main_test.go index 50e4355f0141..c259933befa2 100644 --- a/test/integration/main_test.go +++ b/test/integration/main_test.go @@ -98,10 +98,15 @@ func setMaxParallelism() { limit := int(math.Floor(float64(maxp) / 1.75)) // Windows and MacOS tests were failing from timeouts due to too much parallelism - if runtime.GOOS == "windows" || runtime.GOOS == "darwin" { + if runtime.GOOS == "windows" { limit /= 2 } + // Hardcode limit to 2 for macOS + if runtime.GOOS == "darwin" { + limit = 2 + } + fmt.Fprintf(os.Stderr, "Found %d cores, limiting parallelism with --test.parallel=%d\n", maxp, limit) if err := flag.Set("test.parallel", strconv.Itoa(limit)); err != nil { fmt.Fprintf(os.Stderr, "Unable to set test.parallel: %v\n", err) From f0cfebce80bd2bbfc9fe098d639b3c2574bb33bc Mon Sep 17 00:00:00 2001 From: Sharif Elgamal Date: Tue, 29 Jun 2021 17:10:18 -0700 Subject: [PATCH 078/111] only run gendocs workflow if there are changes --- .github/workflows/docs.yml | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index 9efacd1f6534..3a864ace56c2 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -15,10 +15,13 @@ jobs: with: go-version: ${{env.GO_VERSION}} stable: true - - name: gendocs + - name: Generate Docs + id: gendocs run: | make generate-docs + echo "::set-output name=changes::$(git status --porcelain)" - name: Create PR + if: ${{ step.gendocs.outputs.changes != '' }} uses: peter-evans/create-pull-request@v3 with: token: ${{ secrets.MINIKUBE_BOT_PAT }} @@ -30,4 +33,4 @@ jobs: base: master delete-branch: true title: 'Update auto-generated docs and translations' - body: 'Committing changes resulting from `make generate-docs`' + body: 'Committing changes resulting from `make generate-docs`\n\nAutogenerated by the generate-docs github action workflow.\n\n${{ step.gendocs.outputs.changes }}' From 237b2a6ae2ea510c23414711b86eb12fad82e0b2 Mon Sep 17 00:00:00 2001 From: Sharif Elgamal Date: Tue, 29 Jun 2021 17:42:30 -0700 Subject: [PATCH 079/111] fix gendocs workflow syntax --- .github/workflows/docs.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index 3a864ace56c2..1d14b144cbcf 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -21,7 +21,7 @@ jobs: make generate-docs echo "::set-output name=changes::$(git status --porcelain)" - name: Create PR - if: ${{ step.gendocs.outputs.changes != '' }} + if: ${{ steps.gendocs.outputs.changes != '' }} uses: peter-evans/create-pull-request@v3 with: token: ${{ secrets.MINIKUBE_BOT_PAT }} @@ -33,4 +33,4 @@ jobs: base: master delete-branch: true title: 'Update auto-generated docs and translations' - body: 'Committing changes resulting from `make generate-docs`\n\nAutogenerated by the generate-docs github action workflow.\n\n${{ step.gendocs.outputs.changes }}' + body: 'Committing changes resulting from `make generate-docs`\n\nAutogenerated by the generate-docs github action workflow.\n\n${{ steps.gendocs.outputs.changes }}' From 6098bd3939eae8a5499f1e2e12198b2ddc248f5c Mon Sep 17 00:00:00 2001 From: Rajwinder Mahal Date: Tue, 29 Jun 2021 19:45:37 -0700 Subject: [PATCH 080/111] Update vmware driver install instructions for Mac --- .../en/docs/drivers/includes/vmware_macos_usage.inc | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/site/content/en/docs/drivers/includes/vmware_macos_usage.inc b/site/content/en/docs/drivers/includes/vmware_macos_usage.inc index 75bc5ecdb3ea..8d13cb2dcedc 100644 --- a/site/content/en/docs/drivers/includes/vmware_macos_usage.inc +++ b/site/content/en/docs/drivers/includes/vmware_macos_usage.inc @@ -14,9 +14,12 @@ Otherwise: ```shell r=https://api.github.com/repos/machine-drivers/docker-machine-driver-vmware -curl -LO $(curl -s $r/releases/latest | grep -o 'http.*darwin_amd64' | head -n1) \ - && install docker-machine-driver-vmware_darwin_amd64 \ - /usr/local/bin/docker-machine-driver-vmware +d=docker-machine-driver-vmware_darwin_amd64 +u=$(curl -s $r/releases/latest | grep -o 'http.*Darwin_amd64.tar.gz' | head -n1) +mkdir $d \ + && (cd $d && curl -L $u > $d.tar.gz && tar -xf $d.tar.gz) \ + && install $d/docker-machine-driver-vmware /usr/local/bin/docker-machine-driver-vmware \ + && rm -rf $d ``` ## Usage From 74ae65214cbc1b7c9ce692508e4427b25f37f26b Mon Sep 17 00:00:00 2001 From: Sharif Elgamal Date: Wed, 30 Jun 2021 09:16:25 -0700 Subject: [PATCH 081/111] change function name --- test/integration/functional_test.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/test/integration/functional_test.go b/test/integration/functional_test.go index 09efc36942a8..2a669b22e926 100644 --- a/test/integration/functional_test.go +++ b/test/integration/functional_test.go @@ -547,7 +547,7 @@ func validateStartWithProxy(ctx context.Context, t *testing.T, profile string) { // only runs on Github Actions for amd64 linux func validateStartWithCustomCerts(ctx context.Context, t *testing.T, profile string) { defer PostMortemLogs(t, profile) - err := startCorpProxy(ctx, t) + err := startProxyWithCustomCerts(ctx, t) if err != nil { t.Fatalf("failed to set up the test proxy: %s", err) } @@ -1753,8 +1753,8 @@ users: } } -// startCorpProxy mimics starting a corp proxy by using mitmproxy and installing its certs -func startCorpProxy(ctx context.Context, t *testing.T) error { +// startProxyWithCustomCerts mimics starts a proxy with custom certs by using mitmproxy and installing its certs +func startProxyWithCustomCerts(ctx context.Context, t *testing.T) error { // Download the mitmproxy bundle for mitmdump _, err := Run(t, exec.CommandContext(ctx, "curl", "-LO", "https://snapshots.mitmproxy.org/6.0.2/mitmproxy-6.0.2-linux.tar.gz")) if err != nil { From 022967c4d336b72053f0d6d243ca65d44f2494c4 Mon Sep 17 00:00:00 2001 From: Andriy Dzikh Date: Tue, 29 Jun 2021 15:57:49 -0700 Subject: [PATCH 082/111] Make kicbase copy auto-pause directly instead of the auto-pause folder. --- deploy/kicbase/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/deploy/kicbase/Dockerfile b/deploy/kicbase/Dockerfile index 80f18be5e118..714c6ce23bde 100644 --- a/deploy/kicbase/Dockerfile +++ b/deploy/kicbase/Dockerfile @@ -36,7 +36,7 @@ COPY deploy/kicbase/10-network-security.conf /etc/sysctl.d/10-network-security.c COPY deploy/kicbase/11-tcp-mtu-probing.conf /etc/sysctl.d/11-tcp-mtu-probing.conf COPY deploy/kicbase/clean-install /usr/local/bin/clean-install COPY deploy/kicbase/entrypoint /usr/local/bin/entrypoint -COPY --from=0 /src/cmd/auto-pause /bin/auto-pause +COPY --from=0 /src/cmd/auto-pause/auto-pause /bin/auto-pause # Install dependencies, first from apt, then from release tarballs. # NOTE: we use one RUN to minimize layers. From 5f15b2a0352dec4883cccb12d7543c41c14bae0c Mon Sep 17 00:00:00 2001 From: Medya Ghazizadeh Date: Wed, 30 Jun 2021 16:02:36 -0400 Subject: [PATCH 083/111] Update _index.md --- site/content/en/docs/faq/_index.md | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/site/content/en/docs/faq/_index.md b/site/content/en/docs/faq/_index.md index e9877ebe55ae..1d5960ef6651 100644 --- a/site/content/en/docs/faq/_index.md +++ b/site/content/en/docs/faq/_index.md @@ -18,6 +18,20 @@ Example: minikube start --kubernetes-version=v1.15.0 ``` +## How to create an multiple clusters using minikube ? + +By default `minikube start` creates a cluster named minikube, if you would like to create another cluster or change the name. +you could use the `-p` or `--profile` flag. which will create a clustter with the specific name. + +minikube profiles are meant to be isolated from each other, and each one could have their own settings or driver. if you want to create one cluster with multiple nodes the multi-node feature. instead + +To see list of your current clisters, try +``` +minikube profile list +``` + + + ## Docker Driver: How can I set minikube's cgroup manager? From 1e7f8cbaa7da3a51ac955d27af90c0f06ee14d29 Mon Sep 17 00:00:00 2001 From: Sharif Elgamal Date: Wed, 30 Jun 2021 13:40:18 -0700 Subject: [PATCH 084/111] remove ugly error message from kicbase and ISO autobuild --- hack/jenkins/build_iso.sh | 12 ++---------- hack/jenkins/kicbase_auto_build.sh | 12 ++---------- 2 files changed, 4 insertions(+), 20 deletions(-) diff --git a/hack/jenkins/build_iso.sh b/hack/jenkins/build_iso.sh index ec5b4291a97c..4a462f909d8b 100755 --- a/hack/jenkins/build_iso.sh +++ b/hack/jenkins/build_iso.sh @@ -45,16 +45,8 @@ make release-iso | tee iso-logs.txt ec=$? if [ $ec -gt 0 ]; then if [ "$release" = false ]; then - err=$(tail -100 iso-logs.txt) - gh pr comment ${ghprbPullId} --body "Hi ${ghprbPullAuthorLoginMention}, building a new ISO failed, with the error below: - -
-
-		${err}
-		
-
- - Full logs are at https://storage.cloud.google.com/minikube-builds/logs/${ghprbPullId}/${ghprbActualCommit:0:7}/iso_build.txt + gh pr comment ${ghprbPullId} --body "Hi ${ghprbPullAuthorLoginMention}, building a new ISO failed. + Logs are at https://storage.cloud.google.com/minikube-builds/logs/${ghprbPullId}/${ghprbActualCommit:0:7}/iso_build.txt " fi exit $ec diff --git a/hack/jenkins/kicbase_auto_build.sh b/hack/jenkins/kicbase_auto_build.sh index 3b02b7cd4645..8524edccd678 100755 --- a/hack/jenkins/kicbase_auto_build.sh +++ b/hack/jenkins/kicbase_auto_build.sh @@ -67,16 +67,8 @@ CIBUILD=yes make push-kic-base-image | tee kic-logs.txt ec=$? if [ $ec -gt 0 ]; then if [ "$release" = false ]; then - err=$(tail -100 kic-logs.txt) - gh pr comment ${ghprbPullId} --body "Hi ${ghprbPullAuthorLoginMention}, building a new kicbase image failed, with the error below: - -
-
-		${err}
-		
-
- - Full logs are at https://storage.cloud.google.com/minikube-builds/logs/${ghprbPullId}/${ghprbActualCommit:0:7}/kic_image_build.txt + gh pr comment ${ghprbPullId} --body "Hi ${ghprbPullAuthorLoginMention}, building a new kicbase image failed. + Logs are at https://storage.cloud.google.com/minikube-builds/logs/${ghprbPullId}/${ghprbActualCommit:0:7}/kic_image_build.txt " fi exit $ec From fdca7d6844bc93b412d8bc71303de965b56945e0 Mon Sep 17 00:00:00 2001 From: Steven Powell Date: Wed, 30 Jun 2021 20:41:11 +0000 Subject: [PATCH 085/111] support renaming binary to kubectl.exe and running as kubectl --- cmd/minikube/cmd/root.go | 1 + cmd/minikube/main.go | 2 ++ test/integration/functional_test.go | 6 +++++- 3 files changed, 8 insertions(+), 1 deletion(-) diff --git a/cmd/minikube/cmd/root.go b/cmd/minikube/cmd/root.go index 269b74752e39..e85688d8a90b 100644 --- a/cmd/minikube/cmd/root.go +++ b/cmd/minikube/cmd/root.go @@ -100,6 +100,7 @@ func Execute() { } _, callingCmd := filepath.Split(os.Args[0]) + callingCmd = strings.TrimSuffix(callingCmd, ".exe") if callingCmd == "kubectl" { // If the user is using the minikube binary as kubectl, allow them to specify the kubectl context without also specifying minikube profile diff --git a/cmd/minikube/main.go b/cmd/minikube/main.go index e29b9653adc4..496ec6e9fd13 100644 --- a/cmd/minikube/main.go +++ b/cmd/minikube/main.go @@ -28,6 +28,7 @@ import ( "path/filepath" "regexp" "strconv" + "strings" "github.com/spf13/pflag" "k8s.io/klog/v2" @@ -67,6 +68,7 @@ func main() { // Don't parse flags when running as kubectl _, callingCmd := filepath.Split(os.Args[0]) + callingCmd = strings.TrimSuffix(callingCmd, ".exe") parse := callingCmd != "kubectl" setFlags(parse) diff --git a/test/integration/functional_test.go b/test/integration/functional_test.go index b6ffd91d6566..c161ed34ab05 100644 --- a/test/integration/functional_test.go +++ b/test/integration/functional_test.go @@ -645,7 +645,11 @@ func validateMinikubeKubectl(ctx context.Context, t *testing.T, profile string) func validateMinikubeKubectlDirectCall(ctx context.Context, t *testing.T, profile string) { defer PostMortemLogs(t, profile) dir := filepath.Dir(Target()) - dstfn := filepath.Join(dir, "kubectl") + newName := "kubectl" + if runtime.GOOS == "windows" { + newName += ".exe" + } + dstfn := filepath.Join(dir, newName) err := os.Link(Target(), dstfn) if err != nil { From 06c1da3076f1cedbf0a456cc4af830866e07e183 Mon Sep 17 00:00:00 2001 From: Sharif Elgamal Date: Wed, 30 Jun 2021 14:01:14 -0700 Subject: [PATCH 086/111] make URLs easier to copy --- hack/jenkins/build_iso.sh | 5 ++++- hack/jenkins/kicbase_auto_build.sh | 5 ++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/hack/jenkins/build_iso.sh b/hack/jenkins/build_iso.sh index 4a462f909d8b..5dceb113c4a1 100755 --- a/hack/jenkins/build_iso.sh +++ b/hack/jenkins/build_iso.sh @@ -46,7 +46,10 @@ ec=$? if [ $ec -gt 0 ]; then if [ "$release" = false ]; then gh pr comment ${ghprbPullId} --body "Hi ${ghprbPullAuthorLoginMention}, building a new ISO failed. - Logs are at https://storage.cloud.google.com/minikube-builds/logs/${ghprbPullId}/${ghprbActualCommit:0:7}/iso_build.txt + See the logs at: + ``` + https://storage.cloud.google.com/minikube-builds/logs/${ghprbPullId}/${ghprbActualCommit:0:7}/iso_build.txt + ``` " fi exit $ec diff --git a/hack/jenkins/kicbase_auto_build.sh b/hack/jenkins/kicbase_auto_build.sh index 8524edccd678..d4d2949a3e5e 100755 --- a/hack/jenkins/kicbase_auto_build.sh +++ b/hack/jenkins/kicbase_auto_build.sh @@ -68,7 +68,10 @@ ec=$? if [ $ec -gt 0 ]; then if [ "$release" = false ]; then gh pr comment ${ghprbPullId} --body "Hi ${ghprbPullAuthorLoginMention}, building a new kicbase image failed. - Logs are at https://storage.cloud.google.com/minikube-builds/logs/${ghprbPullId}/${ghprbActualCommit:0:7}/kic_image_build.txt + See the logs at: + ``` + https://storage.cloud.google.com/minikube-builds/logs/${ghprbPullId}/${ghprbActualCommit:0:7}/kic_image_build.txt + ``` " fi exit $ec From 2bf9076527f50614725d8e5f70c619fdbf210faa Mon Sep 17 00:00:00 2001 From: minikube-bot Date: Wed, 30 Jun 2021 21:07:40 +0000 Subject: [PATCH 087/111] Updating kicbase image to v0.0.24-1625086337-11824 --- pkg/drivers/kic/types.go | 8 ++++---- site/content/en/docs/commands/start.md | 2 +- translations/fr.json | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/pkg/drivers/kic/types.go b/pkg/drivers/kic/types.go index 9f7de00dd395..afc5e6bf3f71 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.24" + Version = "v0.0.24-1625086337-11824" // SHA of the kic base image - baseImageSHA = "ba324e0dc025040a8ea6b883d008ec4a43a47db106fb59ac7446982c20c2cdc5" + baseImageSHA = "9e7c8040758103e42825d78af47706a9c18b1aab2659eeac30eb417757b9b42a" // The name of the GCR kicbase repository - gcrRepo = "gcr.io/k8s-minikube/kicbase" + gcrRepo = "gcr.io/k8s-minikube/kicbase-builds" // The name of the Dockerhub kicbase repository - dockerhubRepo = "kicbase/stable" + dockerhubRepo = "kicbase/build" ) var ( diff --git a/site/content/en/docs/commands/start.md b/site/content/en/docs/commands/start.md index b6f02258be71..93899fa9bbe8 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:v0.0.24@sha256:ba324e0dc025040a8ea6b883d008ec4a43a47db106fb59ac7446982c20c2cdc5") + --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.24-1625086337-11824@sha256:9e7c8040758103e42825d78af47706a9c18b1aab2659eeac30eb417757b9b42a") --cache-images If true, cache docker images for the current bootstrapper and load them into the machine. Always false with --driver=none. (default true) --cni string CNI plug-in to use. Valid options: auto, bridge, calico, cilium, flannel, kindnet, or path to a CNI manifest (default: auto) --container-runtime string The container runtime to be used (docker, cri-o, containerd). (default "docker") diff --git a/translations/fr.json b/translations/fr.json index d5b484734497..a3165acb282f 100644 --- a/translations/fr.json +++ b/translations/fr.json @@ -949,4 +949,4 @@ "{{.profile}} profile is not valid: {{.err}}": "Le profil {{.profile}} n'est pas valide : {{.err}}", "{{.type}} is not yet a supported filesystem. We will try anyways!": "{{.type}} n'est pas encore un système de fichiers pris en charge. Nous essaierons quand même !", "{{.url}} is not accessible: {{.error}}": "{{.url}} n'est pas accessible : {{.error}}" -} +} \ No newline at end of file From 338f126a846553da5b0444df7ae6b0f5175bf8bd Mon Sep 17 00:00:00 2001 From: Ilya Zuyev Date: Wed, 30 Jun 2021 14:30:34 -0700 Subject: [PATCH 088/111] Makefile: fix drivers rule --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 41e007c3c83f..70823f187175 100644 --- a/Makefile +++ b/Makefile @@ -325,7 +325,7 @@ all: cross drivers e2e-cross cross-tars exotic retro out/gvisor-addon ## Build a .PHONY: drivers drivers: ## Build Hyperkit and KVM2 drivers -drivers: docker-machine-driver-hyperkit \ +drivers: docker-machine-driver-hyperkit \ docker-machine-driver-kvm2 \ out/docker-machine-driver-kvm2-amd64 \ out/docker-machine-driver-kvm2-arm64 From 041560800d034de40fe7875cbf717133d3ea7bfd Mon Sep 17 00:00:00 2001 From: Medya Ghazizadeh Date: Wed, 30 Jun 2021 17:32:54 -0400 Subject: [PATCH 089/111] Update _index.md --- site/content/en/docs/faq/_index.md | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/site/content/en/docs/faq/_index.md b/site/content/en/docs/faq/_index.md index 1d5960ef6651..ecbda99d68b5 100644 --- a/site/content/en/docs/faq/_index.md +++ b/site/content/en/docs/faq/_index.md @@ -18,14 +18,13 @@ Example: minikube start --kubernetes-version=v1.15.0 ``` -## How to create an multiple clusters using minikube ? +## How can I create more than one cluster with minikube? -By default `minikube start` creates a cluster named minikube, if you would like to create another cluster or change the name. -you could use the `-p` or `--profile` flag. which will create a clustter with the specific name. +By default, minikube start creates a cluster named minikube. If you would like to create a different cluster or change its name, you can use the --profile (or -p) flag, which will create a cluster with the specified name. -minikube profiles are meant to be isolated from each other, and each one could have their own settings or driver. if you want to create one cluster with multiple nodes the multi-node feature. instead +minikube profiles are meant to be isolated from one another, with their own settings and driver. If you want to create a single cluster with multiple nodes, try the [multi-node feature]({{< ref "docs/tutorials/multi_node/" >}}) instead. -To see list of your current clisters, try +To see list of your current clisters, run: ``` minikube profile list ``` From ffd910be06d4641e4b36e512b29097f9df76f11e Mon Sep 17 00:00:00 2001 From: Medya Ghazizadeh Date: Wed, 30 Jun 2021 17:40:07 -0400 Subject: [PATCH 090/111] Update _index.md --- site/content/en/docs/faq/_index.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/site/content/en/docs/faq/_index.md b/site/content/en/docs/faq/_index.md index ecbda99d68b5..d0120de5d733 100644 --- a/site/content/en/docs/faq/_index.md +++ b/site/content/en/docs/faq/_index.md @@ -20,15 +20,16 @@ minikube start --kubernetes-version=v1.15.0 ## How can I create more than one cluster with minikube? -By default, minikube start creates a cluster named minikube. If you would like to create a different cluster or change its name, you can use the --profile (or -p) flag, which will create a cluster with the specified name. - -minikube profiles are meant to be isolated from one another, with their own settings and driver. If you want to create a single cluster with multiple nodes, try the [multi-node feature]({{< ref "docs/tutorials/multi_node/" >}}) instead. +By default, `minikube start` creates a cluster named "minikube". If you would like to create a different cluster or change its name, you can use the --profile (or -p) flag, which will create a cluster with the specified name. and you could have multiple clusters on the same machine. To see list of your current clisters, run: ``` minikube profile list ``` +minikube profiles are meant to be isolated from one another, with their own settings and driver. If you want to create a single cluster with multiple nodes, try the [multi-node feature]({{< ref "docs/tutorials/multi_node/" >}}) instead. + + From f3798a8e391d9e4da7e5b91cd577aa604f1c6fd7 Mon Sep 17 00:00:00 2001 From: Medya Ghazizadeh Date: Wed, 30 Jun 2021 17:40:32 -0400 Subject: [PATCH 091/111] Update _index.md --- 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 d0120de5d733..2c44d7b46c3b 100644 --- a/site/content/en/docs/faq/_index.md +++ b/site/content/en/docs/faq/_index.md @@ -20,7 +20,7 @@ minikube start --kubernetes-version=v1.15.0 ## How can I create more than one cluster with minikube? -By default, `minikube start` creates a cluster named "minikube". If you would like to create a different cluster or change its name, you can use the --profile (or -p) flag, which will create a cluster with the specified name. and you could have multiple clusters on the same machine. +By default, `minikube start` creates a cluster named "minikube". If you would like to create a different cluster or change its name, you can use the `--profile` (or `-p`) flag, which will create a cluster with the specified name. and you could have multiple clusters on the same machine. To see list of your current clisters, run: ``` From 4afa863d31a023db7654d514d889710f1d296b95 Mon Sep 17 00:00:00 2001 From: Medya Ghazizadeh Date: Wed, 30 Jun 2021 17:46:00 -0400 Subject: [PATCH 092/111] Update _index.md --- 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 2c44d7b46c3b..a411a398856c 100644 --- a/site/content/en/docs/faq/_index.md +++ b/site/content/en/docs/faq/_index.md @@ -22,7 +22,7 @@ minikube start --kubernetes-version=v1.15.0 By default, `minikube start` creates a cluster named "minikube". If you would like to create a different cluster or change its name, you can use the `--profile` (or `-p`) flag, which will create a cluster with the specified name. and you could have multiple clusters on the same machine. -To see list of your current clisters, run: +To see the list of your current clusters, run: ``` minikube profile list ``` From 4a9e985b97f78e953b01c916239054b84571f379 Mon Sep 17 00:00:00 2001 From: Medya Ghazizadeh Date: Wed, 30 Jun 2021 17:51:23 -0400 Subject: [PATCH 093/111] Update _index.md --- site/content/en/docs/faq/_index.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/site/content/en/docs/faq/_index.md b/site/content/en/docs/faq/_index.md index a411a398856c..846134705554 100644 --- a/site/content/en/docs/faq/_index.md +++ b/site/content/en/docs/faq/_index.md @@ -20,14 +20,14 @@ minikube start --kubernetes-version=v1.15.0 ## How can I create more than one cluster with minikube? -By default, `minikube start` creates a cluster named "minikube". If you would like to create a different cluster or change its name, you can use the `--profile` (or `-p`) flag, which will create a cluster with the specified name. and you could have multiple clusters on the same machine. +By default, `minikube start` creates a cluster named "minikube". If you would like to create a different cluster or change its name, you can use the `--profile` (or `-p`) flag, which will create a cluster with the specified name. Please note that you can have multiple clusters on the same machine. To see the list of your current clusters, run: ``` minikube profile list ``` -minikube profiles are meant to be isolated from one another, with their own settings and driver. If you want to create a single cluster with multiple nodes, try the [multi-node feature]({{< ref "docs/tutorials/multi_node/" >}}) instead. +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. From 32948d4e8bd8540d04c5da256fcc486d82ce22ce Mon Sep 17 00:00:00 2001 From: Medya Ghazizadeh Date: Wed, 30 Jun 2021 18:02:49 -0400 Subject: [PATCH 094/111] Update _index.md --- site/content/en/docs/faq/_index.md | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/site/content/en/docs/faq/_index.md b/site/content/en/docs/faq/_index.md index 846134705554..98cb514134f6 100644 --- a/site/content/en/docs/faq/_index.md +++ b/site/content/en/docs/faq/_index.md @@ -27,10 +27,7 @@ To see the list of your current clusters, run: 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. - - - +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. ## Docker Driver: How can I set minikube's cgroup manager? From 8437b88300ff11fe4d0990a151ec8dbabb42bd93 Mon Sep 17 00:00:00 2001 From: Ilya Zuyev Date: Wed, 30 Jun 2021 15:16:22 -0700 Subject: [PATCH 095/111] use ubuntu-20.04 builder image to compile kvm2 driver for arm64 --- installers/linux/kvm/Dockerfile.arm64 | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/installers/linux/kvm/Dockerfile.arm64 b/installers/linux/kvm/Dockerfile.arm64 index 247c367efea2..262d1325e648 100644 --- a/installers/linux/kvm/Dockerfile.arm64 +++ b/installers/linux/kvm/Dockerfile.arm64 @@ -12,23 +12,26 @@ # See the License for the specific language governing permissions and # limitations under the License. -FROM ubuntu:21.04 +FROM ubuntu:20.04 ARG GO_VERSION RUN apt update -RUN echo "deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports hirsute main universe multiverse" >> /etc/apt/sources.list && \ - echo "deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports hirsute-updates main universe restricted multiverse" >> /etc/apt/sources.list && \ +RUN echo "deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports focal main universe multiverse" >> /etc/apt/sources.list && \ + echo "deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports focal-updates main universe restricted multiverse" >> /etc/apt/sources.list && \ dpkg --add-architecture arm64 && \ (apt update || true) -RUN apt install -y \ +RUN DEBIAN_FRONTEND=noninteractive \ + apt install \ + -o APT::Immediate-Configure=false -y \ gcc-aarch64-linux-gnu \ make \ pkg-config \ curl \ - libvirt-dev:arm64 + libvirt-dev:arm64 \ + dpkg --configure -a RUN curl -sSL https://golang.org/dl/go${GO_VERSION}.linux-amd64.tar.gz | tar -C /usr/local -xzf - From 053b73bcd788b9b5120700db2a5cbb78a203aa4f Mon Sep 17 00:00:00 2001 From: Ilya Zuyev Date: Wed, 30 Jun 2021 15:27:04 -0700 Subject: [PATCH 096/111] fix install command --- installers/linux/kvm/Dockerfile.arm64 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/installers/linux/kvm/Dockerfile.arm64 b/installers/linux/kvm/Dockerfile.arm64 index 262d1325e648..272c0a0d9234 100644 --- a/installers/linux/kvm/Dockerfile.arm64 +++ b/installers/linux/kvm/Dockerfile.arm64 @@ -30,7 +30,7 @@ RUN DEBIAN_FRONTEND=noninteractive \ make \ pkg-config \ curl \ - libvirt-dev:arm64 \ + libvirt-dev:arm64 && \ dpkg --configure -a RUN curl -sSL https://golang.org/dl/go${GO_VERSION}.linux-amd64.tar.gz | tar -C /usr/local -xzf - From 4811cecc67be9b60a6d6d33487f75e38b25bcabd Mon Sep 17 00:00:00 2001 From: Medya Ghazizadeh Date: Wed, 30 Jun 2021 18:34:56 -0400 Subject: [PATCH 097/111] Update _index.md --- 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 98cb514134f6..1bb557829f4a 100644 --- a/site/content/en/docs/faq/_index.md +++ b/site/content/en/docs/faq/_index.md @@ -27,7 +27,7 @@ To see the list of your current clusters, run: 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. +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. ## Docker Driver: How can I set minikube's cgroup manager? From a9157c2433e64a25c4b0be4a09431db05881eb1a Mon Sep 17 00:00:00 2001 From: Steven Powell Date: Wed, 30 Jun 2021 16:42:09 -0700 Subject: [PATCH 098/111] improve Windows Docker clean slate --- hack/jenkins/windows_integration_test_docker.ps1 | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/hack/jenkins/windows_integration_test_docker.ps1 b/hack/jenkins/windows_integration_test_docker.ps1 index 8fdf4a3a8d2b..7cdaa443a90a 100644 --- a/hack/jenkins/windows_integration_test_docker.ps1 +++ b/hack/jenkins/windows_integration_test_docker.ps1 @@ -48,12 +48,11 @@ echo "Docker_Windows" | gsutil cp - "$append_tmp" gsutil compose "$started_environments" "$append_tmp" "$started_environments" gsutil rm "$append_tmp" -# Remove unused images and containers -docker system prune --all --force - - ./out/minikube-windows-amd64.exe delete --all +# Remove unused images and containers +docker system prune --all --force --volumes + ./out/windows_integration_setup.ps1 docker ps -aq | ForEach -Process {docker rm -fv $_} From 2edbd5cf2b4723bd6debe14fb719de040b6e6038 Mon Sep 17 00:00:00 2001 From: Sharif Elgamal Date: Wed, 30 Jun 2021 16:59:08 -0700 Subject: [PATCH 099/111] more detailed test description --- site/content/en/docs/contrib/tests.en.md | 4 ---- test/integration/functional_test.go | 6 ++++-- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/site/content/en/docs/contrib/tests.en.md b/site/content/en/docs/contrib/tests.en.md index d47944aaeb37..d6dc8bf62cc2 100644 --- a/site/content/en/docs/contrib/tests.en.md +++ b/site/content/en/docs/contrib/tests.en.md @@ -96,10 +96,6 @@ check functionality of minikube after evaluating podman-env #### validateStartWithProxy makes sure minikube start respects the HTTP_PROXY environment variable -#### validateStartWithCustomCerts -makes sure minikube start respects the HTTPS_PROXY environment variable -only runs on Github Actions for amd64 linux - #### validateAuditAfterStart makes sure the audit log contains the correct logging after minikube start diff --git a/test/integration/functional_test.go b/test/integration/functional_test.go index 2a669b22e926..054981e97659 100644 --- a/test/integration/functional_test.go +++ b/test/integration/functional_test.go @@ -543,8 +543,10 @@ func validateStartWithProxy(ctx context.Context, t *testing.T, profile string) { startMinikubeWithProxy(ctx, t, profile, "HTTP_PROXY", srv.Addr) } -// validateStartWithCustomCerts makes sure minikube start respects the HTTPS_PROXY environment variable -// only runs on Github Actions for amd64 linux +// validateStartWithCustomCerts makes sure minikube start respects the HTTPS_PROXY environment variable and works with custom certs +// a proxy is started by calling the mitmdump binary in the background, then installing the certs generated by the binary +// mitmproxy/dump creates the proxy at localhost at port 8080 +// only runs on Github Actions for amd64 linux, otherwise validateStartWithProxy runs instead func validateStartWithCustomCerts(ctx context.Context, t *testing.T, profile string) { defer PostMortemLogs(t, profile) err := startProxyWithCustomCerts(ctx, t) From 4a98c917feeb34131d22f819bf52ea9a9607e2af Mon Sep 17 00:00:00 2001 From: Jeff MAURY Date: Thu, 1 Jul 2021 09:01:18 +0200 Subject: [PATCH 100/111] Fix French translation Signed-off-by: Jeff MAURY --- translations/fr.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/translations/fr.json b/translations/fr.json index a3165acb282f..f2a67124dd4f 100644 --- a/translations/fr.json +++ b/translations/fr.json @@ -702,7 +702,7 @@ "Unable to find control plane": "Impossible de trouver le plan de contrôle", "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}}": "", + "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}}", From 6b89bb418bcff365845b6bc371643055be3097ac Mon Sep 17 00:00:00 2001 From: Ilya Zuyev Date: Thu, 1 Jul 2021 11:25:20 -0700 Subject: [PATCH 101/111] Fix kvm2 driver debs --- Makefile | 3 --- 1 file changed, 3 deletions(-) diff --git a/Makefile b/Makefile index 70823f187175..8cfa2b19d8ee 100644 --- a/Makefile +++ b/Makefile @@ -797,9 +797,6 @@ out/docker-machine-driver-kvm2-aarch64: out/docker-machine-driver-kvm2-arm64 out/docker-machine-driver-kvm2_$(DEB_VERSION).deb: out/docker-machine-driver-kvm2_$(DEB_VERSION)-0_amd64.deb cp $< $@ -out/docker-machine-driver-kvm2_$(DEB_VERSION)-$(DEB_REVISION)_amd64.deb: out/docker-machine-driver-kvm2_$(DEB_VERSION)-0_x86_64.deb - cp $< $@ - out/docker-machine-driver-kvm2_$(DEB_VERSION)-$(DEB_REVISION)_arm64.deb: out/docker-machine-driver-kvm2_$(DEB_VERSION)-0_aarch64.deb cp $< $@ From d8ffe3f9fabc397e1f6583783f2a3023936b3a32 Mon Sep 17 00:00:00 2001 From: Andriy Dzikh Date: Thu, 1 Jul 2021 11:47:40 -0700 Subject: [PATCH 102/111] Add rank column to flake rate list. --- hack/jenkins/test-flake-chart/flake_chart.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/hack/jenkins/test-flake-chart/flake_chart.js b/hack/jenkins/test-flake-chart/flake_chart.js index 298455f7ac94..4e7d4f3457f8 100644 --- a/hack/jenkins/test-flake-chart/flake_chart.js +++ b/hack/jenkins/test-flake-chart/flake_chart.js @@ -262,11 +262,14 @@ function createRecentFlakePercentageTable(recentFlakePercentage, environmentName const table = document.createElement("table"); const tableHeaderRow = document.createElement("tr"); + tableHeaderRow.appendChild(createCell("th", "Rank")); tableHeaderRow.appendChild(createCell("th", "Test Name")).style.textAlign = "left"; tableHeaderRow.appendChild(createCell("th", "Recent Flake Percentage")); table.appendChild(tableHeaderRow); - for (const {testName, flakeRate} of recentFlakePercentage){ + for (let i = 0; i < recentFlakePercentage.length; i++) { + const {testName, flakeRate} = recentFlakePercentage[i]; const row = document.createElement("tr"); + row.appendChild(createCell("td", "" + (i + 1))).style.textAlign = "center"; row.appendChild(createCell("td", `
${testName}`)); row.appendChild(createCell("td", `${flakeRate.toFixed(2)}%`)).style.textAlign = "right"; table.appendChild(row); From b5caf568acee75ca851f2079735aab963174076b Mon Sep 17 00:00:00 2001 From: Andriy Dzikh Date: Thu, 1 Jul 2021 12:01:09 -0700 Subject: [PATCH 103/111] Add growth column to flake list. --- hack/jenkins/test-flake-chart/flake_chart.js | 23 +++++++++++++++----- 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/hack/jenkins/test-flake-chart/flake_chart.js b/hack/jenkins/test-flake-chart/flake_chart.js index 4e7d4f3457f8..f6d16313dd94 100644 --- a/hack/jenkins/test-flake-chart/flake_chart.js +++ b/hack/jenkins/test-flake-chart/flake_chart.js @@ -253,7 +253,7 @@ function displayTestAndEnvironmentChart(testData, testName, environmentName) { chart.draw(data, options); } -function createRecentFlakePercentageTable(recentFlakePercentage, environmentName) { +function createRecentFlakePercentageTable(recentFlakePercentage, previousFlakePercentageMap, environmentName) { const createCell = (elementType, text) => { const element = document.createElement(elementType); element.innerHTML = text; @@ -265,6 +265,7 @@ function createRecentFlakePercentageTable(recentFlakePercentage, environmentName tableHeaderRow.appendChild(createCell("th", "Rank")); tableHeaderRow.appendChild(createCell("th", "Test Name")).style.textAlign = "left"; tableHeaderRow.appendChild(createCell("th", "Recent Flake Percentage")); + tableHeaderRow.appendChild(createCell("th", "Growth (since last 15 days)")); table.appendChild(tableHeaderRow); for (let i = 0; i < recentFlakePercentage.length; i++) { const {testName, flakeRate} = recentFlakePercentage[i]; @@ -272,6 +273,9 @@ function createRecentFlakePercentageTable(recentFlakePercentage, environmentName row.appendChild(createCell("td", "" + (i + 1))).style.textAlign = "center"; row.appendChild(createCell("td", `${testName}`)); row.appendChild(createCell("td", `${flakeRate.toFixed(2)}%`)).style.textAlign = "right"; + const growth = previousFlakePercentageMap.has(testName) ? + flakeRate - previousFlakePercentageMap.get(testName) : 0; + row.appendChild(createCell("td", ` 0 ? "red" : "green")}">${growth > 0 ? '+' + growth.toFixed(2) : growth.toFixed(2)}%`)); table.appendChild(row); } return table; @@ -300,9 +304,10 @@ function displayEnvironmentChart(testData, environmentName) { } const orderedDates = Array.from(uniqueDates).sort(); const recentDates = orderedDates.slice(-dateRange); - - const recentFlakePercentage = Array.from(aggregatedRuns).map(([testName, data]) => { - const {flakeCount, totalCount} = recentDates.map(date => { + const previousDates = orderedDates.slice(-2 * dateRange, -dateRange); + + const computeFlakePercentage = (runs, dates) => Array.from(runs).map(([testName, data]) => { + const {flakeCount, totalCount} = dates.map(date => { const dateInfo = data.get(date); return dateInfo === undefined ? null : { flakeRate: dateInfo.flakeRate, @@ -317,7 +322,13 @@ function displayEnvironmentChart(testData, environmentName) { testName, flakeRate: totalCount === 0 ? 0 : flakeCount / totalCount, }; - }).sort((a, b) => b.flakeRate - a.flakeRate); + }); + + const recentFlakePercentage = computeFlakePercentage(aggregatedRuns, recentDates) + .sort((a, b) => b.flakeRate - a.flakeRate); + const previousFlakePercentageMap = new Map( + computeFlakePercentage(aggregatedRuns, previousDates) + .map(({testName, flakeRate}) => [testName, flakeRate])); const recentTopFlakes = recentFlakePercentage .slice(0, topFlakes) @@ -358,7 +369,7 @@ function displayEnvironmentChart(testData, environmentName) { const chart = new google.visualization.LineChart(document.getElementById('chart_div')); chart.draw(data, options); - document.body.appendChild(createRecentFlakePercentageTable(recentFlakePercentage, environmentName)); + document.body.appendChild(createRecentFlakePercentageTable(recentFlakePercentage, previousFlakePercentageMap, environmentName)); } async function init() { From cfb6aaede3c44c92f0d38d375c96fa88468edbd5 Mon Sep 17 00:00:00 2001 From: minikube-bot Date: Thu, 1 Jul 2021 19:15:28 +0000 Subject: [PATCH 104/111] Update auto-generated docs and translations --- site/content/en/docs/contrib/tests.en.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/site/content/en/docs/contrib/tests.en.md b/site/content/en/docs/contrib/tests.en.md index d6dc8bf62cc2..5b2d70c0585c 100644 --- a/site/content/en/docs/contrib/tests.en.md +++ b/site/content/en/docs/contrib/tests.en.md @@ -96,6 +96,12 @@ check functionality of minikube after evaluating podman-env #### validateStartWithProxy makes sure minikube start respects the HTTP_PROXY environment variable +#### validateStartWithCustomCerts +makes sure minikube start respects the HTTPS_PROXY environment variable and works with custom certs +a proxy is started by calling the mitmdump binary in the background, then installing the certs generated by the binary +mitmproxy/dump creates the proxy at localhost at port 8080 +only runs on Github Actions for amd64 linux, otherwise validateStartWithProxy runs instead + #### validateAuditAfterStart makes sure the audit log contains the correct logging after minikube start From 271a5b034f2f3197bc42abb65406c1730c589d8b Mon Sep 17 00:00:00 2001 From: Rajwinder Mahal Date: Thu, 1 Jul 2021 12:13:24 -0700 Subject: [PATCH 105/111] Add beta releases to installation instructions --- site/content/en/docs/start/_index.md | 281 ++++++++++++++++-- site/layouts/shortcodes/quiz_instruction.html | 5 +- 2 files changed, 253 insertions(+), 33 deletions(-) diff --git a/site/content/en/docs/start/_index.md b/site/content/en/docs/start/_index.md index 8bffff50e4ed..a303266173e6 100644 --- a/site/content/en/docs/start/_index.md +++ b/site/content/en/docs/start/_index.md @@ -32,35 +32,91 @@ Click on the buttons that describe your target platform. For other architectures {{% quiz_button option="x86-64" %}} {{% quiz_button option="ARM64" %}} {{% quiz_button option="ARMv7" %}} {{% quiz_button option="ppc64" %}} {{% quiz_button option="S390x" %}} {{% /quiz_row %}} -{{% quiz_row base="/Linux/x86-64" name="Installer type" %}} +{{% quiz_row base="/Linux/x86-64" name="Release type" %}} +{{% quiz_button option="Stable" %}} {{% quiz_button option="Beta" %}} +{{% /quiz_row %}} + +{{% quiz_row base="/Linux/x86-64/Stable" name="Installer type" %}} {{% quiz_button option="Binary download" %}} {{% quiz_button option="Debian package" %}} {{% quiz_button option="RPM package" %}} {{% /quiz_row %}} -{{% quiz_row base="/Linux/ARM64" name="Installer type" %}} +{{% quiz_row base="/Linux/x86-64/Beta" name="Installer type" %}} {{% quiz_button option="Binary download" %}} {{% quiz_button option="Debian package" %}} {{% quiz_button option="RPM package" %}} {{% /quiz_row %}} -{{% quiz_row base="/Linux/ppc64" name="Installer type" %}} -{{% quiz_button option="Binary download" %}} +{{% quiz_row base="/Linux/ARM64" name="Release type" %}} +{{% quiz_button option="Stable" %}} {{% quiz_button option="Beta" %}} {{% /quiz_row %}} -{{% quiz_row base="/Linux/S390x" name="Installer type" %}} -{{% quiz_button option="Binary download" %}} +{{% quiz_row base="/Linux/ARM64/Stable" name="Installer type" %}} +{{% quiz_button option="Binary download" %}} {{% quiz_button option="Debian package" %}} {{% quiz_button option="RPM package" %}} {{% /quiz_row %}} -{{% quiz_row base="/Linux/ARMv7" name="Installer type" %}} -{{% quiz_button option="Binary download" %}} +{{% quiz_row base="/Linux/ARM64/Beta" name="Installer type" %}} +{{% quiz_button option="Binary download" %}} {{% quiz_button option="Debian package" %}} {{% quiz_button option="RPM package" %}} +{{% /quiz_row %}} + +{{% quiz_row base="/Linux/ppc64" name="Release type" %}} +{{% quiz_button option="Stable" %}} {{% quiz_button option="Beta" %}} +{{% /quiz_row %}} + +{{% quiz_row base="/Linux/ppc64/Stable" name="Installer type" %}} +{{% quiz_button option="Binary download" %}} {{% quiz_button option="Debian package" %}} {{% quiz_button option="RPM package" %}} +{{% /quiz_row %}} + +{{% quiz_row base="/Linux/ppc64/Beta" name="Installer type" %}} +{{% quiz_button option="Binary download" %}} {{% quiz_button option="Debian package" %}} {{% quiz_button option="RPM package" %}} +{{% /quiz_row %}} + +{{% quiz_row base="/Linux/S390x" name="Release type" %}} +{{% quiz_button option="Stable" %}} {{% quiz_button option="Beta" %}} +{{% /quiz_row %}} + +{{% quiz_row base="/Linux/S390x/Stable" name="Installer type" %}} +{{% quiz_button option="Binary download" %}} {{% quiz_button option="Debian package" %}} {{% quiz_button option="RPM package" %}} +{{% /quiz_row %}} + +{{% quiz_row base="/Linux/S390x/Beta" name="Installer type" %}} +{{% quiz_button option="Binary download" %}} {{% quiz_button option="Debian package" %}} {{% quiz_button option="RPM package" %}} +{{% /quiz_row %}} + +{{% quiz_row base="/Linux/ARMv7" name="Release type" %}} +{{% quiz_button option="Stable" %}} {{% quiz_button option="Beta" %}} +{{% /quiz_row %}} + +{{% quiz_row base="/Linux/ARMv7/Stable" name="Installer type" %}} +{{% quiz_button option="Binary download" %}} {{% quiz_button option="Debian package" %}} {{% quiz_button option="RPM package" %}} +{{% /quiz_row %}} + +{{% quiz_row base="/Linux/ARMv7/Beta" name="Installer type" %}} +{{% quiz_button option="Binary download" %}} {{% quiz_button option="Debian package" %}} {{% quiz_button option="RPM package" %}} {{% /quiz_row %}} {{% quiz_row base="/macOS" name="Architecture" %}} {{% quiz_button option="x86-64" %}} {{% quiz_button option="ARM64" %}} {{% /quiz_row %}} -{{% quiz_row base="/macOS/x86-64" name="Installer type" %}} +{{% quiz_row base="/macOS/x86-64" name="Release type" %}} +{{% quiz_button option="Stable" %}} {{% quiz_button option="Beta" %}} +{{% /quiz_row %}} + +{{% quiz_row base="/macOS/x86-64/Stable" name="Installer type" %}} {{% quiz_button option="Binary download" %}} {{% quiz_button option="Homebrew" %}} {{% /quiz_row %}} -{{% quiz_row base="/macOS/ARM64" name="Installer type" %}} +{{% quiz_row base="/macOS/x86-64/Beta" name="Installer type" %}} +{{% quiz_button option="Binary download" %}} +{{% /quiz_row %}} + +{{% quiz_row base="/macOS/ARM64" name="Release type" %}} +{{% quiz_button option="Stable" %}} {{% quiz_button option="Beta" %}} +{{% /quiz_row %}} + +{{% quiz_row base="/macOS/ARM64/Stable" name="Installer type" %}} +{{% quiz_button option="Binary download" %}} +{{% /quiz_row %}} + +{{% quiz_row base="/macOS/ARM64/Beta" name="Installer type" %}} {{% quiz_button option="Binary download" %}} {{% /quiz_row %}} @@ -68,102 +124,244 @@ Click on the buttons that describe your target platform. For other architectures {{% quiz_button option="x86-64" %}} {{% /quiz_row %}} -{{% quiz_row base="/Windows/x86-64" name="Installer type" %}} +{{% quiz_row base="/Windows/x86-64" name="Release type" %}} +{{% quiz_button option="Stable" %}} {{% quiz_button option="Beta" %}} +{{% /quiz_row %}} + +{{% quiz_row base="/Windows/x86-64/Stable" name="Installer type" %}} {{% quiz_button option=".exe download" %}} {{% quiz_button option="Windows Package Manager" %}} {{% quiz_button option="Chocolatey" %}} {{% /quiz_row %}} -{{% quiz_instruction id="/Linux/x86-64/Binary download" %}} +{{% quiz_row base="/Windows/x86-64/Beta" name="Installer type" %}} +{{% quiz_button option=".exe download" %}} +{{% /quiz_row %}} + +{{% quiz_instruction id="/Linux/x86-64/Stable/Binary download" %}} ```shell curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64 sudo install minikube-linux-amd64 /usr/local/bin/minikube ``` {{% /quiz_instruction %}} -{{% quiz_instruction id="/Linux/x86-64/Debian package" %}} +{{% quiz_instruction id="/Linux/x86-64/Beta/Binary download" %}} +```shell +r=https://api.github.com/repos/kubernetes/minikube/releases +curl -LO $(curl -s $r | grep -o 'http.*download/v.*beta.*/minikube-linux-amd64' | head -n1) +sudo install minikube-linux-amd64 /usr/local/bin/minikube +``` +{{% /quiz_instruction %}} + +{{% quiz_instruction id="/Linux/x86-64/Stable/Debian package" %}} ```shell curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube_latest_amd64.deb sudo dpkg -i minikube_latest_amd64.deb ``` {{% /quiz_instruction %}} -{{% quiz_instruction id="/Linux/x86-64/RPM package" %}} +{{% quiz_instruction id="/Linux/x86-64/Beta/Debian package" %}} +```shell +r=https://api.github.com/repos/kubernetes/minikube/releases +u=$(curl -s $r | grep -o 'http.*download/v.*beta.*/minikube_.*_amd64.deb' | head -n1) +curl -L $u > minikube_beta_amd64.deb && sudo dpkg -i minikube_beta_amd64.deb +``` +{{% /quiz_instruction %}} + +{{% quiz_instruction id="/Linux/x86-64/Stable/RPM package" %}} ```shell curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-latest.x86_64.rpm sudo rpm -Uvh minikube-latest.x86_64.rpm ``` {{% /quiz_instruction %}} -{{% quiz_instruction id="/Linux/ARM64/Binary download" %}} +{{% quiz_instruction id="/Linux/x86-64/Beta/RPM package" %}} +```shell +r=https://api.github.com/repos/kubernetes/minikube/releases +u=$(curl -s $r | grep -o 'http.*download/v.*beta.*/minikube-.*.x86_64.rpm' | head -n1) +curl -L $u > minikube-beta.x86_64.rpm && sudo rpm -Uvh minikube-beta.x86_64.rpm +``` +{{% /quiz_instruction %}} + +{{% quiz_instruction id="/Linux/ARM64/Stable/Binary download" %}} ```shell curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-arm64 sudo install minikube-linux-arm64 /usr/local/bin/minikube ``` {{% /quiz_instruction %}} -{{% quiz_instruction id="/Linux/ARM64/Debian package" %}} +{{% quiz_instruction id="/Linux/ARM64/Beta/Binary download" %}} +```shell +r=https://api.github.com/repos/kubernetes/minikube/releases +curl -LO $(curl -s $r | grep -o 'http.*download/v.*beta.*/minikube-linux-arm64' | head -n1) +sudo install minikube-linux-arm64 /usr/local/bin/minikube +``` +{{% /quiz_instruction %}} + +{{% quiz_instruction id="/Linux/ARM64/Stable/Debian package" %}} ```shell curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube_latest_arm64.deb sudo dpkg -i minikube_latest_arm64.deb ``` {{% /quiz_instruction %}} -{{% quiz_instruction id="/Linux/ARM64/RPM package" %}} +{{% quiz_instruction id="/Linux/ARM64/Beta/Debian package" %}} +```shell +r=https://api.github.com/repos/kubernetes/minikube/releases +u=$(curl -s $r | grep -o 'http.*download/v.*beta.*/minikube_.*_arm64.deb' | head -n1) +curl -L $u > minikube_beta_arm64.deb && sudo dpkg -i minikube_beta_arm64.deb +``` +{{% /quiz_instruction %}} + +{{% quiz_instruction id="/Linux/ARM64/Stable/RPM package" %}} ```shell curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-latest.aarch64.rpm sudo rpm -Uvh minikube-latest.aarch64.rpm ``` {{% /quiz_instruction %}} -{{% quiz_instruction id="/Linux/ppc64/Binary download" %}} +{{% quiz_instruction id="/Linux/ARM64/Beta/RPM package" %}} +```shell +r=https://api.github.com/repos/kubernetes/minikube/releases +u=$(curl -s $r | grep -o 'http.*download/v.*beta.*/minikube-.*.aarch64.rpm' | head -n1) +curl -L $u > minikube-beta.aarch64.rpm && sudo rpm -Uvh minikube-beta.aarch64.rpm +``` +{{% /quiz_instruction %}} + +{{% quiz_instruction id="/Linux/ppc64/Stable/Binary download" %}} ```shell curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-ppc64le sudo install minikube-linux-ppc64le /usr/local/bin/minikube ``` {{% /quiz_instruction %}} -{{% quiz_instruction id="/Linux/ppc64/Debian package" %}} +{{% quiz_instruction id="/Linux/ppc64/Beta/Binary download" %}} +```shell +r=https://api.github.com/repos/kubernetes/minikube/releases +curl -LO $(curl -s $r | grep -o 'http.*download/v.*beta.*/minikube-linux-ppc64le' | head -n1) +sudo install minikube-linux-ppc64le /usr/local/bin/minikube +``` +{{% /quiz_instruction %}} + +{{% quiz_instruction id="/Linux/ppc64/Stable/Debian package" %}} ```shell curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube_latest_ppc64le.deb sudo dpkg -i minikube_latest_ppc64le.deb ``` {{% /quiz_instruction %}} -{{% quiz_instruction id="/Linux/ppc64/RPM package" %}} +{{% quiz_instruction id="/Linux/ppc64/Beta/Debian package" %}} +```shell +r=https://api.github.com/repos/kubernetes/minikube/releases +u=$(curl -s $r | grep -o 'http.*download/v.*beta.*/minikube_.*_ppc64le.deb' | head -n1) +curl -L $u > minikube_beta_ppc64le.deb && sudo dpkg -i minikube_beta_ppc64le.deb +``` +{{% /quiz_instruction %}} + +{{% quiz_instruction id="/Linux/ppc64/Stable/RPM package" %}} ```shell curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-latest.ppc64el.rpm sudo rpm -Uvh minikube-latest.ppc64el.rpm ``` {{% /quiz_instruction %}} -{{% quiz_instruction id="/Linux/S390x/Binary download" %}} +{{% quiz_instruction id="/Linux/ppc64/Beta/RPM package" %}} +```shell +r=https://api.github.com/repos/kubernetes/minikube/releases +u=$(curl -s $r | grep -o 'http.*download/v.*beta.*/minikube-.*.ppc64el.rpm' | head -n1) +curl -L $u > minikube-beta.ppc64el.rpm && sudo rpm -Uvh minikube-beta.ppc64el.rpm +``` +{{% /quiz_instruction %}} + +{{% quiz_instruction id="/Linux/S390x/Stable/Binary download" %}} ```shell curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-s390x sudo install minikube-linux-s390x /usr/local/bin/minikube ``` {{% /quiz_instruction %}} -{{% quiz_instruction id="/Linux/S390x/Debian package" %}} +{{% quiz_instruction id="/Linux/S390x/Beta/Binary download" %}} +```shell +r=https://api.github.com/repos/kubernetes/minikube/releases +curl -LO $(curl -s $r | grep -o 'http.*download/v.*beta.*/minikube-linux-s390x' | head -n1) +sudo install minikube-linux-s390x /usr/local/bin/minikube +``` +{{% /quiz_instruction %}} + +{{% quiz_instruction id="/Linux/S390x/Stable/Debian package" %}} ```shell curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube_latest_s390x.deb sudo dpkg -i minikube_latest_s390x.deb ``` {{% /quiz_instruction %}} -{{% quiz_instruction id="/Linux/S390x/RPM package" %}} +{{% quiz_instruction id="/Linux/S390x/Beta/Debian package" %}} +```shell +r=https://api.github.com/repos/kubernetes/minikube/releases +u=$(curl -s $r | grep -o 'http.*download/v.*beta.*/minikube_.*_s390x.deb' | head -n1) +curl -L $u > minikube_beta_s390x.deb && sudo dpkg -i minikube_beta_s390x.deb +``` +{{% /quiz_instruction %}} + +{{% quiz_instruction id="/Linux/S390x/Stable/RPM package" %}} ```shell curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-latest.s390x.rpm sudo rpm -Uvh minikube-latest.s390x.rpm ``` {{% /quiz_instruction %}} -{{% quiz_instruction id="/Linux/ARMv7/Binary download" %}} +{{% quiz_instruction id="/Linux/S390x/Beta/RPM package" %}} +```shell +r=https://api.github.com/repos/kubernetes/minikube/releases +u=$(curl -s $r | grep -o 'http.*download/v.*beta.*/minikube-.*.s390x.rpm' | head -n1) +curl -L $u > minikube-beta.s390x.rpm && sudo rpm -Uvh minikube-beta.s390x.rpm +``` +{{% /quiz_instruction %}} + +{{% quiz_instruction id="/Linux/ARMv7/Stable/Binary download" %}} ```shell curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-arm sudo install minikube-linux-arm /usr/local/bin/minikube ``` {{% /quiz_instruction %}} -{{% quiz_instruction id="/macOS/x86-64/Homebrew" %}} +{{% quiz_instruction id="/Linux/ARMv7/Beta/Binary download" %}} +```shell +r=https://api.github.com/repos/kubernetes/minikube/releases +curl -LO $(curl -s $r | grep -o 'http.*download/v.*beta.*/minikube-linux-arm' | head -n1) +sudo install minikube-linux-arm /usr/local/bin/minikube +``` +{{% /quiz_instruction %}} + +{{% quiz_instruction id="/Linux/ARMv7/Stable/Debian package" %}} +```shell +curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube_latest_armhf.deb +sudo dpkg -i minikube_latest_armhf.deb +``` +{{% /quiz_instruction %}} + +{{% quiz_instruction id="/Linux/ARMv7/Beta/Debian package" %}} +```shell +r=https://api.github.com/repos/kubernetes/minikube/releases +u=$(curl -s $r | grep -o 'http.*download/v.*beta.*/minikube_.*_armhf.deb' | head -n1) +curl -L $u > minikube_beta_armhf.deb && sudo dpkg -i minikube_beta_armhf.deb +``` +{{% /quiz_instruction %}} + +{{% quiz_instruction id="/Linux/ARMv7/Stable/RPM package" %}} +```shell +curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-latest.armv7hl.rpm +sudo rpm -Uvh minikube-latest.armv7hl.rpm +``` +{{% /quiz_instruction %}} + +{{% quiz_instruction id="/Linux/ARMv7/Beta/RPM package" %}} +```shell +r=https://api.github.com/repos/kubernetes/minikube/releases +u=$(curl -s $r | grep -o 'http.*download/v.*beta.*/minikube-.*.armv7hl.rpm' | head -n1) +curl -L $u > minikube-beta.armv7hl.rpm && sudo rpm -Uvh minikube-beta.armv7hl.rpm +``` +{{% /quiz_instruction %}} + +{{% quiz_instruction id="/macOS/x86-64/Stable/Homebrew" %}} If the [Brew Package Manager](https://brew.sh/) is installed: ```shell @@ -178,21 +376,37 @@ brew link minikube ``` {{% /quiz_instruction %}} -{{% quiz_instruction id="/macOS/x86-64/Binary download" %}} +{{% quiz_instruction id="/macOS/x86-64/Stable/Binary download" %}} ```shell curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-darwin-amd64 sudo install minikube-darwin-amd64 /usr/local/bin/minikube ``` {{% /quiz_instruction %}} -{{% quiz_instruction id="/macOS/ARM64/Binary download" %}} +{{% quiz_instruction id="/macOS/x86-64/Beta/Binary download" %}} +```shell +r=https://api.github.com/repos/kubernetes/minikube/releases +curl -LO $(curl -s $r | grep -o 'http.*download/v.*beta.*/minikube-darwin-amd64' | head -n1) +sudo install minikube-darwin-amd64 /usr/local/bin/minikube +``` +{{% /quiz_instruction %}} + +{{% quiz_instruction id="/macOS/ARM64/Stable/Binary download" %}} ```shell curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-darwin-arm64 sudo install minikube-darwin-arm64 /usr/local/bin/minikube ``` {{% /quiz_instruction %}} -{{% quiz_instruction id="/Windows/x86-64/Windows Package Manager" %}} +{{% quiz_instruction id="/macOS/ARM64/Beta/Binary download" %}} +```shell +r=https://api.github.com/repos/kubernetes/minikube/releases +curl -LO $(curl -s $r | grep -o 'http.*download/v.*beta.*/minikube-darwin-arm64' | head -n1) +sudo install minikube-darwin-arm64 /usr/local/bin/minikube +``` +{{% /quiz_instruction %}} + +{{% quiz_instruction id="/Windows/x86-64/Stable/Windows Package Manager" %}} If the [Windows Package Manager](https://docs.microsoft.com/en-us/windows/package-manager/) is installed, use the following command to install minikube: ```shell @@ -200,7 +414,7 @@ winget install minikube ``` {{% /quiz_instruction %}} -{{% quiz_instruction id="/Windows/x86-64/Chocolatey" %}} +{{% quiz_instruction id="/Windows/x86-64/Stable/Chocolatey" %}} If the [Chocolatey Package Manager](https://chocolatey.org/) is installed, use the following command: ```shell @@ -208,14 +422,19 @@ choco install minikube ``` {{% /quiz_instruction %}} -{{% quiz_instruction id="/Windows/x86-64/.exe download" %}} +{{% quiz_instruction id="/Windows/x86-64/Stable/.exe download" %}} Download and run the stand-alone [minikube Windows installer](https://storage.googleapis.com/minikube/releases/latest/minikube-installer.exe). _If you used a CLI to perform the installation, you will need to close that CLI and open a new one before proceeding._ {{% /quiz_instruction %}} -{{% /card %}} +{{% quiz_instruction id="/Windows/x86-64/Beta/.exe download" %}} +Download and run the stand-alone minikube Windows installer from [the release page](https://github.com/kubernetes/minikube/releases). +_If you used a CLI to perform the installation, you will need to close that CLI and open a new one before proceeding._ +{{% /quiz_instruction %}} + +{{% /card %}}

2Start your cluster

diff --git a/site/layouts/shortcodes/quiz_instruction.html b/site/layouts/shortcodes/quiz_instruction.html index 1f516ecb4806..b02229e47537 100644 --- a/site/layouts/shortcodes/quiz_instruction.html +++ b/site/layouts/shortcodes/quiz_instruction.html @@ -3,9 +3,10 @@ {{ $os := index $selected 1 }} {{ $arch := index $selected 2 }} -{{ $installer := index $selected 3 }} +{{ $release := index $selected 3 }} +{{ $installer := index $selected 4 }}
-

To install minikube on {{ $arch }} {{ $os }} using {{ replace $installer "Binary" "binary" }}:

+

To install the latest minikube {{ lower $release }} release on {{ $arch }} {{ $os }} using {{ replace $installer "Binary" "binary" }}:

{{ .Inner }}
From 22ee45087676bca25d4e226feaedc2e11140ad70 Mon Sep 17 00:00:00 2001 From: Sharif Elgamal Date: Thu, 1 Jul 2021 12:41:09 -0700 Subject: [PATCH 106/111] change PR description for gendocs --- .github/workflows/docs.yml | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index 1d14b144cbcf..a90dc2ed75a0 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -33,4 +33,9 @@ jobs: base: master delete-branch: true title: 'Update auto-generated docs and translations' - body: 'Committing changes resulting from `make generate-docs`\n\nAutogenerated by the generate-docs github action workflow.\n\n${{ steps.gendocs.outputs.changes }}' + body: | + Committing changes resulting from `make generate-docs` + Autogenerated by the generate-docs github action workflow. + ``` + ${{ steps.gendocs.outputs.changes }} + ``` From a4388821eeeb5328e478ff6ac70fd27ff378ae77 Mon Sep 17 00:00:00 2001 From: Sharif Elgamal Date: Thu, 1 Jul 2021 12:55:01 -0700 Subject: [PATCH 107/111] fix wording and link to workflow --- .github/workflows/docs.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index a90dc2ed75a0..5ba1f50ae717 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -34,8 +34,8 @@ jobs: delete-branch: true title: 'Update auto-generated docs and translations' body: | - Committing changes resulting from `make generate-docs` - Autogenerated by the generate-docs github action workflow. + Committing changes resulting from `make generate-docs`. + This PR is auto-generated by the [gendocs](https://github.com/kubernetes/minikube/blob/master/.github/workflows/docs.yml) CI workflow. ``` ${{ steps.gendocs.outputs.changes }} ``` From d2876b14140c7e24759a2a4e8917f66118ee4716 Mon Sep 17 00:00:00 2001 From: Medya Gh Date: Thu, 1 Jul 2021 16:32:39 -0400 Subject: [PATCH 108/111] auto bump kubernetes version using github actions --- .github/workflows/update-k8s-versions.yml | 36 +++++++++++++++++++ .../golang_version/update_golang_version.go | 5 +++ 2 files changed, 41 insertions(+) create mode 100644 .github/workflows/update-k8s-versions.yml diff --git a/.github/workflows/update-k8s-versions.yml b/.github/workflows/update-k8s-versions.yml new file mode 100644 index 000000000000..0a3f328fef68 --- /dev/null +++ b/.github/workflows/update-k8s-versions.yml @@ -0,0 +1,36 @@ +name: "update-kubernetes-versions" +on: + schedule: + # every week on Thursday at 20:30 UTC + - cron: "45 20 * * *" +env: + GOPROXY: https://proxy.golang.org + GO_VERSION: 1.16.4 +jobs: + generate-docs: + runs-on: ubuntu-18.04 + steps: + - uses: actions/checkout@v2 + - uses: actions/setup-go@v2 + with: + go-version: ${{env.GO_VERSION}} + stable: true + - name: Bump Kuberenetes Versions + id: bumpk8s + run: | + make update-kubernetes-version + echo "::set-output name=changes::$(git status --porcelain)" + - name: Create PR + if: ${{ steps.bumpk8s.outputs.changes != '' }} + uses: peter-evans/create-pull-request@v3 + with: + token: ${{ secrets.MINIKUBE_BOT_PAT }} + commit-message: bump default/newest kubernetes versions + committer: minikube-bot + author: minikube-bot + branch: auto_bump_k8s_versions + push-to-fork: minikube-bot/minikube + base: master + delete-branch: true + title: 'bump default/newest kubernetes versions' + body: 'This PR was auto-generated by make update-kubernetes-version using [update-k8s-versions.yml](https://github.com/kubernetes/minikube/tree/master/.github/workflows) CI Workflow. Please only merge if all the tests pass.\n\n${{ steps.bumpk8s.outputs.changes }}' diff --git a/hack/update/golang_version/update_golang_version.go b/hack/update/golang_version/update_golang_version.go index 92e504bae751..d4766fc36ae2 100644 --- a/hack/update/golang_version/update_golang_version.go +++ b/hack/update/golang_version/update_golang_version.go @@ -75,6 +75,11 @@ var ( `GO_VERSION: '.*`: `GO_VERSION: '{{.StableVersion}}'`, }, }, + ".github/workflows/update_k8s_versions.yml": { + Replace: map[string]string{ + `GO_VERSION: '.*`: `GO_VERSION: '{{.StableVersion}}'`, + }, + }, ".github/workflows/pr_verified.yaml": { Replace: map[string]string{ `GO_VERSION: '.*`: `GO_VERSION: '{{.StableVersion}}'`, From e70637d9836d59d2e543034c26cffbfe0dc6eb67 Mon Sep 17 00:00:00 2001 From: Medya Gh Date: Thu, 1 Jul 2021 16:35:45 -0400 Subject: [PATCH 109/111] change name --- .github/workflows/update-k8s-versions.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/update-k8s-versions.yml b/.github/workflows/update-k8s-versions.yml index 0a3f328fef68..5646184a1992 100644 --- a/.github/workflows/update-k8s-versions.yml +++ b/.github/workflows/update-k8s-versions.yml @@ -7,8 +7,8 @@ env: GOPROXY: https://proxy.golang.org GO_VERSION: 1.16.4 jobs: - generate-docs: - runs-on: ubuntu-18.04 + bump-k8s-versions: + runs-on: ubuntu-20.04 steps: - uses: actions/checkout@v2 - uses: actions/setup-go@v2 From ba353bda0379ef68bb25600d42ba8c2043d959a9 Mon Sep 17 00:00:00 2001 From: Medya Gh Date: Thu, 1 Jul 2021 16:37:51 -0400 Subject: [PATCH 110/111] fix formatting --- .github/workflows/update-k8s-versions.yml | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/.github/workflows/update-k8s-versions.yml b/.github/workflows/update-k8s-versions.yml index 5646184a1992..b87102ea4237 100644 --- a/.github/workflows/update-k8s-versions.yml +++ b/.github/workflows/update-k8s-versions.yml @@ -33,4 +33,9 @@ jobs: base: master delete-branch: true title: 'bump default/newest kubernetes versions' - body: 'This PR was auto-generated by make update-kubernetes-version using [update-k8s-versions.yml](https://github.com/kubernetes/minikube/tree/master/.github/workflows) CI Workflow. Please only merge if all the tests pass.\n\n${{ steps.bumpk8s.outputs.changes }}' + body: | + This PR was auto-generated by `make update-kubernetes-version` using [update-k8s-versions.yml](https://github.com/kubernetes/minikube/tree/master/.github/workflows) CI Workflow. + Please only merge if all the tests pass. + + ${{ steps.bumpk8s.outputs.changes }} + From 6e1bab3b1bc2f80029e595db097a8ba99c55e20d Mon Sep 17 00:00:00 2001 From: Medya Gh Date: Thu, 1 Jul 2021 16:39:55 -0400 Subject: [PATCH 111/111] thursday --- .github/workflows/update-k8s-versions.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/update-k8s-versions.yml b/.github/workflows/update-k8s-versions.yml index b87102ea4237..cf2a663c7779 100644 --- a/.github/workflows/update-k8s-versions.yml +++ b/.github/workflows/update-k8s-versions.yml @@ -2,7 +2,7 @@ name: "update-kubernetes-versions" on: schedule: # every week on Thursday at 20:30 UTC - - cron: "45 20 * * *" + - cron: "45 20 * * 4" env: GOPROXY: https://proxy.golang.org GO_VERSION: 1.16.4