func ExtractPodBandwidthResources(podAnnotations map[string]string) (ingress, egress *resource.Quantity, err error) { str, found := podAnnotations["kubernetes.io/ingress-bandwidth"] if found { ingressValue, err := resource.ParseQuantity(str) if err != nil { return nil, nil, err } ingress = &ingressValue if err := validateBandwidthIsReasonable(ingress); err != nil { return nil, nil, err } } str, found = podAnnotations["kubernetes.io/egress-bandwidth"] if found { egressValue, err := resource.ParseQuantity(str) if err != nil { return nil, nil, err } egress = &egressValue if err := validateBandwidthIsReasonable(egress); err != nil { return nil, nil, err } } return ingress, egress, nil }
// FindEmptyDirectoryUsageOnTmpfs finds the expected usage of an empty directory existing on // a tmpfs filesystem on this system. func FindEmptyDirectoryUsageOnTmpfs() (*resource.Quantity, error) { tmpDir, err := utiltesting.MkTmpdir("metrics_du_test") if err != nil { return nil, err } out, err := exec.Command("nice", "-n", "19", "du", "-s", "-B", "1", tmpDir).CombinedOutput() if err != nil { return nil, fmt.Errorf("failed command 'du' on %s with error %v", tmpDir, err) } used, err := resource.ParseQuantity(strings.Fields(string(out))[0]) if err != nil { return nil, fmt.Errorf("failed to parse 'du' output %s due to error %v", out, err) } used.Format = resource.BinarySI return &used, nil }