@@ -22,10 +22,12 @@ import (
22
22
"time"
23
23
24
24
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
25
+ "k8s.io/kubernetes/pkg/features"
25
26
"k8s.io/kubernetes/test/e2e/framework"
26
27
e2ekubectl "k8s.io/kubernetes/test/e2e/framework/kubectl"
27
28
e2emetrics "k8s.io/kubernetes/test/e2e/framework/metrics"
28
29
e2epod "k8s.io/kubernetes/test/e2e/framework/pod"
30
+ e2eskipper "k8s.io/kubernetes/test/e2e/framework/skipper"
29
31
e2evolume "k8s.io/kubernetes/test/e2e/framework/volume"
30
32
"k8s.io/kubernetes/test/e2e/nodefeature"
31
33
admissionapi "k8s.io/pod-security-admission/api"
@@ -74,6 +76,17 @@ var _ = SIGDescribe("ResourceMetricsAPI", nodefeature.ResourceMetrics, func() {
74
76
memoryCapacity := node .Status .Capacity ["memory" ]
75
77
memoryLimit := memoryCapacity .Value ()
76
78
79
+ keys := []string {
80
+ "resource_scrape_error" , "node_cpu_usage_seconds_total" , "node_memory_working_set_bytes" ,
81
+ "pod_cpu_usage_seconds_total" , "pod_memory_working_set_bytes" ,
82
+ }
83
+
84
+ // NOTE: This check should be removed when ListMetricDescriptors is implemented
85
+ // by CRI-O and Containerd
86
+ if ! e2eskipper .IsFeatureGateEnabled (features .PodAndContainerStatsFromCRI ) {
87
+ keys = append (keys , "container_cpu_usage_seconds_total" , "container_memory_working_set_bytes" , "container_start_time_seconds" )
88
+ }
89
+
77
90
matchResourceMetrics := gomega .And (gstruct .MatchKeys (gstruct .IgnoreMissing , gstruct.Keys {
78
91
"resource_scrape_error" : gstruct .Ignore (),
79
92
"node_cpu_usage_seconds_total" : gstruct .MatchAllElements (nodeID , gstruct.Elements {
@@ -113,8 +126,7 @@ var _ = SIGDescribe("ResourceMetricsAPI", nodefeature.ResourceMetrics, func() {
113
126
fmt .Sprintf ("%s::%s" , f .Namespace .Name , pod1 ): boundedSample (0 * e2evolume .Kb , 80 * e2evolume .Mb ),
114
127
}),
115
128
}),
116
- haveKeys ("resource_scrape_error" , "node_cpu_usage_seconds_total" , "node_memory_working_set_bytes" , "container_cpu_usage_seconds_total" ,
117
- "container_memory_working_set_bytes" , "container_start_time_seconds" , "pod_cpu_usage_seconds_total" , "pod_memory_working_set_bytes" ),
129
+ haveKeys (keys ... ),
118
130
)
119
131
ginkgo .By ("Giving pods a minute to start up and produce metrics" )
120
132
gomega .Eventually (ctx , getResourceMetrics , 1 * time .Minute , 15 * time .Second ).Should (matchResourceMetrics )
0 commit comments