From 3ee66f358f5cd06e72b5e41e9e0f18fda8d907be Mon Sep 17 00:00:00 2001 From: derekwaynecarr Date: Mon, 24 Aug 2015 15:19:29 -0400 Subject: [PATCH] Update kubectl describer for LimitRange --- pkg/kubectl/describe.go | 80 ++++++++++++++++++++++++++++++----------- 1 file changed, 60 insertions(+), 20 deletions(-) diff --git a/pkg/kubectl/describe.go b/pkg/kubectl/describe.go index 37f520d28b3..23abfa1cb7d 100644 --- a/pkg/kubectl/describe.go +++ b/pkg/kubectl/describe.go @@ -175,14 +175,16 @@ func DescribeLimitRanges(limitRanges *api.LimitRangeList, w io.Writer) { fmt.Fprint(w, "No resource limits.\n") return } - fmt.Fprintf(w, "Resource Limits\n Type\tResource\tMin\tMax\tDefault\n") - fmt.Fprintf(w, " ----\t--------\t---\t---\t---\n") + fmt.Fprintf(w, "Resource Limits\n Type\tResource\tMin\tMax\tRequest\tLimit\tLimit/Request\n") + fmt.Fprintf(w, " ----\t--------\t---\t---\t-------\t-----\t-------------\n") for _, limitRange := range limitRanges.Items { for i := range limitRange.Spec.Limits { item := limitRange.Spec.Limits[i] maxResources := item.Max minResources := item.Min - defaultResources := item.Default + defaultLimitResources := item.Default + defaultRequestResources := item.DefaultRequest + ratio := item.MaxLimitRequestRatio set := map[api.ResourceName]bool{} for k := range maxResources { @@ -191,7 +193,13 @@ func DescribeLimitRanges(limitRanges *api.LimitRangeList, w io.Writer) { for k := range minResources { set[k] = true } - for k := range defaultResources { + for k := range defaultLimitResources { + set[k] = true + } + for k := range defaultRequestResources { + set[k] = true + } + for k := range ratio { set[k] = true } @@ -199,7 +207,9 @@ func DescribeLimitRanges(limitRanges *api.LimitRangeList, w io.Writer) { // if no value is set, we output - maxValue := "-" minValue := "-" - defaultValue := "-" + defaultLimitValue := "-" + defaultRequestValue := "-" + ratioValue := "-" maxQuantity, maxQuantityFound := maxResources[k] if maxQuantityFound { @@ -211,13 +221,23 @@ func DescribeLimitRanges(limitRanges *api.LimitRangeList, w io.Writer) { minValue = minQuantity.String() } - defaultQuantity, defaultQuantityFound := defaultResources[k] - if defaultQuantityFound { - defaultValue = defaultQuantity.String() + defaultLimitQuantity, defaultLimitQuantityFound := defaultLimitResources[k] + if defaultLimitQuantityFound { + defaultLimitValue = defaultLimitQuantity.String() } - msg := " %v\t%v\t%v\t%v\t%v\n" - fmt.Fprintf(w, msg, item.Type, k, minValue, maxValue, defaultValue) + defaultRequestQuantity, defaultRequestQuantityFound := defaultRequestResources[k] + if defaultRequestQuantityFound { + defaultRequestValue = defaultRequestQuantity.String() + } + + ratioQuantity, ratioQuantityFound := ratio[k] + if ratioQuantityFound { + ratioValue = ratioQuantity.String() + } + + msg := " %s\t%v\t%v\t%v\t%v\t%v\t%v\n" + fmt.Fprintf(w, msg, item.Type, k, minValue, maxValue, defaultRequestValue, defaultLimitValue, ratioValue) } } } @@ -280,13 +300,15 @@ func describeLimitRange(limitRange *api.LimitRange) (string, error) { return tabbedString(func(out io.Writer) error { fmt.Fprintf(out, "Name:\t%s\n", limitRange.Name) fmt.Fprintf(out, "Namespace:\t%s\n", limitRange.Namespace) - fmt.Fprintf(out, "Type\tResource\tMin\tMax\tDefault\n") - fmt.Fprintf(out, "----\t--------\t---\t---\t---\n") + fmt.Fprintf(out, "Type\tResource\tMin\tMax\tRequest\tLimit\tLimit/Request\n") + fmt.Fprintf(out, "----\t--------\t---\t---\t-------\t-----\t-------------\n") for i := range limitRange.Spec.Limits { item := limitRange.Spec.Limits[i] maxResources := item.Max minResources := item.Min - defaultResources := item.Default + defaultLimitResources := item.Default + defaultRequestResources := item.DefaultRequest + ratio := item.MaxLimitRequestRatio set := map[api.ResourceName]bool{} for k := range maxResources { @@ -295,7 +317,13 @@ func describeLimitRange(limitRange *api.LimitRange) (string, error) { for k := range minResources { set[k] = true } - for k := range defaultResources { + for k := range defaultLimitResources { + set[k] = true + } + for k := range defaultRequestResources { + set[k] = true + } + for k := range ratio { set[k] = true } @@ -303,7 +331,9 @@ func describeLimitRange(limitRange *api.LimitRange) (string, error) { // if no value is set, we output - maxValue := "-" minValue := "-" - defaultValue := "-" + defaultLimitValue := "-" + defaultRequestValue := "-" + ratioValue := "-" maxQuantity, maxQuantityFound := maxResources[k] if maxQuantityFound { @@ -315,13 +345,23 @@ func describeLimitRange(limitRange *api.LimitRange) (string, error) { minValue = minQuantity.String() } - defaultQuantity, defaultQuantityFound := defaultResources[k] - if defaultQuantityFound { - defaultValue = defaultQuantity.String() + defaultLimitQuantity, defaultLimitQuantityFound := defaultLimitResources[k] + if defaultLimitQuantityFound { + defaultLimitValue = defaultLimitQuantity.String() } - msg := "%v\t%v\t%v\t%v\t%v\n" - fmt.Fprintf(out, msg, item.Type, k, minValue, maxValue, defaultValue) + defaultRequestQuantity, defaultRequestQuantityFound := defaultRequestResources[k] + if defaultRequestQuantityFound { + defaultRequestValue = defaultRequestQuantity.String() + } + + ratioQuantity, ratioQuantityFound := ratio[k] + if ratioQuantityFound { + ratioValue = ratioQuantity.String() + } + + msg := "%v\t%v\t%v\t%v\t%v\t%v\t%v\n" + fmt.Fprintf(out, msg, item.Type, k, minValue, maxValue, defaultRequestValue, defaultLimitValue, ratioValue) } } return nil