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

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

......@@ -5,14 +5,13 @@ go 1.16
require (
cloud.google.com/go/storage v1.13.0
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/GoogleCloudPlatform/opentelemetry-operations-go/exporter/trace v0.16.0
github.com/Microsoft/go-winio v0.4.15-0.20190919025122-fc70bd9a86b5 // indirect
github.com/Nvveen/Gotty v0.0.0-20120604004816-cd527374f1e5 // indirect
github.com/Microsoft/hcsshim v0.8.15 // 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.0+incompatible
github.com/blang/semver v3.5.1+incompatible
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
......@@ -21,14 +20,12 @@ require (
github.com/cloudevents/sdk-go/v2 v2.3.1
github.com/cloudfoundry-attic/jibber_jabber v0.0.0-20151120183258-bcc4c8345a21
github.com/cloudfoundry/jibber_jabber v0.0.0-20151120183258-bcc4c8345a21 // indirect
github.com/containerd/continuity v0.0.0-20201208142359-180525291bb7 // 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/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/evanphx/json-patch v4.5.0+incompatible // indirect
github.com/golang-collections/collections v0.0.0-20130729185459-604e922904d3
github.com/google/go-cmp v0.5.5
github.com/google/go-containerregistry v0.4.1
......@@ -36,7 +33,6 @@ require (
github.com/google/go-github/v32 v32.1.0
github.com/google/slowjam v0.0.0-20200530021616-df27e642fe7b
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-retryablehttp v0.6.8
github.com/hectane/go-acl v0.0.0-20190604041725-da78bae5fc95 // indirect
......@@ -74,8 +70,6 @@ require (
github.com/spf13/cobra v1.1.3
github.com/spf13/pflag v1.0.5
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/zchee/go-vmnet v0.0.0-20161021174912-97ebf9174097
go.opencensus.io v0.22.6
......@@ -93,15 +87,14 @@ require (
google.golang.org/api v0.40.0
gopkg.in/mgo.v2 v2.0.0-20190816093944-a6b53ec6cb22 // indirect
gopkg.in/yaml.v2 v2.4.0
gotest.tools/v3 v3.0.2 // indirect
k8s.io/api v0.18.8
k8s.io/apimachinery v0.18.8
gotest.tools/v3 v3.0.3 // indirect
k8s.io/api v0.20.5
k8s.io/apimachinery v0.20.5
k8s.io/client-go v0.20.5
k8s.io/klog/v2 v2.8.0
k8s.io/kubectl v0.0.0
k8s.io/kubernetes v1.18.5
sigs.k8s.io/sig-storage-lib-external-provisioner v4.0.0+incompatible // indirect
sigs.k8s.io/sig-storage-lib-external-provisioner/v5 v5.0.0
k8s.io/kubernetes v1.20.5
sigs.k8s.io/sig-storage-lib-external-provisioner/v6 v6.3.0
)
replace (
......@@ -110,28 +103,30 @@ replace (
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/samalba/dockerclient => github.com/sayboras/dockerclient v1.0.0
k8s.io/api => k8s.io/api v0.17.3
k8s.io/apiextensions-apiserver => k8s.io/apiextensions-apiserver v0.17.3
k8s.io/apimachinery => k8s.io/apimachinery v0.17.3
k8s.io/apiserver => k8s.io/apiserver v0.17.3
k8s.io/cli-runtime => k8s.io/cli-runtime v0.17.3
k8s.io/client-go => k8s.io/client-go v0.17.3
k8s.io/cloud-provider => k8s.io/cloud-provider v0.17.3
k8s.io/cluster-bootstrap => k8s.io/cluster-bootstrap v0.17.3
k8s.io/code-generator => k8s.io/code-generator v0.17.3
k8s.io/component-base => k8s.io/component-base v0.17.3
k8s.io/cri-api => k8s.io/cri-api v0.17.3
k8s.io/csi-translation-lib => k8s.io/csi-translation-lib v0.17.3
k8s.io/kube-aggregator => k8s.io/kube-aggregator v0.17.3
k8s.io/kube-controller-manager => k8s.io/kube-controller-manager v0.17.3
k8s.io/kube-proxy => k8s.io/kube-proxy v0.17.3
k8s.io/kube-scheduler => k8s.io/kube-scheduler v0.17.3
k8s.io/kubectl => k8s.io/kubectl v0.17.3
k8s.io/kubelet => k8s.io/kubelet v0.17.3
k8s.io/legacy-cloud-providers => k8s.io/legacy-cloud-providers v0.17.3
k8s.io/metrics => k8s.io/metrics v0.17.3
k8s.io/node-api => k8s.io/node-api v0.17.3
k8s.io/sample-apiserver => k8s.io/sample-apiserver v0.17.3
k8s.io/sample-cli-plugin => k8s.io/sample-cli-plugin v0.17.3
k8s.io/sample-controller => k8s.io/sample-controller v0.17.3
k8s.io/api => k8s.io/api v0.20.5
k8s.io/apiextensions-apiserver => k8s.io/apiextensions-apiserver v0.20.5
k8s.io/apimachinery => k8s.io/apimachinery v0.20.5
k8s.io/apiserver => k8s.io/apiserver v0.20.5
k8s.io/cli-runtime => k8s.io/cli-runtime v0.20.5
k8s.io/client-go => k8s.io/client-go v0.20.5
k8s.io/cloud-provider => k8s.io/cloud-provider v0.20.5
k8s.io/cluster-bootstrap => k8s.io/cluster-bootstrap v0.20.5
k8s.io/code-generator => k8s.io/code-generator v0.20.5
k8s.io/component-base => k8s.io/component-base v0.20.5
k8s.io/component-helpers => k8s.io/component-helpers v0.20.5
k8s.io/controller-manager => k8s.io/controller-manager v0.20.5
k8s.io/cri-api => k8s.io/cri-api v0.20.5
k8s.io/csi-translation-lib => k8s.io/csi-translation-lib v0.20.5
k8s.io/kube-aggregator => k8s.io/kube-aggregator v0.20.5
k8s.io/kube-controller-manager => k8s.io/kube-controller-manager v0.20.5
k8s.io/kube-proxy => k8s.io/kube-proxy v0.20.5
k8s.io/kube-scheduler => k8s.io/kube-scheduler v0.20.5
k8s.io/kubectl => k8s.io/kubectl v0.20.5
k8s.io/kubelet => k8s.io/kubelet v0.20.5
k8s.io/legacy-cloud-providers => k8s.io/legacy-cloud-providers v0.20.5
k8s.io/metrics => k8s.io/metrics v0.20.5
k8s.io/mount-utils => k8s.io/mount-utils v0.20.5
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 ...
lastKnownPodNumber := -1
f := func() (bool, error) {
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 {
klog.Infof("temporary error: getting Pods with label selector %q : [%v]\n", selector, err)
return false, nil
......@@ -115,14 +115,14 @@ func WaitForRCToStabilize(c kubernetes.Interface, ns, name string, timeout time.
"metadata.name": name,
"metadata.namespace": ns,
}.AsSelector().String()}
w, err := c.CoreV1().ReplicationControllers(ns).Watch(options)
if err != nil {
return err
}
ctx, cancel := watchtools.ContextWithOptionalTimeout(context.Background(), timeout)
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) {
if event.Type == watch.Deleted {
return false, apierr.NewNotFound(schema.GroupResource{Resource: "replicationcontrollers"}, "")
......@@ -149,14 +149,14 @@ func WaitForDeploymentToStabilize(c kubernetes.Interface, ns, name string, timeo
"metadata.name": name,
"metadata.namespace": ns,
}.AsSelector().String()}
w, err := c.AppsV1().Deployments(ns).Watch(options)
if err != nil {
return err
}
ctx, cancel := watchtools.ContextWithOptionalTimeout(context.Background(), timeout)
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) {
if event.Type == watch.Deleted {
return false, apierr.NewNotFound(schema.GroupResource{Resource: "deployments"}, "")
......@@ -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)
func WaitForService(c kubernetes.Interface, namespace, name string, exist bool, interval, timeout time.Duration) 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 {
case err == nil:
klog.Infof("Service %s in namespace %s found.", name, namespace)
......@@ -213,24 +213,24 @@ func KubectlBinaryPath(version string) string {
}
// ScaleDeployment sets the number of replicas of deployment in namespace and context
func ScaleDeployment(context, namespace, deploymentName string, replicas int) error {
client, err := Client(context)
func ScaleDeployment(kcontext, namespace, deploymentName string, replicas int) error {
client, err := Client(kcontext)
if err != nil {
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 {
return fmt.Errorf("deployment scale: %v", err)
}
if 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 {
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
}
......@@ -18,6 +18,7 @@ limitations under the License.
package kverify
import (
"context"
"time"
"github.com/pkg/errors"
......@@ -34,7 +35,7 @@ func WaitForDefaultSA(cs *kubernetes.Clientset, timeout time.Duration) error {
start := time.Now()
saReady := func() (bool, error) {
// 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 {
klog.Infof("temporary error waiting for default SA: %v", err)
return false, nil
......
......@@ -18,6 +18,7 @@ limitations under the License.
package kverify
import (
"context"
"fmt"
"time"
......@@ -108,7 +109,7 @@ func NodePressure(cs *kubernetes.Clientset) error {
var err error
listNodes := func() error {
ns, err = cs.CoreV1().Nodes().List(meta.ListOptions{})
ns, err = cs.CoreV1().Nodes().List(context.Background(), meta.ListOptions{})
return err
}
......
......@@ -18,6 +18,7 @@ limitations under the License.
package kverify
import (
"context"
"fmt"
"time"
......@@ -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.
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 {
return core.ConditionUnknown, fmt.Sprintf("error getting node %q: %v", name, err)
}
......
......@@ -18,6 +18,7 @@ limitations under the License.
package kverify
import (
"context"
"fmt"
"time"
......@@ -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)
}()
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 {
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
// 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) {
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 {
return core.ConditionUnknown, fmt.Sprintf("error getting pod %q in %q namespace: %v", name, namespace, err)
}
......
......@@ -18,6 +18,7 @@ limitations under the License.
package kverify
import (
"context"
"fmt"
"strings"
"time"
......@@ -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
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 {
klog.Warningf("pod list returned error: %v", err)
return err
......@@ -77,7 +78,7 @@ func WaitForSystemPods(r cruntime.Manager, bs bootstrapper.Bootstrapper, cfg con
func ExpectAppsRunning(cs *kubernetes.Clientset, expected []string) error {
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 {
return err
}
......
......@@ -689,7 +689,7 @@ func (k *Bootstrapper) restartControlPlane(cfg config.ClusterConfig) error {
klog.Info("waiting for restarted kubelet to initialise ...")
start := time.Now()
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 {
return err
}
......
......@@ -17,12 +17,14 @@ limitations under the License.
package node
import (
"context"
"fmt"
"os/exec"
"github.com/pkg/errors"
"github.com/spf13/viper"
v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/klog/v2"
"k8s.io/minikube/pkg/kapi"
"k8s.io/minikube/pkg/minikube/config"
......@@ -119,7 +121,7 @@ func drainNode(cc config.ClusterConfig, name string) (*config.Node, error) {
return n, err
}
err = client.CoreV1().Nodes().Delete(m, nil)
err = client.CoreV1().Nodes().Delete(context.Background(), m, v1.DeleteOptions{})
if err != nil {
return n, err
}
......
......@@ -18,6 +18,7 @@ package service
import (
"bytes"
"context"
"fmt"
"io"
"net/url"
......@@ -106,7 +107,7 @@ func GetServiceURLs(api libmachine.API, cname string, namespace string, t *templ
serviceInterface := client.Services(namespace)
svcs, err := serviceInterface.List(meta.ListOptions{})
svcs, err := serviceInterface.List(context.Background(), meta.ListOptions{})
if err != nil {
return nil, err
}
......@@ -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")
}
svc, err := c.Services(namespace).Get(service, meta.GetOptions{})
svc, err := c.Services(namespace).Get(context.Background(), service, meta.GetOptions{})
if err != nil {
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)
if err == nil && endpoints != nil && len(endpoints.Subsets) > 0 {
for _, ept := range endpoints.Subsets {
......@@ -201,7 +202,7 @@ func CheckService(cname string, namespace string, service string) error {
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 {
return &retry.RetriableError{
Err: errors.Wrapf(err, "Error getting service %s", service),
......@@ -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) {
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 {
return &core.ServiceList{}, &retry.RetriableError{Err: err}
}
......@@ -325,7 +326,7 @@ func CreateSecret(cname string, namespace, name string, dataValues map[string]st
}
secrets := client.Secrets(namespace)
secret, err := secrets.Get(name, meta.GetOptions{})
secret, err := secrets.Get(context.Background(), name, meta.GetOptions{})
if err != nil {
klog.Infof("Failed to retrieve existing secret: %v", err)
}
......@@ -354,7 +355,7 @@ func CreateSecret(cname string, namespace, name string, dataValues map[string]st
Type: core.SecretTypeOpaque,
}
_, err = secrets.Create(secretObj)
_, err = secrets.Create(context.Background(), secretObj, meta.CreateOptions{})
if err != nil {
return &retry.RetriableError{Err: err}
}
......@@ -370,7 +371,7 @@ func DeleteSecret(cname string, namespace, name string) error {
}
secrets := client.Secrets(namespace)
err = secrets.Delete(name, &meta.DeleteOptions{})
err = secrets.Delete(context.Background(), name, meta.DeleteOptions{})
if err != nil {
return &retry.RetriableError{Err: err}
}
......
......@@ -18,6 +18,7 @@ package service
import (
"bytes"
"context"
"fmt"
"io/ioutil"
"os"
......@@ -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]
if !ok {
return nil, errors.New("Endpoint not found")
......@@ -235,7 +236,7 @@ type MockSecretInterface struct {
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{
Items: []core.Service{},
}
......@@ -254,7 +255,7 @@ func (s MockServiceInterface) List(opts meta.ListOptions) (*core.ServiceList, er
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 {
if svc.ObjectMeta.Name == name {
return &svc, nil
......
......@@ -17,6 +17,7 @@ limitations under the License.
package storageclass
import (
"context"
"strconv"
"github.com/pkg/errors"
......@@ -29,7 +30,7 @@ import (
func annotateDefaultStorageClass(storage storagev1.StorageV1Interface, class *v1.StorageClass, enable bool) error {
isDefault := strconv.FormatBool(enable)
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
}
......@@ -37,7 +38,7 @@ func annotateDefaultStorageClass(storage storagev1.StorageV1Interface, class *v1
// DisableDefaultStorageClass disables the default storage class provisioner
// The addon-manager and kubectl apply cannot delete storageclasses
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 {
return errors.Wrapf(err, "Error getting storage class %s", class)
}
......@@ -52,7 +53,7 @@ func DisableDefaultStorageClass(storage storagev1.StorageV1Interface, class stri
// SetDefaultStorageClass makes sure only the class with @name is marked as
// default.
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 {
return errors.Wrap(err, "Error listing StorageClasses")
}
......
......@@ -17,6 +17,7 @@ limitations under the License.
package storageclass
import (
"context"
"fmt"
"io/ioutil"
"os"
......@@ -74,7 +75,7 @@ func (mockStorageV1InterfaceWithBadItem) StorageClasses() storagev1.StorageClass
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") {
return nil, fmt.Errorf("mocked error. No such class")
}
......@@ -82,31 +83,31 @@ func (mockStorageClassInterfaceOk) Get(name string, options metav1.GetOptions) (
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{}
sc := v1.StorageClass{Provisioner: "standard"}
scl.Items = append(scl.Items, sc)
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{}
sc := v1.StorageClass{Provisioner: "bad", ObjectMeta: metav1.ObjectMeta{Name: "standard"}}
scl.Items = append(scl.Items, sc)
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")
}
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") {
return nil, fmt.Errorf("bad provisioner")
}
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") {
return nil, fmt.Errorf("bad provisioner")
}
......
......@@ -17,6 +17,7 @@ limitations under the License.
package kic
import (
"context"
"fmt"
"github.com/pkg/errors"
......@@ -46,7 +47,7 @@ func NewServiceTunnel(sshPort, sshKey string, v1Core typed_core.CoreV1Interface)
// Start ...
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 {
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 {
default:
}
services, err := t.v1Core.Services("").List(metav1.ListOptions{})
services, err := t.v1Core.Services("").List(context.Background(), metav1.ListOptions{})
if err != nil {
klog.Errorf("error listing services: %v", err)
}
......
......@@ -17,6 +17,7 @@ limitations under the License.
package tunnel
import (
"context"
"fmt"
core "k8s.io/api/core/v1"
......@@ -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) {
services := l.coreV1Client.Services("")
serviceList, err := services.List(meta.ListOptions{})
serviceList, err := services.List(context.Background(), meta.ListOptions{})
if err != nil {
return nil, err
}
......@@ -172,5 +173,5 @@ func (c *defaultPatchConverter) convert(restClient rest.Interface, patch *Patch)
type defaultRequestSender struct{}
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.
package tunnel
import (
"context"
"testing"
"reflect"
......@@ -50,7 +51,7 @@ type stubServices struct {
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
}
......
......@@ -17,20 +17,21 @@ limitations under the License.
package storage
import (
"context"
"fmt"
"os"
"path"
"github.com/pkg/errors"
core "k8s.io/api/core/v1"
meta "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/types"
"k8s.io/apimachinery/pkg/util/uuid"
"k8s.io/apimachinery/pkg/util/wait"
"k8s.io/client-go/kubernetes"
"k8s.io/client-go/rest"
"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"
......@@ -55,16 +56,16 @@ func NewHostPathProvisioner(pvDir string) controller.Provisioner {
var _ controller.Provisioner = &hostPathProvisioner{}
// 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)
klog.Infof("Provisioning volume %v to %s", options, path)
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
if err := os.Chmod(path, 0777); err != nil {
return nil, err
return nil, controller.ProvisioningFinished, err
}
pv := &core.PersistentVolume{
......@@ -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
// 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)
ann, ok := volume.Annotations["hostPathProvisionerIdentity"]
if !ok {
......@@ -138,6 +139,6 @@ func StartStorageProvisioner(pvDir string) error {
pc := controller.NewProvisionController(clientset, provisionerName, hostPathProvisioner, serverVersion.GitVersion)
klog.Info("Storage provisioner initialized, now starting service!")
pc.Run(wait.NeverStop)
pc.Run(context.Background())
return nil
}
......@@ -315,7 +315,7 @@ func PodWait(ctx context.Context, t *testing.T, profile string, ns string, selec
start := time.Now()
t.Logf("(dbg) %s: waiting %s for pods matching %q in namespace %q ...", t.Name(), timeout, selector, ns)
f := func() (bool, error) {
pods, err := client.CoreV1().Pods(ns).List(listOpts)
pods, err := client.CoreV1().Pods(ns).List(ctx, listOpts)
if err != nil {
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
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册