diff --git a/test/e2e_node/BUILD b/test/e2e_node/BUILD index e2aa5b90bd9..d3bd5b5b7ef 100644 --- a/test/e2e_node/BUILD +++ b/test/e2e_node/BUILD @@ -156,7 +156,6 @@ go_test( "//pkg/kubelet:go_default_library", "//pkg/kubelet/apis/config:go_default_library", "//pkg/kubelet/apis/podresources/v1alpha1:go_default_library", - "//pkg/kubelet/apis/resourcemetrics/v1alpha1:go_default_library", "//pkg/kubelet/apis/stats/v1alpha1:go_default_library", "//pkg/kubelet/cm:go_default_library", "//pkg/kubelet/cm/cpumanager:go_default_library", diff --git a/test/e2e_node/resource_metrics_test.go b/test/e2e_node/resource_metrics_test.go index 215ef1e400d..c57b4eb9553 100644 --- a/test/e2e_node/resource_metrics_test.go +++ b/test/e2e_node/resource_metrics_test.go @@ -21,7 +21,6 @@ import ( "time" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - kubeletresourcemetricsv1alpha1 "k8s.io/kubernetes/pkg/kubelet/apis/resourcemetrics/v1alpha1" "k8s.io/kubernetes/test/e2e/framework" e2ekubectl "k8s.io/kubernetes/test/e2e/framework/kubectl" e2emetrics "k8s.io/kubernetes/test/e2e/framework/metrics" @@ -41,16 +40,16 @@ const ( maxStatsAge = time.Minute ) -var _ = framework.KubeDescribe("ResourceMetricsAPI", func() { +var _ = framework.KubeDescribe("ResourceMetricsAPI [NodeFeature:ResourceMetrics]", func() { f := framework.NewDefaultFramework("resource-metrics") ginkgo.Context("when querying /resource/metrics", func() { ginkgo.BeforeEach(func() { - ginkgo.By("Creating test pods") + ginkgo.By("Creating test pods to measure their resource usage") numRestarts := int32(1) pods := getSummaryTestPods(f, numRestarts, pod0, pod1) f.PodClient().CreateBatch(pods) - ginkgo.By("Waiting for test pods to restart the desired number of times") + ginkgo.By("restarting the containers to ensure container metrics are still being gathered after a container is restarted") gomega.Eventually(func() error { for _, pod := range pods { err := verifyPodRestartCount(f, pod.Name, len(pod.Spec.Containers), numRestarts) @@ -64,13 +63,13 @@ var _ = framework.KubeDescribe("ResourceMetricsAPI", func() { ginkgo.By("Waiting 15 seconds for cAdvisor to collect 2 stats points") time.Sleep(15 * time.Second) }) - ginkgo.It("should report resource usage through the v1alpha1 resouce metrics api", func() { - ginkgo.By("Fetching node so we can know proper node memory bounds for unconstrained cgroups") + ginkgo.It("should report resource usage through the resouce metrics api", func() { + ginkgo.By("Fetching node so we can match against an appropriate memory limit") node := getLocalNode(f) memoryCapacity := node.Status.Capacity["memory"] memoryLimit := memoryCapacity.Value() - matchV1alpha1Expectations := gstruct.MatchAllKeys(gstruct.Keys{ + matchResourceMetrics := gstruct.MatchAllKeys(gstruct.Keys{ "scrape_error": gstruct.Ignore(), "node_cpu_usage_seconds_total": gstruct.MatchAllElements(nodeID, gstruct.Elements{ "": boundedSample(1, 1e6), @@ -90,14 +89,15 @@ var _ = framework.KubeDescribe("ResourceMetricsAPI", func() { }), }) ginkgo.By("Giving pods a minute to start up and produce metrics") - gomega.Eventually(getV1alpha1ResourceMetrics, 1*time.Minute, 15*time.Second).Should(matchV1alpha1Expectations) + gomega.Eventually(getResourceMetrics, 1*time.Minute, 15*time.Second).Should(matchResourceMetrics) ginkgo.By("Ensuring the metrics match the expectations a few more times") - gomega.Consistently(getV1alpha1ResourceMetrics, 1*time.Minute, 15*time.Second).Should(matchV1alpha1Expectations) + gomega.Consistently(getResourceMetrics, 1*time.Minute, 15*time.Second).Should(matchResourceMetrics) }) ginkgo.AfterEach(func() { ginkgo.By("Deleting test pods") - f.PodClient().DeleteSync(pod0, metav1.DeleteOptions{}, 10*time.Minute) - f.PodClient().DeleteSync(pod1, metav1.DeleteOptions{}, 10*time.Minute) + var zero int64 = 0 + f.PodClient().DeleteSync(pod0, metav1.DeleteOptions{GracePeriodSeconds: &zero}, 10*time.Minute) + f.PodClient().DeleteSync(pod1, metav1.DeleteOptions{GracePeriodSeconds: &zero}, 10*time.Minute) if !ginkgo.CurrentGinkgoTestDescription().Failed { return } @@ -110,8 +110,9 @@ var _ = framework.KubeDescribe("ResourceMetricsAPI", func() { }) }) -func getV1alpha1ResourceMetrics() (e2emetrics.KubeletMetrics, error) { - return e2emetrics.GrabKubeletMetricsWithoutProxy(framework.TestContext.NodeName+":10255", "/metrics/resource/"+kubeletresourcemetricsv1alpha1.Version) +func getResourceMetrics() (e2emetrics.KubeletMetrics, error) { + ginkgo.By("getting stable resource metrics API") + return e2emetrics.GrabKubeletMetricsWithoutProxy(framework.TestContext.NodeName+":10255", "/metrics/resource") } func nodeID(element interface{}) string {