From 83fc89e5532ccdd69507e6f02053e7204c4923de Mon Sep 17 00:00:00 2001 From: Mikkel Oscar Lyderik Larsen Date: Tue, 26 May 2020 09:59:42 +0200 Subject: [PATCH] Update to Kubernetes v1.18 Signed-off-by: Mikkel Oscar Lyderik Larsen --- cluster/config-defaults.yaml | 4 +- cluster/node-pools/master-default/stack.yaml | 2 +- .../node-pools/master-default/userdata.yaml | 8 +- cluster/node-pools/worker-default/stack.yaml | 2 +- .../node-pools/worker-default/userdata.yaml | 2 - cluster/node-pools/worker-splitaz/stack.yaml | 2 +- test/e2e/Makefile | 2 +- test/e2e/admission_controller.go | 14 +- test/e2e/apiserver.go | 14 +- test/e2e/audit.go | 7 +- test/e2e/aws_iam.go | 13 +- test/e2e/cluster_config.sh | 1 + test/e2e/e2e_test.go | 3 +- test/e2e/external_dns.go | 9 +- test/e2e/go.mod | 14 +- test/e2e/go.sum | 111 ++++++++----- test/e2e/gpu.go | 5 +- test/e2e/infra.go | 4 +- test/e2e/ingress.go | 67 ++++---- test/e2e/kube_metrics_adapter_test.go | 13 +- test/e2e/psp.go | 15 +- test/e2e/util.go | 19 ++- test/e2e/viperconfig.go | 146 ++++++++++++++++++ 23 files changed, 339 insertions(+), 138 deletions(-) create mode 100644 test/e2e/viperconfig.go diff --git a/cluster/config-defaults.yaml b/cluster/config-defaults.yaml index 4c8e870cc8..f1798f620e 100644 --- a/cluster/config-defaults.yaml +++ b/cluster/config-defaults.yaml @@ -194,7 +194,7 @@ teapot_admission_controller_validate_pod_template_resources: "true" {{end}} {{if eq .Environment "e2e"}} -teapot_admission_controller_ignore_namespaces: "^kube-system|((downward-api|kubectl|projected|statefulset|pod-network|scope-selectors|resourcequota)-.*)$" +teapot_admission_controller_ignore_namespaces: "^kube-system|((downward-api|kubectl|projected|statefulset|pod-network|scope-selectors|resourcequota|limitrange)-.*)$" teapot_admission_controller_crd_ensure_no_resources_on_delete: "false" {{else}} teapot_admission_controller_ignore_namespaces: "^kube-system$" @@ -216,8 +216,8 @@ cluster_dns: "coredns" coredns_log_svc_names: "true" coredns_max_upstream_concurrency: 0 #0 means there is not concurrency limits -kuberuntu_image_v1_16: {{ amiID "zalando-ubuntu-kubernetes-production-v1.16.8-master-96" "861068367966" }} kuberuntu_image_v1_17: {{ amiID "zalando-ubuntu-kubernetes-production-v1.17.4-master-98" "861068367966" }} +kuberuntu_image_v1_18: {{ amiID "zalando-ubuntu-kubernetes-production-v1.18.3-master-109" "861068367966" }} # Feature toggle to allow gradual decommissioning of ingress-template-controller enable_ingress_template_controller: "false" diff --git a/cluster/node-pools/master-default/stack.yaml b/cluster/node-pools/master-default/stack.yaml index 1db41f31aa..7d6c486f77 100644 --- a/cluster/node-pools/master-default/stack.yaml +++ b/cluster/node-pools/master-default/stack.yaml @@ -4,7 +4,7 @@ Description: Kubernetes default master node pool Mappings: Images: eu-central-1: - MachineImage: '{{ .Cluster.ConfigItems.kuberuntu_image_v1_17 }}' + MachineImage: '{{ .Cluster.ConfigItems.kuberuntu_image_v1_18 }}' Resources: AutoScalingGroup: diff --git a/cluster/node-pools/master-default/userdata.yaml b/cluster/node-pools/master-default/userdata.yaml index 76a5178288..436e2ceded 100644 --- a/cluster/node-pools/master-default/userdata.yaml +++ b/cluster/node-pools/master-default/userdata.yaml @@ -43,8 +43,6 @@ write_files: {{- end }} featureGates: BoundServiceAccountTokenVolume: {{ .Cluster.ConfigItems.rotate_service_account_tokens }} - CSIDriverRegistry: {{ .Cluster.ConfigItems.enable_csi_migration }} - CSIBlockVolume: {{ .Cluster.ConfigItems.enable_csi_migration }} CSIMigration: {{ .Cluster.ConfigItems.enable_csi_migration }} podPidsLimit: {{ .NodePool.ConfigItems.pod_max_pids }} maxPods: {{ nodeCIDRMaxPods (parseInt64 .Cluster.ConfigItems.node_cidr_mask_size) 8 }} @@ -144,7 +142,7 @@ write_files: - --authorization-mode=Webhook,RBAC - --authorization-webhook-config-file=/etc/kubernetes/config/authz.yaml - --admission-control-config-file=/etc/kubernetes/config/image-policy-webhook.yaml - - --feature-gates=TTLAfterFinished=true,BoundServiceAccountTokenVolume={{ .Cluster.ConfigItems.rotate_service_account_tokens }},EndpointSlice={{ .Cluster.ConfigItems.enable_endpointslice }},HPAScaleToZero={{ .Cluster.ConfigItems.enable_hpa_scale_to_zero }},CSIDriverRegistry={{ .Cluster.ConfigItems.enable_csi_migration }},CSIBlockVolume={{ .Cluster.ConfigItems.enable_csi_migration }},VolumeSnapshotDataSource={{ .Cluster.ConfigItems.enable_csi_migration }},CSIMigration={{ .Cluster.ConfigItems.enable_csi_migration }} + - --feature-gates=TTLAfterFinished=true,BoundServiceAccountTokenVolume={{ .Cluster.ConfigItems.rotate_service_account_tokens }},EndpointSlice={{ .Cluster.ConfigItems.enable_endpointslice }},HPAScaleToZero={{ .Cluster.ConfigItems.enable_hpa_scale_to_zero }},VolumeSnapshotDataSource={{ .Cluster.ConfigItems.enable_csi_migration }},CSIMigration={{ .Cluster.ConfigItems.enable_csi_migration }} - --anonymous-auth=false - --service-account-key-file=/etc/kubernetes/ssl/service-account-public-key.pem {{- if eq .Cluster.ConfigItems.rotate_service_account_tokens "true" }} @@ -407,7 +405,7 @@ write_files: - name: BUSINESS_PARTNERS value: {{ .Cluster.ConfigItems.apiserver_business_partner_ids }} {{ end }} - - image: registry.opensource.zalan.do/teapot/image-policy-webhook:0.5.3 + - image: registry.opensource.zalan.do/teapot/image-policy-webhook:v0.5.4 name: image-policy-webhook args: - --policy={{ .Cluster.ConfigItems.image_policy }} @@ -567,7 +565,7 @@ write_files: - --root-ca-file=/etc/kubernetes/ssl/ca.pem - --cloud-provider=aws - --cloud-config=/etc/kubernetes/cloud-config.ini - - --feature-gates=TTLAfterFinished=true,BoundServiceAccountTokenVolume={{ .Cluster.ConfigItems.rotate_service_account_tokens }},CSIMigration={{ .Cluster.ConfigItems.enable_csi_migration }},CSIDriverRegistry={{ .Cluster.ConfigItems.enable_csi_migration }},CSIBlockVolume={{ .Cluster.ConfigItems.enable_csi_migration }} + - --feature-gates=TTLAfterFinished=true,BoundServiceAccountTokenVolume={{ .Cluster.ConfigItems.rotate_service_account_tokens }},CSIMigration={{ .Cluster.ConfigItems.enable_csi_migration }} - --horizontal-pod-autoscaler-use-rest-clients=true - --use-service-account-credentials=true - --configure-cloud-routes=false diff --git a/cluster/node-pools/worker-default/stack.yaml b/cluster/node-pools/worker-default/stack.yaml index 7d469d6a58..7198ddf369 100644 --- a/cluster/node-pools/worker-default/stack.yaml +++ b/cluster/node-pools/worker-default/stack.yaml @@ -4,7 +4,7 @@ Description: Kubernetes default worker node pool Mappings: Images: eu-central-1: - MachineImage: '{{ .Cluster.ConfigItems.kuberuntu_image_v1_17 }}' + MachineImage: '{{ .Cluster.ConfigItems.kuberuntu_image_v1_18 }}' Resources: AutoScalingGroup: diff --git a/cluster/node-pools/worker-default/userdata.yaml b/cluster/node-pools/worker-default/userdata.yaml index bb98ce61a6..75e2aff7ca 100644 --- a/cluster/node-pools/worker-default/userdata.yaml +++ b/cluster/node-pools/worker-default/userdata.yaml @@ -53,8 +53,6 @@ write_files: cpuCFSQuota: false featureGates: BoundServiceAccountTokenVolume: {{ .Cluster.ConfigItems.rotate_service_account_tokens }} - CSIDriverRegistry: {{ .Cluster.ConfigItems.enable_csi_migration }} - CSIBlockVolume: {{ .Cluster.ConfigItems.enable_csi_migration }} CSIMigration: {{ .Cluster.ConfigItems.enable_csi_migration }} podPidsLimit: {{ .NodePool.ConfigItems.pod_max_pids }} cpuManagerPolicy: {{ .NodePool.ConfigItems.cpu_manager_policy }} diff --git a/cluster/node-pools/worker-splitaz/stack.yaml b/cluster/node-pools/worker-splitaz/stack.yaml index 17a17c5e5a..3f23610cf9 100644 --- a/cluster/node-pools/worker-splitaz/stack.yaml +++ b/cluster/node-pools/worker-splitaz/stack.yaml @@ -4,7 +4,7 @@ Description: Kubernetes default worker node pool Mappings: Images: eu-central-1: - MachineImage: '{{ .Cluster.ConfigItems.kuberuntu_image_v1_17 }}' + MachineImage: '{{ .Cluster.ConfigItems.kuberuntu_image_v1_18 }}' Resources: {{ with $data := . }} diff --git a/test/e2e/Makefile b/test/e2e/Makefile index 8faa2c5258..6582c09296 100644 --- a/test/e2e/Makefile +++ b/test/e2e/Makefile @@ -2,7 +2,7 @@ BINARY ?= kubernetes-on-aws-e2e VERSION ?= $(shell git describe --tags --always --dirty) -KUBE_VERSION ?= v1.17.4 +KUBE_VERSION ?= v1.18.3 IMAGE ?= registry-write.opensource.zalan.do/teapot/$(BINARY) TAG ?= $(VERSION) DOCKERFILE ?= Dockerfile diff --git a/test/e2e/admission_controller.go b/test/e2e/admission_controller.go index 9ad5db8e55..8ae3f9e2d3 100644 --- a/test/e2e/admission_controller.go +++ b/test/e2e/admission_controller.go @@ -18,6 +18,7 @@ this component is purposed to tests webhooks in the admission controller package e2e import ( + "context" "fmt" "strings" "time" @@ -31,7 +32,6 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/client-go/kubernetes" "k8s.io/kubernetes/test/e2e/framework" - deploymentframework "k8s.io/kubernetes/test/e2e/framework/deployment" e2epod "k8s.io/kubernetes/test/e2e/framework/pod" ) @@ -61,18 +61,18 @@ var _ = framework.KubeDescribe("Admission controller tests", func() { By("Creating deployment " + nameprefix + " in namespace " + ns) deployment := createDeploymentWithDeploymentInfo(nameprefix+"-", ns, podname, replicas) - _, err := cs.AppsV1().Deployments(ns).Create(deployment) + _, err := cs.AppsV1().Deployments(ns).Create(context.TODO(), deployment, metav1.CreateOptions{}) Expect(err).NotTo(HaveOccurred()) labelSelector, err := metav1.LabelSelectorAsSelector(deployment.Spec.Selector) Expect(err).NotTo(HaveOccurred()) - err = deploymentframework.WaitForDeploymentWithCondition(cs, ns, deployment.Name, "MinimumReplicasAvailable", appsv1.DeploymentAvailable) + err = waitForDeploymentWithCondition(cs, ns, deployment.Name, "MinimumReplicasAvailable", appsv1.DeploymentAvailable) Expect(err).NotTo(HaveOccurred()) //pods are not returned here _, err = e2epod.WaitForPodsWithLabelRunningReady(cs, ns, labelSelector, int(replicas), 1*time.Minute) Expect(err).NotTo(HaveOccurred()) - pods, err := cs.CoreV1().Pods(ns).List(metav1.ListOptions{LabelSelector: labelSelector.String()}) + pods, err := cs.CoreV1().Pods(ns).List(context.TODO(), metav1.ListOptions{LabelSelector: labelSelector.String()}) Expect(err).NotTo(HaveOccurred()) Expect(len(pods.Items)).To(Equal(1)) @@ -81,7 +81,7 @@ var _ = framework.KubeDescribe("Admission controller tests", func() { Expect(pod.Annotations).To(HaveKeyWithValue("zalando.org/cdp-pipeline-id", pipelineId)) // Check the injected node zone - node, err := cs.CoreV1().Nodes().Get(pod.Spec.NodeName, metav1.GetOptions{}) + node, err := cs.CoreV1().Nodes().Get(context.TODO(), pod.Spec.NodeName, metav1.GetOptions{}) Expect(err).NotTo(HaveOccurred()) nodeZone := node.Labels["topology.kubernetes.io/zone"] Expect(pod.Annotations).To(HaveKeyWithValue("topology.kubernetes.io/zone", nodeZone)) @@ -122,7 +122,7 @@ var _ = framework.KubeDescribe("Admission controller tests", func() { By("Creating pod " + podName + " in namespace " + ns) pod := createInvalidOwnerPod(ns, podName) - _, err := cs.CoreV1().Pods(ns).Create(pod) + _, err := cs.CoreV1().Pods(ns).Create(context.TODO(), pod, metav1.CreateOptions{}) Expect(err).NotTo(HaveOccurred()) err = e2epod.WaitForPodSuccessInNamespaceSlow(cs, podName, ns) @@ -133,7 +133,7 @@ var _ = framework.KubeDescribe("Admission controller tests", func() { func fetchEnvarValues(client kubernetes.Interface, ns, pod string) (map[string]string, error) { result := make(map[string]string) - bytes, err := client.CoreV1().Pods(ns).GetLogs(pod, &v1.PodLogOptions{}).DoRaw() + bytes, err := client.CoreV1().Pods(ns).GetLogs(pod, &v1.PodLogOptions{}).DoRaw(context.TODO()) if err != nil { return nil, err } diff --git a/test/e2e/apiserver.go b/test/e2e/apiserver.go index 6dfdb40475..3d7491a61a 100644 --- a/test/e2e/apiserver.go +++ b/test/e2e/apiserver.go @@ -18,6 +18,7 @@ this component is purposed to tests webhooks in the apiserver package e2e import ( + "context" "fmt" "time" @@ -29,7 +30,6 @@ import ( "k8s.io/apimachinery/pkg/labels" "k8s.io/client-go/kubernetes" "k8s.io/kubernetes/test/e2e/framework" - deploymentframework "k8s.io/kubernetes/test/e2e/framework/deployment" e2epod "k8s.io/kubernetes/test/e2e/framework/pod" ) @@ -52,11 +52,11 @@ var _ = framework.KubeDescribe("API Server webhook tests", func() { By("Creating deployment " + nameprefix + " in namespace " + ns) deployment := createImagePolicyWebhookTestDeployment(nameprefix+"-", ns, tag, podname, replicas) - _, err := cs.AppsV1().Deployments(ns).Create(deployment) + _, err := cs.AppsV1().Deployments(ns).Create(context.TODO(), deployment, metav1.CreateOptions{}) defer func() { By(fmt.Sprintf("Delete a compliant deployment: %s", deployment.Name)) defer GinkgoRecover() - err := cs.AppsV1().Deployments(ns).Delete(deployment.Name, metav1.NewDeleteOptions(0)) + err := cs.AppsV1().Deployments(ns).Delete(context.TODO(), deployment.Name, metav1.DeleteOptions{}) Expect(err).NotTo(HaveOccurred()) }() Expect(err).NotTo(HaveOccurred()) @@ -64,7 +64,7 @@ var _ = framework.KubeDescribe("API Server webhook tests", func() { "app": podname, } labelSelector := labels.SelectorFromSet(labels.Set(label)) - err = deploymentframework.WaitForDeploymentWithCondition(cs, ns, deployment.Name, "MinimumReplicasAvailable", appsv1.DeploymentAvailable) + err = waitForDeploymentWithCondition(cs, ns, deployment.Name, "MinimumReplicasAvailable", appsv1.DeploymentAvailable) Expect(err).NotTo(HaveOccurred()) _, err = e2epod.WaitForPodsWithLabelRunningReady(cs, ns, labelSelector, int(replicas), 1*time.Minute) Expect(err).NotTo(HaveOccurred()) @@ -81,15 +81,15 @@ var _ = framework.KubeDescribe("API Server webhook tests", func() { By("Creating deployment " + nameprefix + " in namespace " + ns) deployment := createImagePolicyWebhookTestDeployment(nameprefix+"-", ns, tag, podname, replicas) - _, err := cs.AppsV1().Deployments(ns).Create(deployment) + _, err := cs.AppsV1().Deployments(ns).Create(context.TODO(), deployment, metav1.CreateOptions{}) Expect(err).NotTo(HaveOccurred()) defer func() { By(fmt.Sprintf("Delete a compliant deployment: %s", deployment.Name)) defer GinkgoRecover() - err := cs.AppsV1().Deployments(ns).Delete(deployment.Name, metav1.NewDeleteOptions(0)) + err := cs.AppsV1().Deployments(ns).Delete(context.TODO(), deployment.Name, metav1.DeleteOptions{}) Expect(err).NotTo(HaveOccurred()) }() - err = deploymentframework.WaitForDeploymentWithCondition(cs, ns, deployment.Name, "FailedCreate", appsv1.DeploymentReplicaFailure) + err = waitForDeploymentWithCondition(cs, ns, deployment.Name, "FailedCreate", appsv1.DeploymentReplicaFailure) Expect(err).NotTo(HaveOccurred()) }) }) diff --git a/test/e2e/audit.go b/test/e2e/audit.go index f5daedaff1..e42e406789 100644 --- a/test/e2e/audit.go +++ b/test/e2e/audit.go @@ -1,6 +1,7 @@ package e2e import ( + "context" "encoding/json" "fmt" "time" @@ -49,10 +50,10 @@ var _ = framework.KubeDescribe("Audit", func() { f.PodClient().Update(pod.Name, updatePod) - _, err := f.PodClient().Patch(pod.Name, types.JSONPatchType, patch) + _, err := f.PodClient().Patch(context.TODO(), pod.Name, types.JSONPatchType, patch, metav1.PatchOptions{}) framework.ExpectNoError(err, "failed to patch pod") - f.PodClient().DeleteSync(pod.Name, &metav1.DeleteOptions{}, framework.DefaultPodDeletionTimeout) + f.PodClient().DeleteSync(pod.Name, metav1.DeleteOptions{}, framework.DefaultPodDeletionTimeout) expectEvents(f, []utils.AuditEvent{ { @@ -111,7 +112,7 @@ func expectEvents(f *framework.Framework, expectedEvents []utils.AuditEvent) { pollingTimeout := 5 * time.Minute err := wait.Poll(pollingInterval, pollingTimeout, func() (bool, error) { // Fetch the log stream. - stream, err := f.ClientSet.CoreV1().RESTClient().Get().AbsPath("/logs/kube-audit.log").Stream() + stream, err := f.ClientSet.CoreV1().RESTClient().Get().AbsPath("/logs/kube-audit.log").Stream(context.TODO()) if err != nil { return false, err } diff --git a/test/e2e/aws_iam.go b/test/e2e/aws_iam.go index b3a9933411..9b9bccfc85 100644 --- a/test/e2e/aws_iam.go +++ b/test/e2e/aws_iam.go @@ -14,6 +14,7 @@ limitations under the License. package e2e import ( + "context" "fmt" "time" @@ -52,7 +53,7 @@ var _ = framework.KubeDescribe("AWS IAM Integration (kube-aws-iam-controller)", By("Creating a awscli POD in namespace " + ns) pod := createAWSIAMPod("aws-iam-", ns, E2ES3AWSIAMBucket()) - _, err := cs.CoreV1().Pods(ns).Create(pod) + _, err := cs.CoreV1().Pods(ns).Create(context.TODO(), pod, metav1.CreateOptions{}) Expect(err).NotTo(HaveOccurred()) // AWSIAMRole @@ -61,17 +62,17 @@ var _ = framework.KubeDescribe("AWS IAM Integration (kube-aws-iam-controller)", defer func() { By("deleting the AWSIAMRole") defer GinkgoRecover() - err2 := zcs.ZalandoV1().AWSIAMRoles(ns).Delete(rs.Name, metav1.NewDeleteOptions(0)) + err2 := zcs.ZalandoV1().AWSIAMRoles(ns).Delete(context.TODO(), rs.Name, metav1.DeleteOptions{}) Expect(err2).NotTo(HaveOccurred()) }() - _, err = zcs.ZalandoV1().AWSIAMRoles(ns).Create(rs) + _, err = zcs.ZalandoV1().AWSIAMRoles(ns).Create(context.TODO(), rs, metav1.CreateOptions{}) Expect(err).NotTo(HaveOccurred()) framework.ExpectNoError(f.WaitForPodRunning(pod.Name)) // wait for pod to access s3 and POD exit code 0 for { - p, err := cs.CoreV1().Pods(ns).Get(pod.Name, metav1.GetOptions{}) + p, err := cs.CoreV1().Pods(ns).Get(context.TODO(), pod.Name, metav1.GetOptions{}) if err != nil { Expect(fmt.Errorf("Could not get POD %s", pod.Name)).NotTo(HaveOccurred()) return @@ -97,13 +98,13 @@ var _ = framework.KubeDescribe("AWS IAM Integration (kube-aws-iam-controller)", By("Creating a awscli POD in namespace " + ns) pod := createAWSCLIPod("no-aws-iam-", ns, E2ES3AWSIAMBucket()) - _, err := cs.CoreV1().Pods(ns).Create(pod) + _, err := cs.CoreV1().Pods(ns).Create(context.TODO(), pod, metav1.CreateOptions{}) Expect(err).NotTo(HaveOccurred()) framework.ExpectNoError(f.WaitForPodRunning(pod.Name)) // wait for pod to access s3 and POD exit code 0 for { - p, err := cs.CoreV1().Pods(ns).Get(pod.Name, metav1.GetOptions{}) + p, err := cs.CoreV1().Pods(ns).Get(context.TODO(), pod.Name, metav1.GetOptions{}) if err != nil { Expect(fmt.Errorf("Could not get POD %s", pod.Name)).NotTo(HaveOccurred()) return diff --git a/test/e2e/cluster_config.sh b/test/e2e/cluster_config.sh index 22a6cfa5ea..b4d7b795f7 100755 --- a/test/e2e/cluster_config.sh +++ b/test/e2e/cluster_config.sh @@ -57,6 +57,7 @@ clusters: vm_dirty_background_bytes: 67108864 prometheus_tsdb_retention_size: enabled coredns_max_upsteam_concurrency: 30 + ebs_root_volume_size: "550" # required by the limitRanger e2e tests (needs 500Gi ephemoral storage) https://github.com/kubernetes/kubernetes/blob/v1.18.3/test/e2e/scheduling/limit_range.go#L59 criticality_level: 1 environment: e2e id: ${CLUSTER_ID} diff --git a/test/e2e/e2e_test.go b/test/e2e/e2e_test.go index c0103e45dd..9bc65b342c 100644 --- a/test/e2e/e2e_test.go +++ b/test/e2e/e2e_test.go @@ -26,7 +26,6 @@ import ( "k8s.io/kubernetes/test/e2e/framework" "k8s.io/kubernetes/test/e2e/framework/config" "k8s.io/kubernetes/test/e2e/framework/testfiles" - "k8s.io/kubernetes/test/e2e/framework/viperconfig" "k8s.io/kubernetes/test/e2e/generated" // test sources @@ -61,7 +60,7 @@ func TestMain(m *testing.M) { // Register test flags, then parse flags. handleFlags() - if err := viperconfig.ViperizeFlags(*viperConfig, "e2e", flag.CommandLine); err != nil { + if err := viperizeFlags(*viperConfig, "e2e", flag.CommandLine); err != nil { fmt.Fprintln(os.Stderr, err) os.Exit(1) } diff --git a/test/e2e/external_dns.go b/test/e2e/external_dns.go index 29e0544b7b..ad4e67cb87 100644 --- a/test/e2e/external_dns.go +++ b/test/e2e/external_dns.go @@ -14,6 +14,7 @@ limitations under the License. package e2e import ( + "context" "fmt" "time" @@ -50,14 +51,14 @@ var _ = framework.KubeDescribe("External DNS creation", func() { By("Creating service " + serviceName + " in namespace " + ns) defer func() { - err := cs.CoreV1().Services(ns).Delete(serviceName, nil) + err := cs.CoreV1().Services(ns).Delete(context.TODO(), serviceName, metav1.DeleteOptions{}) Expect(err).NotTo(HaveOccurred()) }() hostName := fmt.Sprintf("%s-%d.%s", serviceName, time.Now().UTC().Unix(), E2EHostedZone()) service := createServiceTypeLoadbalancer(serviceName, hostName, labels, port) - _, err := cs.CoreV1().Services(ns).Create(service) + _, err := cs.CoreV1().Services(ns).Create(context.TODO(), service, metav1.CreateOptions{}) Expect(err).NotTo(HaveOccurred()) By("Submitting the pod to kubernetes") @@ -65,11 +66,11 @@ var _ = framework.KubeDescribe("External DNS creation", func() { defer func() { By("deleting the pod") defer GinkgoRecover() - err2 := cs.CoreV1().Pods(ns).Delete(pod.Name, metav1.NewDeleteOptions(0)) + err2 := cs.CoreV1().Pods(ns).Delete(context.TODO(), pod.Name, metav1.DeleteOptions{}) Expect(err2).NotTo(HaveOccurred()) }() - _, err = cs.CoreV1().Pods(ns).Create(pod) + _, err = cs.CoreV1().Pods(ns).Create(context.TODO(), pod, metav1.CreateOptions{}) Expect(err).NotTo(HaveOccurred()) framework.ExpectNoError(f.WaitForPodRunning(pod.Name)) diff --git a/test/e2e/go.mod b/test/e2e/go.mod index 87420e7825..c1aa8b7fad 100644 --- a/test/e2e/go.mod +++ b/test/e2e/go.mod @@ -11,18 +11,20 @@ require ( github.com/jteeuwen/go-bindata v0.0.0-20151023091102-a0ff2567cfb7 github.com/karrick/godirwalk v1.8.0 // indirect github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 // indirect - github.com/onsi/ginkgo v1.10.1 + github.com/onsi/ginkgo v1.11.0 github.com/onsi/gomega v1.7.0 github.com/opencontainers/runtime-spec v1.0.1 // indirect + github.com/pkg/errors v0.8.1 github.com/pquerna/ffjson v0.0.0-20181028064349-e517b90714f7 // indirect + github.com/spf13/viper v1.3.2 github.com/vishvananda/netns v0.0.0-20180720170159-13995c7128cc // indirect - github.com/zalando-incubator/kube-aws-iam-controller v0.1.1 + github.com/zalando-incubator/kube-aws-iam-controller v0.1.2 gopkg.in/warnings.v0 v0.1.2 // indirect - k8s.io/api v0.0.0 - k8s.io/apimachinery v0.0.0 + k8s.io/api v0.18.3 + k8s.io/apimachinery v0.18.3 k8s.io/apiserver v0.0.0 - k8s.io/client-go v10.0.0+incompatible - k8s.io/kubernetes v1.17.4 + k8s.io/client-go v0.18.3 + k8s.io/kubernetes v1.18.3 ) replace k8s.io/kubernetes => ./e2e_modules/kubernetes diff --git a/test/e2e/go.sum b/test/e2e/go.sum index 5708989eca..2ca3e92446 100644 --- a/test/e2e/go.sum +++ b/test/e2e/go.sum @@ -32,9 +32,10 @@ github.com/GoogleCloudPlatform/k8s-cloud-provider v0.0.0-20190822182118-27a4ced3 github.com/GoogleCloudPlatform/k8s-cloud-provider v0.0.0-20190822182118-27a4ced34534/go.mod h1:iroGtC8B3tQiqtds1l+mgk/BBOrxbqjH+eUfFQYRc14= github.com/JeffAshton/win_pdh v0.0.0-20161109143554-76bb4ee9f0ab h1:UKkYhof1njT1/xq4SEg5z+VpTgjmNeHwPGRQl7takDI= 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/Microsoft/go-winio v0.4.11 h1:zoIOcVf0xPN1tnMVbTtEdI+P8OofVk3NObnwOQ6nK2Q= -github.com/Microsoft/go-winio v0.4.11/go.mod h1:VhR8bwka0BXejwEJY73c50VrPtXAaKcyvVC4A4RozmA= +github.com/Microsoft/go-winio v0.4.14 h1:+hMXMk01us9KgxGb7ftKQt2Xpf5hH/yky+TDA+qxleU= +github.com/Microsoft/go-winio v0.4.14/go.mod h1:qXqCSQ3Xa7+6tgxaGTIe4Kpcdsi+P8jBhyzoq1bpyYA= github.com/Microsoft/hcsshim v0.0.0-20190417211021-672e52e9209d h1:u64+IetywsPQ0gJ/4cXBJ/KiXV9xTKRMoaCOzW9PI3g= github.com/Microsoft/hcsshim v0.0.0-20190417211021-672e52e9209d/go.mod h1:Op3hHsoHPAvb6lceZHDtd9OkTew38wNoXnJs8iY7rUg= github.com/NYTimes/gziphandler v0.0.0-20170623195520-56545f4a5d46/go.mod h1:3wb06e3pkSAbeQ52E9H9iFoQsEEwGN64994WTCIhntQ= @@ -54,7 +55,10 @@ github.com/Rican7/retry v0.1.0 h1:FqK94z34ly8Baa6K+G8Mmza9rYWTKOJk+yckIBB5qVk= github.com/Rican7/retry v0.1.0/go.mod h1:FgOROf8P5bebcC1DS0PdOQiqGUridaZvikzUmkFW6gg= github.com/StackExchange/wmi v0.0.0-20180116203802-5d049714c4a6/go.mod h1:3eOhrUMpNV+6aFIbp5/iudMxNCF27Vw2OZgy4xEx0Fg= github.com/agnivade/levenshtein v1.0.1/go.mod h1:CURSv5d9Uaml+FovSIICkLbAUZ9S4RqaHDIsdSBg7lM= +github.com/ajstarks/svgo v0.0.0-20180226025133-644b8db467af/go.mod h1:K08gAheRH3/J6wwsYMMT4xOr94bZjxIelGM0+d/wbFw= +github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc h1:cAKDfWh5VpdgMhJosfJnn5/FoN2SRZ4p7fJNX58YPaU= github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= +github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf h1:qet1QNfXsQxTZqLG4oE62mJzwPIB8+Tee4RNCL9ulrY= github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= github.com/andreyvit/diff v0.0.0-20170406064948-c7f18ee00883/go.mod h1:rCTlJbsFo29Kk6CurOXKm700vrz8f0KW0JNfpkRJY/8= github.com/anmitsu/go-shlex v0.0.0-20161002113705-648efa622239/go.mod h1:2FmKhYUyUczH0OGQWaF5ceTx0UBShxjsH6f8oGKYe2c= @@ -69,8 +73,8 @@ github.com/auth0/go-jwt-middleware v0.0.0-20170425171159-5493cabe49f7 h1:irR1cO6 github.com/auth0/go-jwt-middleware v0.0.0-20170425171159-5493cabe49f7/go.mod h1:LWMyo4iOLWXHGdBki7NIht1kHru/0wM179h+d3g8ATM= github.com/aws/aws-sdk-go v1.16.6 h1:pig/KdfESvIv4gUu1B8nVAJAURxbPCTt6e5u79Nqxqc= github.com/aws/aws-sdk-go v1.16.6/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= -github.com/aws/aws-sdk-go v1.16.26 h1:GWkl3rkRO/JGRTWoLLIqwf7AWC4/W/1hMOUZqmX0js4= -github.com/aws/aws-sdk-go v1.16.26/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= +github.com/aws/aws-sdk-go v1.28.2 h1:j5IXG9CdyLfcVfICqo1PXVv+rua+QQHbkXuvuU/JF+8= +github.com/aws/aws-sdk-go v1.28.2/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= github.com/bazelbuild/bazel-gazelle v0.18.2/go.mod h1:D0ehMSbS+vesFsLGiD6JXu3mVEzOlfUl8wNnq+x/9p0= github.com/bazelbuild/bazel-gazelle v0.19.1-0.20191105222053-70208cbdc798/go.mod h1:rPwzNHUqEzngx1iVBfO/2X2npKaT3tqPqqHW6rVsn/A= github.com/bazelbuild/buildtools v0.0.0-20190731111112-f720930ceb60/go.mod h1:5JP0TXzWDHXv8qvxRC4InIazwdyDseBDbzESUMKk1yU= @@ -89,11 +93,14 @@ github.com/boltdb/bolt v1.3.1/go.mod h1:clJnj/oiGkjum5o1McbSZDSLxVThjynRyGBgiAx2 github.com/bradfitz/go-smtpd v0.0.0-20170404230938-deb6d6237625/go.mod h1:HYsPBTaaSFSlLx/70C2HPIMNZpVV8+vt/A+FMnYP11g= github.com/caddyserver/caddy v1.0.3/go.mod h1:G+ouvOY32gENkJC+jhgl62TyhvqEsFaDiZ4uw0RzP1E= github.com/cenkalti/backoff v2.1.1+incompatible/go.mod h1:90ReRw6GdpyfrHakVjL/QHaoyV4aDUVVkXQJJJ3NXXM= +github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= github.com/cespare/prettybench v0.0.0-20150116022406-03b8cfe5406c/go.mod h1:Xe6ZsFhtM8HrDku0pxJ3/Lr51rwykrzgFwpmTzleatY= github.com/chai2010/gettext-go v0.0.0-20160711120539-c6fed771bfd5/go.mod h1:/iP1qXHoty45bqomnu2LM+VVyAEdWN+vtSHGlQgyxbw= -github.com/checkpoint-restore/go-criu v0.0.0-20190109184317-bdb7599cd87b h1:T4nWG1TXIxeor8mAu5bFguPJgSIGhZqv/f0z55KCrJM= -github.com/checkpoint-restore/go-criu v0.0.0-20190109184317-bdb7599cd87b/go.mod h1:TrMrLQfeENAPYPRsJuq3jsqdlRh3lvi6trTZJG8+tho= +github.com/checkpoint-restore/go-criu v0.0.0-20181120144056-17b0214f6c48 h1:AQMF0Xixllgf29MKlx/TGEhRk7bEDX5kxz8Ui8lOvEs= +github.com/checkpoint-restore/go-criu v0.0.0-20181120144056-17b0214f6c48/go.mod h1:TrMrLQfeENAPYPRsJuq3jsqdlRh3lvi6trTZJG8+tho= github.com/cheekybits/genny v0.0.0-20170328200008-9127e812e1e9/go.mod h1:+tQajlRqAUrPI7DOSpB0XAqZYtQakVtB7wXkRAgjxjQ= +github.com/cilium/ebpf v0.0.0-20191025125908-95b36a581eed h1:/UgmF+cZTm9kp4uJ122y/9cVhczNJCgAgAeH2FfzPeg= +github.com/cilium/ebpf v0.0.0-20191025125908-95b36a581eed/go.mod h1:MA5e5Lr8slmEg9bt0VpxxWqJlO4iwu3FBdHUzV7wQVg= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= github.com/clusterhq/flocker-go v0.0.0-20160920122132-2b8b7259d313 h1:eIHD9GNM3Hp7kcRW5mvcz7WTR3ETeoYYKwpgA04kaXE= github.com/clusterhq/flocker-go v0.0.0-20160920122132-2b8b7259d313/go.mod h1:P1wt9Z3DP8O6W3rvwCt0REIlshg1InHImaLW0t3ObY0= @@ -112,7 +119,7 @@ github.com/containerd/typeurl v0.0.0-20190228175220-2a93cfde8c20 h1:14r0i3IeJj6z github.com/containerd/typeurl v0.0.0-20190228175220-2a93cfde8c20/go.mod h1:Cm3kwCdlkCfMSHURc+r6fwoGH6/F1hH3S4sg0rLFWPc= github.com/containernetworking/cni v0.7.1 h1:fE3r16wpSEyaqY4Z4oFrLMmIGfBYIKpPrHK31EJ9FzE= github.com/containernetworking/cni v0.7.1/go.mod h1:LGwApLUm2FpoOfxTDEeq8T9ipbpZ61X79hmU3w8FmsY= -github.com/coredns/corefile-migration v1.0.4/go.mod h1:OFwBp/Wc9dJt5cAZzHWMNhK1r5L0p0jDwIBc6j8NC8E= +github.com/coredns/corefile-migration v1.0.6/go.mod h1:OFwBp/Wc9dJt5cAZzHWMNhK1r5L0p0jDwIBc6j8NC8E= github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= github.com/coreos/go-etcd v2.0.0+incompatible/go.mod h1:Jez6KQU2B/sWsbdaef3ED8NzMklzPG4d5KIOhIy30Tk= github.com/coreos/go-oidc v2.1.0+incompatible h1:sdJrfw8akMnCuUlaZU3tE/uYXFgfqom8DBE9so9EBsM= @@ -132,7 +139,6 @@ github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwc github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY= github.com/cyphar/filepath-securejoin v0.2.2 h1:jCwT2GTP+PY5nBz3c/YL5PAIbusElVrPujOBSCj8xRg= github.com/cyphar/filepath-securejoin v0.2.2/go.mod h1:FpkQEhXnPnOthhzymB7CGsFk2G9VLXONKD9G7QGMM+4= -github.com/davecgh/go-spew v0.0.0-20151105211317-5215b55f46b2/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= @@ -152,29 +158,31 @@ github.com/docker/go-units v0.3.3 h1:Xk8S3Xj5sLGlG5g67hJmYMmUgXv5N4PhkjJHHqrwnTk github.com/docker/go-units v0.3.3/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= github.com/docker/go-units v0.4.0 h1:3uh0PgVws3nIA0Q+MwDC8yjEPf9zjRfZZWXZYDct3Tw= github.com/docker/go-units v0.4.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= -github.com/docker/libnetwork v0.8.0-dev.2.0.20190624125649-f0e46a78ea34 h1:8GFZB1KesbMy2X2zTiJyAuwCow+U1GT0ueD42p59y4k= -github.com/docker/libnetwork v0.8.0-dev.2.0.20190624125649-f0e46a78ea34/go.mod h1:93m0aTqz6z+g32wla4l4WxTrdtvBRmVzYRkYvasA5Z8= github.com/docker/spdystream v0.0.0-20160310174837-449fdfce4d96 h1:cenwrSVm+Z7QLSV/BsnenAOcDXdX4cMv4wP0B/5QbPg= github.com/docker/spdystream v0.0.0-20160310174837-449fdfce4d96/go.mod h1:Qh8CwZgvJUkLughtfhJv5dyTYa91l1fOUCrgjqmcifM= github.com/dustin/go-humanize v0.0.0-20171111073723-bb3d318650d4/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= github.com/dustin/go-humanize v1.0.0 h1:VSnTsYCnlFHaM2/igO1h6X3HA71jcobQuxemgkq4zYo= github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= -github.com/elazarl/goproxy v0.0.0-20170405201442-c4fc26588b6e h1:p1yVGRW3nmb85p1Sh1ZJSDm4A4iKLS5QNbvUHMgGu/M= -github.com/elazarl/goproxy v0.0.0-20170405201442-c4fc26588b6e/go.mod h1:/Zj4wYkgs4iZTTu3o/KG3Itv/qCCa8VVMlb3i9OVuzc= +github.com/elazarl/goproxy v0.0.0-20180725130230-947c36da3153 h1:yUdfgN0XgIJw7foRItutHYUIhlcKzcSf5vDpdhQAKTc= +github.com/elazarl/goproxy v0.0.0-20180725130230-947c36da3153/go.mod h1:/Zj4wYkgs4iZTTu3o/KG3Itv/qCCa8VVMlb3i9OVuzc= github.com/emicklei/go-restful v0.0.0-20170410110728-ff4f55a20633 h1:H2pdYOb3KQ1/YsqVWoWNLQO+fusocsw354rqGTZtAgw= 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 h1:spTtZBk5DYEvbxMVutUuTyh1Ao2r4iyvLdACqsl/Ljk= github.com/emicklei/go-restful v2.9.5+incompatible/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs= +github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= +github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= github.com/euank/go-kmsg-parser v2.0.0+incompatible h1:cHD53+PLQuuQyLZeriD1V/esuG4MuU0Pjs5y6iknohY= github.com/euank/go-kmsg-parser v2.0.0+incompatible/go.mod h1:MhmAMZ8V4CYH4ybgdRwPr2TU5ThnS43puaKEMpja1uw= github.com/evanphx/json-patch v4.2.0+incompatible h1:fUDGZCv/7iAN7u0puUVhvKCcsR6vRfwrJatElLBEf0I= github.com/evanphx/json-patch v4.2.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= +github.com/exponent-io/jsonpath v0.0.0-20151013193312-d6023ce2651d h1:105gxyaGwCFad8crR9dcMQWvV9Hvulu6hwUh4tWPJnM= github.com/exponent-io/jsonpath v0.0.0-20151013193312-d6023ce2651d/go.mod h1:ZZMPRZwes7CROmyNKgQzC3XPs6L/G2EJLHddWejkmf4= github.com/fatih/camelcase v1.0.0 h1:hxNvNX/xYBp0ovncs8WyWZrOrpBNub/JfaMvbURyft8= github.com/fatih/camelcase v1.0.0/go.mod h1:yN2Sb0lFhZJUdVvtELVWefmrXpuZESvPmqwoZc+/fpc= github.com/fatih/color v1.6.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= github.com/flynn/go-shlex v0.0.0-20150515145356-3f9db97f8568/go.mod h1:xEzjJPgXI435gkrCt3MPfRiAkVrwSbHsst4LCFVfpJc= +github.com/fogleman/gg v1.2.1-0.20190220221249-0403632d5b90/go.mod h1:R/bRT+9gY/C5z7JzPU0zXsXHKM4/ayA+zqcVNZzPa1k= github.com/fsnotify/fsnotify v1.4.7 h1:IXs+QLmnXW2CcXuY+8Mzv/fWEsPGWxqefPtCP5CnV9I= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/ghodss/yaml v0.0.0-20150909031657-73d445a93680/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= @@ -286,8 +294,9 @@ github.com/godbus/dbus v0.0.0-20181101234600-2ff6f7ffd60f h1:zlOR3rOlPAVvtfuxGKo github.com/godbus/dbus v0.0.0-20181101234600-2ff6f7ffd60f/go.mod h1:/YcGZj5zSblfDWMMoOzV4fas9FZnQYTkDnsGvmh2Grw= github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= -github.com/gogo/protobuf v1.2.2-0.20190723190241-65acae22fc9d h1:3PaI8p3seN09VjbTYC/QWlUZdZ1qS1zGjy7LH2Wt07I= -github.com/gogo/protobuf v1.2.2-0.20190723190241-65acae22fc9d/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o= +github.com/gogo/protobuf v1.3.1 h1:DqDEcV5aeaTmdFBePNpYsp3FlcVH/2ISVVM9Qf8PSls= +github.com/gogo/protobuf v1.3.1/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o= +github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0/go.mod h1:E/TSTwGwJL78qG/PmXZO1EjYhfJinVAhrmmHX6Z8B9k= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b h1:VKtxabqXZkF25pY9ekfRL6a582T4P37/31XEstQ5p58= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= github.com/golang/groupcache v0.0.0-20160516000752-02826c3e7903/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= @@ -298,6 +307,8 @@ github.com/golang/mock v1.1.1 h1:G5FRp8JnTd7RQH5kemVNlMeyXQAztQ3mOWV95KxsXH8= github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= github.com/golang/mock v1.2.0 h1:28o5sBqPkBsMGnC6b4MvE2TzSr5/AT4c/1fLqVGIwlk= github.com/golang/mock v1.2.0/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= +github.com/golang/mock v1.3.1 h1:qGJ6qTW+x6xX/my+8YUVl4WNpX9B7+/l2tRsHGZ7f2s= +github.com/golang/mock v1.3.1/go.mod h1:sBzyDLLjw3U8JLTeZvSv8jJB+tU5PVekmnlKIyFUx0Y= github.com/golang/protobuf v0.0.0-20161109072736-4bd1920723d7/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.2.0 h1:P3YflyNX/ehuJFLhxviNdFxQPkGK5cDcApsge1SqnvM= github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= @@ -336,9 +347,10 @@ github.com/google/go-cmp v0.3.0 h1:crn/baboCvb5fXaQ0IJ1SGTsTVrWpDsCWC8EGETZijY= github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-github v17.0.0+incompatible/go.mod h1:zLgOLi98H3fifZn+44m+umXrS52loVEgC2AApnigrVQ= github.com/google/go-querystring v1.0.0/go.mod h1:odCYkC5MyYFN7vkCjXpyrEuKhc/BUO6wN/zVPAxq5ck= -github.com/google/gofuzz v0.0.0-20161122191042-44d81051d367/go.mod h1:HP5RmnzzSNb993RKQDq4+1A4ia9nllfqcQFTQJedwGI= github.com/google/gofuzz v1.0.0 h1:A8PeW59pxE9IoFRqBp37U+mSNaQoZ46F1f0f863XSXw= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= +github.com/google/gofuzz v1.1.0 h1:Hsa8mG0dQ46ij8Sl2AYJDUv1oA9/d6Vk+3LG99Oe02g= +github.com/google/gofuzz v1.1.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs= github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= @@ -348,6 +360,7 @@ github.com/google/uuid v1.1.1 h1:Gkbcsh/GbpXz7lPftLA3P6TYMwjCLYm83jiFQZF/3gY= github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= github.com/googleapis/gnostic v0.0.0-20170729233727-0c5108395e2d/go.mod h1:sJBsCZ4ayReDTBIg8b9dl28c5xFWyhBTVRp3pOg5EKY= +github.com/googleapis/gnostic v0.1.0/go.mod h1:sJBsCZ4ayReDTBIg8b9dl28c5xFWyhBTVRp3pOg5EKY= github.com/googleapis/gnostic v0.2.0 h1:l6N3VoaVzTncYYW+9yOz2LJJammFZGBO13sqgEhpy9g= github.com/googleapis/gnostic v0.2.0/go.mod h1:sJBsCZ4ayReDTBIg8b9dl28c5xFWyhBTVRp3pOg5EKY= github.com/gophercloud/gophercloud v0.1.0 h1:P/nh25+rzXouhytV2pUHBb65fnds26Ghl8/391+sT5o= @@ -399,8 +412,6 @@ github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af h1:pmfjZENx5i github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= github.com/jonboulle/clockwork v0.1.0 h1:VKV+ZcuP6l3yW9doeqz6ziZGgcynBVQO+obU0+0hcPo= github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo= -github.com/json-iterator/go v0.0.0-20180612202835-f2b4162afba3 h1:/UewZcckqhvnnS0C6r3Sher2hSEbVmM6Ogpcjen08+Y= -github.com/json-iterator/go v0.0.0-20180612202835-f2b4162afba3/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= github.com/json-iterator/go v1.1.7 h1:KfgG9LzI+pYjr4xvmz/5H4FXjokeP+rlHLhv3iH62Fo= github.com/json-iterator/go v1.1.7/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= @@ -412,6 +423,7 @@ github.com/jteeuwen/go-bindata v0.0.0-20151023091102-a0ff2567cfb7/go.mod h1:JVvh github.com/jtolds/gls v4.20.0+incompatible h1:xdiiI2gbIgH/gLH7ADydsJ1uDOEzR8yvV7C0MuV77Wo= github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU= github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= +github.com/jung-kurt/gofpdf v1.0.3-0.20190309125859-24315acbbda5/go.mod h1:7Id9E/uU8ce6rXgefFLlgrJj/GYY22cpxn+r32jIOes= github.com/karrick/godirwalk v1.7.5/go.mod h1:2c9FRhkDxdIbgkOnCEvnSWs71Bhugbl46shStcFDJ34= github.com/karrick/godirwalk v1.8.0 h1:ycpSqVon/QJJoaT1t8sae0tp1Stg21j+dyuS7OoagcA= github.com/karrick/godirwalk v1.8.0/go.mod h1:H5KPZjojv4lE+QYImBI8xVtrBRgYrIVsaRPx4tDPEn4= @@ -486,6 +498,7 @@ github.com/mistifyio/go-zfs v2.1.1+incompatible/go.mod h1:8AuVvqP/mXw1px98n46wfv github.com/mitchellh/go-homedir v1.0.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= github.com/mitchellh/go-ps v0.0.0-20170309133038-4fdf99ab2936/go.mod h1:r1VsdOzOPt1ZSrGZWFoNhsAedKnEd6r9Np1+5blZCWk= +github.com/mitchellh/go-wordwrap v1.0.0 h1:6GlHJ/LTGMrIJbwgdqdl2eEH8o+Exx/0m8ir9Gns0u4= github.com/mitchellh/go-wordwrap v1.0.0/go.mod h1:ZXFpozHsX6DPmq2I0TCekCxypsnAUbP2oI0UX1GXzOo= github.com/mitchellh/mapstructure v0.0.0-20180220230111-00c29f56e238/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= github.com/mitchellh/mapstructure v1.1.2 h1:fmNYVwqnSfB9mZU6OS2O6GsXM+wcskZDuKQzvN1EDeE= @@ -493,15 +506,14 @@ github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= -github.com/modern-go/reflect2 v0.0.0-20180320133207-05fbef0ca5da/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/modern-go/reflect2 v1.0.1 h1:9f412s+6RmYXLWZSEzVVgPGK7C2PphHj5RJrvfx9AWI= github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/mohae/deepcopy v0.0.0-20170603005431-491d3605edfb/go.mod h1:TaXosZuwdSHYgviHp1DAtfrULt5eUgsSMsZf+YrPgl8= github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 h1:RWengNIwukTxcDr9M+97sNutRR1RKhG96O6jWumTTnw= github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826/go.mod h1:TaXosZuwdSHYgviHp1DAtfrULt5eUgsSMsZf+YrPgl8= -github.com/morikuni/aec v0.0.0-20170113033406-39771216ff4c h1:nXxl5PrvVm2L/wCy8dQu6DMTwH4oIuGN8GJDAlqDdVE= -github.com/morikuni/aec v0.0.0-20170113033406-39771216ff4c/go.mod h1:BbKIizmSmc5MMPqRYbxO4ZU0S0+P200+tUnFx7PXmsc= +github.com/morikuni/aec v1.0.0 h1:nP9CBfwrvYnBRgY6qfDQkygYDmYwOilePFkwzv4dU8A= +github.com/morikuni/aec v1.0.0/go.mod h1:BbKIizmSmc5MMPqRYbxO4ZU0S0+P200+tUnFx7PXmsc= github.com/mozilla/tls-observatory v0.0.0-20180409132520-8791a200eb40/go.mod h1:SrKMQvPiws7F7iqYp8/TX+IhxCYhzr6N/1yb8cwHsGk= github.com/mrunalp/fileutils v0.0.0-20171103030105-7d4729fb3618 h1:7InQ7/zrOh6SlFjaXFubv0xX0HsuC9qJsdqm7bNQpYM= github.com/mrunalp/fileutils v0.0.0-20171103030105-7d4729fb3618/go.mod h1:x8F1gnqOkIEiO4rqoeEEEqQbo7HjGMTvyoq3gej4iT0= @@ -521,8 +533,8 @@ github.com/onsi/ginkgo v0.0.0-20170829012221-11459a886d9c/go.mod h1:lLunBs/Ym6LB github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/ginkgo v1.8.0 h1:VkHVNpR4iVnU8XQR6DBm8BqYjN7CRzw+xKUbVVbbW9w= github.com/onsi/ginkgo v1.8.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= -github.com/onsi/ginkgo v1.10.1 h1:q/mM8GF/n0shIN8SaAZ0V+jnLPzen6WIVZdiwrRlMlo= -github.com/onsi/ginkgo v1.10.1/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/ginkgo v1.11.0 h1:JAKSXpt1YjtLA7YpPiqO9ss6sNXEsPfSGdwN0UHqzrw= +github.com/onsi/ginkgo v1.11.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/gomega v0.0.0-20170829124025-dcabb60a477c/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA= github.com/onsi/gomega v1.4.2/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= github.com/onsi/gomega v1.4.3 h1:RE1xgDvH7imwFD45h+u2SgIfERHlS2yNG4DObb5BSKU= @@ -535,8 +547,8 @@ github.com/opencontainers/go-digest v1.0.0-rc1 h1:WzifXhOVOEOuFYOJAW6aQqW0TooG2i github.com/opencontainers/go-digest v1.0.0-rc1/go.mod h1:cMLVZDEM3+U2I4VmLI6N8jQYUd2OVphdqWwCJHrFt2s= github.com/opencontainers/image-spec v1.0.1 h1:JMemWkRwHx4Zj+fVxWoMCFm/8sYGGrUVojFA6h/TRcI= github.com/opencontainers/image-spec v1.0.1/go.mod h1:BtxoFyWECRxE4U/7sNtV5W15zMzWCbyJoFRP3s7yZA0= -github.com/opencontainers/runc v1.0.0-rc9 h1:/k06BMULKF5hidyoZymkoDCzdJzltZpz/UU4LguQVtc= -github.com/opencontainers/runc v1.0.0-rc9/go.mod h1:qT5XzbpPznkRYVz/mWwUaVBUv2rmF59PVA73FjuZG0U= +github.com/opencontainers/runc v1.0.0-rc10 h1:AbmCEuSZXVflng0/cboQkpdEOeBsPMjz6tmq4Pv8MZw= +github.com/opencontainers/runc v1.0.0-rc10/go.mod h1:qT5XzbpPznkRYVz/mWwUaVBUv2rmF59PVA73FjuZG0U= github.com/opencontainers/runtime-spec v1.0.0/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= github.com/opencontainers/runtime-spec v1.0.1 h1:wY4pOY8fBdSIvs9+IDHC55thBuEulhzfSgKeC1yFvzQ= github.com/opencontainers/runtime-spec v1.0.1/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= @@ -552,7 +564,6 @@ github.com/peterbourgon/diskv v2.0.1+incompatible/go.mod h1:uqqh8zWWbv1HBMNONnaR github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.8.1 h1:iURUrRGxPUNPdy5/HRSm+Yj6okJ6UtLINN0Q9M4+h3I= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pmezard/go-difflib v0.0.0-20151028094244-d8ed2627bdf0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/pquerna/cachecontrol v0.0.0-20171018203845-0dec1b30a021 h1:0XM1XL/OFFJjXsYXlG30spTkV/E9+gmd5GD1w2HE8xM= @@ -566,6 +577,9 @@ github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5Fsn github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90 h1:S/YWwWx/RA8rT8tKFRuGUZhuA90OyIBpPCXkcbwU8DE= github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= +github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= +github.com/prometheus/client_model v0.2.0 h1:uq5h0d+GuxiXLJLNABMgp2qUWDPiLvgCzz2dUR+/W/M= +github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/common v0.4.1 h1:K0MGApIoQvMw27RTdJkPbr3JZ7DNbtxQNyi5STVM6Kw= github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= @@ -583,6 +597,7 @@ github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFR github.com/rubiojr/go-vhd v0.0.0-20160810183302-0bfd3b39853c h1:ht7N4d/B7Ezf58nvMNVF3OlvDlz9pp+WHVcRNS0nink= github.com/rubiojr/go-vhd v0.0.0-20160810183302-0bfd3b39853c/go.mod h1:DM5xW0nvfNNm2uytzsvhI3OnX8uzaRAg8UX/CnDqbto= github.com/russross/blackfriday v0.0.0-20170610170232-067529f716f4/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g= +github.com/russross/blackfriday v1.5.2 h1:HyvC0ARfnZBqnXwABFeSZHpKvJHJJfPz81GNueLj0oo= github.com/russross/blackfriday v1.5.2/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g= github.com/ryanuber/go-glob v0.0.0-20170128012129-256dc444b735/go.mod h1:807d1WSdnB0XRJzKNil9Om6lcp/3a0v4qIHxIXzX/Yc= github.com/satori/go.uuid v1.2.0 h1:0uYX9dsZ2yD7q2RtLRtPSdGDWzjeM3TbMJP9utgA0ww= @@ -598,12 +613,13 @@ github.com/sirupsen/logrus v1.0.5/go.mod h1:pMByvHTf9Beacp5x1UXfOR9xyW/9antXMhjM github.com/sirupsen/logrus v1.0.6/go.mod h1:pMByvHTf9Beacp5x1UXfOR9xyW/9antXMhjMPG0dEzc= github.com/sirupsen/logrus v1.2.0 h1:juTguoYk5qI21pwyTXY3B3Y5cOTH3ZUyZCg1v/mihuo= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= +github.com/sirupsen/logrus v1.4.1/go.mod h1:ni0Sbl8bgC9z8RoU9G6nDWqqs/fq4eDPysMBDgk/93Q= github.com/sirupsen/logrus v1.4.2 h1:SPIRibHv4MatM3XXNO2BJeFLZwZ2LvZgfQ5+UNI2im4= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d h1:zE9ykElWQ6/NYmHa3jpm/yHnI4xSofP+UP6SpjHcSeM= github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= -github.com/smartystreets/goconvey v0.0.0-20190330032615-68dc04aab96a h1:pa8hGb/2YqsZKovtsgrwcDH1RZhVbTKCjLp47XpqCDs= -github.com/smartystreets/goconvey v0.0.0-20190330032615-68dc04aab96a/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= +github.com/smartystreets/goconvey v1.6.4 h1:fv0U8FUIMPNf1L9lnHLvLhgicrIVChEkdzIKYqbNC9s= +github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= github.com/soheilhy/cmux v0.1.4 h1:0HKaf1o97UwFjHH9o5XsHUOF+tqmdA7KEzXLpiyaw0E= github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM= github.com/sourcegraph/go-diff v0.5.1/go.mod h1:j2dHj3m8aZgQO8lMTcTnBcXkRRRqi34cd2MNlA9u1mE= @@ -641,7 +657,6 @@ github.com/stretchr/objx v0.1.1 h1:2vfRuCMp5sSVIDSqO8oNnWJq7mPa6KVP3iPIwFBuy8A= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.2.0 h1:Hbg2NidpLE8veEBkEZTL3CvlkUIVzuU9jDplZO54c48= github.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE= -github.com/stretchr/testify v0.0.0-20151208002404-e3a8ff8ce365/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.2.2 h1:bSDNvY7ZPG5RlJ8otE/7V6gMiyenm9RtJ7IUVIAoJ1w= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.3.0 h1:TivCn/peBQ7UY8ooIcPgZFpTNSz0Q2U6UrFlUfqbe0Q= @@ -680,8 +695,8 @@ github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2 h1:eY9dn8+vbi4tKz5 github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= github.com/xlab/handysort v0.0.0-20150421192137-fb3537ed64a1/go.mod h1:QcJo0QPSfTONNIgpN5RA8prR7fF8nkF6cTWTcNerRO8= github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q= -github.com/zalando-incubator/kube-aws-iam-controller v0.1.1 h1:UlVOiMsZipr05Euq5hMu03x+OoRU2gD3tk9ws2M+J98= -github.com/zalando-incubator/kube-aws-iam-controller v0.1.1/go.mod h1:DdikNIiMcY5rzc/T1haSQsKlOpCz6phSdtuwaOZ75VQ= +github.com/zalando-incubator/kube-aws-iam-controller v0.1.2 h1:uEXMHnd7wuXk3gAZ8iiOnL9XVUqA1iuDQzQFsa3ywA4= +github.com/zalando-incubator/kube-aws-iam-controller v0.1.2/go.mod h1:7RQdyNqtYaKEWVavXUFlrE8A+QsGe/hkBba2RyG5V4o= go.etcd.io/bbolt v1.3.3 h1:MUGmc65QhB3pIlaQ5bB4LwqSj6GIonVJXpZiaKNyaKk= go.etcd.io/bbolt v1.3.3/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= go.etcd.io/etcd v0.0.0-20191023171146-3cf2f69b5738 h1:VcrIfasaLFkyjk6KNlXQSzO+B0fZcnECiDrKJsfxka0= @@ -717,9 +732,12 @@ golang.org/x/crypto v0.0.0-20190611184440-5c40567a22f8/go.mod h1:yigFU9vqHzYiE8U golang.org/x/crypto v0.0.0-20190617133340-57b3e21c3d56/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200220183623-bac4c82f6975 h1:/Tl7pH94bvbAAHBdZJT947M/+gp0+CqQXDtMRC0fseo= golang.org/x/crypto v0.0.0-20200220183623-bac4c82f6975/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +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= golang.org/x/exp v0.0.0-20190125153040-c74c464bbbf2/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190312203227-4b39c73a6495/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= +golang.org/x/image v0.0.0-20180708004352-c73c2afc3b81/go.mod h1:ux5Hcp/YLpHSI86hEcLt0YII63i6oz57MZXIpbrjZUs= golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= @@ -796,6 +814,8 @@ golang.org/x/sys v0.0.0-20190813064441-fde4db37ae7a h1:aYOabOQFp6Vj6W1F80affTUvO golang.org/x/sys v0.0.0-20190813064441-fde4db37ae7a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190826190057-c7b8b68b1456 h1:ng0gs1AKnRRuEMZoTLLlbOd+C17zUDepwGQBb/n+JVg= golang.org/x/sys v0.0.0-20190826190057-c7b8b68b1456/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191022100944-742c48ecaeb7 h1:HmbHVPwrPEKPGLAcHSrMe6+hqSUlvZU0rab6x5EXfGU= +golang.org/x/sys v0.0.0-20191022100944-742c48ecaeb7/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/text v0.0.0-20160726164857-2910a502d2bf/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.0.0-20170915090833-1cbadb444a80/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0 h1:g61tztE5qeGQ89tm6NTjjM9VPIm088od1l6aSorWRWg= @@ -828,6 +848,7 @@ golang.org/x/tools v0.0.0-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3 golang.org/x/tools v0.0.0-20190312170243-e65039ee4138/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190322203728-c1a832b0ad89/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190328211700-ab21143f2384/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190425150028-36563e24a262/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= golang.org/x/tools v0.0.0-20190506145303-2d16b83fe98c/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= golang.org/x/tools v0.0.0-20190521203540-521d6ed310dd/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= @@ -838,9 +859,12 @@ golang.org/x/tools v0.0.0-20190909030654-5b82db07426d/go.mod h1:b+2E5dAYhXwXZwtn golang.org/x/tools v0.0.0-20190920225731-5eefd052ad72 h1:bw9doJza/SFBEweII/rHQh338oozWyiFsBRHtrflcws= golang.org/x/tools v0.0.0-20190920225731-5eefd052ad72/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +gonum.org/v1/gonum v0.0.0-20180816165407-929014505bf4/go.mod h1:Y+Yx5eoAFn32cQvJDxZx5Dpnq+c3wtXuadVZAcxbbBo= gonum.org/v1/gonum v0.0.0-20190331200053-3d26580ed485/go.mod h1:2ltnJ7xHfj0zHS40VVPYEAAMTa3ZGguvHGBSJeRWqE0= +gonum.org/v1/gonum v0.6.2/go.mod h1:9mxDZsDKxgMAuccQkewq682L+0eCu4dCN2yonUJTCLU= gonum.org/v1/netlib v0.0.0-20190313105609-8cb42192e0e0/go.mod h1:wa6Ws7BG/ESfp6dHfk7C6KdzKA7wR7u/rKwOGE66zvw= gonum.org/v1/netlib v0.0.0-20190331212654-76723241ea4e/go.mod h1:kS+toOQn6AQKjmKJ7gzohV1XkqsFehRA2FbsbkopSuQ= +gonum.org/v1/plot v0.0.0-20190515093506-e2840ee46a6b/go.mod h1:Wt8AAjI+ypCyYX3nZBvf6cAIx93T+c/OS2HFAYskSZc= google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE= google.golang.org/api v0.6.1-0.20190607001116-5213b8090861 h1:ppLucX0K/60T3t6LPZQzTOkt5PytkEbQLIaSteq+TpE= google.golang.org/api v0.6.1-0.20190607001116-5213b8090861/go.mod h1:btoxGiFvQNVUZQ8W08zLtrVS08CNpINPEfxXxgJL1Q4= @@ -855,12 +879,18 @@ google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRn google.golang.org/genproto v0.0.0-20190418145605-e7d98fc518a7/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= google.golang.org/genproto v0.0.0-20190502173448-54afdca5d873 h1:nfPFGzJkUDX6uBmpN/pSw7MbOAWegH5QDQuoXFHedLg= google.golang.org/genproto v0.0.0-20190502173448-54afdca5d873/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55 h1:gSJIx1SDwno+2ElGhA4+qG2zF97qiUzTM+rQ0klBOcE= +google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= google.golang.org/grpc v1.19.0 h1:cfg4PD8YEdSFnm7qLV4++93WcmhH2nIUhMjhdCvl3j8= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= +google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= google.golang.org/grpc v1.23.1 h1:q4XQuHFC6I28BKZpo6IYyb3mNO+l7lSOxRuYTCiDfXk= google.golang.org/grpc v1.23.1/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= +google.golang.org/grpc v1.26.0 h1:2dTRdpdFEEhJYQD8EMLB61nnrzSCTbG38PhqdhvOltg= +google.golang.org/grpc v1.26.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= gopkg.in/airbrake/gobrake.v2 v2.0.9/go.mod h1:/h5ZAUhDkGaJfjzjKLSjv6zCL6O0LLBxU4K+aSYdM/U= +gopkg.in/alecthomas/kingpin.v2 v2.2.6 h1:jMFz6MfLP0/4fUyZle81rXUoxOBFi19VUFKVDOQfozc= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 h1:qIbj1fsPNlZgppZ+VLlY7N33q108Sa+fhmuc+sWQYwY= @@ -903,20 +933,20 @@ honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWh honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.1-2019.2.2/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= k8s.io/gengo v0.0.0-20190128074634-0689ccc1d7d6/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0= -k8s.io/gengo v0.0.0-20190822140433-26a664648505/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0= +k8s.io/gengo v0.0.0-20200114144118-36b2048a9120/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0= k8s.io/heapster v1.2.0-beta.1/go.mod h1:h1uhptVXMwC8xtZBYsPXKVi8fpdlYkTs6k949KozGrM= k8s.io/klog v0.0.0-20181102134211-b9b56d5dfc92/go.mod h1:Gq+BEi5rUBO/HRz0bTSXDUcqjScdoY3a9IHpCEIOOfk= k8s.io/klog v0.3.0 h1:0VPpR+sizsiivjIfIAQH/rl8tan6jvWkS7lU+0di3lE= k8s.io/klog v0.3.0/go.mod h1:Gq+BEi5rUBO/HRz0bTSXDUcqjScdoY3a9IHpCEIOOfk= k8s.io/klog v1.0.0 h1:Pt+yjF5aB1xDSVbau4VsWe+dQNzA0qv1LlXdC2dF6Q8= k8s.io/klog v1.0.0/go.mod h1:4Bi6QPql/J/LkTDqv7R/cd3hPo4k2DG6Ptcz060Ez5I= -k8s.io/kube-openapi v0.0.0-20191107075043-30be4d16710a h1:UcxjrRMyNx/i/y8G7kPvLyy7rfbeuf1PYyBf973pgyU= -k8s.io/kube-openapi v0.0.0-20191107075043-30be4d16710a/go.mod h1:1TqjTSzOxsLGIKfj0lK8EeCP7K1iUG65v09OM0/WG5E= +k8s.io/kube-openapi v0.0.0-20200410145947-61e04a5be9a6 h1:Oh3Mzx5pJ+yIumsAD0MOECPVeXsVot0UkiaCGVyfGQY= +k8s.io/kube-openapi v0.0.0-20200410145947-61e04a5be9a6/go.mod h1:GRQhZsXIAJ1xR0C9bd8UpWHZ5plfAS9fzPjJuQ6JL3E= k8s.io/repo-infra v0.0.1-alpha.1/go.mod h1:wO1t9WaB99V80ljbeENTnayuEEwNZt7gECYh/CEyOJ8= k8s.io/repo-infra v0.0.1-alpha.1/go.mod h1:wO1t9WaB99V80ljbeENTnayuEEwNZt7gECYh/CEyOJ8= k8s.io/system-validators v1.0.4/go.mod h1:HgSgTg4NAGNoYYjKsUyk52gdNi2PVDswQ9Iyn66R7NI= -k8s.io/utils v0.0.0-20191114184206-e782cd3c129f h1:GiPwtSzdP43eI1hpPCbROQCCIgCuiMMNF8YUVLF3vJo= -k8s.io/utils v0.0.0-20191114184206-e782cd3c129f/go.mod h1:sZAwmy6armz5eXlNoLmJcl4F1QuKu7sr+mFQ0byX7Ew= +k8s.io/utils v0.0.0-20200324210504-a9aa75ae1b89 h1:d4vVOjXm687F1iLSP2q3lyPPuyvTUt3aVoBpi2DqRsU= +k8s.io/utils v0.0.0-20200324210504-a9aa75ae1b89/go.mod h1:sZAwmy6armz5eXlNoLmJcl4F1QuKu7sr+mFQ0byX7Ew= modernc.org/cc v1.0.0/go.mod h1:1Sk4//wdnYJiUIxnW8ddKpaOJCF37yAdqYnkxUpaYxw= modernc.org/golex v1.0.0/go.mod h1:b/QX9oBD/LhixY6NDh+IdGv17hgB+51fET1i2kPSmvk= modernc.org/mathutil v1.0.0/go.mod h1:wU0vUrJsVWBZ4P6e7xtFJEhFSNsfRLJ8H458uRjg03k= @@ -925,12 +955,17 @@ modernc.org/xc v1.0.0/go.mod h1:mRNCo0bvLjGhHO9WsyuKVU4q0ceiDDDoEeWDJHrNx8I= mvdan.cc/interfacer v0.0.0-20180901003855-c20040233aed/go.mod h1:Xkxe497xwlCKkIaQYRfC7CSLworTXY9RMqwhhCm+8Nc= mvdan.cc/lint v0.0.0-20170908181259-adc824a0674b/go.mod h1:2odslEg/xrtNQqCYg2/jCoyKnw3vv5biOc3JnIcYfL4= mvdan.cc/unparam v0.0.0-20190209190245-fbb59629db34/go.mod h1:H6SUd1XjIs+qQCyskXg5OFSrilMRUkD8ePJpHKDPaeY= +rsc.io/pdf v0.1.1/go.mod h1:n8OzWcQ6Sp37PL01nO98y4iUCRdTGarVfzxY20ICaU4= +sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.7 h1:uuHDyjllyzRyCIvvn0OBjiRB0SgBZGqHNYAmjR7fO50= +sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.7/go.mod h1:PHgbrJT7lCHcxMU+mDHEm+nx46H4zuuHZkDP6icnhu0= sigs.k8s.io/kustomize v2.0.3+incompatible h1:JUufWFNlI44MdtnjUqVnvh29rR37PQFzPbLXqhyOyX0= sigs.k8s.io/kustomize v2.0.3+incompatible/go.mod h1:MkjgH3RdOWrievjo6c9T245dYlB5QeXV4WCbnt/PEpU= -sigs.k8s.io/structured-merge-diff v0.0.0-20190525122527-15d366b2352e/go.mod h1:wWxsB5ozmmv/SG7nM11ayaAW51xMvak/t1r0CSlcokI= -sigs.k8s.io/structured-merge-diff v1.0.1-0.20191108220359-b1b620dd3f06 h1:zD2IemQ4LmOcAumeiyDWXKUI2SO0NYDe3H6QGvPOVgU= -sigs.k8s.io/structured-merge-diff v1.0.1-0.20191108220359-b1b620dd3f06/go.mod h1:/ULNhyfzRopfcjskuui0cTITekDduZ7ycKN3oUT9R18= +sigs.k8s.io/structured-merge-diff/v3 v3.0.0-20200116222232-67a7b8c61874/go.mod h1:PlARxl6Hbt/+BC80dRLi1qAmnMqwqDg62YvvVkZjemw= +sigs.k8s.io/structured-merge-diff/v3 v3.0.0 h1:dOmIZBMfhcHS09XZkMyUgkq5trg3/jRyJYFZUiaOp8E= +sigs.k8s.io/structured-merge-diff/v3 v3.0.0/go.mod h1:PlARxl6Hbt/+BC80dRLi1qAmnMqwqDg62YvvVkZjemw= sigs.k8s.io/yaml v1.1.0 h1:4A07+ZFc2wgJwo8YNlQpr1rVlgUDlxXHhPJciaPY5gs= sigs.k8s.io/yaml v1.1.0/go.mod h1:UJmg0vDUVViEyp3mgSv9WPwZCDxu4rQW1olrI1uml+o= +sigs.k8s.io/yaml v1.2.0 h1:kr/MCeFWJWTwyaHoR9c8EjH9OumOmoF9YGiZd7lFm/Q= +sigs.k8s.io/yaml v1.2.0/go.mod h1:yfXDCHCao9+ENCvLSE62v9VSji2MKu5jeNfTrofGhJc= sourcegraph.com/sqs/pbtypes v0.0.0-20180604144634-d3ebe8f20ae4/go.mod h1:ketZ/q3QxT9HOBeFhu6RdvsftgpsbFHBF5Cas6cDKZ0= vbom.ml/util v0.0.0-20160121211510-db5cfe13f5cc/go.mod h1:so/NYdZXCz+E3ZpW0uAoCj6uzU2+8OWDFv/HxUSs7kI= diff --git a/test/e2e/gpu.go b/test/e2e/gpu.go index 4979a9e47b..e6d3df3c42 100644 --- a/test/e2e/gpu.go +++ b/test/e2e/gpu.go @@ -14,6 +14,7 @@ limitations under the License. package e2e import ( + "context" "fmt" "regexp" "time" @@ -42,11 +43,11 @@ var _ = framework.KubeDescribe("GPU job processing", func() { By("Creating a vector pod which runs on a GPU node") pod := createVectorPod(nameprefix, ns, labels) - _, err := cs.CoreV1().Pods(ns).Create(pod) + _, err := cs.CoreV1().Pods(ns).Create(context.TODO(), pod, metav1.CreateOptions{}) framework.ExpectNoError(err, "Could not create POD %s", pod.Name) framework.ExpectNoError(f.WaitForPodRunning(pod.Name)) for { - p, err := cs.CoreV1().Pods(ns).Get(pod.Name, metav1.GetOptions{}) + p, err := cs.CoreV1().Pods(ns).Get(context.TODO(), pod.Name, metav1.GetOptions{}) if err != nil { framework.ExpectNoError(err, "Could not get POD %s", pod.Name) return diff --git a/test/e2e/infra.go b/test/e2e/infra.go index 160d37fa17..568688e482 100644 --- a/test/e2e/infra.go +++ b/test/e2e/infra.go @@ -1,6 +1,8 @@ package e2e import ( + "context" + . "github.com/onsi/ginkgo" . "github.com/onsi/gomega" v1 "k8s.io/api/core/v1" @@ -30,7 +32,7 @@ var _ = framework.KubeDescribe("Infrastructure tests", func() { }) func podsForApplication(cs kubernetes.Interface, application string) ([]v1.Pod, error) { - matchingPods, err := cs.CoreV1().Pods(kubeapi.NamespaceSystem).List(metav1.ListOptions{ + matchingPods, err := cs.CoreV1().Pods(kubeapi.NamespaceSystem).List(context.TODO(), metav1.ListOptions{ LabelSelector: metav1.FormatLabelSelector(&metav1.LabelSelector{ MatchLabels: map[string]string{"application": application}, }), diff --git a/test/e2e/ingress.go b/test/e2e/ingress.go index 1e3d607a22..113e2f6e5b 100644 --- a/test/e2e/ingress.go +++ b/test/e2e/ingress.go @@ -14,6 +14,7 @@ limitations under the License. package e2e import ( + "context" "fmt" "net/http" "time" @@ -57,10 +58,10 @@ var _ = framework.KubeDescribe("Ingress ALB creation", func() { defer func() { By("deleting the service") defer GinkgoRecover() - err2 := cs.CoreV1().Services(ns).Delete(service.Name, metav1.NewDeleteOptions(0)) + err2 := cs.CoreV1().Services(ns).Delete(context.TODO(), service.Name, metav1.DeleteOptions{}) Expect(err2).NotTo(HaveOccurred()) }() - _, err := cs.CoreV1().Services(ns).Create(service) + _, err := cs.CoreV1().Services(ns).Create(context.TODO(), service, metav1.CreateOptions{}) Expect(err).NotTo(HaveOccurred()) // POD @@ -69,11 +70,11 @@ var _ = framework.KubeDescribe("Ingress ALB creation", func() { defer func() { By("deleting the pod") defer GinkgoRecover() - err2 := cs.CoreV1().Pods(ns).Delete(pod.Name, metav1.NewDeleteOptions(0)) + err2 := cs.CoreV1().Pods(ns).Delete(context.TODO(), pod.Name, metav1.DeleteOptions{}) Expect(err2).NotTo(HaveOccurred()) }() - _, err = cs.CoreV1().Pods(ns).Create(pod) + _, err = cs.CoreV1().Pods(ns).Create(context.TODO(), pod, metav1.CreateOptions{}) Expect(err).NotTo(HaveOccurred()) framework.ExpectNoError(f.WaitForPodRunning(pod.Name)) @@ -83,14 +84,14 @@ var _ = framework.KubeDescribe("Ingress ALB creation", func() { defer func() { By("deleting the ingress") defer GinkgoRecover() - err2 := cs.NetworkingV1beta1().Ingresses(ns).Delete(ing.Name, metav1.NewDeleteOptions(0)) + err2 := cs.NetworkingV1beta1().Ingresses(ns).Delete(context.TODO(), ing.Name, metav1.DeleteOptions{}) Expect(err2).NotTo(HaveOccurred()) }() - ingressCreate, err := cs.NetworkingV1beta1().Ingresses(ns).Create(ing) + ingressCreate, err := cs.NetworkingV1beta1().Ingresses(ns).Create(context.TODO(), ing, metav1.CreateOptions{}) Expect(err).NotTo(HaveOccurred()) addr, err := jig.WaitForIngressAddress(cs, ns, ingressCreate.Name, 10*time.Minute) Expect(err).NotTo(HaveOccurred()) - ingress, err := cs.NetworkingV1beta1().Ingresses(ns).Get(ing.Name, metav1.GetOptions{ResourceVersion: "0"}) + ingress, err := cs.NetworkingV1beta1().Ingresses(ns).Get(context.TODO(), ing.Name, metav1.GetOptions{ResourceVersion: "0"}) Expect(err).NotTo(HaveOccurred()) By(fmt.Sprintf("ALB endpoint from ingress status: %s", ingress.Status.LoadBalancer.Ingress[0].Hostname)) @@ -138,7 +139,7 @@ var __ = framework.KubeDescribe("Ingress tests simple", func() { // backend deployment By("Creating a deployment with " + serviceName + " in namespace " + ns) depl := createSkipperBackendDeployment(serviceName, ns, route, labels, int32(targetPort), replicas) - _, err := cs.AppsV1().Deployments(ns).Create(depl) + _, err := cs.AppsV1().Deployments(ns).Create(context.TODO(), depl, metav1.CreateOptions{}) //deployment, err := cs.AppsV1().Deployments(ns).Create(depl) // defer func() { // By("deleting the deployment") @@ -150,17 +151,17 @@ var __ = framework.KubeDescribe("Ingress tests simple", func() { By("Creating service " + serviceName + " in namespace " + ns) service := createServiceTypeClusterIP(serviceName, labels, port, targetPort) - _, err = cs.CoreV1().Services(ns).Create(service) + _, err = cs.CoreV1().Services(ns).Create(context.TODO(), service, metav1.CreateOptions{}) Expect(err).NotTo(HaveOccurred()) ing := createIngress(serviceName, hostName, ns, labels, nil, port) - ingressCreate, err := cs.NetworkingV1beta1().Ingresses(ns).Create(ing) + ingressCreate, err := cs.NetworkingV1beta1().Ingresses(ns).Create(context.TODO(), ing, metav1.CreateOptions{}) Expect(err).NotTo(HaveOccurred()) addr, err := jig.WaitForIngressAddress(cs, ns, ingressCreate.Name, waitTime) Expect(err).NotTo(HaveOccurred()) - _, err = cs.NetworkingV1beta1().Ingresses(ns).Get(ing.Name, metav1.GetOptions{ResourceVersion: "0"}) + _, err = cs.NetworkingV1beta1().Ingresses(ns).Get(context.TODO(), ing.Name, metav1.GetOptions{ResourceVersion: "0"}) Expect(err).NotTo(HaveOccurred()) // skipper http -> https redirect @@ -207,7 +208,7 @@ var __ = framework.KubeDescribe("Ingress tests simple", func() { }, port, ) - ingressUpdate, err := cs.NetworkingV1beta1().Ingresses(ingressCreate.ObjectMeta.Namespace).Update(updatedIng) + ingressUpdate, err := cs.NetworkingV1beta1().Ingresses(ingressCreate.ObjectMeta.Namespace).Update(context.TODO(), updatedIng, metav1.UpdateOptions{}) Expect(err).NotTo(HaveOccurred()) By(fmt.Sprintf("Waiting for ingress %s/%s we wait to get a 200 with the right content for the next request", ingressUpdate.Namespace, ingressUpdate.Name)) resp, err = getAndWaitResponse(rt, req, 10*time.Second, http.StatusOK) @@ -230,7 +231,7 @@ var __ = framework.KubeDescribe("Ingress tests simple", func() { }, port, ) - ingressUpdate, err = cs.NetworkingV1beta1().Ingresses(ingressCreate.ObjectMeta.Namespace).Update(updatedIng) + ingressUpdate, err = cs.NetworkingV1beta1().Ingresses(ingressCreate.ObjectMeta.Namespace).Update(context.TODO(), updatedIng, metav1.UpdateOptions{}) Expect(err).NotTo(HaveOccurred()) By(fmt.Sprintf("Waiting for ingress %s/%s we wait to get a 404 for the next request", ingressUpdate.Namespace, ingressUpdate.Name)) resp, err = getAndWaitResponse(rt, req, 10*time.Second, http.StatusNotFound) @@ -252,7 +253,7 @@ var __ = framework.KubeDescribe("Ingress tests simple", func() { }, port, ) - ingressUpdate, err = cs.NetworkingV1beta1().Ingresses(ingressCreate.ObjectMeta.Namespace).Update(updatedIng) + ingressUpdate, err = cs.NetworkingV1beta1().Ingresses(ingressCreate.ObjectMeta.Namespace).Update(context.TODO(), updatedIng, metav1.UpdateOptions{}) Expect(err).NotTo(HaveOccurred()) By(fmt.Sprintf("Waiting for ingress %s/%s we wait to get a 200 with %s header set to %s for the next request", ingressUpdate.Namespace, ingressUpdate.Name, headerKey, headerVal)) time.Sleep(10 * time.Second) // wait for routing change propagation @@ -267,7 +268,7 @@ var __ = framework.KubeDescribe("Ingress tests simple", func() { // Test additional hostname additionalHostname := fmt.Sprintf("foo-%d.%s", time.Now().UTC().Unix(), E2EHostedZone()) addHostIng := addHostIngress(updatedIng, additionalHostname) - ingressUpdate, err = cs.NetworkingV1beta1().Ingresses(ingressCreate.ObjectMeta.Namespace).Update(addHostIng) + ingressUpdate, err = cs.NetworkingV1beta1().Ingresses(ingressCreate.ObjectMeta.Namespace).Update(context.TODO(), addHostIng, metav1.UpdateOptions{}) Expect(err).NotTo(HaveOccurred()) By("Waiting for new DNS hostname to be resolvable " + additionalHostname) err = waitForResponse(additionalHostname, "https", waitTime, isSuccess, false) @@ -293,7 +294,7 @@ var __ = framework.KubeDescribe("Ingress tests simple", func() { // Test changed path newPath := "/foo" changePathIng := changePathIngress(updatedIng, newPath) - ingressUpdate, err = cs.NetworkingV1beta1().Ingresses(ingressCreate.ObjectMeta.Namespace).Update(changePathIng) + ingressUpdate, err = cs.NetworkingV1beta1().Ingresses(ingressCreate.ObjectMeta.Namespace).Update(context.TODO(), changePathIng, metav1.UpdateOptions{}) Expect(err).NotTo(HaveOccurred()) By(fmt.Sprintf("Waiting for ingress %s/%s we wait to get a 404 for the old request, because of the path route", ingressUpdate.Namespace, ingressUpdate.Name)) @@ -346,7 +347,7 @@ var ___ = framework.KubeDescribe("Ingress tests paths", func() { // backend deployment By("Creating a deployment with " + serviceName + " in namespace " + ns) depl := createSkipperBackendDeployment(serviceName, ns, route, labels, int32(targetPort), replicas) - _, err := cs.AppsV1().Deployments(ns).Create(depl) + _, err := cs.AppsV1().Deployments(ns).Create(context.TODO(), depl, metav1.CreateOptions{}) //deployment, err := cs.AppsV1().Deployments(ns).Create(depl) // defer func() { // By("deleting the deployment") @@ -357,7 +358,7 @@ var ___ = framework.KubeDescribe("Ingress tests paths", func() { Expect(err).NotTo(HaveOccurred()) By("Creating a 2nd deployment with " + serviceName2 + " in namespace " + ns) depl2 := createSkipperBackendDeployment(serviceName2, ns, route2, labels2, int32(targetPort), replicas) - _, err = cs.AppsV1().Deployments(ns).Create(depl2) + _, err = cs.AppsV1().Deployments(ns).Create(context.TODO(), depl2, metav1.CreateOptions{}) //deployment2, err := cs.AppsV1().Deployments(ns).Create(depl2) // defer func() { // By("deleting the deployment") @@ -369,23 +370,23 @@ var ___ = framework.KubeDescribe("Ingress tests paths", func() { By("Creating service " + serviceName + " in namespace " + ns) service := createServiceTypeClusterIP(serviceName, labels, port, targetPort) - _, err = cs.CoreV1().Services(ns).Create(service) + _, err = cs.CoreV1().Services(ns).Create(context.TODO(), service, metav1.CreateOptions{}) Expect(err).NotTo(HaveOccurred()) By("Creating service " + serviceName2 + " in namespace " + ns) service2 := createServiceTypeClusterIP(serviceName2, labels2, port, targetPort) - _, err = cs.CoreV1().Services(ns).Create(service2) + _, err = cs.CoreV1().Services(ns).Create(context.TODO(), service2, metav1.CreateOptions{}) Expect(err).NotTo(HaveOccurred()) By("Creating ingress " + serviceName + " in namespace " + ns + "with hostname " + hostName) ing := createIngress(serviceName, hostName, ns, labels, nil, port) - ingressCreate, err := cs.NetworkingV1beta1().Ingresses(ns).Create(ing) + ingressCreate, err := cs.NetworkingV1beta1().Ingresses(ns).Create(context.TODO(), ing, metav1.CreateOptions{}) Expect(err).NotTo(HaveOccurred()) addr, err := jig.WaitForIngressAddress(cs, ns, ingressCreate.Name, waitTime) Expect(err).NotTo(HaveOccurred()) - _, err = cs.NetworkingV1beta1().Ingresses(ns).Get(ing.Name, metav1.GetOptions{ResourceVersion: "0"}) + _, err = cs.NetworkingV1beta1().Ingresses(ns).Get(context.TODO(), ing.Name, metav1.GetOptions{ResourceVersion: "0"}) Expect(err).NotTo(HaveOccurred()) // skipper http -> https redirect @@ -430,7 +431,7 @@ var ___ = framework.KubeDescribe("Ingress tests paths", func() { ingressCreate.ObjectMeta.Annotations, port, ) - ingressUpdate, err := cs.NetworkingV1beta1().Ingresses(ingressCreate.ObjectMeta.Namespace).Update(updatedIng) + ingressUpdate, err := cs.NetworkingV1beta1().Ingresses(ingressCreate.ObjectMeta.Namespace).Update(context.TODO(), updatedIng, metav1.UpdateOptions{}) Expect(err).NotTo(HaveOccurred()) By(fmt.Sprintf("Testing for ingress %s/%s we want to get a 404 for path /", ingressUpdate.Namespace, ingressUpdate.Name)) @@ -464,7 +465,7 @@ var ___ = framework.KubeDescribe("Ingress tests paths", func() { ServicePort: intstr.FromInt(port), }, ) - ingressUpdate, err = cs.NetworkingV1beta1().Ingresses(ingressCreate.ObjectMeta.Namespace).Update(updatedIng) + ingressUpdate, err = cs.NetworkingV1beta1().Ingresses(ingressCreate.ObjectMeta.Namespace).Update(context.TODO(), updatedIng, metav1.UpdateOptions{}) Expect(err).NotTo(HaveOccurred()) resp, err = getAndWaitResponse(rt, bereq2, 10*time.Second, http.StatusOK) Expect(err).NotTo(HaveOccurred()) @@ -512,7 +513,7 @@ var ____ = framework.KubeDescribe("Ingress tests custom routes", func() { // backend deployment By("Creating a deployment with " + serviceName + " in namespace " + ns) depl := createSkipperBackendDeployment(serviceName, ns, route, labels, int32(targetPort), replicas) - _, err := cs.AppsV1().Deployments(ns).Create(depl) + _, err := cs.AppsV1().Deployments(ns).Create(context.TODO(), depl, metav1.CreateOptions{}) //deployment, err := cs.AppsV1().Deployments(ns).Create(depl) // defer func() { // By("deleting the deployment") @@ -524,18 +525,18 @@ var ____ = framework.KubeDescribe("Ingress tests custom routes", func() { By("Creating service " + serviceName + " in namespace " + ns) service := createServiceTypeClusterIP(serviceName, labels, port, targetPort) - _, err = cs.CoreV1().Services(ns).Create(service) + _, err = cs.CoreV1().Services(ns).Create(context.TODO(), service, metav1.CreateOptions{}) Expect(err).NotTo(HaveOccurred()) By("Creating ingress " + serviceName + " in namespace " + ns + "with hostname " + hostName) ing := createIngress(serviceName, hostName, ns, labels, nil, port) - ingressCreate, err := cs.NetworkingV1beta1().Ingresses(ns).Create(ing) + ingressCreate, err := cs.NetworkingV1beta1().Ingresses(ns).Create(context.TODO(), ing, metav1.CreateOptions{}) Expect(err).NotTo(HaveOccurred()) addr, err := jig.WaitForIngressAddress(cs, ns, ingressCreate.Name, waitTime) Expect(err).NotTo(HaveOccurred()) - _, err = cs.NetworkingV1beta1().Ingresses(ns).Get(ing.Name, metav1.GetOptions{ResourceVersion: "0"}) + _, err = cs.NetworkingV1beta1().Ingresses(ns).Get(context.TODO(), ing.Name, metav1.GetOptions{ResourceVersion: "0"}) Expect(err).NotTo(HaveOccurred()) // skipper http -> https redirect @@ -587,7 +588,7 @@ var ____ = framework.KubeDescribe("Ingress tests custom routes", func() { }, port, ) - ingressUpdate, err := cs.NetworkingV1beta1().Ingresses(ingressCreate.ObjectMeta.Namespace).Update(updatedIng) + ingressUpdate, err := cs.NetworkingV1beta1().Ingresses(ingressCreate.ObjectMeta.Namespace).Update(context.TODO(), updatedIng, metav1.UpdateOptions{}) Expect(err).NotTo(HaveOccurred()) By(fmt.Sprintf("Testing for ingress %s/%s we want to get a 307 for path %s", ingressUpdate.Namespace, ingressUpdate.Name, redirectPath)) @@ -640,22 +641,22 @@ var _____ = framework.KubeDescribe("Ingress tests simple NLB", func() { // backend deployment By("Creating a deployment with " + serviceName + " in namespace " + ns) depl := createSkipperBackendDeployment(serviceName, ns, route, labels, int32(targetPort), replicas) - _, err := cs.AppsV1().Deployments(ns).Create(depl) + _, err := cs.AppsV1().Deployments(ns).Create(context.TODO(), depl, metav1.CreateOptions{}) Expect(err).NotTo(HaveOccurred()) By("Creating service " + serviceName + " in namespace " + ns) service := createServiceTypeClusterIP(serviceName, labels, port, targetPort) - _, err = cs.CoreV1().Services(ns).Create(service) + _, err = cs.CoreV1().Services(ns).Create(context.TODO(), service, metav1.CreateOptions{}) Expect(err).NotTo(HaveOccurred()) ing := createIngress(serviceName, hostName, ns, labels, annotations, port) - ingressCreate, err := cs.NetworkingV1beta1().Ingresses(ns).Create(ing) + ingressCreate, err := cs.NetworkingV1beta1().Ingresses(ns).Create(context.TODO(), ing, metav1.CreateOptions{}) Expect(err).NotTo(HaveOccurred()) addr, err := jig.WaitForIngressAddress(cs, ns, ingressCreate.Name, waitTime) Expect(err).NotTo(HaveOccurred()) - _, err = cs.NetworkingV1beta1().Ingresses(ns).Get(ing.Name, metav1.GetOptions{ResourceVersion: "0"}) + _, err = cs.NetworkingV1beta1().Ingresses(ns).Get(context.TODO(), ing.Name, metav1.GetOptions{ResourceVersion: "0"}) Expect(err).NotTo(HaveOccurred()) // // skipper http -> https redirect diff --git a/test/e2e/kube_metrics_adapter_test.go b/test/e2e/kube_metrics_adapter_test.go index 3b8f90bc6e..7c3632a89e 100644 --- a/test/e2e/kube_metrics_adapter_test.go +++ b/test/e2e/kube_metrics_adapter_test.go @@ -1,6 +1,7 @@ package e2e import ( + "context" "fmt" "strconv" "strings" @@ -141,13 +142,13 @@ func (tc *CustomMetricTestCase) Run() { ns := tc.framework.Namespace.Name // Create a MetricsExporter deployment - _, err := tc.kubeClient.AppsV1().Deployments(ns).Create(tc.deployment) + _, err := tc.kubeClient.AppsV1().Deployments(ns).Create(context.TODO(), tc.deployment, metav1.CreateOptions{}) Expect(err).NotTo(HaveOccurred()) // Wait for the deployment to run waitForReplicas(tc.deployment.ObjectMeta.Name, tc.framework.Namespace.ObjectMeta.Name, tc.kubeClient, 15*time.Minute, tc.initialReplicas) for _, deployment := range tc.auxDeployments { - _, err := tc.kubeClient.AppsV1().Deployments(ns).Create(deployment) + _, err := tc.kubeClient.AppsV1().Deployments(ns).Create(context.TODO(), deployment, metav1.CreateOptions{}) Expect(err).NotTo(HaveOccurred()) // Wait for the deployment to run waitForReplicas(deployment.ObjectMeta.Name, tc.framework.Namespace.ObjectMeta.Name, tc.kubeClient, 15*time.Minute, int(*(deployment.Spec.Replicas))) @@ -157,11 +158,11 @@ func (tc *CustomMetricTestCase) Run() { // Check if an Ingress needs to be created if tc.ingress != nil { // Create a Service for the Ingress - _, err = tc.kubeClient.CoreV1().Services(ns).Create(tc.service) + _, err = tc.kubeClient.CoreV1().Services(ns).Create(context.TODO(), tc.service, metav1.CreateOptions{}) Expect(err).NotTo(HaveOccurred()) // Create an Ingress since RPS based scaling relies on it - ingressCreate, err := tc.kubeClient.NetworkingV1beta1().Ingresses(ns).Create(tc.ingress) + ingressCreate, err := tc.kubeClient.NetworkingV1beta1().Ingresses(ns).Create(context.TODO(), tc.ingress, metav1.CreateOptions{}) Expect(err).NotTo(HaveOccurred()) _, err = tc.jig.WaitForIngressAddress(tc.kubeClient, ns, ingressCreate.Name, 10*time.Minute) @@ -169,7 +170,7 @@ func (tc *CustomMetricTestCase) Run() { } // Autoscale the deployment - _, err = tc.kubeClient.AutoscalingV2beta1().HorizontalPodAutoscalers(ns).Create(tc.hpa) + _, err = tc.kubeClient.AutoscalingV2beta1().HorizontalPodAutoscalers(ns).Create(context.TODO(), tc.hpa, metav1.CreateOptions{}) Expect(err).NotTo(HaveOccurred()) waitForReplicas(tc.deployment.ObjectMeta.Name, tc.framework.Namespace.ObjectMeta.Name, tc.kubeClient, 15*time.Minute, tc.scaledReplicas) @@ -178,7 +179,7 @@ func (tc *CustomMetricTestCase) Run() { func cleanDeploymentToScale(f *framework.Framework, kubeClient kubernetes.Interface, deployment *appsv1.Deployment) { if deployment != nil { // Can't do much if there's an error while deleting the deployment, or can we? - _ = kubeClient.AppsV1().Deployments(f.Namespace.Name).Delete(deployment.ObjectMeta.Name, &metav1.DeleteOptions{}) + _ = kubeClient.AppsV1().Deployments(f.Namespace.Name).Delete(context.TODO(), deployment.ObjectMeta.Name, metav1.DeleteOptions{}) } } diff --git a/test/e2e/psp.go b/test/e2e/psp.go index 17e4a293f6..f0d981d32d 100644 --- a/test/e2e/psp.go +++ b/test/e2e/psp.go @@ -14,6 +14,7 @@ limitations under the License. package e2e import ( + "context" "fmt" . "github.com/onsi/ginkgo" @@ -38,10 +39,10 @@ var _ = framework.KubeDescribe("PSP use", func() { BeforeEach(func() { cs = f.ClientSet saObj := createServiceAccount(f.Namespace.Name, privilegedSA) - _, err := cs.CoreV1().ServiceAccounts(f.Namespace.Name).Create(saObj) + _, err := cs.CoreV1().ServiceAccounts(f.Namespace.Name).Create(context.TODO(), saObj, metav1.CreateOptions{}) Expect(err).NotTo(HaveOccurred()) - _, err = cs.RbacV1().RoleBindings(f.Namespace.Name).Create(createRBACRoleBindingSA(privilegedRole, f.Namespace.Name, privilegedSA)) + _, err = cs.RbacV1().RoleBindings(f.Namespace.Name).Create(context.TODO(), createRBACRoleBindingSA(privilegedRole, f.Namespace.Name, privilegedSA), metav1.CreateOptions{}) Expect(err).NotTo(HaveOccurred()) }) @@ -83,11 +84,11 @@ var _ = framework.KubeDescribe("PSP use", func() { defer func() { By(msg) defer GinkgoRecover() - err := cs.CoreV1().Pods(ns).Delete(pod.Name, metav1.NewDeleteOptions(0)) + err := cs.CoreV1().Pods(ns).Delete(context.TODO(), pod.Name, metav1.DeleteOptions{}) Expect(err).NotTo(HaveOccurred()) }() - _, err := cs.CoreV1().Pods(ns).Create(pod) + _, err := cs.CoreV1().Pods(ns).Create(context.TODO(), pod, metav1.CreateOptions{}) Expect(err).NotTo(HaveOccurred()) framework.ExpectNoError(f.WaitForPodRunning(pod.Name)) @@ -110,11 +111,11 @@ var _ = framework.KubeDescribe("PSP use", func() { defer func() { By(fmt.Sprintf("Delete a deployment that creates a privileged POD as %s", privilegedSA)) defer GinkgoRecover() - err := cs.AppsV1().Deployments(ns).Delete(d.Name, metav1.NewDeleteOptions(0)) + err := cs.AppsV1().Deployments(ns).Delete(context.TODO(), d.Name, metav1.DeleteOptions{}) Expect(err).NotTo(HaveOccurred()) }() - deploy, err := cs.AppsV1().Deployments(ns).Create(d) + deploy, err := cs.AppsV1().Deployments(ns).Create(context.TODO(), d, metav1.CreateOptions{}) Expect(err).NotTo(HaveOccurred()) @@ -123,7 +124,7 @@ var _ = framework.KubeDescribe("PSP use", func() { Expect(err).NotTo(HaveOccurred()) err = deploymentframework.WaitForDeploymentComplete(cs, deploy) Expect(err).NotTo(HaveOccurred()) - deployment, err := cs.AppsV1().Deployments(ns).Get(deploy.Name, metav1.GetOptions{}) + deployment, err := cs.AppsV1().Deployments(ns).Get(context.TODO(), deploy.Name, metav1.GetOptions{}) Expect(err).NotTo(HaveOccurred()) rs, err := deploymentutil.GetNewReplicaSet(deployment, cs.AppsV1()) Expect(err).NotTo(HaveOccurred()) diff --git a/test/e2e/util.go b/test/e2e/util.go index dae754bc7d..6e011d7713 100644 --- a/test/e2e/util.go +++ b/test/e2e/util.go @@ -2,6 +2,7 @@ package e2e import ( "bytes" + "context" "crypto/tls" "fmt" "io" @@ -16,8 +17,10 @@ import ( "k8s.io/apimachinery/pkg/api/resource" "k8s.io/apimachinery/pkg/util/wait" "k8s.io/client-go/kubernetes" + clientset "k8s.io/client-go/kubernetes" "k8s.io/kubernetes/test/e2e/framework" e2elog "k8s.io/kubernetes/test/e2e/framework/log" + testutil "k8s.io/kubernetes/test/utils" . "github.com/onsi/ginkgo" . "github.com/onsi/gomega" @@ -32,6 +35,11 @@ import ( "k8s.io/apimachinery/pkg/util/uuid" ) +const ( + poll = 2 * time.Second + pollLongTimeout = 5 * time.Minute +) + func createIngress(name, hostname, namespace string, labels, annotations map[string]string, port int) *v1beta1.Ingress { return &v1beta1.Ingress{ ObjectMeta: metav1.ObjectMeta{ @@ -602,7 +610,7 @@ func waitForResponse(hostname, scheme string, timeout time.Duration, expectedCod func waitForReplicas(deploymentName, namespace string, kubeClient kubernetes.Interface, timeout time.Duration, desiredReplicas int) { interval := 20 * time.Second err := wait.PollImmediate(interval, timeout, func() (bool, error) { - deployment, err := kubeClient.AppsV1().Deployments(namespace).Get(deploymentName, metav1.GetOptions{}) + deployment, err := kubeClient.AppsV1().Deployments(namespace).Get(context.TODO(), deploymentName, metav1.GetOptions{}) if err != nil { framework.Failf("Failed to get replication controller %s: %v", deployment, err) } @@ -729,7 +737,7 @@ func createVectorPod(nameprefix, namespace string, labels map[string]string) *v1 func deleteDeployment(cs kubernetes.Interface, ns string, deployment *appsv1.Deployment) { By(fmt.Sprintf("Delete a compliant deployment: %s", deployment.Name)) defer GinkgoRecover() - err := cs.AppsV1().Deployments(ns).Delete(deployment.Name, metav1.NewDeleteOptions(0)) + err := cs.AppsV1().Deployments(ns).Delete(context.TODO(), deployment.Name, metav1.DeleteOptions{}) Expect(err).NotTo(HaveOccurred()) } @@ -808,7 +816,7 @@ func getPodLogs(c kubernetes.Interface, namespace, podName, containerName string Name(podName).SubResource("log"). Param("container", containerName). Param("previous", strconv.FormatBool(previous)). - Do(). + Do(context.TODO()). Raw() if err != nil { return "", err @@ -818,3 +826,8 @@ func getPodLogs(c kubernetes.Interface, namespace, podName, containerName string } return string(logs), err } + +// waitForDeploymentWithCondition waits for the specified deployment condition. +func waitForDeploymentWithCondition(c clientset.Interface, ns, deploymentName, reason string, condType appsv1.DeploymentConditionType) error { + return testutil.WaitForDeploymentWithCondition(c, ns, deploymentName, reason, condType, framework.Logf, poll, pollLongTimeout) +} diff --git a/test/e2e/viperconfig.go b/test/e2e/viperconfig.go new file mode 100644 index 0000000000..bb41c2aa02 --- /dev/null +++ b/test/e2e/viperconfig.go @@ -0,0 +1,146 @@ +/* +Copyright 2018 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package e2e + +import ( + "flag" + "fmt" + "path/filepath" + + "github.com/pkg/errors" + + "github.com/spf13/viper" +) + +// viperizeFlags checks whether a configuration file was specified, +// reads it, and updates the configuration variables in the specified +// flag set accordingly. Must be called after framework.HandleFlags() +// and before framework.AfterReadingAllFlags(). +// +// The logic is so that a required configuration file must be present. If empty, +// the optional configuration file is used instead, unless also empty. +// +// Files can be specified with just a base name ("e2e", matches "e2e.json/yaml/..." in +// the current directory) or with path and suffix. +func viperizeFlags(requiredConfig, optionalConfig string, flags *flag.FlagSet) error { + viperConfig := optionalConfig + required := false + if requiredConfig != "" { + viperConfig = requiredConfig + required = true + } + if viperConfig == "" { + return nil + } + viper.SetConfigName(filepath.Base(viperConfig)) + viper.AddConfigPath(filepath.Dir(viperConfig)) + wrapError := func(err error) error { + if err == nil { + return nil + } + errorPrefix := fmt.Sprintf("viper config %q", viperConfig) + actualFile := viper.ConfigFileUsed() + if actualFile != "" && actualFile != viperConfig { + errorPrefix = fmt.Sprintf("%s = %q", errorPrefix, actualFile) + } + return errors.Wrap(err, errorPrefix) + } + + if err := viper.ReadInConfig(); err != nil { + // If the user specified a file suffix, the Viper won't + // find the file because it always appends its known set + // of file suffices. Therefore try once more without + // suffix. + ext := filepath.Ext(viperConfig) + if _, ok := err.(viper.ConfigFileNotFoundError); ok && ext != "" { + viper.SetConfigName(filepath.Base(viperConfig[0 : len(viperConfig)-len(ext)])) + err = viper.ReadInConfig() + } + if err != nil { + // If a config was required, then parsing must + // succeed. This catches syntax errors and + // "file not found". Unfortunately error + // messages are sometimes hard to understand, + // so try to help the user a bit. + switch err.(type) { + case viper.ConfigFileNotFoundError: + if required { + return wrapError(errors.New("not found")) + } + // Proceed without config. + return nil + case viper.UnsupportedConfigError: + if required { + return wrapError(errors.New("not using a supported file format")) + } + // Proceed without config. + return nil + default: + // Something isn't right in the file. + return wrapError(err) + } + } + } + + // Update all flag values not already set with values found + // via Viper. We do this ourselves instead of calling + // something like viper.Unmarshal(&TestContext) because we + // want to support all values, regardless where they are + // stored. + return wrapError(viperUnmarshal(flags)) +} + +// viperUnmarshall updates all flags with the corresponding values found +// via Viper, regardless whether the flag value is stored in TestContext, some other +// context or a local variable. +func viperUnmarshal(flags *flag.FlagSet) error { + var result error + set := make(map[string]bool) + + // Determine which values were already set explicitly via + // flags. Those we don't overwrite because command line + // flags have a higher priority. + flags.Visit(func(f *flag.Flag) { + set[f.Name] = true + }) + + flags.VisitAll(func(f *flag.Flag) { + if result != nil || + set[f.Name] || + !viper.IsSet(f.Name) { + return + } + + // In contrast to viper.Unmarshal(), values + // that have the wrong type (for example, a + // list instead of a plain string) will not + // trigger an error here. This could be fixed + // by checking the type ourselves, but + // probably isn't worth the effort. + // + // "%v" correctly turns bool, int, strings into + // the representation expected by flag, so those + // can be used in config files. Plain strings + // always work there, just as on the command line. + str := fmt.Sprintf("%v", viper.Get(f.Name)) + if err := f.Value.Set(str); err != nil { + result = fmt.Errorf("setting option %q from config file value: %s", f.Name, err) + } + }) + + return result +}