"InodesUsed": bounded(0, 1E8), }), "Runtime": ptrMatchAllFields(gstruct.Fields{ "ImageFs": ptrMatchAllFields(gstruct.Fields{ "AvailableBytes": fsCapacityBounds, "CapacityBytes": fsCapacityBounds, "UsedBytes": bounded(kb, 10*gb), "InodesFree": bounded(1E4, 1E8), "Inodes": bounded(1E4, 1E8), "InodesUsed": bounded(0, 1E8), }), }), }), // Ignore extra pods since the tests run in parallel. "Pods": gstruct.MatchElements(summaryObjectID, gstruct.IgnoreExtras, gstruct.Elements{ fmt.Sprintf("%s::%s", f.Namespace.Name, pod0): podExpectations, fmt.Sprintf("%s::%s", f.Namespace.Name, pod1): podExpectations, }), }) By("Validating /stats/summary") // Give pods a minute to actually start up. Eventually(getNodeSummary, 1*time.Minute, 15*time.Second).Should(matchExpectations) // Then the summary should match the expectations a few more times. Consistently(getNodeSummary, 30*time.Second, 15*time.Second).Should(matchExpectations) }) }) }) func createSummaryTestPods(f *framework.Framework, names ...string) { pods := make([]*v1.Pod, 0, len(names)) for _, name := range names {
"AvailableBytes": fsCapacityBounds, "CapacityBytes": fsCapacityBounds, "UsedBytes": bounded(kb, 1*mb), // Inodes are not reported for Volumes. "InodesFree": BeNil(), "Inodes": BeNil(), }), }), }), }) matchExpectations := ptrMatchAllFields(gstruct.Fields{ "Node": gstruct.MatchAllFields(gstruct.Fields{ "NodeName": Equal(framework.TestContext.NodeName), "StartTime": recent(maxStartAge), "SystemContainers": gstruct.MatchElements(summaryObjectID, gstruct.IgnoreExtras, gstruct.Elements{ "kubelet": sysContExpectations, "runtime": sysContExpectations, }), "CPU": ptrMatchAllFields(gstruct.Fields{ "Time": recent(maxStatsAge), "UsageNanoCores": bounded(100E3, 2E9), "UsageCoreNanoSeconds": bounded(1E9, 1E15), }), "Memory": ptrMatchAllFields(gstruct.Fields{ "Time": recent(maxStatsAge), "AvailableBytes": bounded(100*mb, 100*gb), "UsageBytes": bounded(10*mb, 10*gb), "WorkingSetBytes": bounded(10*mb, 10*gb), "RSSBytes": bounded(1*kb, 1*gb), "PageFaults": bounded(1000, 1E9), "MajorPageFaults": bounded(0, 100000), }),