diff --git a/staging/src/k8s.io/kubectl/pkg/cmd/create/create_role.go b/staging/src/k8s.io/kubectl/pkg/cmd/create/create_role.go index 822ed11e704..dd78549df43 100644 --- a/staging/src/k8s.io/kubectl/pkg/cmd/create/create_role.go +++ b/staging/src/k8s.io/kubectl/pkg/cmd/create/create_role.go @@ -116,7 +116,7 @@ var ( func AddSpecialVerb(verb string, gr schema.GroupResource) { resources, ok := specialVerbs[verb] if !ok { - resources = make([]schema.GroupResource, 1) + resources = make([]schema.GroupResource, 0, 1) } resources = append(resources, gr) specialVerbs[verb] = resources diff --git a/staging/src/k8s.io/kubectl/pkg/cmd/create/create_role_test.go b/staging/src/k8s.io/kubectl/pkg/cmd/create/create_role_test.go index a9e1d65f59d..111b0d6a05a 100644 --- a/staging/src/k8s.io/kubectl/pkg/cmd/create/create_role_test.go +++ b/staging/src/k8s.io/kubectl/pkg/cmd/create/create_role_test.go @@ -684,14 +684,17 @@ func TestAddSpecialVerb(t *testing.T) { testCases := map[string]struct { verb string resource schema.GroupResource + isNew bool }{ "existing verb": { verb: "use", resource: schema.GroupResource{Group: "my.custom.io", Resource: "one"}, + isNew: false, }, "new verb": { verb: "new", resource: schema.GroupResource{Group: "my.custom.io", Resource: "two"}, + isNew: true, }, } @@ -703,6 +706,16 @@ func TestAddSpecialVerb(t *testing.T) { t.Errorf("missing expected verb: %s", tc.verb) } + if tc.isNew { + if len(resources) != 1 { + t.Errorf("new verb should only contain one resource resources:%#v", resources) + } + if !reflect.DeepEqual(tc.resource, resources[0]) { + t.Errorf("miss expected resource:%#v", tc.resource) + } + return + } + for _, res := range resources { if reflect.DeepEqual(tc.resource, res) { return