func bumpLimit(t *testing.T, lrClient kclient.LimitRangeInterface, limitRangeName string, resourceName kapi.ResourceName, limit string) kapi.ResourceList { t.Logf("bump a limit on resource %q to %s", resourceName, limit) lr, err := lrClient.Get(limitRangeName) if err != nil { t.Fatal(err) } res := kapi.ResourceList{} change := false for i := range lr.Spec.Limits { item := &lr.Spec.Limits[i] if old, exists := item.Max[resourceName]; exists { for k, v := range item.Max { res[k] = v } parsed := resource.MustParse(limit) if old.Cmp(parsed) != 0 { item.Max[resourceName] = parsed change = true } } } if !change { return res } _, err = lrClient.Update(lr) if err != nil { t.Fatal(err) } return res }
// createLimitRangeOfType creates a new limit range object with given max limits set for given limit type. The // object will be created in current namespace. func createLimitRangeOfType(t *testing.T, lrClient kclient.LimitRangeInterface, limitRangeName string, limitType kapi.LimitType, maxLimits kapi.ResourceList) *kapi.LimitRange { lr := &kapi.LimitRange{ ObjectMeta: kapi.ObjectMeta{ Name: limitRangeName, }, Spec: kapi.LimitRangeSpec{ Limits: []kapi.LimitRangeItem{ { Type: limitType, Max: maxLimits, }, }, }, } t.Logf("creating limit range object %q with %s limited to: %v", limitRangeName, limitType, maxLimits) lr, err := lrClient.Create(lr) if err != nil { t.Fatal(err) } return lr }