From c9420cd703b9431528e91a78428bb982d3b20b67 Mon Sep 17 00:00:00 2001 From: Eddie Zaneski Date: Wed, 24 Jun 2020 16:20:13 -0600 Subject: [PATCH] Warn when creating roles with custom verbs kubectl Remove errors when using custom verbs Signed-off-by: Eddie Zaneski --- .../src/k8s.io/kubectl/pkg/cmd/create/create_clusterrole.go | 2 +- .../kubectl/pkg/cmd/create/create_clusterrole_test.go | 5 +++-- staging/src/k8s.io/kubectl/pkg/cmd/create/create_role.go | 2 +- .../src/k8s.io/kubectl/pkg/cmd/create/create_role_test.go | 6 ++++-- 4 files changed, 9 insertions(+), 6 deletions(-) diff --git a/staging/src/k8s.io/kubectl/pkg/cmd/create/create_clusterrole.go b/staging/src/k8s.io/kubectl/pkg/cmd/create/create_clusterrole.go index 933ea2587ce..7da49190ae3 100644 --- a/staging/src/k8s.io/kubectl/pkg/cmd/create/create_clusterrole.go +++ b/staging/src/k8s.io/kubectl/pkg/cmd/create/create_clusterrole.go @@ -143,7 +143,7 @@ func (c *CreateClusterRoleOptions) Validate() error { if len(c.Resources) > 0 { for _, v := range c.Verbs { if !arrayContains(validResourceVerbs, v) { - return fmt.Errorf("invalid verb: '%s'", v) + fmt.Fprintf(c.ErrOut, "Warning: '%s' is not a standard resource verb\n", v) } } if err := c.validateResource(); err != nil { diff --git a/staging/src/k8s.io/kubectl/pkg/cmd/create/create_clusterrole_test.go b/staging/src/k8s.io/kubectl/pkg/cmd/create/create_clusterrole_test.go index 937763ecbeb..0bc316b0f73 100644 --- a/staging/src/k8s.io/kubectl/pkg/cmd/create/create_clusterrole_test.go +++ b/staging/src/k8s.io/kubectl/pkg/cmd/create/create_clusterrole_test.go @@ -243,7 +243,7 @@ func TestClusterRoleValidate(t *testing.T) { }, }, }, - expectErr: true, + expectErr: false, }, "test-nonresource-verb": { clusterRoleOptions: &CreateClusterRoleOptions{ @@ -257,7 +257,7 @@ func TestClusterRoleValidate(t *testing.T) { }, }, }, - expectErr: true, + expectErr: false, }, "test-special-verb": { clusterRoleOptions: &CreateClusterRoleOptions{ @@ -496,6 +496,7 @@ func TestClusterRoleValidate(t *testing.T) { for name, test := range tests { t.Run(name, func(t *testing.T) { + test.clusterRoleOptions.IOStreams = genericclioptions.NewTestIOStreamsDiscard() var err error test.clusterRoleOptions.Mapper, err = tf.ToRESTMapper() if err != nil { 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 62e624476ed..9e379ae7216 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 @@ -294,7 +294,7 @@ func (o *CreateRoleOptions) Validate() error { for _, v := range o.Verbs { if !arrayContains(validResourceVerbs, v) { - return fmt.Errorf("invalid verb: '%s'", v) + fmt.Fprintf(o.ErrOut, "Warning: '%s' is not a standard resource verb\n", v) } } 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 330bb170f0f..0ccf461d835 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 @@ -213,7 +213,7 @@ func TestValidate(t *testing.T) { }, }, }, - expectErr: true, + expectErr: false, }, "test-nonresource-verb": { roleOptions: &CreateRoleOptions{ @@ -225,7 +225,7 @@ func TestValidate(t *testing.T) { }, }, }, - expectErr: true, + expectErr: false, }, "test-special-verb": { roleOptions: &CreateRoleOptions{ @@ -340,6 +340,8 @@ func TestValidate(t *testing.T) { } for name, test := range tests { + test.roleOptions.IOStreams = genericclioptions.NewTestIOStreamsDiscard() + var err error test.roleOptions.Mapper, err = tf.ToRESTMapper() if err != nil {