// Convenience functions for common matcher combinations. func ptrMatchAllFields(fields gstruct.Fields) types.GomegaMatcher { return gstruct.PointTo(gstruct.MatchAllFields(fields)) }
maxStartAge = time.Hour * 24 * 365 // 1 year maxStatsAge = time.Minute ) fsCapacityBounds := bounded(100*mb, 100*gb) // Expectations for system containers. sysContExpectations := gstruct.MatchAllFields(gstruct.Fields{ "Name": gstruct.Ignore(), "StartTime": recent(maxStartAge), "CPU": ptrMatchAllFields(gstruct.Fields{ "Time": recent(maxStatsAge), "UsageNanoCores": bounded(100000, 2E9), "UsageCoreNanoSeconds": bounded(10000000, 1E15), }), "Memory": ptrMatchAllFields(gstruct.Fields{ "Time": recent(maxStatsAge), // We don't limit system container memory. "AvailableBytes": BeNil(), "UsageBytes": bounded(1*mb, 10*gb), "WorkingSetBytes": bounded(1*mb, 10*gb), "RSSBytes": bounded(1*mb, 1*gb), "PageFaults": bounded(1000, 1E9), "MajorPageFaults": bounded(0, 100000), }), "Rootfs": BeNil(), "Logs": BeNil(), "UserDefinedMetrics": BeEmpty(), }) systemContainers := gstruct.Elements{ "kubelet": sysContExpectations, "runtime": sysContExpectations, } // The Kubelet only manages the 'misc' system container if the host is not running systemd.