提交 3b43d8e2 编写于 作者: S Sharif Elgamal

Merge branch 'master' of github.com:kubernetes/minikube into gcr-auth

...@@ -5,14 +5,13 @@ go 1.16 ...@@ -5,14 +5,13 @@ go 1.16
require ( require (
cloud.google.com/go/storage v1.13.0 cloud.google.com/go/storage v1.13.0
contrib.go.opencensus.io/exporter/stackdriver v0.12.1 contrib.go.opencensus.io/exporter/stackdriver v0.12.1
github.com/Azure/azure-sdk-for-go v42.3.0+incompatible github.com/Azure/azure-sdk-for-go v43.0.0+incompatible
github.com/Delta456/box-cli-maker/v2 v2.2.1 github.com/Delta456/box-cli-maker/v2 v2.2.1
github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/trace v0.16.0 github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/trace v0.16.0
github.com/Microsoft/go-winio v0.4.15-0.20190919025122-fc70bd9a86b5 // indirect github.com/Microsoft/hcsshim v0.8.15 // indirect
github.com/Nvveen/Gotty v0.0.0-20120604004816-cd527374f1e5 // indirect
github.com/Parallels/docker-machine-parallels/v2 v2.0.1 github.com/Parallels/docker-machine-parallels/v2 v2.0.1
github.com/VividCortex/godaemon v0.0.0-20201030160542-15e3f4925a21 github.com/VividCortex/godaemon v0.0.0-20201030160542-15e3f4925a21
github.com/blang/semver v3.5.0+incompatible github.com/blang/semver v3.5.1+incompatible
github.com/briandowns/spinner v1.11.1 github.com/briandowns/spinner v1.11.1
github.com/c4milo/gotoolkit v0.0.0-20170318115440-bcc06269efa9 // indirect github.com/c4milo/gotoolkit v0.0.0-20170318115440-bcc06269efa9 // indirect
github.com/cenkalti/backoff v2.2.1+incompatible github.com/cenkalti/backoff v2.2.1+incompatible
...@@ -21,14 +20,12 @@ require ( ...@@ -21,14 +20,12 @@ require (
github.com/cloudevents/sdk-go/v2 v2.3.1 github.com/cloudevents/sdk-go/v2 v2.3.1
github.com/cloudfoundry-attic/jibber_jabber v0.0.0-20151120183258-bcc4c8345a21 github.com/cloudfoundry-attic/jibber_jabber v0.0.0-20151120183258-bcc4c8345a21
github.com/cloudfoundry/jibber_jabber v0.0.0-20151120183258-bcc4c8345a21 // indirect github.com/cloudfoundry/jibber_jabber v0.0.0-20151120183258-bcc4c8345a21 // indirect
github.com/containerd/continuity v0.0.0-20201208142359-180525291bb7 // indirect
github.com/docker/cli v0.0.0-20200303162255-7d407207c304 // indirect github.com/docker/cli v0.0.0-20200303162255-7d407207c304 // indirect
github.com/docker/docker v17.12.0-ce-rc1.0.20181225093023-5ddb1d410a8b+incompatible github.com/docker/docker v17.12.0-ce-rc1.0.20200916142827-bd33bbf0497b+incompatible
github.com/docker/go-units v0.4.0 github.com/docker/go-units v0.4.0
github.com/docker/machine v0.16.2 github.com/docker/machine v0.16.2
github.com/elazarl/goproxy v0.0.0-20190421051319-9d40249d3c2f github.com/elazarl/goproxy v0.0.0-20190421051319-9d40249d3c2f
github.com/elazarl/goproxy/ext v0.0.0-20190421051319-9d40249d3c2f // indirect github.com/elazarl/goproxy/ext v0.0.0-20190421051319-9d40249d3c2f // indirect
github.com/evanphx/json-patch v4.5.0+incompatible // indirect
github.com/golang-collections/collections v0.0.0-20130729185459-604e922904d3 github.com/golang-collections/collections v0.0.0-20130729185459-604e922904d3
github.com/google/go-cmp v0.5.5 github.com/google/go-cmp v0.5.5
github.com/google/go-containerregistry v0.4.1 github.com/google/go-containerregistry v0.4.1
...@@ -36,7 +33,6 @@ require ( ...@@ -36,7 +33,6 @@ require (
github.com/google/go-github/v32 v32.1.0 github.com/google/go-github/v32 v32.1.0
github.com/google/slowjam v0.0.0-20200530021616-df27e642fe7b github.com/google/slowjam v0.0.0-20200530021616-df27e642fe7b
github.com/google/uuid v1.2.0 github.com/google/uuid v1.2.0
github.com/googleapis/gnostic v0.3.0 // indirect
github.com/hashicorp/go-getter v1.5.2 github.com/hashicorp/go-getter v1.5.2
github.com/hashicorp/go-retryablehttp v0.6.8 github.com/hashicorp/go-retryablehttp v0.6.8
github.com/hectane/go-acl v0.0.0-20190604041725-da78bae5fc95 // indirect github.com/hectane/go-acl v0.0.0-20190604041725-da78bae5fc95 // indirect
...@@ -74,8 +70,6 @@ require ( ...@@ -74,8 +70,6 @@ require (
github.com/spf13/cobra v1.1.3 github.com/spf13/cobra v1.1.3
github.com/spf13/pflag v1.0.5 github.com/spf13/pflag v1.0.5
github.com/spf13/viper v1.7.1 github.com/spf13/viper v1.7.1
github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f // indirect
github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 // indirect
github.com/xeipuuv/gojsonschema v0.0.0-20180618132009-1d523034197f github.com/xeipuuv/gojsonschema v0.0.0-20180618132009-1d523034197f
github.com/zchee/go-vmnet v0.0.0-20161021174912-97ebf9174097 github.com/zchee/go-vmnet v0.0.0-20161021174912-97ebf9174097
go.opencensus.io v0.22.6 go.opencensus.io v0.22.6
...@@ -93,15 +87,14 @@ require ( ...@@ -93,15 +87,14 @@ require (
google.golang.org/api v0.40.0 google.golang.org/api v0.40.0
gopkg.in/mgo.v2 v2.0.0-20190816093944-a6b53ec6cb22 // indirect gopkg.in/mgo.v2 v2.0.0-20190816093944-a6b53ec6cb22 // indirect
gopkg.in/yaml.v2 v2.4.0 gopkg.in/yaml.v2 v2.4.0
gotest.tools/v3 v3.0.2 // indirect gotest.tools/v3 v3.0.3 // indirect
k8s.io/api v0.18.8 k8s.io/api v0.20.5
k8s.io/apimachinery v0.18.8 k8s.io/apimachinery v0.20.5
k8s.io/client-go v0.20.5 k8s.io/client-go v0.20.5
k8s.io/klog/v2 v2.8.0 k8s.io/klog/v2 v2.8.0
k8s.io/kubectl v0.0.0 k8s.io/kubectl v0.0.0
k8s.io/kubernetes v1.18.5 k8s.io/kubernetes v1.20.5
sigs.k8s.io/sig-storage-lib-external-provisioner v4.0.0+incompatible // indirect sigs.k8s.io/sig-storage-lib-external-provisioner/v6 v6.3.0
sigs.k8s.io/sig-storage-lib-external-provisioner/v5 v5.0.0
) )
replace ( replace (
...@@ -110,28 +103,30 @@ replace ( ...@@ -110,28 +103,30 @@ replace (
github.com/docker/machine => github.com/machine-drivers/machine v0.7.1-0.20210306082426-fcb2ad5bcb17 github.com/docker/machine => github.com/machine-drivers/machine v0.7.1-0.20210306082426-fcb2ad5bcb17
github.com/google/go-containerregistry => github.com/afbjorklund/go-containerregistry v0.4.1-0.20210321165649-761f6f9626b1 github.com/google/go-containerregistry => github.com/afbjorklund/go-containerregistry v0.4.1-0.20210321165649-761f6f9626b1
github.com/samalba/dockerclient => github.com/sayboras/dockerclient v1.0.0 github.com/samalba/dockerclient => github.com/sayboras/dockerclient v1.0.0
k8s.io/api => k8s.io/api v0.17.3 k8s.io/api => k8s.io/api v0.20.5
k8s.io/apiextensions-apiserver => k8s.io/apiextensions-apiserver v0.17.3 k8s.io/apiextensions-apiserver => k8s.io/apiextensions-apiserver v0.20.5
k8s.io/apimachinery => k8s.io/apimachinery v0.17.3 k8s.io/apimachinery => k8s.io/apimachinery v0.20.5
k8s.io/apiserver => k8s.io/apiserver v0.17.3 k8s.io/apiserver => k8s.io/apiserver v0.20.5
k8s.io/cli-runtime => k8s.io/cli-runtime v0.17.3 k8s.io/cli-runtime => k8s.io/cli-runtime v0.20.5
k8s.io/client-go => k8s.io/client-go v0.17.3 k8s.io/client-go => k8s.io/client-go v0.20.5
k8s.io/cloud-provider => k8s.io/cloud-provider v0.17.3 k8s.io/cloud-provider => k8s.io/cloud-provider v0.20.5
k8s.io/cluster-bootstrap => k8s.io/cluster-bootstrap v0.17.3 k8s.io/cluster-bootstrap => k8s.io/cluster-bootstrap v0.20.5
k8s.io/code-generator => k8s.io/code-generator v0.17.3 k8s.io/code-generator => k8s.io/code-generator v0.20.5
k8s.io/component-base => k8s.io/component-base v0.17.3 k8s.io/component-base => k8s.io/component-base v0.20.5
k8s.io/cri-api => k8s.io/cri-api v0.17.3 k8s.io/component-helpers => k8s.io/component-helpers v0.20.5
k8s.io/csi-translation-lib => k8s.io/csi-translation-lib v0.17.3 k8s.io/controller-manager => k8s.io/controller-manager v0.20.5
k8s.io/kube-aggregator => k8s.io/kube-aggregator v0.17.3 k8s.io/cri-api => k8s.io/cri-api v0.20.5
k8s.io/kube-controller-manager => k8s.io/kube-controller-manager v0.17.3 k8s.io/csi-translation-lib => k8s.io/csi-translation-lib v0.20.5
k8s.io/kube-proxy => k8s.io/kube-proxy v0.17.3 k8s.io/kube-aggregator => k8s.io/kube-aggregator v0.20.5
k8s.io/kube-scheduler => k8s.io/kube-scheduler v0.17.3 k8s.io/kube-controller-manager => k8s.io/kube-controller-manager v0.20.5
k8s.io/kubectl => k8s.io/kubectl v0.17.3 k8s.io/kube-proxy => k8s.io/kube-proxy v0.20.5
k8s.io/kubelet => k8s.io/kubelet v0.17.3 k8s.io/kube-scheduler => k8s.io/kube-scheduler v0.20.5
k8s.io/legacy-cloud-providers => k8s.io/legacy-cloud-providers v0.17.3 k8s.io/kubectl => k8s.io/kubectl v0.20.5
k8s.io/metrics => k8s.io/metrics v0.17.3 k8s.io/kubelet => k8s.io/kubelet v0.20.5
k8s.io/node-api => k8s.io/node-api v0.17.3 k8s.io/legacy-cloud-providers => k8s.io/legacy-cloud-providers v0.20.5
k8s.io/sample-apiserver => k8s.io/sample-apiserver v0.17.3 k8s.io/metrics => k8s.io/metrics v0.20.5
k8s.io/sample-cli-plugin => k8s.io/sample-cli-plugin v0.17.3 k8s.io/mount-utils => k8s.io/mount-utils v0.20.5
k8s.io/sample-controller => k8s.io/sample-controller v0.17.3 k8s.io/sample-apiserver => k8s.io/sample-apiserver v0.20.5
k8s.io/sample-cli-plugin => k8s.io/sample-cli-plugin v0.20.5
k8s.io/sample-controller => k8s.io/sample-controller v0.20.5
) )
此差异已折叠。
...@@ -76,7 +76,7 @@ func WaitForPods(c kubernetes.Interface, ns string, selector string, timeOut ... ...@@ -76,7 +76,7 @@ func WaitForPods(c kubernetes.Interface, ns string, selector string, timeOut ...
lastKnownPodNumber := -1 lastKnownPodNumber := -1
f := func() (bool, error) { f := func() (bool, error) {
listOpts := meta.ListOptions{LabelSelector: selector} listOpts := meta.ListOptions{LabelSelector: selector}
pods, err := c.CoreV1().Pods(ns).List(listOpts) pods, err := c.CoreV1().Pods(ns).List(context.Background(), listOpts)
if err != nil { if err != nil {
klog.Infof("temporary error: getting Pods with label selector %q : [%v]\n", selector, err) klog.Infof("temporary error: getting Pods with label selector %q : [%v]\n", selector, err)
return false, nil return false, nil
...@@ -115,14 +115,14 @@ func WaitForRCToStabilize(c kubernetes.Interface, ns, name string, timeout time. ...@@ -115,14 +115,14 @@ func WaitForRCToStabilize(c kubernetes.Interface, ns, name string, timeout time.
"metadata.name": name, "metadata.name": name,
"metadata.namespace": ns, "metadata.namespace": ns,
}.AsSelector().String()} }.AsSelector().String()}
w, err := c.CoreV1().ReplicationControllers(ns).Watch(options)
if err != nil {
return err
}
ctx, cancel := watchtools.ContextWithOptionalTimeout(context.Background(), timeout) ctx, cancel := watchtools.ContextWithOptionalTimeout(context.Background(), timeout)
defer cancel() defer cancel()
w, err := c.CoreV1().ReplicationControllers(ns).Watch(ctx, options)
if err != nil {
return err
}
_, err = watchtools.UntilWithoutRetry(ctx, w, func(event watch.Event) (bool, error) { _, err = watchtools.UntilWithoutRetry(ctx, w, func(event watch.Event) (bool, error) {
if event.Type == watch.Deleted { if event.Type == watch.Deleted {
return false, apierr.NewNotFound(schema.GroupResource{Resource: "replicationcontrollers"}, "") return false, apierr.NewNotFound(schema.GroupResource{Resource: "replicationcontrollers"}, "")
...@@ -149,14 +149,14 @@ func WaitForDeploymentToStabilize(c kubernetes.Interface, ns, name string, timeo ...@@ -149,14 +149,14 @@ func WaitForDeploymentToStabilize(c kubernetes.Interface, ns, name string, timeo
"metadata.name": name, "metadata.name": name,
"metadata.namespace": ns, "metadata.namespace": ns,
}.AsSelector().String()} }.AsSelector().String()}
w, err := c.AppsV1().Deployments(ns).Watch(options)
if err != nil {
return err
}
ctx, cancel := watchtools.ContextWithOptionalTimeout(context.Background(), timeout) ctx, cancel := watchtools.ContextWithOptionalTimeout(context.Background(), timeout)
defer cancel() defer cancel()
w, err := c.AppsV1().Deployments(ns).Watch(ctx, options)
if err != nil {
return err
}
_, err = watchtools.UntilWithoutRetry(ctx, w, func(event watch.Event) (bool, error) { _, err = watchtools.UntilWithoutRetry(ctx, w, func(event watch.Event) (bool, error) {
if event.Type == watch.Deleted { if event.Type == watch.Deleted {
return false, apierr.NewNotFound(schema.GroupResource{Resource: "deployments"}, "") return false, apierr.NewNotFound(schema.GroupResource{Resource: "deployments"}, "")
...@@ -179,7 +179,7 @@ func WaitForDeploymentToStabilize(c kubernetes.Interface, ns, name string, timeo ...@@ -179,7 +179,7 @@ func WaitForDeploymentToStabilize(c kubernetes.Interface, ns, name string, timeo
// WaitForService waits until the service appears (exist == true), or disappears (exist == false) // WaitForService waits until the service appears (exist == true), or disappears (exist == false)
func WaitForService(c kubernetes.Interface, namespace, name string, exist bool, interval, timeout time.Duration) error { func WaitForService(c kubernetes.Interface, namespace, name string, exist bool, interval, timeout time.Duration) error {
err := wait.PollImmediate(interval, timeout, func() (bool, error) { err := wait.PollImmediate(interval, timeout, func() (bool, error) {
_, err := c.CoreV1().Services(namespace).Get(name, meta.GetOptions{}) _, err := c.CoreV1().Services(namespace).Get(context.Background(), name, meta.GetOptions{})
switch { switch {
case err == nil: case err == nil:
klog.Infof("Service %s in namespace %s found.", name, namespace) klog.Infof("Service %s in namespace %s found.", name, namespace)
...@@ -213,24 +213,24 @@ func KubectlBinaryPath(version string) string { ...@@ -213,24 +213,24 @@ func KubectlBinaryPath(version string) string {
} }
// ScaleDeployment sets the number of replicas of deployment in namespace and context // ScaleDeployment sets the number of replicas of deployment in namespace and context
func ScaleDeployment(context, namespace, deploymentName string, replicas int) error { func ScaleDeployment(kcontext, namespace, deploymentName string, replicas int) error {
client, err := Client(context) client, err := Client(kcontext)
if err != nil { if err != nil {
return fmt.Errorf("client: %v", err) return fmt.Errorf("client: %v", err)
} }
scale, err := client.AppsV1().Deployments(namespace).GetScale(deploymentName, meta.GetOptions{}) scale, err := client.AppsV1().Deployments(namespace).GetScale(context.Background(), deploymentName, meta.GetOptions{})
if err != nil { if err != nil {
return fmt.Errorf("deployment scale: %v", err) return fmt.Errorf("deployment scale: %v", err)
} }
if scale.Spec.Replicas != int32(replicas) { if scale.Spec.Replicas != int32(replicas) {
scale.Spec.Replicas = int32(replicas) scale.Spec.Replicas = int32(replicas)
_, err = client.AppsV1().Deployments(namespace).UpdateScale(deploymentName, scale) _, err = client.AppsV1().Deployments(namespace).UpdateScale(context.Background(), deploymentName, scale, meta.UpdateOptions{})
if err != nil { if err != nil {
return fmt.Errorf("deployment rescale: %v", err) return fmt.Errorf("deployment rescale: %v", err)
} }
} }
klog.Infof("deployment %q in namespace %q and context %q rescaled to %d", deploymentName, namespace, context, replicas) klog.Infof("deployment %q in namespace %q and context %q rescaled to %d", deploymentName, namespace, kcontext, replicas)
return nil return nil
} }
...@@ -18,6 +18,7 @@ limitations under the License. ...@@ -18,6 +18,7 @@ limitations under the License.
package kverify package kverify
import ( import (
"context"
"time" "time"
"github.com/pkg/errors" "github.com/pkg/errors"
...@@ -34,7 +35,7 @@ func WaitForDefaultSA(cs *kubernetes.Clientset, timeout time.Duration) error { ...@@ -34,7 +35,7 @@ func WaitForDefaultSA(cs *kubernetes.Clientset, timeout time.Duration) error {
start := time.Now() start := time.Now()
saReady := func() (bool, error) { saReady := func() (bool, error) {
// equivalent to manual check of 'kubectl --context profile get serviceaccount default' // equivalent to manual check of 'kubectl --context profile get serviceaccount default'
sas, err := cs.CoreV1().ServiceAccounts("default").List(meta.ListOptions{}) sas, err := cs.CoreV1().ServiceAccounts("default").List(context.Background(), meta.ListOptions{})
if err != nil { if err != nil {
klog.Infof("temporary error waiting for default SA: %v", err) klog.Infof("temporary error waiting for default SA: %v", err)
return false, nil return false, nil
......
...@@ -18,6 +18,7 @@ limitations under the License. ...@@ -18,6 +18,7 @@ limitations under the License.
package kverify package kverify
import ( import (
"context"
"fmt" "fmt"
"time" "time"
...@@ -108,7 +109,7 @@ func NodePressure(cs *kubernetes.Clientset) error { ...@@ -108,7 +109,7 @@ func NodePressure(cs *kubernetes.Clientset) error {
var err error var err error
listNodes := func() error { listNodes := func() error {
ns, err = cs.CoreV1().Nodes().List(meta.ListOptions{}) ns, err = cs.CoreV1().Nodes().List(context.Background(), meta.ListOptions{})
return err return err
} }
......
...@@ -18,6 +18,7 @@ limitations under the License. ...@@ -18,6 +18,7 @@ limitations under the License.
package kverify package kverify
import ( import (
"context"
"fmt" "fmt"
"time" "time"
...@@ -68,7 +69,7 @@ func WaitNodeCondition(cs *kubernetes.Clientset, name string, condition core.Nod ...@@ -68,7 +69,7 @@ func WaitNodeCondition(cs *kubernetes.Clientset, name string, condition core.Nod
// nodeConditionStatus returns if node is in specified condition and verbose reason. // nodeConditionStatus returns if node is in specified condition and verbose reason.
func nodeConditionStatus(cs *kubernetes.Clientset, name string, condition core.NodeConditionType) (status core.ConditionStatus, reason string) { func nodeConditionStatus(cs *kubernetes.Clientset, name string, condition core.NodeConditionType) (status core.ConditionStatus, reason string) {
node, err := cs.CoreV1().Nodes().Get(name, meta.GetOptions{}) node, err := cs.CoreV1().Nodes().Get(context.Background(), name, meta.GetOptions{})
if err != nil { if err != nil {
return core.ConditionUnknown, fmt.Sprintf("error getting node %q: %v", name, err) return core.ConditionUnknown, fmt.Sprintf("error getting node %q: %v", name, err)
} }
......
...@@ -18,6 +18,7 @@ limitations under the License. ...@@ -18,6 +18,7 @@ limitations under the License.
package kverify package kverify
import ( import (
"context"
"fmt" "fmt"
"time" "time"
...@@ -37,7 +38,7 @@ func WaitExtra(cs *kubernetes.Clientset, labels []string, timeout time.Duration) ...@@ -37,7 +38,7 @@ func WaitExtra(cs *kubernetes.Clientset, labels []string, timeout time.Duration)
klog.Infof("duration metric: took %s for extra waiting for all system-critical and pods with labels %v to be %q ...", time.Since(start), labels, core.PodReady) klog.Infof("duration metric: took %s for extra waiting for all system-critical and pods with labels %v to be %q ...", time.Since(start), labels, core.PodReady)
}() }()
pods, err := cs.CoreV1().Pods(meta.NamespaceSystem).List(meta.ListOptions{}) pods, err := cs.CoreV1().Pods(meta.NamespaceSystem).List(context.Background(), meta.ListOptions{})
if err != nil { if err != nil {
return fmt.Errorf("error listing pods in %q namespace: %w", meta.NamespaceSystem, err) return fmt.Errorf("error listing pods in %q namespace: %w", meta.NamespaceSystem, err)
} }
...@@ -111,7 +112,7 @@ func waitPodCondition(cs *kubernetes.Clientset, name, namespace string, conditio ...@@ -111,7 +112,7 @@ func waitPodCondition(cs *kubernetes.Clientset, name, namespace string, conditio
// podConditionStatus returns if pod is in specified condition and verbose reason. // podConditionStatus returns if pod is in specified condition and verbose reason.
func podConditionStatus(cs *kubernetes.Clientset, name, namespace string, condition core.PodConditionType) (status core.ConditionStatus, reason string) { func podConditionStatus(cs *kubernetes.Clientset, name, namespace string, condition core.PodConditionType) (status core.ConditionStatus, reason string) {
pod, err := cs.CoreV1().Pods(namespace).Get(name, meta.GetOptions{}) pod, err := cs.CoreV1().Pods(namespace).Get(context.Background(), name, meta.GetOptions{})
if err != nil { if err != nil {
return core.ConditionUnknown, fmt.Sprintf("error getting pod %q in %q namespace: %v", name, namespace, err) return core.ConditionUnknown, fmt.Sprintf("error getting pod %q in %q namespace: %v", name, namespace, err)
} }
......
...@@ -18,6 +18,7 @@ limitations under the License. ...@@ -18,6 +18,7 @@ limitations under the License.
package kverify package kverify
import ( import (
"context"
"fmt" "fmt"
"strings" "strings"
"time" "time"
...@@ -48,7 +49,7 @@ func WaitForSystemPods(r cruntime.Manager, bs bootstrapper.Bootstrapper, cfg con ...@@ -48,7 +49,7 @@ func WaitForSystemPods(r cruntime.Manager, bs bootstrapper.Bootstrapper, cfg con
} }
// Wait for any system pod, as waiting for apiserver may block until etcd // Wait for any system pod, as waiting for apiserver may block until etcd
pods, err := client.CoreV1().Pods("kube-system").List(meta.ListOptions{}) pods, err := client.CoreV1().Pods("kube-system").List(context.Background(), meta.ListOptions{})
if err != nil { if err != nil {
klog.Warningf("pod list returned error: %v", err) klog.Warningf("pod list returned error: %v", err)
return err return err
...@@ -77,7 +78,7 @@ func WaitForSystemPods(r cruntime.Manager, bs bootstrapper.Bootstrapper, cfg con ...@@ -77,7 +78,7 @@ func WaitForSystemPods(r cruntime.Manager, bs bootstrapper.Bootstrapper, cfg con
func ExpectAppsRunning(cs *kubernetes.Clientset, expected []string) error { func ExpectAppsRunning(cs *kubernetes.Clientset, expected []string) error {
found := map[string]bool{} found := map[string]bool{}
pods, err := cs.CoreV1().Pods("kube-system").List(meta.ListOptions{}) pods, err := cs.CoreV1().Pods("kube-system").List(context.Background(), meta.ListOptions{})
if err != nil { if err != nil {
return err return err
} }
......
...@@ -689,7 +689,7 @@ func (k *Bootstrapper) restartControlPlane(cfg config.ClusterConfig) error { ...@@ -689,7 +689,7 @@ func (k *Bootstrapper) restartControlPlane(cfg config.ClusterConfig) error {
klog.Info("waiting for restarted kubelet to initialise ...") klog.Info("waiting for restarted kubelet to initialise ...")
start := time.Now() start := time.Now()
wait := func() error { wait := func() error {
pods, err := client.CoreV1().Pods(meta.NamespaceSystem).List(meta.ListOptions{LabelSelector: "tier=control-plane"}) pods, err := client.CoreV1().Pods(meta.NamespaceSystem).List(context.Background(), meta.ListOptions{LabelSelector: "tier=control-plane"})
if err != nil { if err != nil {
return err return err
} }
......
...@@ -17,12 +17,14 @@ limitations under the License. ...@@ -17,12 +17,14 @@ limitations under the License.
package node package node
import ( import (
"context"
"fmt" "fmt"
"os/exec" "os/exec"
"github.com/pkg/errors" "github.com/pkg/errors"
"github.com/spf13/viper" "github.com/spf13/viper"
v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/klog/v2" "k8s.io/klog/v2"
"k8s.io/minikube/pkg/kapi" "k8s.io/minikube/pkg/kapi"
"k8s.io/minikube/pkg/minikube/config" "k8s.io/minikube/pkg/minikube/config"
...@@ -119,7 +121,7 @@ func drainNode(cc config.ClusterConfig, name string) (*config.Node, error) { ...@@ -119,7 +121,7 @@ func drainNode(cc config.ClusterConfig, name string) (*config.Node, error) {
return n, err return n, err
} }
err = client.CoreV1().Nodes().Delete(m, nil) err = client.CoreV1().Nodes().Delete(context.Background(), m, v1.DeleteOptions{})
if err != nil { if err != nil {
return n, err return n, err
} }
......
...@@ -18,6 +18,7 @@ package service ...@@ -18,6 +18,7 @@ package service
import ( import (
"bytes" "bytes"
"context"
"fmt" "fmt"
"io" "io"
"net/url" "net/url"
...@@ -106,7 +107,7 @@ func GetServiceURLs(api libmachine.API, cname string, namespace string, t *templ ...@@ -106,7 +107,7 @@ func GetServiceURLs(api libmachine.API, cname string, namespace string, t *templ
serviceInterface := client.Services(namespace) serviceInterface := client.Services(namespace)
svcs, err := serviceInterface.List(meta.ListOptions{}) svcs, err := serviceInterface.List(context.Background(), meta.ListOptions{})
if err != nil { if err != nil {
return nil, err return nil, err
} }
...@@ -148,12 +149,12 @@ func printURLsForService(c typed_core.CoreV1Interface, ip, service, namespace st ...@@ -148,12 +149,12 @@ func printURLsForService(c typed_core.CoreV1Interface, ip, service, namespace st
return SvcURL{}, errors.New("Error, attempted to generate service url with nil --format template") return SvcURL{}, errors.New("Error, attempted to generate service url with nil --format template")
} }
svc, err := c.Services(namespace).Get(service, meta.GetOptions{}) svc, err := c.Services(namespace).Get(context.Background(), service, meta.GetOptions{})
if err != nil { if err != nil {
return SvcURL{}, errors.Wrapf(err, "service '%s' could not be found running", service) return SvcURL{}, errors.Wrapf(err, "service '%s' could not be found running", service)
} }
endpoints, err := c.Endpoints(namespace).Get(service, meta.GetOptions{}) endpoints, err := c.Endpoints(namespace).Get(context.Background(), service, meta.GetOptions{})
m := make(map[int32]string) m := make(map[int32]string)
if err == nil && endpoints != nil && len(endpoints.Subsets) > 0 { if err == nil && endpoints != nil && len(endpoints.Subsets) > 0 {
for _, ept := range endpoints.Subsets { for _, ept := range endpoints.Subsets {
...@@ -201,7 +202,7 @@ func CheckService(cname string, namespace string, service string) error { ...@@ -201,7 +202,7 @@ func CheckService(cname string, namespace string, service string) error {
return errors.Wrap(err, "Error getting Kubernetes client") return errors.Wrap(err, "Error getting Kubernetes client")
} }
svc, err := client.Services(namespace).Get(service, meta.GetOptions{}) svc, err := client.Services(namespace).Get(context.Background(), service, meta.GetOptions{})
if err != nil { if err != nil {
return &retry.RetriableError{ return &retry.RetriableError{
Err: errors.Wrapf(err, "Error getting service %s", service), Err: errors.Wrapf(err, "Error getting service %s", service),
...@@ -309,7 +310,7 @@ func GetServiceListByLabel(cname string, namespace string, key string, value str ...@@ -309,7 +310,7 @@ func GetServiceListByLabel(cname string, namespace string, key string, value str
func getServiceListFromServicesByLabel(services typed_core.ServiceInterface, key string, value string) (*core.ServiceList, error) { func getServiceListFromServicesByLabel(services typed_core.ServiceInterface, key string, value string) (*core.ServiceList, error) {
selector := labels.SelectorFromSet(labels.Set(map[string]string{key: value})) selector := labels.SelectorFromSet(labels.Set(map[string]string{key: value}))
serviceList, err := services.List(meta.ListOptions{LabelSelector: selector.String()}) serviceList, err := services.List(context.Background(), meta.ListOptions{LabelSelector: selector.String()})
if err != nil { if err != nil {
return &core.ServiceList{}, &retry.RetriableError{Err: err} return &core.ServiceList{}, &retry.RetriableError{Err: err}
} }
...@@ -325,7 +326,7 @@ func CreateSecret(cname string, namespace, name string, dataValues map[string]st ...@@ -325,7 +326,7 @@ func CreateSecret(cname string, namespace, name string, dataValues map[string]st
} }
secrets := client.Secrets(namespace) secrets := client.Secrets(namespace)
secret, err := secrets.Get(name, meta.GetOptions{}) secret, err := secrets.Get(context.Background(), name, meta.GetOptions{})
if err != nil { if err != nil {
klog.Infof("Failed to retrieve existing secret: %v", err) klog.Infof("Failed to retrieve existing secret: %v", err)
} }
...@@ -354,7 +355,7 @@ func CreateSecret(cname string, namespace, name string, dataValues map[string]st ...@@ -354,7 +355,7 @@ func CreateSecret(cname string, namespace, name string, dataValues map[string]st
Type: core.SecretTypeOpaque, Type: core.SecretTypeOpaque,
} }
_, err = secrets.Create(secretObj) _, err = secrets.Create(context.Background(), secretObj, meta.CreateOptions{})
if err != nil { if err != nil {
return &retry.RetriableError{Err: err} return &retry.RetriableError{Err: err}
} }
...@@ -370,7 +371,7 @@ func DeleteSecret(cname string, namespace, name string) error { ...@@ -370,7 +371,7 @@ func DeleteSecret(cname string, namespace, name string) error {
} }
secrets := client.Secrets(namespace) secrets := client.Secrets(namespace)
err = secrets.Delete(name, &meta.DeleteOptions{}) err = secrets.Delete(context.Background(), name, meta.DeleteOptions{})
if err != nil { if err != nil {
return &retry.RetriableError{Err: err} return &retry.RetriableError{Err: err}
} }
......
...@@ -18,6 +18,7 @@ package service ...@@ -18,6 +18,7 @@ package service
import ( import (
"bytes" "bytes"
"context"
"fmt" "fmt"
"io/ioutil" "io/ioutil"
"os" "os"
...@@ -217,7 +218,7 @@ var endpointMap = map[string]*core.Endpoints{ ...@@ -217,7 +218,7 @@ var endpointMap = map[string]*core.Endpoints{
}, },
} }
func (e MockEndpointsInterface) Get(name string, _ meta.GetOptions) (*core.Endpoints, error) { func (e MockEndpointsInterface) Get(ctx context.Context, name string, _ meta.GetOptions) (*core.Endpoints, error) {
endpoint, ok := endpointMap[name] endpoint, ok := endpointMap[name]
if !ok { if !ok {
return nil, errors.New("Endpoint not found") return nil, errors.New("Endpoint not found")
...@@ -235,7 +236,7 @@ type MockSecretInterface struct { ...@@ -235,7 +236,7 @@ type MockSecretInterface struct {
SecretsList *core.SecretList SecretsList *core.SecretList
} }
func (s MockServiceInterface) List(opts meta.ListOptions) (*core.ServiceList, error) { func (s MockServiceInterface) List(ctx context.Context, opts meta.ListOptions) (*core.ServiceList, error) {
serviceList := &core.ServiceList{ serviceList := &core.ServiceList{
Items: []core.Service{}, Items: []core.Service{},
} }
...@@ -254,7 +255,7 @@ func (s MockServiceInterface) List(opts meta.ListOptions) (*core.ServiceList, er ...@@ -254,7 +255,7 @@ func (s MockServiceInterface) List(opts meta.ListOptions) (*core.ServiceList, er
return s.ServiceList, nil return s.ServiceList, nil
} }
func (s MockServiceInterface) Get(name string, _ meta.GetOptions) (*core.Service, error) { func (s MockServiceInterface) Get(ctx context.Context, name string, _ meta.GetOptions) (*core.Service, error) {
for _, svc := range s.ServiceList.Items { for _, svc := range s.ServiceList.Items {
if svc.ObjectMeta.Name == name { if svc.ObjectMeta.Name == name {
return &svc, nil return &svc, nil
......
...@@ -17,6 +17,7 @@ limitations under the License. ...@@ -17,6 +17,7 @@ limitations under the License.
package storageclass package storageclass
import ( import (
"context"
"strconv" "strconv"
"github.com/pkg/errors" "github.com/pkg/errors"
...@@ -29,7 +30,7 @@ import ( ...@@ -29,7 +30,7 @@ import (
func annotateDefaultStorageClass(storage storagev1.StorageV1Interface, class *v1.StorageClass, enable bool) error { func annotateDefaultStorageClass(storage storagev1.StorageV1Interface, class *v1.StorageClass, enable bool) error {
isDefault := strconv.FormatBool(enable) isDefault := strconv.FormatBool(enable)
metav1.SetMetaDataAnnotation(&class.ObjectMeta, "storageclass.kubernetes.io/is-default-class", isDefault) metav1.SetMetaDataAnnotation(&class.ObjectMeta, "storageclass.kubernetes.io/is-default-class", isDefault)
_, err := storage.StorageClasses().Update(class) _, err := storage.StorageClasses().Update(context.Background(), class, metav1.UpdateOptions{})
return err return err
} }
...@@ -37,7 +38,7 @@ func annotateDefaultStorageClass(storage storagev1.StorageV1Interface, class *v1 ...@@ -37,7 +38,7 @@ func annotateDefaultStorageClass(storage storagev1.StorageV1Interface, class *v1
// DisableDefaultStorageClass disables the default storage class provisioner // DisableDefaultStorageClass disables the default storage class provisioner
// The addon-manager and kubectl apply cannot delete storageclasses // The addon-manager and kubectl apply cannot delete storageclasses
func DisableDefaultStorageClass(storage storagev1.StorageV1Interface, class string) error { func DisableDefaultStorageClass(storage storagev1.StorageV1Interface, class string) error {
sc, err := storage.StorageClasses().Get(class, metav1.GetOptions{}) sc, err := storage.StorageClasses().Get(context.Background(), class, metav1.GetOptions{})
if err != nil { if err != nil {
return errors.Wrapf(err, "Error getting storage class %s", class) return errors.Wrapf(err, "Error getting storage class %s", class)
} }
...@@ -52,7 +53,7 @@ func DisableDefaultStorageClass(storage storagev1.StorageV1Interface, class stri ...@@ -52,7 +53,7 @@ func DisableDefaultStorageClass(storage storagev1.StorageV1Interface, class stri
// SetDefaultStorageClass makes sure only the class with @name is marked as // SetDefaultStorageClass makes sure only the class with @name is marked as
// default. // default.
func SetDefaultStorageClass(storage storagev1.StorageV1Interface, name string) error { func SetDefaultStorageClass(storage storagev1.StorageV1Interface, name string) error {
scList, err := storage.StorageClasses().List(metav1.ListOptions{}) scList, err := storage.StorageClasses().List(context.Background(), metav1.ListOptions{})
if err != nil { if err != nil {
return errors.Wrap(err, "Error listing StorageClasses") return errors.Wrap(err, "Error listing StorageClasses")
} }
......
...@@ -17,6 +17,7 @@ limitations under the License. ...@@ -17,6 +17,7 @@ limitations under the License.
package storageclass package storageclass
import ( import (
"context"
"fmt" "fmt"
"io/ioutil" "io/ioutil"
"os" "os"
...@@ -74,7 +75,7 @@ func (mockStorageV1InterfaceWithBadItem) StorageClasses() storagev1.StorageClass ...@@ -74,7 +75,7 @@ func (mockStorageV1InterfaceWithBadItem) StorageClasses() storagev1.StorageClass
return mockStorageClassInterfaceWithBadItem{} return mockStorageClassInterfaceWithBadItem{}
} }
func (mockStorageClassInterfaceOk) Get(name string, options metav1.GetOptions) (*v1.StorageClass, error) { func (mockStorageClassInterfaceOk) Get(ctx context.Context, name string, options metav1.GetOptions) (*v1.StorageClass, error) {
if strings.HasPrefix(name, "bad-class") { if strings.HasPrefix(name, "bad-class") {
return nil, fmt.Errorf("mocked error. No such class") return nil, fmt.Errorf("mocked error. No such class")
} }
...@@ -82,31 +83,31 @@ func (mockStorageClassInterfaceOk) Get(name string, options metav1.GetOptions) ( ...@@ -82,31 +83,31 @@ func (mockStorageClassInterfaceOk) Get(name string, options metav1.GetOptions) (
return &sc, nil return &sc, nil
} }
func (m mockStorageClassInterfaceOk) List(opts metav1.ListOptions) (*v1.StorageClassList, error) { func (m mockStorageClassInterfaceOk) List(ctx context.Context, opts metav1.ListOptions) (*v1.StorageClassList, error) {
scl := v1.StorageClassList{} scl := v1.StorageClassList{}
sc := v1.StorageClass{Provisioner: "standard"} sc := v1.StorageClass{Provisioner: "standard"}
scl.Items = append(scl.Items, sc) scl.Items = append(scl.Items, sc)
return &scl, nil return &scl, nil
} }
func (m mockStorageClassInterfaceWithBadItem) List(opts metav1.ListOptions) (*v1.StorageClassList, error) { func (m mockStorageClassInterfaceWithBadItem) List(ctx context.Context, opts metav1.ListOptions) (*v1.StorageClassList, error) {
scl := v1.StorageClassList{} scl := v1.StorageClassList{}
sc := v1.StorageClass{Provisioner: "bad", ObjectMeta: metav1.ObjectMeta{Name: "standard"}} sc := v1.StorageClass{Provisioner: "bad", ObjectMeta: metav1.ObjectMeta{Name: "standard"}}
scl.Items = append(scl.Items, sc) scl.Items = append(scl.Items, sc)
return &scl, nil return &scl, nil
} }
func (mockStorageClassInterfaceListErr) List(opts metav1.ListOptions) (*v1.StorageClassList, error) { func (mockStorageClassInterfaceListErr) List(ctx context.Context, opts metav1.ListOptions) (*v1.StorageClassList, error) {
return nil, fmt.Errorf("mocked list error") return nil, fmt.Errorf("mocked list error")
} }
func (mockStorageClassInterfaceOk) Update(sc *v1.StorageClass) (*v1.StorageClass, error) { func (mockStorageClassInterfaceOk) Update(ctx context.Context, sc *v1.StorageClass, opts metav1.UpdateOptions) (*v1.StorageClass, error) {
if strings.HasPrefix(sc.Provisioner, "bad") { if strings.HasPrefix(sc.Provisioner, "bad") {
return nil, fmt.Errorf("bad provisioner") return nil, fmt.Errorf("bad provisioner")
} }
return &v1.StorageClass{}, nil return &v1.StorageClass{}, nil
} }
func (mockStorageClassInterfaceWithBadItem) Update(sc *v1.StorageClass) (*v1.StorageClass, error) { func (mockStorageClassInterfaceWithBadItem) Update(ctx context.Context, sc *v1.StorageClass, opts metav1.UpdateOptions) (*v1.StorageClass, error) {
if strings.HasPrefix(sc.Provisioner, "bad") { if strings.HasPrefix(sc.Provisioner, "bad") {
return nil, fmt.Errorf("bad provisioner") return nil, fmt.Errorf("bad provisioner")
} }
......
...@@ -17,6 +17,7 @@ limitations under the License. ...@@ -17,6 +17,7 @@ limitations under the License.
package kic package kic
import ( import (
"context"
"fmt" "fmt"
"github.com/pkg/errors" "github.com/pkg/errors"
...@@ -46,7 +47,7 @@ func NewServiceTunnel(sshPort, sshKey string, v1Core typed_core.CoreV1Interface) ...@@ -46,7 +47,7 @@ func NewServiceTunnel(sshPort, sshKey string, v1Core typed_core.CoreV1Interface)
// Start ... // Start ...
func (t *ServiceTunnel) Start(svcName, namespace string) ([]string, error) { func (t *ServiceTunnel) Start(svcName, namespace string) ([]string, error) {
svc, err := t.v1Core.Services(namespace).Get(svcName, metav1.GetOptions{}) svc, err := t.v1Core.Services(namespace).Get(context.Background(), svcName, metav1.GetOptions{})
if err != nil { if err != nil {
return nil, errors.Wrapf(err, "Service %s was not found in %q namespace. You may select another namespace by using 'minikube service %s -n <namespace>", svcName, namespace, svcName) return nil, errors.Wrapf(err, "Service %s was not found in %q namespace. You may select another namespace by using 'minikube service %s -n <namespace>", svcName, namespace, svcName)
} }
......
...@@ -67,7 +67,7 @@ func (t *SSHTunnel) Start() error { ...@@ -67,7 +67,7 @@ func (t *SSHTunnel) Start() error {
default: default:
} }
services, err := t.v1Core.Services("").List(metav1.ListOptions{}) services, err := t.v1Core.Services("").List(context.Background(), metav1.ListOptions{})
if err != nil { if err != nil {
klog.Errorf("error listing services: %v", err) klog.Errorf("error listing services: %v", err)
} }
......
...@@ -17,6 +17,7 @@ limitations under the License. ...@@ -17,6 +17,7 @@ limitations under the License.
package tunnel package tunnel
import ( import (
"context"
"fmt" "fmt"
core "k8s.io/api/core/v1" core "k8s.io/api/core/v1"
...@@ -63,7 +64,7 @@ func (l *LoadBalancerEmulator) Cleanup() ([]string, error) { ...@@ -63,7 +64,7 @@ func (l *LoadBalancerEmulator) Cleanup() ([]string, error) {
func (l *LoadBalancerEmulator) applyOnLBServices(action func(restClient rest.Interface, svc core.Service) ([]byte, error)) ([]string, error) { func (l *LoadBalancerEmulator) applyOnLBServices(action func(restClient rest.Interface, svc core.Service) ([]byte, error)) ([]string, error) {
services := l.coreV1Client.Services("") services := l.coreV1Client.Services("")
serviceList, err := services.List(meta.ListOptions{}) serviceList, err := services.List(context.Background(), meta.ListOptions{})
if err != nil { if err != nil {
return nil, err return nil, err
} }
...@@ -172,5 +173,5 @@ func (c *defaultPatchConverter) convert(restClient rest.Interface, patch *Patch) ...@@ -172,5 +173,5 @@ func (c *defaultPatchConverter) convert(restClient rest.Interface, patch *Patch)
type defaultRequestSender struct{} type defaultRequestSender struct{}
func (r *defaultRequestSender) send(request *rest.Request) ([]byte, error) { func (r *defaultRequestSender) send(request *rest.Request) ([]byte, error) {
return request.Do().Raw() return request.Do(context.Background()).Raw()
} }
...@@ -17,6 +17,7 @@ limitations under the License. ...@@ -17,6 +17,7 @@ limitations under the License.
package tunnel package tunnel
import ( import (
"context"
"testing" "testing"
"reflect" "reflect"
...@@ -50,7 +51,7 @@ type stubServices struct { ...@@ -50,7 +51,7 @@ type stubServices struct {
servicesList *core.ServiceList servicesList *core.ServiceList
} }
func (s *stubServices) List(opts meta.ListOptions) (*core.ServiceList, error) { func (s *stubServices) List(ctx context.Context, opts meta.ListOptions) (*core.ServiceList, error) {
return s.servicesList, nil return s.servicesList, nil
} }
......
...@@ -17,20 +17,21 @@ limitations under the License. ...@@ -17,20 +17,21 @@ limitations under the License.
package storage package storage
import ( import (
"context"
"fmt" "fmt"
"os" "os"
"path" "path"
"github.com/pkg/errors" "github.com/pkg/errors"
core "k8s.io/api/core/v1" core "k8s.io/api/core/v1"
meta "k8s.io/apimachinery/pkg/apis/meta/v1" meta "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/types" "k8s.io/apimachinery/pkg/types"
"k8s.io/apimachinery/pkg/util/uuid" "k8s.io/apimachinery/pkg/util/uuid"
"k8s.io/apimachinery/pkg/util/wait"
"k8s.io/client-go/kubernetes" "k8s.io/client-go/kubernetes"
"k8s.io/client-go/rest" "k8s.io/client-go/rest"
"k8s.io/klog/v2" "k8s.io/klog/v2"
"sigs.k8s.io/sig-storage-lib-external-provisioner/v5/controller" "sigs.k8s.io/sig-storage-lib-external-provisioner/v6/controller"
) )
const provisionerName = "k8s.io/minikube-hostpath" const provisionerName = "k8s.io/minikube-hostpath"
...@@ -55,16 +56,16 @@ func NewHostPathProvisioner(pvDir string) controller.Provisioner { ...@@ -55,16 +56,16 @@ func NewHostPathProvisioner(pvDir string) controller.Provisioner {
var _ controller.Provisioner = &hostPathProvisioner{} var _ controller.Provisioner = &hostPathProvisioner{}
// Provision creates a storage asset and returns a PV object representing it. // Provision creates a storage asset and returns a PV object representing it.
func (p *hostPathProvisioner) Provision(options controller.ProvisionOptions) (*core.PersistentVolume, error) { func (p *hostPathProvisioner) Provision(ctx context.Context, options controller.ProvisionOptions) (*core.PersistentVolume, controller.ProvisioningState, error) {
path := path.Join(p.pvDir, options.PVC.Namespace, options.PVC.Name) path := path.Join(p.pvDir, options.PVC.Namespace, options.PVC.Name)
klog.Infof("Provisioning volume %v to %s", options, path) klog.Infof("Provisioning volume %v to %s", options, path)
if err := os.MkdirAll(path, 0777); err != nil { if err := os.MkdirAll(path, 0777); err != nil {
return nil, err return nil, controller.ProvisioningFinished, err
} }
// Explicitly chmod created dir, so we know mode is set to 0777 regardless of umask // Explicitly chmod created dir, so we know mode is set to 0777 regardless of umask
if err := os.Chmod(path, 0777); err != nil { if err := os.Chmod(path, 0777); err != nil {
return nil, err return nil, controller.ProvisioningFinished, err
} }
pv := &core.PersistentVolume{ pv := &core.PersistentVolume{
...@@ -88,12 +89,12 @@ func (p *hostPathProvisioner) Provision(options controller.ProvisionOptions) (*c ...@@ -88,12 +89,12 @@ func (p *hostPathProvisioner) Provision(options controller.ProvisionOptions) (*c
}, },
} }
return pv, nil return pv, controller.ProvisioningFinished, nil
} }
// Delete removes the storage asset that was created by Provision represented // Delete removes the storage asset that was created by Provision represented
// by the given PV. // by the given PV.
func (p *hostPathProvisioner) Delete(volume *core.PersistentVolume) error { func (p *hostPathProvisioner) Delete(ctx context.Context, volume *core.PersistentVolume) error {
klog.Infof("Deleting volume %v", volume) klog.Infof("Deleting volume %v", volume)
ann, ok := volume.Annotations["hostPathProvisionerIdentity"] ann, ok := volume.Annotations["hostPathProvisionerIdentity"]
if !ok { if !ok {
...@@ -138,6 +139,6 @@ func StartStorageProvisioner(pvDir string) error { ...@@ -138,6 +139,6 @@ func StartStorageProvisioner(pvDir string) error {
pc := controller.NewProvisionController(clientset, provisionerName, hostPathProvisioner, serverVersion.GitVersion) pc := controller.NewProvisionController(clientset, provisionerName, hostPathProvisioner, serverVersion.GitVersion)
klog.Info("Storage provisioner initialized, now starting service!") klog.Info("Storage provisioner initialized, now starting service!")
pc.Run(wait.NeverStop) pc.Run(context.Background())
return nil return nil
} }
...@@ -315,7 +315,7 @@ func PodWait(ctx context.Context, t *testing.T, profile string, ns string, selec ...@@ -315,7 +315,7 @@ func PodWait(ctx context.Context, t *testing.T, profile string, ns string, selec
start := time.Now() start := time.Now()
t.Logf("(dbg) %s: waiting %s for pods matching %q in namespace %q ...", t.Name(), timeout, selector, ns) t.Logf("(dbg) %s: waiting %s for pods matching %q in namespace %q ...", t.Name(), timeout, selector, ns)
f := func() (bool, error) { f := func() (bool, error) {
pods, err := client.CoreV1().Pods(ns).List(listOpts) pods, err := client.CoreV1().Pods(ns).List(ctx, listOpts)
if err != nil { if err != nil {
t.Logf("%s: WARNING: pod list for %q %q returned: %v", t.Name(), ns, selector, err) t.Logf("%s: WARNING: pod list for %q %q returned: %v", t.Name(), ns, selector, err)
// Don't return the error upwards so that this is retried, in case the apiserver is rescheduled // Don't return the error upwards so that this is retried, in case the apiserver is rescheduled
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册