From ba0f9d44a1026afc8e602ca717e6f7c62fde156a Mon Sep 17 00:00:00 2001 From: juanvallejo Date: Thu, 7 Sep 2017 15:37:42 -0400 Subject: [PATCH 1/5] add --output & --dry-run options oc-adm-policy... --- pkg/oc/admin/policy/remove_from_project.go | 83 ++++++++++++++++++---- pkg/oc/admin/policy/review.go | 6 +- pkg/oc/admin/policy/subject_review.go | 7 +- pkg/oc/admin/policy/who_can.go | 27 +++++-- 4 files changed, 104 insertions(+), 19 deletions(-) diff --git a/pkg/oc/admin/policy/remove_from_project.go b/pkg/oc/admin/policy/remove_from_project.go index 25d67f1a0666..be47211daaaa 100644 --- a/pkg/oc/admin/policy/remove_from_project.go +++ b/pkg/oc/admin/policy/remove_from_project.go @@ -8,6 +8,7 @@ import ( "github.com/spf13/cobra" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/util/sets" kapi "k8s.io/kubernetes/pkg/api" kcmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" @@ -29,7 +30,11 @@ type RemoveFromProjectOptions struct { Groups []string Users []string - Out io.Writer + DryRun bool + + PrintObject func(runtime.Object) error + Output string + Out io.Writer } // NewCmdRemoveGroupFromProject implements the OpenShift cli remove-group command @@ -41,7 +46,11 @@ func NewCmdRemoveGroupFromProject(name, fullName string, f *clientcmd.Factory, o Short: "Remove group from the current project", Long: `Remove group from the current project`, Run: func(cmd *cobra.Command, args []string) { - if err := options.Complete(f, args, &options.Groups, "group"); err != nil { + if err := options.Complete(f, cmd, args, &options.Groups, "group"); err != nil { + kcmdutil.CheckErr(kcmdutil.UsageError(cmd, err.Error())) + } + + if err := options.Validate(f, cmd, args); err != nil { kcmdutil.CheckErr(kcmdutil.UsageError(cmd, err.Error())) } @@ -51,6 +60,8 @@ func NewCmdRemoveGroupFromProject(name, fullName string, f *clientcmd.Factory, o }, } + kcmdutil.AddOutputFlags(cmd) + kcmdutil.AddDryRunFlag(cmd) return cmd } @@ -63,7 +74,11 @@ func NewCmdRemoveUserFromProject(name, fullName string, f *clientcmd.Factory, ou Short: "Remove user from the current project", Long: `Remove user from the current project`, Run: func(cmd *cobra.Command, args []string) { - if err := options.Complete(f, args, &options.Users, "user"); err != nil { + if err := options.Complete(f, cmd, args, &options.Users, "user"); err != nil { + kcmdutil.CheckErr(kcmdutil.UsageError(cmd, err.Error())) + } + + if err := options.Validate(f, cmd, args); err != nil { kcmdutil.CheckErr(kcmdutil.UsageError(cmd, err.Error())) } @@ -73,14 +88,19 @@ func NewCmdRemoveUserFromProject(name, fullName string, f *clientcmd.Factory, ou }, } + kcmdutil.AddPrinterFlags(cmd) + kcmdutil.AddDryRunFlag(cmd) return cmd } -func (o *RemoveFromProjectOptions) Complete(f *clientcmd.Factory, args []string, target *[]string, targetName string) error { +func (o *RemoveFromProjectOptions) Complete(f *clientcmd.Factory, cmd *cobra.Command, args []string, target *[]string, targetName string) error { if len(args) < 1 { return fmt.Errorf("you must specify at least one argument: <%s> [%s]...", targetName, targetName) } + o.Output = kcmdutil.GetFlagString(cmd, "output") + o.DryRun = kcmdutil.GetFlagBool(cmd, "dry-run") + *target = append(*target, args...) var err error @@ -91,6 +111,20 @@ func (o *RemoveFromProjectOptions) Complete(f *clientcmd.Factory, args []string, return err } + mapper, _ := f.Object() + + o.PrintObject = func(obj runtime.Object) error { + return f.PrintObject(cmd, false, mapper, obj, o.Out) + } + + return nil +} + +func (o *RemoveFromProjectOptions) Validate(f *clientcmd.Factory, cmd *cobra.Command, args []string) error { + if len(o.Output) > 0 && o.Output != "yaml" && o.Output != "json" { + return fmt.Errorf("invalid output format %q, only yaml|json supported", o.Output) + } + return nil } @@ -106,6 +140,18 @@ func (o *RemoveFromProjectOptions) Run() error { groupsRemoved := sets.String{} sasRemoved := sets.String{} othersRemoved := sets.String{} + dryRunText := "" + if o.DryRun { + dryRunText = " (dry run)" + } + + updatedBindings := &authorizationapi.RoleBindingList{ + TypeMeta: metav1.TypeMeta{ + Kind: "List", + APIVersion: "v1", + }, + ListMeta: metav1.ListMeta{}, + } subjectsToRemove := authorizationapi.BuildSubjects(o.Users, o.Groups) @@ -123,9 +169,16 @@ func (o *RemoveFromProjectOptions) Run() error { continue } - _, err = o.Client.RoleBindings(o.BindingNamespace).Update(&currBinding) - if err != nil { - return err + if len(o.Output) > 0 { + updatedBindings.Items = append(updatedBindings.Items, currBinding) + continue + } + + if !o.DryRun { + _, err = o.Client.RoleBindings(o.BindingNamespace).Update(&currBinding) + if err != nil { + return err + } } roleDisplayName := fmt.Sprintf("%s/%s", currBinding.RoleRef.Namespace, currBinding.RoleRef.Name) @@ -134,28 +187,32 @@ func (o *RemoveFromProjectOptions) Run() error { } if diff := oldUsersSet.Difference(newUsersSet); len(diff) != 0 { - fmt.Fprintf(o.Out, "Removing %s from users %v in project %s.\n", roleDisplayName, diff.List(), o.BindingNamespace) + fmt.Fprintf(o.Out, "Removing %s from users %v in project %s%s.\n", roleDisplayName, diff.List(), o.BindingNamespace, dryRunText) usersRemoved.Insert(diff.List()...) } if diff := oldGroupsSet.Difference(newGroupsSet); len(diff) != 0 { - fmt.Fprintf(o.Out, "Removing %s from groups %v in project %s.\n", roleDisplayName, diff.List(), o.BindingNamespace) + fmt.Fprintf(o.Out, "Removing %s from groups %v in project %s%s.\n", roleDisplayName, diff.List(), o.BindingNamespace, dryRunText) groupsRemoved.Insert(diff.List()...) } if diff := oldSAsSet.Difference(newSAsSet); len(diff) != 0 { - fmt.Fprintf(o.Out, "Removing %s from serviceaccounts %v in project %s.\n", roleDisplayName, diff.List(), o.BindingNamespace) + fmt.Fprintf(o.Out, "Removing %s from serviceaccounts %v in project %s%s.\n", roleDisplayName, diff.List(), o.BindingNamespace, dryRunText) sasRemoved.Insert(diff.List()...) } if diff := oldOtherSet.Difference(newOtherSet); len(diff) != 0 { - fmt.Fprintf(o.Out, "Removing %s from subjects %v in project %s.\n", roleDisplayName, diff.List(), o.BindingNamespace) + fmt.Fprintf(o.Out, "Removing %s from subjects %v in project %s%s.\n", roleDisplayName, diff.List(), o.BindingNamespace, dryRunText) othersRemoved.Insert(diff.List()...) } } + if len(o.Output) > 0 { + return o.PrintObject(updatedBindings) + } + if diff := sets.NewString(o.Users...).Difference(usersRemoved); len(diff) != 0 { - fmt.Fprintf(o.Out, "Users %v were not bound to roles in project %s.\n", diff.List(), o.BindingNamespace) + fmt.Fprintf(o.Out, "Users %v were not bound to roles in project %s%s.\n", diff.List(), o.BindingNamespace, dryRunText) } if diff := sets.NewString(o.Groups...).Difference(groupsRemoved); len(diff) != 0 { - fmt.Fprintf(o.Out, "Groups %v were not bound to roles in project %s.\n", diff.List(), o.BindingNamespace) + fmt.Fprintf(o.Out, "Groups %v were not bound to roles in project %s%s.\n", diff.List(), o.BindingNamespace, dryRunText) } return nil diff --git a/pkg/oc/admin/policy/review.go b/pkg/oc/admin/policy/review.go index bf1d26b49001..6746ffbdd0d6 100644 --- a/pkg/oc/admin/policy/review.go +++ b/pkg/oc/admin/policy/review.go @@ -109,7 +109,11 @@ func (o *sccReviewOptions) Complete(f *clientcmd.Factory, args []string, cmd *co o.builder = f.NewBuilder(true) o.RESTClientFactory = f.ClientForMapping - if len(kcmdutil.GetFlagString(cmd, "output")) != 0 { + output := kcmdutil.GetFlagString(cmd, "output") + if len(output) != 0 { + if output != "json" && output != "yaml" { + return fmt.Errorf("invalid output format %q, only yaml|json supported", output) + } printer, err := f.PrinterForCommand(cmd, false, nil, kprinters.PrintOptions{}) if err != nil { return err diff --git a/pkg/oc/admin/policy/subject_review.go b/pkg/oc/admin/policy/subject_review.go index cb88e25a9032..3c4be61dacac 100644 --- a/pkg/oc/admin/policy/subject_review.go +++ b/pkg/oc/admin/policy/subject_review.go @@ -111,7 +111,12 @@ func (o *sccSubjectReviewOptions) Complete(f *clientcmd.Factory, args []string, o.builder = f.NewBuilder(true) o.RESTClientFactory = f.ClientForMapping - if len(kcmdutil.GetFlagString(cmd, "output")) != 0 { + output := kcmdutil.GetFlagString(cmd, "output") + if len(output) > 0 { + if output != "json" && output != "yaml" { + return fmt.Errorf("invalid output format %q, only yaml|json supported", output) + } + printer, err := f.PrinterForCommand(cmd, false, nil, kprinters.PrintOptions{}) if err != nil { return err diff --git a/pkg/oc/admin/policy/who_can.go b/pkg/oc/admin/policy/who_can.go index 08ac300410e9..a31543db3d15 100644 --- a/pkg/oc/admin/policy/who_can.go +++ b/pkg/oc/admin/policy/who_can.go @@ -10,6 +10,7 @@ import ( "k8s.io/apimachinery/pkg/api/meta" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime/schema" kcmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" @@ -28,6 +29,9 @@ type whoCanOptions struct { verb string resource schema.GroupVersionResource resourceName string + + output string + printObj func(runtime.Object) error } // NewCmdWhoCan implements the OpenShift cli who-can command @@ -39,7 +43,7 @@ func NewCmdWhoCan(name, fullName string, f *clientcmd.Factory, out io.Writer) *c Short: "List who can perform the specified action on a resource", Long: "List who can perform the specified action on a resource", Run: func(cmd *cobra.Command, args []string) { - if err := options.complete(f, args); err != nil { + if err := options.complete(f, cmd, args, out); err != nil { kcmdutil.CheckErr(kcmdutil.UsageError(cmd, err.Error())) } @@ -55,19 +59,26 @@ func NewCmdWhoCan(name, fullName string, f *clientcmd.Factory, out io.Writer) *c } cmd.Flags().BoolVar(&options.allNamespaces, "all-namespaces", options.allNamespaces, "If true, list who can perform the specified action in all namespaces.") + kcmdutil.AddPrinterFlags(cmd) return cmd } -func (o *whoCanOptions) complete(f *clientcmd.Factory, args []string) error { +func (o *whoCanOptions) complete(f *clientcmd.Factory, cmd *cobra.Command, args []string, out io.Writer) error { + mapper, _ := f.Object() + + o.output = kcmdutil.GetFlagString(cmd, "output") + o.printObj = func(obj runtime.Object) error { + return f.PrintObject(cmd, false, mapper, obj, out) + } + switch len(args) { case 3: o.resourceName = args[2] fallthrough case 2: - restMapper, _ := f.Object() o.verb = args[0] - o.resource = resourceFor(restMapper, args[1]) + o.resource = resourceFor(mapper, args[1]) default: return errors.New("you must specify two or three arguments: verb, resource, and optional resourceName") } @@ -112,6 +123,14 @@ func (o *whoCanOptions) run() error { return err } + if len(o.output) > 0 { + if o.output != "json" && o.output != "yaml" { + return fmt.Errorf("invalid output format %q, only yaml|json supported", o.output) + } + + return o.printObj(resourceAccessReviewResponse) + } + if resourceAccessReviewResponse.Namespace == metav1.NamespaceAll { fmt.Printf("Namespace: \n") } else { From 9a2dd8286cfaec1b06f49839993a9207bdcceafe Mon Sep 17 00:00:00 2001 From: juanvallejo Date: Mon, 11 Sep 2017 17:41:15 -0400 Subject: [PATCH 2/5] add --dry-run --output support to modify_roles --- pkg/oc/admin/policy/modify_roles.go | 128 +++++++++++++++++++++++----- 1 file changed, 108 insertions(+), 20 deletions(-) diff --git a/pkg/oc/admin/policy/modify_roles.go b/pkg/oc/admin/policy/modify_roles.go index 2a16e04550b4..45f372ec708c 100644 --- a/pkg/oc/admin/policy/modify_roles.go +++ b/pkg/oc/admin/policy/modify_roles.go @@ -8,6 +8,8 @@ import ( "github.com/spf13/cobra" kapierrors "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" kapi "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/kubectl/cmd/templates" kcmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" @@ -47,6 +49,11 @@ type RoleModificationOptions struct { Users []string Groups []string Subjects []kapi.ObjectReference + + DryRun bool + Output string + + PrintObj func(obj runtime.Object) error } // NewCmdAddRoleToGroup implements the OpenShift cli add-role-to-group command @@ -58,7 +65,7 @@ func NewCmdAddRoleToGroup(name, fullName string, f *clientcmd.Factory, out io.Wr Short: "Add a role to groups for the current project", Long: `Add a role to groups for the current project`, Run: func(cmd *cobra.Command, args []string) { - if err := options.Complete(f, args, &options.Groups, "group", true); err != nil { + if err := options.Complete(f, cmd, args, &options.Groups, "group", true, out); err != nil { kcmdutil.CheckErr(kcmdutil.UsageError(cmd, err.Error())) } @@ -66,14 +73,18 @@ func NewCmdAddRoleToGroup(name, fullName string, f *clientcmd.Factory, out io.Wr kcmdutil.CheckErr(err) return } - printSuccessForCommand(options.RoleName, true, "group", options.Targets, true, out) + if len(options.Output) == 0 { + printSuccessForCommand(options.RoleName, true, "group", options.Targets, true, options.DryRun, out) + } }, } cmd.Flags().StringVar(&options.RoleBindingName, "rolebinding-name", "", "Name of the rolebinding to modify or create. If left empty, appends to the first rolebinding found for the given role") cmd.Flags().StringVar(&options.RoleNamespace, "role-namespace", "", "namespace where the role is located: empty means a role defined in cluster policy") + kcmdutil.AddDryRunFlag(cmd) + kcmdutil.AddPrinterFlags(cmd) return cmd } @@ -88,7 +99,7 @@ func NewCmdAddRoleToUser(name, fullName string, f *clientcmd.Factory, out io.Wri Long: `Add a role to users or serviceaccounts for the current project`, Example: fmt.Sprintf(addRoleToUserExample, fullName), Run: func(cmd *cobra.Command, args []string) { - if err := options.CompleteUserWithSA(f, args, saNames, true); err != nil { + if err := options.CompleteUserWithSA(f, cmd, args, saNames, true, out); err != nil { kcmdutil.CheckErr(kcmdutil.UsageError(cmd, err.Error())) } @@ -96,7 +107,9 @@ func NewCmdAddRoleToUser(name, fullName string, f *clientcmd.Factory, out io.Wri kcmdutil.CheckErr(err) return } - printSuccessForCommand(options.RoleName, true, "user", options.Targets, true, out) + if len(options.Output) == 0 { + printSuccessForCommand(options.RoleName, true, "user", options.Targets, true, options.DryRun, out) + } }, } @@ -104,6 +117,8 @@ func NewCmdAddRoleToUser(name, fullName string, f *clientcmd.Factory, out io.Wri cmd.Flags().StringVar(&options.RoleNamespace, "role-namespace", "", "namespace where the role is located: empty means a role defined in cluster policy") cmd.Flags().StringSliceVarP(&saNames, "serviceaccount", "z", saNames, "service account in the current namespace to use as a user") + kcmdutil.AddDryRunFlag(cmd) + kcmdutil.AddPrinterFlags(cmd) return cmd } @@ -116,7 +131,7 @@ func NewCmdRemoveRoleFromGroup(name, fullName string, f *clientcmd.Factory, out Short: "Remove a role from groups for the current project", Long: `Remove a role from groups for the current project`, Run: func(cmd *cobra.Command, args []string) { - if err := options.Complete(f, args, &options.Groups, "group", true); err != nil { + if err := options.Complete(f, cmd, args, &options.Groups, "group", true, out); err != nil { kcmdutil.CheckErr(kcmdutil.UsageError(cmd, err.Error())) } @@ -124,12 +139,16 @@ func NewCmdRemoveRoleFromGroup(name, fullName string, f *clientcmd.Factory, out kcmdutil.CheckErr(err) return } - printSuccessForCommand(options.RoleName, false, "group", options.Targets, true, out) + if len(options.Output) == 0 { + printSuccessForCommand(options.RoleName, false, "group", options.Targets, true, options.DryRun, out) + } }, } cmd.Flags().StringVar(&options.RoleNamespace, "role-namespace", "", "namespace where the role is located: empty means a role defined in cluster policy") + kcmdutil.AddDryRunFlag(cmd) + kcmdutil.AddPrinterFlags(cmd) return cmd } @@ -143,7 +162,7 @@ func NewCmdRemoveRoleFromUser(name, fullName string, f *clientcmd.Factory, out i Short: "Remove a role from users for the current project", Long: `Remove a role from users for the current project`, Run: func(cmd *cobra.Command, args []string) { - if err := options.CompleteUserWithSA(f, args, saNames, true); err != nil { + if err := options.CompleteUserWithSA(f, cmd, args, saNames, true, out); err != nil { kcmdutil.CheckErr(kcmdutil.UsageError(cmd, err.Error())) } @@ -151,13 +170,17 @@ func NewCmdRemoveRoleFromUser(name, fullName string, f *clientcmd.Factory, out i kcmdutil.CheckErr(err) return } - printSuccessForCommand(options.RoleName, false, "user", options.Targets, true, out) + if len(options.Output) == 0 { + printSuccessForCommand(options.RoleName, false, "user", options.Targets, true, options.DryRun, out) + } }, } cmd.Flags().StringVar(&options.RoleNamespace, "role-namespace", "", "namespace where the role is located: empty means a role defined in cluster policy") cmd.Flags().StringSliceVarP(&saNames, "serviceaccount", "z", saNames, "service account in the current namespace to use as a user") + kcmdutil.AddDryRunFlag(cmd) + kcmdutil.AddPrinterFlags(cmd) return cmd } @@ -170,7 +193,7 @@ func NewCmdAddClusterRoleToGroup(name, fullName string, f *clientcmd.Factory, ou Short: "Add a role to groups for all projects in the cluster", Long: `Add a role to groups for all projects in the cluster`, Run: func(cmd *cobra.Command, args []string) { - if err := options.Complete(f, args, &options.Groups, "group", false); err != nil { + if err := options.Complete(f, cmd, args, &options.Groups, "group", false, out); err != nil { kcmdutil.CheckErr(kcmdutil.UsageError(cmd, err.Error())) } @@ -178,11 +201,15 @@ func NewCmdAddClusterRoleToGroup(name, fullName string, f *clientcmd.Factory, ou kcmdutil.CheckErr(err) return } - printSuccessForCommand(options.RoleName, true, "group", options.Targets, false, out) + if len(options.Output) == 0 { + printSuccessForCommand(options.RoleName, true, "group", options.Targets, false, options.DryRun, out) + } }, } cmd.Flags().StringVar(&options.RoleBindingName, "rolebinding-name", "", "Name of the rolebinding to modify or create. If left empty, appends to the first rolebinding found for the given role") + kcmdutil.AddDryRunFlag(cmd) + kcmdutil.AddPrinterFlags(cmd) return cmd } @@ -196,7 +223,7 @@ func NewCmdAddClusterRoleToUser(name, fullName string, f *clientcmd.Factory, out Short: "Add a role to users for all projects in the cluster", Long: `Add a role to users for all projects in the cluster`, Run: func(cmd *cobra.Command, args []string) { - if err := options.CompleteUserWithSA(f, args, saNames, false); err != nil { + if err := options.CompleteUserWithSA(f, cmd, args, saNames, false, out); err != nil { kcmdutil.CheckErr(kcmdutil.UsageError(cmd, err.Error())) } @@ -204,13 +231,17 @@ func NewCmdAddClusterRoleToUser(name, fullName string, f *clientcmd.Factory, out kcmdutil.CheckErr(err) return } - printSuccessForCommand(options.RoleName, true, "user", options.Targets, false, out) + if len(options.Output) == 0 { + printSuccessForCommand(options.RoleName, true, "user", options.Targets, false, options.DryRun, out) + } }, } cmd.Flags().StringVar(&options.RoleBindingName, "rolebinding-name", "", "Name of the rolebinding to modify or create. If left empty, appends to the first rolebinding found for the given role") cmd.Flags().StringSliceVarP(&saNames, "serviceaccount", "z", saNames, "service account in the current namespace to use as a user") + kcmdutil.AddDryRunFlag(cmd) + kcmdutil.AddPrinterFlags(cmd) return cmd } @@ -223,7 +254,7 @@ func NewCmdRemoveClusterRoleFromGroup(name, fullName string, f *clientcmd.Factor Short: "Remove a role from groups for all projects in the cluster", Long: `Remove a role from groups for all projects in the cluster`, Run: func(cmd *cobra.Command, args []string) { - if err := options.Complete(f, args, &options.Groups, "group", false); err != nil { + if err := options.Complete(f, cmd, args, &options.Groups, "group", false, out); err != nil { kcmdutil.CheckErr(kcmdutil.UsageError(cmd, err.Error())) } @@ -231,10 +262,14 @@ func NewCmdRemoveClusterRoleFromGroup(name, fullName string, f *clientcmd.Factor kcmdutil.CheckErr(err) return } - printSuccessForCommand(options.RoleName, false, "group", options.Targets, false, out) + if len(options.Output) == 0 { + printSuccessForCommand(options.RoleName, false, "group", options.Targets, false, options.DryRun, out) + } }, } + kcmdutil.AddDryRunFlag(cmd) + kcmdutil.AddPrinterFlags(cmd) return cmd } @@ -248,7 +283,7 @@ func NewCmdRemoveClusterRoleFromUser(name, fullName string, f *clientcmd.Factory Short: "Remove a role from users for all projects in the cluster", Long: `Remove a role from users for all projects in the cluster`, Run: func(cmd *cobra.Command, args []string) { - if err := options.CompleteUserWithSA(f, args, saNames, false); err != nil { + if err := options.CompleteUserWithSA(f, cmd, args, saNames, false, out); err != nil { kcmdutil.CheckErr(kcmdutil.UsageError(cmd, err.Error())) } @@ -256,16 +291,20 @@ func NewCmdRemoveClusterRoleFromUser(name, fullName string, f *clientcmd.Factory kcmdutil.CheckErr(err) return } - printSuccessForCommand(options.RoleName, false, "user", options.Targets, false, out) + if len(options.Output) == 0 { + printSuccessForCommand(options.RoleName, false, "user", options.Targets, false, options.DryRun, out) + } }, } cmd.Flags().StringSliceVarP(&saNames, "serviceaccount", "z", saNames, "service account in the current namespace to use as a user") + kcmdutil.AddDryRunFlag(cmd) + kcmdutil.AddPrinterFlags(cmd) return cmd } -func (o *RoleModificationOptions) CompleteUserWithSA(f *clientcmd.Factory, args []string, saNames []string, isNamespaced bool) error { +func (o *RoleModificationOptions) CompleteUserWithSA(f *clientcmd.Factory, cmd *cobra.Command, args []string, saNames []string, isNamespaced bool, out io.Writer) error { if len(args) < 1 { return errors.New("you must specify a role") } @@ -286,6 +325,14 @@ func (o *RoleModificationOptions) CompleteUserWithSA(f *clientcmd.Factory, args return err } + mapper, _ := f.Object() + + o.DryRun = kcmdutil.GetFlagBool(cmd, "dry-run") + o.Output = kcmdutil.GetFlagString(cmd, "output") + o.PrintObj = func(obj runtime.Object) error { + return f.PrintObject(cmd, false, mapper, obj, out) + } + roleBindingNamespace, _, err := f.DefaultNamespace() if err != nil { return err @@ -305,7 +352,7 @@ func (o *RoleModificationOptions) CompleteUserWithSA(f *clientcmd.Factory, args return nil } -func (o *RoleModificationOptions) Complete(f *clientcmd.Factory, args []string, target *[]string, targetName string, isNamespaced bool) error { +func (o *RoleModificationOptions) Complete(f *clientcmd.Factory, cmd *cobra.Command, args []string, target *[]string, targetName string, isNamespaced bool, out io.Writer) error { if len(args) < 2 { return fmt.Errorf("you must specify at least two arguments: <%s> [%s]...", targetName, targetName) } @@ -320,6 +367,14 @@ func (o *RoleModificationOptions) Complete(f *clientcmd.Factory, args []string, return err } + mapper, _ := f.Object() + + o.DryRun = kcmdutil.GetFlagBool(cmd, "dry-run") + o.Output = kcmdutil.GetFlagString(cmd, "output") + o.PrintObj = func(obj runtime.Object) error { + return f.PrintObject(cmd, false, mapper, obj, out) + } + if isNamespaced { roleBindingNamespace, _, err := f.DefaultNamespace() if err != nil { @@ -417,6 +472,14 @@ subjectCheck: roleBinding.Subjects = append(roleBinding.Subjects, newSubject) } + if len(o.Output) > 0 { + return o.PrintObj(roleBinding) + } + + if o.DryRun { + return nil + } + if isUpdate { err = o.RoleBindingAccessor.UpdateRoleBinding(roleBinding) } else { @@ -442,9 +505,29 @@ func (o *RoleModificationOptions) RemoveRole() error { return fmt.Errorf("unable to locate RoleBinding for %v/%v", o.RoleNamespace, o.RoleName) } + updatedBindings := &authorizationapi.RoleBindingList{ + TypeMeta: metav1.TypeMeta{ + Kind: "List", + APIVersion: "v1", + }, + ListMeta: metav1.ListMeta{}, + } + subjectsToRemove := authorizationapi.BuildSubjects(o.Users, o.Groups) subjectsToRemove = append(subjectsToRemove, o.Subjects...) + if len(o.Output) > 0 { + for _, binding := range roleBindings { + binding.Subjects = removeSubjects(binding.Subjects, subjectsToRemove) + updatedBindings.Items = append(updatedBindings.Items, *binding) + } + return o.PrintObj(updatedBindings) + } + + if o.DryRun { + return nil + } + for _, roleBinding := range roleBindings { roleBinding.Subjects = removeSubjects(roleBinding.Subjects, subjectsToRemove) @@ -478,7 +561,7 @@ existingLoop: } // prints affirmative output for role modification commands -func printSuccessForCommand(role string, didAdd bool, targetName string, targets []string, isNamespaced bool, out io.Writer) { +func printSuccessForCommand(role string, didAdd bool, targetName string, targets []string, isNamespaced bool, dryRun bool, out io.Writer) { verb := "removed" clusterScope := "cluster " allTargets := fmt.Sprintf("%q", targets) @@ -494,5 +577,10 @@ func printSuccessForCommand(role string, didAdd bool, targetName string, targets verb = "added" } - fmt.Fprintf(out, "%srole %q %s: %s\n", clusterScope, role, verb, allTargets) + msg := "%srole %q %s: %s" + if dryRun { + msg += " (dry run)" + } + + fmt.Fprintf(out, msg+"\n", clusterScope, role, verb, allTargets) } From b947aef98ef0fd01bf7eb02772b246d58e590781 Mon Sep 17 00:00:00 2001 From: juanvallejo Date: Tue, 12 Sep 2017 13:41:19 -0400 Subject: [PATCH 3/5] add --dry-run --output opts -> modify_scc --- pkg/oc/admin/policy/modify_scc.go | 94 ++++++++++++++++++-- pkg/oc/admin/policy/subject_review.go | 6 +- pkg/oc/bootstrap/docker/openshift/admin.go | 6 +- pkg/oc/bootstrap/docker/openshift/ansible.go | 2 +- pkg/oc/bootstrap/docker/openshift/logging.go | 2 +- pkg/oc/bootstrap/docker/openshift/pvsetup.go | 3 +- 6 files changed, 98 insertions(+), 15 deletions(-) diff --git a/pkg/oc/admin/policy/modify_scc.go b/pkg/oc/admin/policy/modify_scc.go index 6f64fbfb0e6c..23b6cfea05c1 100644 --- a/pkg/oc/admin/policy/modify_scc.go +++ b/pkg/oc/admin/policy/modify_scc.go @@ -8,6 +8,7 @@ import ( "github.com/spf13/cobra" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" kapi "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/kubectl/cmd/templates" kcmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" @@ -39,6 +40,13 @@ type SCCModificationOptions struct { DefaultSubjectNamespace string Subjects []kapi.ObjectReference + + IsGroup bool + DryRun bool + Output string + + PrintObj func(runtime.Object) error + Out io.Writer } func NewCmdAddSCCToGroup(name, fullName string, f *clientcmd.Factory, out io.Writer) *cobra.Command { @@ -49,7 +57,7 @@ func NewCmdAddSCCToGroup(name, fullName string, f *clientcmd.Factory, out io.Wri Short: "Add groups to a security context constraint", Long: `Add groups to a security context constraint`, Run: func(cmd *cobra.Command, args []string) { - if err := options.CompleteGroups(f, args); err != nil { + if err := options.CompleteGroups(f, cmd, args, out); err != nil { kcmdutil.CheckErr(kcmdutil.UsageError(cmd, err.Error())) } @@ -59,6 +67,8 @@ func NewCmdAddSCCToGroup(name, fullName string, f *clientcmd.Factory, out io.Wri }, } + kcmdutil.AddDryRunFlag(cmd) + kcmdutil.AddPrinterFlags(cmd) return cmd } @@ -72,7 +82,7 @@ func NewCmdAddSCCToUser(name, fullName string, f *clientcmd.Factory, out io.Writ Long: `Add users or serviceaccount to a security context constraint`, Example: fmt.Sprintf(addSCCToUserExample, fullName), Run: func(cmd *cobra.Command, args []string) { - if err := options.CompleteUsers(f, args, saNames); err != nil { + if err := options.CompleteUsers(f, cmd, args, saNames, out); err != nil { kcmdutil.CheckErr(kcmdutil.UsageError(cmd, err.Error())) } @@ -84,6 +94,8 @@ func NewCmdAddSCCToUser(name, fullName string, f *clientcmd.Factory, out io.Writ cmd.Flags().StringSliceVarP(&saNames, "serviceaccount", "z", saNames, "service account in the current namespace to use as a user") + kcmdutil.AddDryRunFlag(cmd) + kcmdutil.AddPrinterFlags(cmd) return cmd } @@ -95,7 +107,7 @@ func NewCmdRemoveSCCFromGroup(name, fullName string, f *clientcmd.Factory, out i Short: "Remove group from scc", Long: `Remove group from scc`, Run: func(cmd *cobra.Command, args []string) { - if err := options.CompleteGroups(f, args); err != nil { + if err := options.CompleteGroups(f, cmd, args, out); err != nil { kcmdutil.CheckErr(kcmdutil.UsageError(cmd, err.Error())) } @@ -105,6 +117,8 @@ func NewCmdRemoveSCCFromGroup(name, fullName string, f *clientcmd.Factory, out i }, } + kcmdutil.AddDryRunFlag(cmd) + kcmdutil.AddPrinterFlags(cmd) return cmd } @@ -117,7 +131,7 @@ func NewCmdRemoveSCCFromUser(name, fullName string, f *clientcmd.Factory, out io Short: "Remove user from scc", Long: `Remove user from scc`, Run: func(cmd *cobra.Command, args []string) { - if err := options.CompleteUsers(f, args, saNames); err != nil { + if err := options.CompleteUsers(f, cmd, args, saNames, out); err != nil { kcmdutil.CheckErr(kcmdutil.UsageError(cmd, err.Error())) } @@ -129,14 +143,17 @@ func NewCmdRemoveSCCFromUser(name, fullName string, f *clientcmd.Factory, out io cmd.Flags().StringSliceVarP(&saNames, "serviceaccount", "z", saNames, "service account in the current namespace to use as a user") + kcmdutil.AddDryRunFlag(cmd) + kcmdutil.AddPrinterFlags(cmd) return cmd } -func (o *SCCModificationOptions) CompleteUsers(f *clientcmd.Factory, args []string, saNames []string) error { +func (o *SCCModificationOptions) CompleteUsers(f *clientcmd.Factory, cmd *cobra.Command, args []string, saNames []string, out io.Writer) error { if len(args) < 1 { return errors.New("you must specify a scc") } + o.Out = out o.SCCName = args[0] o.Subjects = authorizationapi.BuildSubjects(args[1:], []string{}) @@ -144,6 +161,15 @@ func (o *SCCModificationOptions) CompleteUsers(f *clientcmd.Factory, args []stri return errors.New("you must specify at least one user or service account") } + o.DryRun = kcmdutil.GetFlagBool(cmd, "dry-run") + o.Output = kcmdutil.GetFlagString(cmd, "output") + + mapper, _ := f.Object() + + o.PrintObj = func(obj runtime.Object) error { + return f.PrintObject(cmd, false, mapper, obj, out) + } + _, kc, err := f.Clients() if err != nil { return err @@ -162,14 +188,26 @@ func (o *SCCModificationOptions) CompleteUsers(f *clientcmd.Factory, args []stri return nil } -func (o *SCCModificationOptions) CompleteGroups(f *clientcmd.Factory, args []string) error { +func (o *SCCModificationOptions) CompleteGroups(f *clientcmd.Factory, cmd *cobra.Command, args []string, out io.Writer) error { if len(args) < 2 { return errors.New("you must specify at least two arguments: [group]...") } + o.Out = out + o.Output = kcmdutil.GetFlagString(cmd, "output") + + mapper, _ := f.Object() + + o.PrintObj = func(obj runtime.Object) error { + return f.PrintObject(cmd, false, mapper, obj, out) + } + + o.IsGroup = true o.SCCName = args[0] o.Subjects = authorizationapi.BuildSubjects([]string{}, args[1:]) + o.DryRun = kcmdutil.GetFlagBool(cmd, "dry-run") + _, kc, err := f.Clients() if err != nil { return err @@ -197,11 +235,21 @@ func (o *SCCModificationOptions) AddSCC() error { scc.Users = append(scc.Users, usersToAdd...) scc.Groups = append(scc.Groups, groupsToAdd...) + if len(o.Output) > 0 && o.PrintObj != nil { + return o.PrintObj(scc) + } + + if o.DryRun { + printSuccess(o.SCCName, true, o.IsGroup, users, groups, o.DryRun, o.Out) + return nil + } + _, err = o.SCCInterface.Update(scc) if err != nil { return err } + printSuccess(o.SCCName, true, o.IsGroup, users, groups, o.DryRun, o.Out) return nil } @@ -218,11 +266,21 @@ func (o *SCCModificationOptions) RemoveSCC() error { scc.Users = remainingUsers scc.Groups = remainingGroups + if len(o.Output) > 0 && o.PrintObj != nil { + return o.PrintObj(scc) + } + + if o.DryRun { + printSuccess(o.SCCName, false, o.IsGroup, users, groups, o.DryRun, o.Out) + return nil + } + _, err = o.SCCInterface.Update(scc) if err != nil { return err } + printSuccess(o.SCCName, false, o.IsGroup, users, groups, o.DryRun, o.Out) return nil } @@ -247,3 +305,27 @@ func singleDiff(lhsSlice, rhsSlice []string) (lhsOnly []string) { return lhsOnly } + +// prints affirmative output +func printSuccess(scc string, didAdd bool, isGroup bool, usersToAdd, groupsToAdd []string, dryRun bool, out io.Writer) { + verb := "removed from" + allTargets := fmt.Sprintf("%q", usersToAdd) + dryRunText := "" + + if isGroup { + allTargets = fmt.Sprintf("%q", groupsToAdd) + } + if didAdd { + verb = "added to" + } + if isGroup { + verb += " groups" + } + + msg := "scc %q %s: %s%s" + if dryRun { + dryRunText = " (dry run)" + } + + fmt.Fprintf(out, msg+"\n", scc, verb, allTargets, dryRunText) +} diff --git a/pkg/oc/admin/policy/subject_review.go b/pkg/oc/admin/policy/subject_review.go index 3c4be61dacac..cece918d0d65 100644 --- a/pkg/oc/admin/policy/subject_review.go +++ b/pkg/oc/admin/policy/subject_review.go @@ -112,11 +112,9 @@ func (o *sccSubjectReviewOptions) Complete(f *clientcmd.Factory, args []string, o.RESTClientFactory = f.ClientForMapping output := kcmdutil.GetFlagString(cmd, "output") - if len(output) > 0 { - if output != "json" && output != "yaml" { - return fmt.Errorf("invalid output format %q, only yaml|json supported", output) - } + wide := len(output) > 0 && output == "wide" + if len(output) > 0 && !wide { printer, err := f.PrinterForCommand(cmd, false, nil, kprinters.PrintOptions{}) if err != nil { return err diff --git a/pkg/oc/bootstrap/docker/openshift/admin.go b/pkg/oc/bootstrap/docker/openshift/admin.go index 8ec9a829ea09..a1bc06df90c3 100644 --- a/pkg/oc/bootstrap/docker/openshift/admin.go +++ b/pkg/oc/bootstrap/docker/openshift/admin.go @@ -47,7 +47,7 @@ func (h *Helper) InstallRegistry(kubeClient kclientset.Interface, f *clientcmd.F return errors.NewError("error retrieving docker registry service").WithCause(err).WithDetails(h.OriginLog()) } - err = AddSCCToServiceAccount(kubeClient, "privileged", "registry", "default") + err = AddSCCToServiceAccount(kubeClient, "privileged", "registry", "default", out) if err != nil { return errors.NewError("cannot add privileged SCC to registry service account").WithCause(err).WithDetails(h.OriginLog()) } @@ -215,7 +215,7 @@ func AddRoleToServiceAccount(osClient client.Interface, role, sa, namespace stri return addRole.AddRole() } -func AddSCCToServiceAccount(kubeClient kclientset.Interface, scc, sa, namespace string) error { +func AddSCCToServiceAccount(kubeClient kclientset.Interface, scc, sa, namespace string, out io.Writer) error { modifySCC := policy.SCCModificationOptions{ SCCName: scc, SCCInterface: legacyclient.NewFromClient(kubeClient.Core().RESTClient()), @@ -226,6 +226,8 @@ func AddSCCToServiceAccount(kubeClient kclientset.Interface, scc, sa, namespace Kind: "ServiceAccount", }, }, + + Out: out, } return modifySCC.AddSCC() } diff --git a/pkg/oc/bootstrap/docker/openshift/ansible.go b/pkg/oc/bootstrap/docker/openshift/ansible.go index e6d950d41262..00a62d889a34 100644 --- a/pkg/oc/bootstrap/docker/openshift/ansible.go +++ b/pkg/oc/bootstrap/docker/openshift/ansible.go @@ -195,7 +195,7 @@ func (r *ansibleRunner) createServiceAccount(namespace string) error { return errors.NewError(fmt.Sprintf("cannot create %s service account", serviceAccount.Name)).WithCause(err).WithDetails(r.Helper.OriginLog()) } // Add privileged SCC to serviceAccount - if err = AddSCCToServiceAccount(r.KubeClient, "privileged", serviceAccount.Name, namespace); err != nil { + if err = AddSCCToServiceAccount(r.KubeClient, "privileged", serviceAccount.Name, namespace, &bytes.Buffer{}); err != nil { return errors.NewError("cannot add privileged security context constraint to service account").WithCause(err).WithDetails(r.Helper.OriginLog()) } return nil diff --git a/pkg/oc/bootstrap/docker/openshift/logging.go b/pkg/oc/bootstrap/docker/openshift/logging.go index 052409dc76f4..02f4f393d599 100644 --- a/pkg/oc/bootstrap/docker/openshift/logging.go +++ b/pkg/oc/bootstrap/docker/openshift/logging.go @@ -92,7 +92,7 @@ func (h *Helper) InstallLogging(f *clientcmd.Factory, publicHostname, loggerHost } // Add privileged SCC to aggregated-logging-fluentd sa - if err = AddSCCToServiceAccount(kubeClient, "privileged", "aggregated-logging-fluentd", loggingNamespace); err != nil { + if err = AddSCCToServiceAccount(kubeClient, "privileged", "aggregated-logging-fluentd", loggingNamespace, out); err != nil { return errors.NewError("cannot add privileged security context constraint to logging fluentd service account").WithCause(err).WithDetails(h.OriginLog()) } diff --git a/pkg/oc/bootstrap/docker/openshift/pvsetup.go b/pkg/oc/bootstrap/docker/openshift/pvsetup.go index d82360f63f67..0b663cda6b5f 100644 --- a/pkg/oc/bootstrap/docker/openshift/pvsetup.go +++ b/pkg/oc/bootstrap/docker/openshift/pvsetup.go @@ -1,6 +1,7 @@ package openshift import ( + "bytes" "fmt" kerrors "k8s.io/apimachinery/pkg/api/errors" @@ -123,7 +124,7 @@ func (h *Helper) ensurePVInstallerSA(osclient client.Interface, kclient kclients } } - err = AddSCCToServiceAccount(kclient, "privileged", "pvinstaller", "default") + err = AddSCCToServiceAccount(kclient, "privileged", "pvinstaller", "default", &bytes.Buffer{}) if err != nil { return errors.NewError("cannot add privileged SCC to pvinstaller service account").WithCause(err).WithDetails(h.OriginLog()) } From 950d81c45fb9a474f9e24293c39b54e8c7c3e033 Mon Sep 17 00:00:00 2001 From: juanvallejo Date: Tue, 12 Sep 2017 16:30:39 -0400 Subject: [PATCH 4/5] add tests --- pkg/oc/admin/policy/modify_scc_test.go | 3 ++ pkg/oc/admin/policy/review.go | 7 ++- test/cmd/policy.sh | 66 +++++++++++++++++++++++++- 3 files changed, 71 insertions(+), 5 deletions(-) diff --git a/pkg/oc/admin/policy/modify_scc_test.go b/pkg/oc/admin/policy/modify_scc_test.go index 6e95d0fc6b4a..698749f74a60 100644 --- a/pkg/oc/admin/policy/modify_scc_test.go +++ b/pkg/oc/admin/policy/modify_scc_test.go @@ -1,6 +1,7 @@ package policy import ( + "bytes" "reflect" "testing" @@ -133,6 +134,8 @@ func TestModifySCC(t *testing.T) { SCCInterface: fakeClient, DefaultSubjectNamespace: "", Subjects: tc.subjects, + + Out: &bytes.Buffer{}, } var err error diff --git a/pkg/oc/admin/policy/review.go b/pkg/oc/admin/policy/review.go index 6746ffbdd0d6..19c6947e2af8 100644 --- a/pkg/oc/admin/policy/review.go +++ b/pkg/oc/admin/policy/review.go @@ -110,10 +110,9 @@ func (o *sccReviewOptions) Complete(f *clientcmd.Factory, args []string, cmd *co o.RESTClientFactory = f.ClientForMapping output := kcmdutil.GetFlagString(cmd, "output") - if len(output) != 0 { - if output != "json" && output != "yaml" { - return fmt.Errorf("invalid output format %q, only yaml|json supported", output) - } + wide := len(output) > 0 && output == "wide" + + if len(output) != 0 && !wide { printer, err := f.PrinterForCommand(cmd, false, nil, kprinters.PrintOptions{}) if err != nil { return err diff --git a/test/cmd/policy.sh b/test/cmd/policy.sh index 616eccbf4a63..1354bc5bc0f5 100755 --- a/test/cmd/policy.sh +++ b/test/cmd/policy.sh @@ -3,6 +3,18 @@ source "$(dirname "${BASH_SOURCE}")/../../hack/lib/init.sh" trap os::test::junit::reconcile_output EXIT project="$( oc project -q )" +testpod="apiVersion: v1 +kind: Pod +metadata: + name: testpod +spec: + containers: + - image: node + imagePullPolicy: IfNotPresent + name: testpod + volumes: + - emptyDir: {} + name: tmp" os::test::junit::declare_suite_start "cmd/policy" # This test validates user level policy @@ -79,6 +91,59 @@ os::cmd::expect_success_and_not_text 'oc adm policy who-can create builds/docker os::cmd::expect_success_and_not_text 'oc adm policy who-can create builds/source' 'system:authenticated' os::cmd::expect_success_and_not_text 'oc adm policy who-can create builds/jenkinspipeline' 'system:authenticated' +# validate --output and --dry-run flags for oc-adm-policy sub-commands +os::cmd::expect_success_and_text 'oc adm policy remove-role-from-user admin namespaced-user -o yaml' 'name: admin' +os::cmd::expect_success_and_text 'oc adm policy add-role-to-user admin namespaced-user -o yaml' 'name: namespaced-user' + +os::cmd::expect_success_and_text 'oc adm policy remove-role-from-user admin namespaced-user --dry-run' 'role "admin" removed: "namespaced\-user" \(dry run\)' +os::cmd::expect_success_and_text 'oc adm policy add-role-to-user admin namespaced-user --dry-run' 'role "admin" added: "namespaced\-user" \(dry run\)' + +# ensure that running an `oc adm policy` sub-command with --output does not actually perform any changes +os::cmd::expect_success_and_text 'oc adm policy who-can create pods -o yaml' '\- namespaced\-user' + +os::cmd::expect_success_and_text 'oc adm policy scc-subject-review -u namespaced-user --output yaml -f - << __EOF__ +$testpod +__EOF__' 'name: testpod' +os::cmd::expect_success_and_text 'oc adm policy scc-subject-review -u namespaced-user --output wide -f - << __EOF__ +$testpod +__EOF__' 'Pod/testpod' + +os::cmd::expect_success_and_text 'oc adm policy scc-review --output yaml -f - << __EOF__ +$testpod +__EOF__' 'allowedServiceAccounts: \[\]' + +os::cmd::expect_success_and_text 'oc adm policy add-role-to-group view testgroup -o yaml' 'name: view' +os::cmd::expect_success_and_text 'oc adm policy add-cluster-role-to-group cluster-reader testgroup -o yaml' '\- testgroup' +os::cmd::expect_success_and_text 'oc adm policy add-cluster-role-to-user cluster-reader namespaced-user -o yaml' 'name: namespaced\-user' + +os::cmd::expect_success_and_text 'oc adm policy add-role-to-group view testgroup --dry-run' 'role "view" added: "testgroup" \(dry run\)' +os::cmd::expect_success_and_text 'oc adm policy add-cluster-role-to-group cluster-reader testgroup --dry-run' 'cluster role "cluster\-reader" added: "testgroup" \(dry run\)' +os::cmd::expect_success_and_text 'oc adm policy add-cluster-role-to-user cluster-reader namespaced-user --dry-run' 'cluster role "cluster\-reader" added: "namespaced\-user" \(dry run\)' + +os::cmd::expect_success 'oc adm policy add-role-to-group view testgroup' +os::cmd::expect_success_and_text 'oc adm policy remove-role-from-group view testgroup -o yaml' 'subjects: \[\]' +os::cmd::expect_success_and_text 'oc adm policy remove-cluster-role-from-group cluster-reader testgroup -o yaml' 'name: cluster\-readers' +os::cmd::expect_success_and_text 'oc adm policy remove-cluster-role-from-user cluster-reader namespaced-user -o yaml' 'name: cluster\-reader' + +os::cmd::expect_success_and_text 'oc adm policy remove-role-from-group view testgroup --dry-run' 'role "view" removed: "testgroup" \(dry run\)' +os::cmd::expect_success_and_text 'oc adm policy remove-cluster-role-from-group cluster-reader testgroup --dry-run' 'cluster role "cluster\-reader" removed: "testgroup" \(dry run\)' +os::cmd::expect_success_and_text 'oc adm policy remove-cluster-role-from-user cluster-reader namespaced-user --dry-run' 'cluster role "cluster\-reader" removed: "namespaced\-user" \(dry run\)' + +os::cmd::expect_success_and_text 'oc adm policy remove-user namespaced-user -o yaml' "namespace: ${project}" +os::cmd::expect_success_and_text 'oc adm policy remove-user namespaced-user --dry-run' "Removing admin from users \[namespaced\-user\] in project ${project}" + +os::cmd::expect_success_and_text 'oc adm policy add-scc-to-user anyuid namespaced-user -o yaml' '\- namespaced\-user' +os::cmd::expect_success_and_text 'oc adm policy add-scc-to-user anyuid namespaced-user --dry-run' 'scc "anyuid" added to: \["namespaced\-user"\] \(dry run\)' + +os::cmd::expect_success_and_text 'oc adm policy add-scc-to-group anyuid testgroup -o yaml' '\- testgroup' +os::cmd::expect_success_and_text 'oc adm policy add-scc-to-group anyuid testgroup --dry-run' 'scc "anyuid" added to groups: \["testgroup"\] \(dry run\)' + +os::cmd::expect_success_and_not_text 'oc adm policy remove-scc-from-user anyuid namespaced-user -o yaml' '\- namespaced\-user' +os::cmd::expect_success_and_text 'oc adm policy remove-scc-from-user anyuid namespaced-user --dry-run' 'scc "anyuid" removed from: \["namespaced\-user"\] \(dry run\)' + +os::cmd::expect_success_and_not_text 'oc adm policy remove-scc-from-group anyuid testgroup -o yaml' '\- testgroup' +os::cmd::expect_success_and_text 'oc adm policy remove-scc-from-group anyuid testgroup --dry-run' 'scc "anyuid" removed from groups: \["testgroup"\] \(dry run\)' + # ensure system:authenticated users can not create custom builds by default, but can if explicitly granted access os::cmd::expect_success_and_not_text 'oc adm policy who-can create builds/custom' 'system:authenticated' os::cmd::expect_success_and_text 'oc adm policy add-cluster-role-to-group system:build-strategy-custom system:authenticated' 'cluster role "system:build-strategy-custom" added: "system:authenticated"' @@ -147,7 +212,6 @@ os::cmd::expect_failure_and_text 'oc policy scc-review -z no-exist -f ${OS_ROOT} os::cmd::expect_success "oc login -u system:admin -n '${project}'" os::cmd::expect_success 'oc delete project policy-second' - # adjust the cluster-admin role to check defaulting and coverage checks # this is done here instead of an integration test because we need to make sure the actual yaml serializations work workingdir=$(mktemp -d) From 609c55827ce386be206023d33264cbb3c159efd3 Mon Sep 17 00:00:00 2001 From: juanvallejo Date: Wed, 13 Sep 2017 10:55:30 -0400 Subject: [PATCH 5/5] update generated completions --- contrib/completions/bash/oadm | 285 ++++++++++++ contrib/completions/bash/oc | 410 +++++++++++++++++ contrib/completions/bash/openshift | 695 +++++++++++++++++++++++++++++ contrib/completions/zsh/oadm | 285 ++++++++++++ contrib/completions/zsh/oc | 410 +++++++++++++++++ contrib/completions/zsh/openshift | 695 +++++++++++++++++++++++++++++ 6 files changed, 2780 insertions(+) diff --git a/contrib/completions/bash/oadm b/contrib/completions/bash/oadm index 937cf0988c5b..15079607a5e6 100644 --- a/contrib/completions/bash/oadm +++ b/contrib/completions/bash/oadm @@ -3290,8 +3290,28 @@ _oadm_policy_add-cluster-role-to-group() flags_with_completion=() flags_completion=() + flags+=("--allow-missing-template-keys") + local_nonpersistent_flags+=("--allow-missing-template-keys") + flags+=("--dry-run") + local_nonpersistent_flags+=("--dry-run") + flags+=("--no-headers") + local_nonpersistent_flags+=("--no-headers") + flags+=("--output=") + two_word_flags+=("-o") + local_nonpersistent_flags+=("--output=") flags+=("--rolebinding-name=") local_nonpersistent_flags+=("--rolebinding-name=") + flags+=("--show-all") + flags+=("-a") + local_nonpersistent_flags+=("--show-all") + flags+=("--show-labels") + local_nonpersistent_flags+=("--show-labels") + flags+=("--sort-by=") + local_nonpersistent_flags+=("--sort-by=") + flags+=("--template=") + flags_with_completion+=("--template") + flags_completion+=("_filedir") + local_nonpersistent_flags+=("--template=") flags+=("--as=") flags+=("--as-group=") flags+=("--certificate-authority=") @@ -3335,11 +3355,31 @@ _oadm_policy_add-cluster-role-to-user() flags_with_completion=() flags_completion=() + flags+=("--allow-missing-template-keys") + local_nonpersistent_flags+=("--allow-missing-template-keys") + flags+=("--dry-run") + local_nonpersistent_flags+=("--dry-run") + flags+=("--no-headers") + local_nonpersistent_flags+=("--no-headers") + flags+=("--output=") + two_word_flags+=("-o") + local_nonpersistent_flags+=("--output=") flags+=("--rolebinding-name=") local_nonpersistent_flags+=("--rolebinding-name=") flags+=("--serviceaccount=") two_word_flags+=("-z") local_nonpersistent_flags+=("--serviceaccount=") + flags+=("--show-all") + flags+=("-a") + local_nonpersistent_flags+=("--show-all") + flags+=("--show-labels") + local_nonpersistent_flags+=("--show-labels") + flags+=("--sort-by=") + local_nonpersistent_flags+=("--sort-by=") + flags+=("--template=") + flags_with_completion+=("--template") + flags_completion+=("_filedir") + local_nonpersistent_flags+=("--template=") flags+=("--as=") flags+=("--as-group=") flags+=("--certificate-authority=") @@ -3383,10 +3423,30 @@ _oadm_policy_add-role-to-group() flags_with_completion=() flags_completion=() + flags+=("--allow-missing-template-keys") + local_nonpersistent_flags+=("--allow-missing-template-keys") + flags+=("--dry-run") + local_nonpersistent_flags+=("--dry-run") + flags+=("--no-headers") + local_nonpersistent_flags+=("--no-headers") + flags+=("--output=") + two_word_flags+=("-o") + local_nonpersistent_flags+=("--output=") flags+=("--role-namespace=") local_nonpersistent_flags+=("--role-namespace=") flags+=("--rolebinding-name=") local_nonpersistent_flags+=("--rolebinding-name=") + flags+=("--show-all") + flags+=("-a") + local_nonpersistent_flags+=("--show-all") + flags+=("--show-labels") + local_nonpersistent_flags+=("--show-labels") + flags+=("--sort-by=") + local_nonpersistent_flags+=("--sort-by=") + flags+=("--template=") + flags_with_completion+=("--template") + flags_completion+=("_filedir") + local_nonpersistent_flags+=("--template=") flags+=("--as=") flags+=("--as-group=") flags+=("--certificate-authority=") @@ -3430,6 +3490,15 @@ _oadm_policy_add-role-to-user() flags_with_completion=() flags_completion=() + flags+=("--allow-missing-template-keys") + local_nonpersistent_flags+=("--allow-missing-template-keys") + flags+=("--dry-run") + local_nonpersistent_flags+=("--dry-run") + flags+=("--no-headers") + local_nonpersistent_flags+=("--no-headers") + flags+=("--output=") + two_word_flags+=("-o") + local_nonpersistent_flags+=("--output=") flags+=("--role-namespace=") local_nonpersistent_flags+=("--role-namespace=") flags+=("--rolebinding-name=") @@ -3437,6 +3506,17 @@ _oadm_policy_add-role-to-user() flags+=("--serviceaccount=") two_word_flags+=("-z") local_nonpersistent_flags+=("--serviceaccount=") + flags+=("--show-all") + flags+=("-a") + local_nonpersistent_flags+=("--show-all") + flags+=("--show-labels") + local_nonpersistent_flags+=("--show-labels") + flags+=("--sort-by=") + local_nonpersistent_flags+=("--sort-by=") + flags+=("--template=") + flags_with_completion+=("--template") + flags_completion+=("_filedir") + local_nonpersistent_flags+=("--template=") flags+=("--as=") flags+=("--as-group=") flags+=("--certificate-authority=") @@ -3480,6 +3560,26 @@ _oadm_policy_add-scc-to-group() flags_with_completion=() flags_completion=() + flags+=("--allow-missing-template-keys") + local_nonpersistent_flags+=("--allow-missing-template-keys") + flags+=("--dry-run") + local_nonpersistent_flags+=("--dry-run") + flags+=("--no-headers") + local_nonpersistent_flags+=("--no-headers") + flags+=("--output=") + two_word_flags+=("-o") + local_nonpersistent_flags+=("--output=") + flags+=("--show-all") + flags+=("-a") + local_nonpersistent_flags+=("--show-all") + flags+=("--show-labels") + local_nonpersistent_flags+=("--show-labels") + flags+=("--sort-by=") + local_nonpersistent_flags+=("--sort-by=") + flags+=("--template=") + flags_with_completion+=("--template") + flags_completion+=("_filedir") + local_nonpersistent_flags+=("--template=") flags+=("--as=") flags+=("--as-group=") flags+=("--certificate-authority=") @@ -3523,9 +3623,29 @@ _oadm_policy_add-scc-to-user() flags_with_completion=() flags_completion=() + flags+=("--allow-missing-template-keys") + local_nonpersistent_flags+=("--allow-missing-template-keys") + flags+=("--dry-run") + local_nonpersistent_flags+=("--dry-run") + flags+=("--no-headers") + local_nonpersistent_flags+=("--no-headers") + flags+=("--output=") + two_word_flags+=("-o") + local_nonpersistent_flags+=("--output=") flags+=("--serviceaccount=") two_word_flags+=("-z") local_nonpersistent_flags+=("--serviceaccount=") + flags+=("--show-all") + flags+=("-a") + local_nonpersistent_flags+=("--show-all") + flags+=("--show-labels") + local_nonpersistent_flags+=("--show-labels") + flags+=("--sort-by=") + local_nonpersistent_flags+=("--sort-by=") + flags+=("--template=") + flags_with_completion+=("--template") + flags_completion+=("_filedir") + local_nonpersistent_flags+=("--template=") flags+=("--as=") flags+=("--as-group=") flags+=("--certificate-authority=") @@ -3770,6 +3890,26 @@ _oadm_policy_remove-cluster-role-from-group() flags_with_completion=() flags_completion=() + flags+=("--allow-missing-template-keys") + local_nonpersistent_flags+=("--allow-missing-template-keys") + flags+=("--dry-run") + local_nonpersistent_flags+=("--dry-run") + flags+=("--no-headers") + local_nonpersistent_flags+=("--no-headers") + flags+=("--output=") + two_word_flags+=("-o") + local_nonpersistent_flags+=("--output=") + flags+=("--show-all") + flags+=("-a") + local_nonpersistent_flags+=("--show-all") + flags+=("--show-labels") + local_nonpersistent_flags+=("--show-labels") + flags+=("--sort-by=") + local_nonpersistent_flags+=("--sort-by=") + flags+=("--template=") + flags_with_completion+=("--template") + flags_completion+=("_filedir") + local_nonpersistent_flags+=("--template=") flags+=("--as=") flags+=("--as-group=") flags+=("--certificate-authority=") @@ -3813,9 +3953,29 @@ _oadm_policy_remove-cluster-role-from-user() flags_with_completion=() flags_completion=() + flags+=("--allow-missing-template-keys") + local_nonpersistent_flags+=("--allow-missing-template-keys") + flags+=("--dry-run") + local_nonpersistent_flags+=("--dry-run") + flags+=("--no-headers") + local_nonpersistent_flags+=("--no-headers") + flags+=("--output=") + two_word_flags+=("-o") + local_nonpersistent_flags+=("--output=") flags+=("--serviceaccount=") two_word_flags+=("-z") local_nonpersistent_flags+=("--serviceaccount=") + flags+=("--show-all") + flags+=("-a") + local_nonpersistent_flags+=("--show-all") + flags+=("--show-labels") + local_nonpersistent_flags+=("--show-labels") + flags+=("--sort-by=") + local_nonpersistent_flags+=("--sort-by=") + flags+=("--template=") + flags_with_completion+=("--template") + flags_completion+=("_filedir") + local_nonpersistent_flags+=("--template=") flags+=("--as=") flags+=("--as-group=") flags+=("--certificate-authority=") @@ -3859,6 +4019,13 @@ _oadm_policy_remove-group() flags_with_completion=() flags_completion=() + flags+=("--allow-missing-template-keys") + local_nonpersistent_flags+=("--allow-missing-template-keys") + flags+=("--dry-run") + local_nonpersistent_flags+=("--dry-run") + flags+=("--output=") + two_word_flags+=("-o") + local_nonpersistent_flags+=("--output=") flags+=("--as=") flags+=("--as-group=") flags+=("--certificate-authority=") @@ -3902,8 +4069,28 @@ _oadm_policy_remove-role-from-group() flags_with_completion=() flags_completion=() + flags+=("--allow-missing-template-keys") + local_nonpersistent_flags+=("--allow-missing-template-keys") + flags+=("--dry-run") + local_nonpersistent_flags+=("--dry-run") + flags+=("--no-headers") + local_nonpersistent_flags+=("--no-headers") + flags+=("--output=") + two_word_flags+=("-o") + local_nonpersistent_flags+=("--output=") flags+=("--role-namespace=") local_nonpersistent_flags+=("--role-namespace=") + flags+=("--show-all") + flags+=("-a") + local_nonpersistent_flags+=("--show-all") + flags+=("--show-labels") + local_nonpersistent_flags+=("--show-labels") + flags+=("--sort-by=") + local_nonpersistent_flags+=("--sort-by=") + flags+=("--template=") + flags_with_completion+=("--template") + flags_completion+=("_filedir") + local_nonpersistent_flags+=("--template=") flags+=("--as=") flags+=("--as-group=") flags+=("--certificate-authority=") @@ -3947,11 +4134,31 @@ _oadm_policy_remove-role-from-user() flags_with_completion=() flags_completion=() + flags+=("--allow-missing-template-keys") + local_nonpersistent_flags+=("--allow-missing-template-keys") + flags+=("--dry-run") + local_nonpersistent_flags+=("--dry-run") + flags+=("--no-headers") + local_nonpersistent_flags+=("--no-headers") + flags+=("--output=") + two_word_flags+=("-o") + local_nonpersistent_flags+=("--output=") flags+=("--role-namespace=") local_nonpersistent_flags+=("--role-namespace=") flags+=("--serviceaccount=") two_word_flags+=("-z") local_nonpersistent_flags+=("--serviceaccount=") + flags+=("--show-all") + flags+=("-a") + local_nonpersistent_flags+=("--show-all") + flags+=("--show-labels") + local_nonpersistent_flags+=("--show-labels") + flags+=("--sort-by=") + local_nonpersistent_flags+=("--sort-by=") + flags+=("--template=") + flags_with_completion+=("--template") + flags_completion+=("_filedir") + local_nonpersistent_flags+=("--template=") flags+=("--as=") flags+=("--as-group=") flags+=("--certificate-authority=") @@ -3995,6 +4202,26 @@ _oadm_policy_remove-scc-from-group() flags_with_completion=() flags_completion=() + flags+=("--allow-missing-template-keys") + local_nonpersistent_flags+=("--allow-missing-template-keys") + flags+=("--dry-run") + local_nonpersistent_flags+=("--dry-run") + flags+=("--no-headers") + local_nonpersistent_flags+=("--no-headers") + flags+=("--output=") + two_word_flags+=("-o") + local_nonpersistent_flags+=("--output=") + flags+=("--show-all") + flags+=("-a") + local_nonpersistent_flags+=("--show-all") + flags+=("--show-labels") + local_nonpersistent_flags+=("--show-labels") + flags+=("--sort-by=") + local_nonpersistent_flags+=("--sort-by=") + flags+=("--template=") + flags_with_completion+=("--template") + flags_completion+=("_filedir") + local_nonpersistent_flags+=("--template=") flags+=("--as=") flags+=("--as-group=") flags+=("--certificate-authority=") @@ -4038,9 +4265,29 @@ _oadm_policy_remove-scc-from-user() flags_with_completion=() flags_completion=() + flags+=("--allow-missing-template-keys") + local_nonpersistent_flags+=("--allow-missing-template-keys") + flags+=("--dry-run") + local_nonpersistent_flags+=("--dry-run") + flags+=("--no-headers") + local_nonpersistent_flags+=("--no-headers") + flags+=("--output=") + two_word_flags+=("-o") + local_nonpersistent_flags+=("--output=") flags+=("--serviceaccount=") two_word_flags+=("-z") local_nonpersistent_flags+=("--serviceaccount=") + flags+=("--show-all") + flags+=("-a") + local_nonpersistent_flags+=("--show-all") + flags+=("--show-labels") + local_nonpersistent_flags+=("--show-labels") + flags+=("--sort-by=") + local_nonpersistent_flags+=("--sort-by=") + flags+=("--template=") + flags_with_completion+=("--template") + flags_completion+=("_filedir") + local_nonpersistent_flags+=("--template=") flags+=("--as=") flags+=("--as-group=") flags+=("--certificate-authority=") @@ -4084,6 +4331,26 @@ _oadm_policy_remove-user() flags_with_completion=() flags_completion=() + flags+=("--allow-missing-template-keys") + local_nonpersistent_flags+=("--allow-missing-template-keys") + flags+=("--dry-run") + local_nonpersistent_flags+=("--dry-run") + flags+=("--no-headers") + local_nonpersistent_flags+=("--no-headers") + flags+=("--output=") + two_word_flags+=("-o") + local_nonpersistent_flags+=("--output=") + flags+=("--show-all") + flags+=("-a") + local_nonpersistent_flags+=("--show-all") + flags+=("--show-labels") + local_nonpersistent_flags+=("--show-labels") + flags+=("--sort-by=") + local_nonpersistent_flags+=("--sort-by=") + flags+=("--template=") + flags_with_completion+=("--template") + flags_completion+=("_filedir") + local_nonpersistent_flags+=("--template=") flags+=("--as=") flags+=("--as-group=") flags+=("--certificate-authority=") @@ -4282,6 +4549,24 @@ _oadm_policy_who-can() flags+=("--all-namespaces") local_nonpersistent_flags+=("--all-namespaces") + flags+=("--allow-missing-template-keys") + local_nonpersistent_flags+=("--allow-missing-template-keys") + flags+=("--no-headers") + local_nonpersistent_flags+=("--no-headers") + flags+=("--output=") + two_word_flags+=("-o") + local_nonpersistent_flags+=("--output=") + flags+=("--show-all") + flags+=("-a") + local_nonpersistent_flags+=("--show-all") + flags+=("--show-labels") + local_nonpersistent_flags+=("--show-labels") + flags+=("--sort-by=") + local_nonpersistent_flags+=("--sort-by=") + flags+=("--template=") + flags_with_completion+=("--template") + flags_completion+=("_filedir") + local_nonpersistent_flags+=("--template=") flags+=("--as=") flags+=("--as-group=") flags+=("--certificate-authority=") diff --git a/contrib/completions/bash/oc b/contrib/completions/bash/oc index 14e503d135d2..2659f57b43e9 100644 --- a/contrib/completions/bash/oc +++ b/contrib/completions/bash/oc @@ -3455,8 +3455,28 @@ _oc_adm_policy_add-cluster-role-to-group() flags_with_completion=() flags_completion=() + flags+=("--allow-missing-template-keys") + local_nonpersistent_flags+=("--allow-missing-template-keys") + flags+=("--dry-run") + local_nonpersistent_flags+=("--dry-run") + flags+=("--no-headers") + local_nonpersistent_flags+=("--no-headers") + flags+=("--output=") + two_word_flags+=("-o") + local_nonpersistent_flags+=("--output=") flags+=("--rolebinding-name=") local_nonpersistent_flags+=("--rolebinding-name=") + flags+=("--show-all") + flags+=("-a") + local_nonpersistent_flags+=("--show-all") + flags+=("--show-labels") + local_nonpersistent_flags+=("--show-labels") + flags+=("--sort-by=") + local_nonpersistent_flags+=("--sort-by=") + flags+=("--template=") + flags_with_completion+=("--template") + flags_completion+=("_filedir") + local_nonpersistent_flags+=("--template=") flags+=("--as=") flags+=("--as-group=") flags+=("--certificate-authority=") @@ -3500,11 +3520,31 @@ _oc_adm_policy_add-cluster-role-to-user() flags_with_completion=() flags_completion=() + flags+=("--allow-missing-template-keys") + local_nonpersistent_flags+=("--allow-missing-template-keys") + flags+=("--dry-run") + local_nonpersistent_flags+=("--dry-run") + flags+=("--no-headers") + local_nonpersistent_flags+=("--no-headers") + flags+=("--output=") + two_word_flags+=("-o") + local_nonpersistent_flags+=("--output=") flags+=("--rolebinding-name=") local_nonpersistent_flags+=("--rolebinding-name=") flags+=("--serviceaccount=") two_word_flags+=("-z") local_nonpersistent_flags+=("--serviceaccount=") + flags+=("--show-all") + flags+=("-a") + local_nonpersistent_flags+=("--show-all") + flags+=("--show-labels") + local_nonpersistent_flags+=("--show-labels") + flags+=("--sort-by=") + local_nonpersistent_flags+=("--sort-by=") + flags+=("--template=") + flags_with_completion+=("--template") + flags_completion+=("_filedir") + local_nonpersistent_flags+=("--template=") flags+=("--as=") flags+=("--as-group=") flags+=("--certificate-authority=") @@ -3548,10 +3588,30 @@ _oc_adm_policy_add-role-to-group() flags_with_completion=() flags_completion=() + flags+=("--allow-missing-template-keys") + local_nonpersistent_flags+=("--allow-missing-template-keys") + flags+=("--dry-run") + local_nonpersistent_flags+=("--dry-run") + flags+=("--no-headers") + local_nonpersistent_flags+=("--no-headers") + flags+=("--output=") + two_word_flags+=("-o") + local_nonpersistent_flags+=("--output=") flags+=("--role-namespace=") local_nonpersistent_flags+=("--role-namespace=") flags+=("--rolebinding-name=") local_nonpersistent_flags+=("--rolebinding-name=") + flags+=("--show-all") + flags+=("-a") + local_nonpersistent_flags+=("--show-all") + flags+=("--show-labels") + local_nonpersistent_flags+=("--show-labels") + flags+=("--sort-by=") + local_nonpersistent_flags+=("--sort-by=") + flags+=("--template=") + flags_with_completion+=("--template") + flags_completion+=("_filedir") + local_nonpersistent_flags+=("--template=") flags+=("--as=") flags+=("--as-group=") flags+=("--certificate-authority=") @@ -3595,6 +3655,15 @@ _oc_adm_policy_add-role-to-user() flags_with_completion=() flags_completion=() + flags+=("--allow-missing-template-keys") + local_nonpersistent_flags+=("--allow-missing-template-keys") + flags+=("--dry-run") + local_nonpersistent_flags+=("--dry-run") + flags+=("--no-headers") + local_nonpersistent_flags+=("--no-headers") + flags+=("--output=") + two_word_flags+=("-o") + local_nonpersistent_flags+=("--output=") flags+=("--role-namespace=") local_nonpersistent_flags+=("--role-namespace=") flags+=("--rolebinding-name=") @@ -3602,6 +3671,17 @@ _oc_adm_policy_add-role-to-user() flags+=("--serviceaccount=") two_word_flags+=("-z") local_nonpersistent_flags+=("--serviceaccount=") + flags+=("--show-all") + flags+=("-a") + local_nonpersistent_flags+=("--show-all") + flags+=("--show-labels") + local_nonpersistent_flags+=("--show-labels") + flags+=("--sort-by=") + local_nonpersistent_flags+=("--sort-by=") + flags+=("--template=") + flags_with_completion+=("--template") + flags_completion+=("_filedir") + local_nonpersistent_flags+=("--template=") flags+=("--as=") flags+=("--as-group=") flags+=("--certificate-authority=") @@ -3645,6 +3725,26 @@ _oc_adm_policy_add-scc-to-group() flags_with_completion=() flags_completion=() + flags+=("--allow-missing-template-keys") + local_nonpersistent_flags+=("--allow-missing-template-keys") + flags+=("--dry-run") + local_nonpersistent_flags+=("--dry-run") + flags+=("--no-headers") + local_nonpersistent_flags+=("--no-headers") + flags+=("--output=") + two_word_flags+=("-o") + local_nonpersistent_flags+=("--output=") + flags+=("--show-all") + flags+=("-a") + local_nonpersistent_flags+=("--show-all") + flags+=("--show-labels") + local_nonpersistent_flags+=("--show-labels") + flags+=("--sort-by=") + local_nonpersistent_flags+=("--sort-by=") + flags+=("--template=") + flags_with_completion+=("--template") + flags_completion+=("_filedir") + local_nonpersistent_flags+=("--template=") flags+=("--as=") flags+=("--as-group=") flags+=("--certificate-authority=") @@ -3688,9 +3788,29 @@ _oc_adm_policy_add-scc-to-user() flags_with_completion=() flags_completion=() + flags+=("--allow-missing-template-keys") + local_nonpersistent_flags+=("--allow-missing-template-keys") + flags+=("--dry-run") + local_nonpersistent_flags+=("--dry-run") + flags+=("--no-headers") + local_nonpersistent_flags+=("--no-headers") + flags+=("--output=") + two_word_flags+=("-o") + local_nonpersistent_flags+=("--output=") flags+=("--serviceaccount=") two_word_flags+=("-z") local_nonpersistent_flags+=("--serviceaccount=") + flags+=("--show-all") + flags+=("-a") + local_nonpersistent_flags+=("--show-all") + flags+=("--show-labels") + local_nonpersistent_flags+=("--show-labels") + flags+=("--sort-by=") + local_nonpersistent_flags+=("--sort-by=") + flags+=("--template=") + flags_with_completion+=("--template") + flags_completion+=("_filedir") + local_nonpersistent_flags+=("--template=") flags+=("--as=") flags+=("--as-group=") flags+=("--certificate-authority=") @@ -3935,6 +4055,26 @@ _oc_adm_policy_remove-cluster-role-from-group() flags_with_completion=() flags_completion=() + flags+=("--allow-missing-template-keys") + local_nonpersistent_flags+=("--allow-missing-template-keys") + flags+=("--dry-run") + local_nonpersistent_flags+=("--dry-run") + flags+=("--no-headers") + local_nonpersistent_flags+=("--no-headers") + flags+=("--output=") + two_word_flags+=("-o") + local_nonpersistent_flags+=("--output=") + flags+=("--show-all") + flags+=("-a") + local_nonpersistent_flags+=("--show-all") + flags+=("--show-labels") + local_nonpersistent_flags+=("--show-labels") + flags+=("--sort-by=") + local_nonpersistent_flags+=("--sort-by=") + flags+=("--template=") + flags_with_completion+=("--template") + flags_completion+=("_filedir") + local_nonpersistent_flags+=("--template=") flags+=("--as=") flags+=("--as-group=") flags+=("--certificate-authority=") @@ -3978,9 +4118,29 @@ _oc_adm_policy_remove-cluster-role-from-user() flags_with_completion=() flags_completion=() + flags+=("--allow-missing-template-keys") + local_nonpersistent_flags+=("--allow-missing-template-keys") + flags+=("--dry-run") + local_nonpersistent_flags+=("--dry-run") + flags+=("--no-headers") + local_nonpersistent_flags+=("--no-headers") + flags+=("--output=") + two_word_flags+=("-o") + local_nonpersistent_flags+=("--output=") flags+=("--serviceaccount=") two_word_flags+=("-z") local_nonpersistent_flags+=("--serviceaccount=") + flags+=("--show-all") + flags+=("-a") + local_nonpersistent_flags+=("--show-all") + flags+=("--show-labels") + local_nonpersistent_flags+=("--show-labels") + flags+=("--sort-by=") + local_nonpersistent_flags+=("--sort-by=") + flags+=("--template=") + flags_with_completion+=("--template") + flags_completion+=("_filedir") + local_nonpersistent_flags+=("--template=") flags+=("--as=") flags+=("--as-group=") flags+=("--certificate-authority=") @@ -4024,6 +4184,13 @@ _oc_adm_policy_remove-group() flags_with_completion=() flags_completion=() + flags+=("--allow-missing-template-keys") + local_nonpersistent_flags+=("--allow-missing-template-keys") + flags+=("--dry-run") + local_nonpersistent_flags+=("--dry-run") + flags+=("--output=") + two_word_flags+=("-o") + local_nonpersistent_flags+=("--output=") flags+=("--as=") flags+=("--as-group=") flags+=("--certificate-authority=") @@ -4067,8 +4234,28 @@ _oc_adm_policy_remove-role-from-group() flags_with_completion=() flags_completion=() + flags+=("--allow-missing-template-keys") + local_nonpersistent_flags+=("--allow-missing-template-keys") + flags+=("--dry-run") + local_nonpersistent_flags+=("--dry-run") + flags+=("--no-headers") + local_nonpersistent_flags+=("--no-headers") + flags+=("--output=") + two_word_flags+=("-o") + local_nonpersistent_flags+=("--output=") flags+=("--role-namespace=") local_nonpersistent_flags+=("--role-namespace=") + flags+=("--show-all") + flags+=("-a") + local_nonpersistent_flags+=("--show-all") + flags+=("--show-labels") + local_nonpersistent_flags+=("--show-labels") + flags+=("--sort-by=") + local_nonpersistent_flags+=("--sort-by=") + flags+=("--template=") + flags_with_completion+=("--template") + flags_completion+=("_filedir") + local_nonpersistent_flags+=("--template=") flags+=("--as=") flags+=("--as-group=") flags+=("--certificate-authority=") @@ -4112,11 +4299,31 @@ _oc_adm_policy_remove-role-from-user() flags_with_completion=() flags_completion=() + flags+=("--allow-missing-template-keys") + local_nonpersistent_flags+=("--allow-missing-template-keys") + flags+=("--dry-run") + local_nonpersistent_flags+=("--dry-run") + flags+=("--no-headers") + local_nonpersistent_flags+=("--no-headers") + flags+=("--output=") + two_word_flags+=("-o") + local_nonpersistent_flags+=("--output=") flags+=("--role-namespace=") local_nonpersistent_flags+=("--role-namespace=") flags+=("--serviceaccount=") two_word_flags+=("-z") local_nonpersistent_flags+=("--serviceaccount=") + flags+=("--show-all") + flags+=("-a") + local_nonpersistent_flags+=("--show-all") + flags+=("--show-labels") + local_nonpersistent_flags+=("--show-labels") + flags+=("--sort-by=") + local_nonpersistent_flags+=("--sort-by=") + flags+=("--template=") + flags_with_completion+=("--template") + flags_completion+=("_filedir") + local_nonpersistent_flags+=("--template=") flags+=("--as=") flags+=("--as-group=") flags+=("--certificate-authority=") @@ -4160,6 +4367,26 @@ _oc_adm_policy_remove-scc-from-group() flags_with_completion=() flags_completion=() + flags+=("--allow-missing-template-keys") + local_nonpersistent_flags+=("--allow-missing-template-keys") + flags+=("--dry-run") + local_nonpersistent_flags+=("--dry-run") + flags+=("--no-headers") + local_nonpersistent_flags+=("--no-headers") + flags+=("--output=") + two_word_flags+=("-o") + local_nonpersistent_flags+=("--output=") + flags+=("--show-all") + flags+=("-a") + local_nonpersistent_flags+=("--show-all") + flags+=("--show-labels") + local_nonpersistent_flags+=("--show-labels") + flags+=("--sort-by=") + local_nonpersistent_flags+=("--sort-by=") + flags+=("--template=") + flags_with_completion+=("--template") + flags_completion+=("_filedir") + local_nonpersistent_flags+=("--template=") flags+=("--as=") flags+=("--as-group=") flags+=("--certificate-authority=") @@ -4203,9 +4430,29 @@ _oc_adm_policy_remove-scc-from-user() flags_with_completion=() flags_completion=() + flags+=("--allow-missing-template-keys") + local_nonpersistent_flags+=("--allow-missing-template-keys") + flags+=("--dry-run") + local_nonpersistent_flags+=("--dry-run") + flags+=("--no-headers") + local_nonpersistent_flags+=("--no-headers") + flags+=("--output=") + two_word_flags+=("-o") + local_nonpersistent_flags+=("--output=") flags+=("--serviceaccount=") two_word_flags+=("-z") local_nonpersistent_flags+=("--serviceaccount=") + flags+=("--show-all") + flags+=("-a") + local_nonpersistent_flags+=("--show-all") + flags+=("--show-labels") + local_nonpersistent_flags+=("--show-labels") + flags+=("--sort-by=") + local_nonpersistent_flags+=("--sort-by=") + flags+=("--template=") + flags_with_completion+=("--template") + flags_completion+=("_filedir") + local_nonpersistent_flags+=("--template=") flags+=("--as=") flags+=("--as-group=") flags+=("--certificate-authority=") @@ -4249,6 +4496,26 @@ _oc_adm_policy_remove-user() flags_with_completion=() flags_completion=() + flags+=("--allow-missing-template-keys") + local_nonpersistent_flags+=("--allow-missing-template-keys") + flags+=("--dry-run") + local_nonpersistent_flags+=("--dry-run") + flags+=("--no-headers") + local_nonpersistent_flags+=("--no-headers") + flags+=("--output=") + two_word_flags+=("-o") + local_nonpersistent_flags+=("--output=") + flags+=("--show-all") + flags+=("-a") + local_nonpersistent_flags+=("--show-all") + flags+=("--show-labels") + local_nonpersistent_flags+=("--show-labels") + flags+=("--sort-by=") + local_nonpersistent_flags+=("--sort-by=") + flags+=("--template=") + flags_with_completion+=("--template") + flags_completion+=("_filedir") + local_nonpersistent_flags+=("--template=") flags+=("--as=") flags+=("--as-group=") flags+=("--certificate-authority=") @@ -4447,6 +4714,24 @@ _oc_adm_policy_who-can() flags+=("--all-namespaces") local_nonpersistent_flags+=("--all-namespaces") + flags+=("--allow-missing-template-keys") + local_nonpersistent_flags+=("--allow-missing-template-keys") + flags+=("--no-headers") + local_nonpersistent_flags+=("--no-headers") + flags+=("--output=") + two_word_flags+=("-o") + local_nonpersistent_flags+=("--output=") + flags+=("--show-all") + flags+=("-a") + local_nonpersistent_flags+=("--show-all") + flags+=("--show-labels") + local_nonpersistent_flags+=("--show-labels") + flags+=("--sort-by=") + local_nonpersistent_flags+=("--sort-by=") + flags+=("--template=") + flags_with_completion+=("--template") + flags_completion+=("_filedir") + local_nonpersistent_flags+=("--template=") flags+=("--as=") flags+=("--as-group=") flags+=("--certificate-authority=") @@ -13402,10 +13687,30 @@ _oc_policy_add-role-to-group() flags_with_completion=() flags_completion=() + flags+=("--allow-missing-template-keys") + local_nonpersistent_flags+=("--allow-missing-template-keys") + flags+=("--dry-run") + local_nonpersistent_flags+=("--dry-run") + flags+=("--no-headers") + local_nonpersistent_flags+=("--no-headers") + flags+=("--output=") + two_word_flags+=("-o") + local_nonpersistent_flags+=("--output=") flags+=("--role-namespace=") local_nonpersistent_flags+=("--role-namespace=") flags+=("--rolebinding-name=") local_nonpersistent_flags+=("--rolebinding-name=") + flags+=("--show-all") + flags+=("-a") + local_nonpersistent_flags+=("--show-all") + flags+=("--show-labels") + local_nonpersistent_flags+=("--show-labels") + flags+=("--sort-by=") + local_nonpersistent_flags+=("--sort-by=") + flags+=("--template=") + flags_with_completion+=("--template") + flags_completion+=("_filedir") + local_nonpersistent_flags+=("--template=") flags+=("--as=") flags+=("--as-group=") flags+=("--certificate-authority=") @@ -13453,6 +13758,15 @@ _oc_policy_add-role-to-user() flags_with_completion=() flags_completion=() + flags+=("--allow-missing-template-keys") + local_nonpersistent_flags+=("--allow-missing-template-keys") + flags+=("--dry-run") + local_nonpersistent_flags+=("--dry-run") + flags+=("--no-headers") + local_nonpersistent_flags+=("--no-headers") + flags+=("--output=") + two_word_flags+=("-o") + local_nonpersistent_flags+=("--output=") flags+=("--role-namespace=") local_nonpersistent_flags+=("--role-namespace=") flags+=("--rolebinding-name=") @@ -13460,6 +13774,17 @@ _oc_policy_add-role-to-user() flags+=("--serviceaccount=") two_word_flags+=("-z") local_nonpersistent_flags+=("--serviceaccount=") + flags+=("--show-all") + flags+=("-a") + local_nonpersistent_flags+=("--show-all") + flags+=("--show-labels") + local_nonpersistent_flags+=("--show-labels") + flags+=("--sort-by=") + local_nonpersistent_flags+=("--sort-by=") + flags+=("--template=") + flags_with_completion+=("--template") + flags_completion+=("_filedir") + local_nonpersistent_flags+=("--template=") flags+=("--as=") flags+=("--as-group=") flags+=("--certificate-authority=") @@ -13586,6 +13911,13 @@ _oc_policy_remove-group() flags_with_completion=() flags_completion=() + flags+=("--allow-missing-template-keys") + local_nonpersistent_flags+=("--allow-missing-template-keys") + flags+=("--dry-run") + local_nonpersistent_flags+=("--dry-run") + flags+=("--output=") + two_word_flags+=("-o") + local_nonpersistent_flags+=("--output=") flags+=("--as=") flags+=("--as-group=") flags+=("--certificate-authority=") @@ -13633,8 +13965,28 @@ _oc_policy_remove-role-from-group() flags_with_completion=() flags_completion=() + flags+=("--allow-missing-template-keys") + local_nonpersistent_flags+=("--allow-missing-template-keys") + flags+=("--dry-run") + local_nonpersistent_flags+=("--dry-run") + flags+=("--no-headers") + local_nonpersistent_flags+=("--no-headers") + flags+=("--output=") + two_word_flags+=("-o") + local_nonpersistent_flags+=("--output=") flags+=("--role-namespace=") local_nonpersistent_flags+=("--role-namespace=") + flags+=("--show-all") + flags+=("-a") + local_nonpersistent_flags+=("--show-all") + flags+=("--show-labels") + local_nonpersistent_flags+=("--show-labels") + flags+=("--sort-by=") + local_nonpersistent_flags+=("--sort-by=") + flags+=("--template=") + flags_with_completion+=("--template") + flags_completion+=("_filedir") + local_nonpersistent_flags+=("--template=") flags+=("--as=") flags+=("--as-group=") flags+=("--certificate-authority=") @@ -13682,11 +14034,31 @@ _oc_policy_remove-role-from-user() flags_with_completion=() flags_completion=() + flags+=("--allow-missing-template-keys") + local_nonpersistent_flags+=("--allow-missing-template-keys") + flags+=("--dry-run") + local_nonpersistent_flags+=("--dry-run") + flags+=("--no-headers") + local_nonpersistent_flags+=("--no-headers") + flags+=("--output=") + two_word_flags+=("-o") + local_nonpersistent_flags+=("--output=") flags+=("--role-namespace=") local_nonpersistent_flags+=("--role-namespace=") flags+=("--serviceaccount=") two_word_flags+=("-z") local_nonpersistent_flags+=("--serviceaccount=") + flags+=("--show-all") + flags+=("-a") + local_nonpersistent_flags+=("--show-all") + flags+=("--show-labels") + local_nonpersistent_flags+=("--show-labels") + flags+=("--sort-by=") + local_nonpersistent_flags+=("--sort-by=") + flags+=("--template=") + flags_with_completion+=("--template") + flags_completion+=("_filedir") + local_nonpersistent_flags+=("--template=") flags+=("--as=") flags+=("--as-group=") flags+=("--certificate-authority=") @@ -13734,6 +14106,26 @@ _oc_policy_remove-user() flags_with_completion=() flags_completion=() + flags+=("--allow-missing-template-keys") + local_nonpersistent_flags+=("--allow-missing-template-keys") + flags+=("--dry-run") + local_nonpersistent_flags+=("--dry-run") + flags+=("--no-headers") + local_nonpersistent_flags+=("--no-headers") + flags+=("--output=") + two_word_flags+=("-o") + local_nonpersistent_flags+=("--output=") + flags+=("--show-all") + flags+=("-a") + local_nonpersistent_flags+=("--show-all") + flags+=("--show-labels") + local_nonpersistent_flags+=("--show-labels") + flags+=("--sort-by=") + local_nonpersistent_flags+=("--sort-by=") + flags+=("--template=") + flags_with_completion+=("--template") + flags_completion+=("_filedir") + local_nonpersistent_flags+=("--template=") flags+=("--as=") flags+=("--as-group=") flags+=("--certificate-authority=") @@ -13944,6 +14336,24 @@ _oc_policy_who-can() flags+=("--all-namespaces") local_nonpersistent_flags+=("--all-namespaces") + flags+=("--allow-missing-template-keys") + local_nonpersistent_flags+=("--allow-missing-template-keys") + flags+=("--no-headers") + local_nonpersistent_flags+=("--no-headers") + flags+=("--output=") + two_word_flags+=("-o") + local_nonpersistent_flags+=("--output=") + flags+=("--show-all") + flags+=("-a") + local_nonpersistent_flags+=("--show-all") + flags+=("--show-labels") + local_nonpersistent_flags+=("--show-labels") + flags+=("--sort-by=") + local_nonpersistent_flags+=("--sort-by=") + flags+=("--template=") + flags_with_completion+=("--template") + flags_completion+=("_filedir") + local_nonpersistent_flags+=("--template=") flags+=("--as=") flags+=("--as-group=") flags+=("--certificate-authority=") diff --git a/contrib/completions/bash/openshift b/contrib/completions/bash/openshift index 5e58d7f7f89a..d791dfb0f4ef 100644 --- a/contrib/completions/bash/openshift +++ b/contrib/completions/bash/openshift @@ -3290,8 +3290,28 @@ _openshift_admin_policy_add-cluster-role-to-group() flags_with_completion=() flags_completion=() + flags+=("--allow-missing-template-keys") + local_nonpersistent_flags+=("--allow-missing-template-keys") + flags+=("--dry-run") + local_nonpersistent_flags+=("--dry-run") + flags+=("--no-headers") + local_nonpersistent_flags+=("--no-headers") + flags+=("--output=") + two_word_flags+=("-o") + local_nonpersistent_flags+=("--output=") flags+=("--rolebinding-name=") local_nonpersistent_flags+=("--rolebinding-name=") + flags+=("--show-all") + flags+=("-a") + local_nonpersistent_flags+=("--show-all") + flags+=("--show-labels") + local_nonpersistent_flags+=("--show-labels") + flags+=("--sort-by=") + local_nonpersistent_flags+=("--sort-by=") + flags+=("--template=") + flags_with_completion+=("--template") + flags_completion+=("_filedir") + local_nonpersistent_flags+=("--template=") flags+=("--as=") flags+=("--as-group=") flags+=("--certificate-authority=") @@ -3335,11 +3355,31 @@ _openshift_admin_policy_add-cluster-role-to-user() flags_with_completion=() flags_completion=() + flags+=("--allow-missing-template-keys") + local_nonpersistent_flags+=("--allow-missing-template-keys") + flags+=("--dry-run") + local_nonpersistent_flags+=("--dry-run") + flags+=("--no-headers") + local_nonpersistent_flags+=("--no-headers") + flags+=("--output=") + two_word_flags+=("-o") + local_nonpersistent_flags+=("--output=") flags+=("--rolebinding-name=") local_nonpersistent_flags+=("--rolebinding-name=") flags+=("--serviceaccount=") two_word_flags+=("-z") local_nonpersistent_flags+=("--serviceaccount=") + flags+=("--show-all") + flags+=("-a") + local_nonpersistent_flags+=("--show-all") + flags+=("--show-labels") + local_nonpersistent_flags+=("--show-labels") + flags+=("--sort-by=") + local_nonpersistent_flags+=("--sort-by=") + flags+=("--template=") + flags_with_completion+=("--template") + flags_completion+=("_filedir") + local_nonpersistent_flags+=("--template=") flags+=("--as=") flags+=("--as-group=") flags+=("--certificate-authority=") @@ -3383,10 +3423,30 @@ _openshift_admin_policy_add-role-to-group() flags_with_completion=() flags_completion=() + flags+=("--allow-missing-template-keys") + local_nonpersistent_flags+=("--allow-missing-template-keys") + flags+=("--dry-run") + local_nonpersistent_flags+=("--dry-run") + flags+=("--no-headers") + local_nonpersistent_flags+=("--no-headers") + flags+=("--output=") + two_word_flags+=("-o") + local_nonpersistent_flags+=("--output=") flags+=("--role-namespace=") local_nonpersistent_flags+=("--role-namespace=") flags+=("--rolebinding-name=") local_nonpersistent_flags+=("--rolebinding-name=") + flags+=("--show-all") + flags+=("-a") + local_nonpersistent_flags+=("--show-all") + flags+=("--show-labels") + local_nonpersistent_flags+=("--show-labels") + flags+=("--sort-by=") + local_nonpersistent_flags+=("--sort-by=") + flags+=("--template=") + flags_with_completion+=("--template") + flags_completion+=("_filedir") + local_nonpersistent_flags+=("--template=") flags+=("--as=") flags+=("--as-group=") flags+=("--certificate-authority=") @@ -3430,6 +3490,15 @@ _openshift_admin_policy_add-role-to-user() flags_with_completion=() flags_completion=() + flags+=("--allow-missing-template-keys") + local_nonpersistent_flags+=("--allow-missing-template-keys") + flags+=("--dry-run") + local_nonpersistent_flags+=("--dry-run") + flags+=("--no-headers") + local_nonpersistent_flags+=("--no-headers") + flags+=("--output=") + two_word_flags+=("-o") + local_nonpersistent_flags+=("--output=") flags+=("--role-namespace=") local_nonpersistent_flags+=("--role-namespace=") flags+=("--rolebinding-name=") @@ -3437,6 +3506,17 @@ _openshift_admin_policy_add-role-to-user() flags+=("--serviceaccount=") two_word_flags+=("-z") local_nonpersistent_flags+=("--serviceaccount=") + flags+=("--show-all") + flags+=("-a") + local_nonpersistent_flags+=("--show-all") + flags+=("--show-labels") + local_nonpersistent_flags+=("--show-labels") + flags+=("--sort-by=") + local_nonpersistent_flags+=("--sort-by=") + flags+=("--template=") + flags_with_completion+=("--template") + flags_completion+=("_filedir") + local_nonpersistent_flags+=("--template=") flags+=("--as=") flags+=("--as-group=") flags+=("--certificate-authority=") @@ -3480,6 +3560,26 @@ _openshift_admin_policy_add-scc-to-group() flags_with_completion=() flags_completion=() + flags+=("--allow-missing-template-keys") + local_nonpersistent_flags+=("--allow-missing-template-keys") + flags+=("--dry-run") + local_nonpersistent_flags+=("--dry-run") + flags+=("--no-headers") + local_nonpersistent_flags+=("--no-headers") + flags+=("--output=") + two_word_flags+=("-o") + local_nonpersistent_flags+=("--output=") + flags+=("--show-all") + flags+=("-a") + local_nonpersistent_flags+=("--show-all") + flags+=("--show-labels") + local_nonpersistent_flags+=("--show-labels") + flags+=("--sort-by=") + local_nonpersistent_flags+=("--sort-by=") + flags+=("--template=") + flags_with_completion+=("--template") + flags_completion+=("_filedir") + local_nonpersistent_flags+=("--template=") flags+=("--as=") flags+=("--as-group=") flags+=("--certificate-authority=") @@ -3523,9 +3623,29 @@ _openshift_admin_policy_add-scc-to-user() flags_with_completion=() flags_completion=() + flags+=("--allow-missing-template-keys") + local_nonpersistent_flags+=("--allow-missing-template-keys") + flags+=("--dry-run") + local_nonpersistent_flags+=("--dry-run") + flags+=("--no-headers") + local_nonpersistent_flags+=("--no-headers") + flags+=("--output=") + two_word_flags+=("-o") + local_nonpersistent_flags+=("--output=") flags+=("--serviceaccount=") two_word_flags+=("-z") local_nonpersistent_flags+=("--serviceaccount=") + flags+=("--show-all") + flags+=("-a") + local_nonpersistent_flags+=("--show-all") + flags+=("--show-labels") + local_nonpersistent_flags+=("--show-labels") + flags+=("--sort-by=") + local_nonpersistent_flags+=("--sort-by=") + flags+=("--template=") + flags_with_completion+=("--template") + flags_completion+=("_filedir") + local_nonpersistent_flags+=("--template=") flags+=("--as=") flags+=("--as-group=") flags+=("--certificate-authority=") @@ -3770,6 +3890,26 @@ _openshift_admin_policy_remove-cluster-role-from-group() flags_with_completion=() flags_completion=() + flags+=("--allow-missing-template-keys") + local_nonpersistent_flags+=("--allow-missing-template-keys") + flags+=("--dry-run") + local_nonpersistent_flags+=("--dry-run") + flags+=("--no-headers") + local_nonpersistent_flags+=("--no-headers") + flags+=("--output=") + two_word_flags+=("-o") + local_nonpersistent_flags+=("--output=") + flags+=("--show-all") + flags+=("-a") + local_nonpersistent_flags+=("--show-all") + flags+=("--show-labels") + local_nonpersistent_flags+=("--show-labels") + flags+=("--sort-by=") + local_nonpersistent_flags+=("--sort-by=") + flags+=("--template=") + flags_with_completion+=("--template") + flags_completion+=("_filedir") + local_nonpersistent_flags+=("--template=") flags+=("--as=") flags+=("--as-group=") flags+=("--certificate-authority=") @@ -3813,9 +3953,29 @@ _openshift_admin_policy_remove-cluster-role-from-user() flags_with_completion=() flags_completion=() + flags+=("--allow-missing-template-keys") + local_nonpersistent_flags+=("--allow-missing-template-keys") + flags+=("--dry-run") + local_nonpersistent_flags+=("--dry-run") + flags+=("--no-headers") + local_nonpersistent_flags+=("--no-headers") + flags+=("--output=") + two_word_flags+=("-o") + local_nonpersistent_flags+=("--output=") flags+=("--serviceaccount=") two_word_flags+=("-z") local_nonpersistent_flags+=("--serviceaccount=") + flags+=("--show-all") + flags+=("-a") + local_nonpersistent_flags+=("--show-all") + flags+=("--show-labels") + local_nonpersistent_flags+=("--show-labels") + flags+=("--sort-by=") + local_nonpersistent_flags+=("--sort-by=") + flags+=("--template=") + flags_with_completion+=("--template") + flags_completion+=("_filedir") + local_nonpersistent_flags+=("--template=") flags+=("--as=") flags+=("--as-group=") flags+=("--certificate-authority=") @@ -3859,6 +4019,13 @@ _openshift_admin_policy_remove-group() flags_with_completion=() flags_completion=() + flags+=("--allow-missing-template-keys") + local_nonpersistent_flags+=("--allow-missing-template-keys") + flags+=("--dry-run") + local_nonpersistent_flags+=("--dry-run") + flags+=("--output=") + two_word_flags+=("-o") + local_nonpersistent_flags+=("--output=") flags+=("--as=") flags+=("--as-group=") flags+=("--certificate-authority=") @@ -3902,8 +4069,28 @@ _openshift_admin_policy_remove-role-from-group() flags_with_completion=() flags_completion=() + flags+=("--allow-missing-template-keys") + local_nonpersistent_flags+=("--allow-missing-template-keys") + flags+=("--dry-run") + local_nonpersistent_flags+=("--dry-run") + flags+=("--no-headers") + local_nonpersistent_flags+=("--no-headers") + flags+=("--output=") + two_word_flags+=("-o") + local_nonpersistent_flags+=("--output=") flags+=("--role-namespace=") local_nonpersistent_flags+=("--role-namespace=") + flags+=("--show-all") + flags+=("-a") + local_nonpersistent_flags+=("--show-all") + flags+=("--show-labels") + local_nonpersistent_flags+=("--show-labels") + flags+=("--sort-by=") + local_nonpersistent_flags+=("--sort-by=") + flags+=("--template=") + flags_with_completion+=("--template") + flags_completion+=("_filedir") + local_nonpersistent_flags+=("--template=") flags+=("--as=") flags+=("--as-group=") flags+=("--certificate-authority=") @@ -3947,11 +4134,31 @@ _openshift_admin_policy_remove-role-from-user() flags_with_completion=() flags_completion=() + flags+=("--allow-missing-template-keys") + local_nonpersistent_flags+=("--allow-missing-template-keys") + flags+=("--dry-run") + local_nonpersistent_flags+=("--dry-run") + flags+=("--no-headers") + local_nonpersistent_flags+=("--no-headers") + flags+=("--output=") + two_word_flags+=("-o") + local_nonpersistent_flags+=("--output=") flags+=("--role-namespace=") local_nonpersistent_flags+=("--role-namespace=") flags+=("--serviceaccount=") two_word_flags+=("-z") local_nonpersistent_flags+=("--serviceaccount=") + flags+=("--show-all") + flags+=("-a") + local_nonpersistent_flags+=("--show-all") + flags+=("--show-labels") + local_nonpersistent_flags+=("--show-labels") + flags+=("--sort-by=") + local_nonpersistent_flags+=("--sort-by=") + flags+=("--template=") + flags_with_completion+=("--template") + flags_completion+=("_filedir") + local_nonpersistent_flags+=("--template=") flags+=("--as=") flags+=("--as-group=") flags+=("--certificate-authority=") @@ -3995,6 +4202,26 @@ _openshift_admin_policy_remove-scc-from-group() flags_with_completion=() flags_completion=() + flags+=("--allow-missing-template-keys") + local_nonpersistent_flags+=("--allow-missing-template-keys") + flags+=("--dry-run") + local_nonpersistent_flags+=("--dry-run") + flags+=("--no-headers") + local_nonpersistent_flags+=("--no-headers") + flags+=("--output=") + two_word_flags+=("-o") + local_nonpersistent_flags+=("--output=") + flags+=("--show-all") + flags+=("-a") + local_nonpersistent_flags+=("--show-all") + flags+=("--show-labels") + local_nonpersistent_flags+=("--show-labels") + flags+=("--sort-by=") + local_nonpersistent_flags+=("--sort-by=") + flags+=("--template=") + flags_with_completion+=("--template") + flags_completion+=("_filedir") + local_nonpersistent_flags+=("--template=") flags+=("--as=") flags+=("--as-group=") flags+=("--certificate-authority=") @@ -4038,9 +4265,29 @@ _openshift_admin_policy_remove-scc-from-user() flags_with_completion=() flags_completion=() + flags+=("--allow-missing-template-keys") + local_nonpersistent_flags+=("--allow-missing-template-keys") + flags+=("--dry-run") + local_nonpersistent_flags+=("--dry-run") + flags+=("--no-headers") + local_nonpersistent_flags+=("--no-headers") + flags+=("--output=") + two_word_flags+=("-o") + local_nonpersistent_flags+=("--output=") flags+=("--serviceaccount=") two_word_flags+=("-z") local_nonpersistent_flags+=("--serviceaccount=") + flags+=("--show-all") + flags+=("-a") + local_nonpersistent_flags+=("--show-all") + flags+=("--show-labels") + local_nonpersistent_flags+=("--show-labels") + flags+=("--sort-by=") + local_nonpersistent_flags+=("--sort-by=") + flags+=("--template=") + flags_with_completion+=("--template") + flags_completion+=("_filedir") + local_nonpersistent_flags+=("--template=") flags+=("--as=") flags+=("--as-group=") flags+=("--certificate-authority=") @@ -4084,6 +4331,26 @@ _openshift_admin_policy_remove-user() flags_with_completion=() flags_completion=() + flags+=("--allow-missing-template-keys") + local_nonpersistent_flags+=("--allow-missing-template-keys") + flags+=("--dry-run") + local_nonpersistent_flags+=("--dry-run") + flags+=("--no-headers") + local_nonpersistent_flags+=("--no-headers") + flags+=("--output=") + two_word_flags+=("-o") + local_nonpersistent_flags+=("--output=") + flags+=("--show-all") + flags+=("-a") + local_nonpersistent_flags+=("--show-all") + flags+=("--show-labels") + local_nonpersistent_flags+=("--show-labels") + flags+=("--sort-by=") + local_nonpersistent_flags+=("--sort-by=") + flags+=("--template=") + flags_with_completion+=("--template") + flags_completion+=("_filedir") + local_nonpersistent_flags+=("--template=") flags+=("--as=") flags+=("--as-group=") flags+=("--certificate-authority=") @@ -4282,6 +4549,24 @@ _openshift_admin_policy_who-can() flags+=("--all-namespaces") local_nonpersistent_flags+=("--all-namespaces") + flags+=("--allow-missing-template-keys") + local_nonpersistent_flags+=("--allow-missing-template-keys") + flags+=("--no-headers") + local_nonpersistent_flags+=("--no-headers") + flags+=("--output=") + two_word_flags+=("-o") + local_nonpersistent_flags+=("--output=") + flags+=("--show-all") + flags+=("-a") + local_nonpersistent_flags+=("--show-all") + flags+=("--show-labels") + local_nonpersistent_flags+=("--show-labels") + flags+=("--sort-by=") + local_nonpersistent_flags+=("--sort-by=") + flags+=("--template=") + flags_with_completion+=("--template") + flags_completion+=("_filedir") + local_nonpersistent_flags+=("--template=") flags+=("--as=") flags+=("--as-group=") flags+=("--certificate-authority=") @@ -8430,8 +8715,28 @@ _openshift_cli_adm_policy_add-cluster-role-to-group() flags_with_completion=() flags_completion=() + flags+=("--allow-missing-template-keys") + local_nonpersistent_flags+=("--allow-missing-template-keys") + flags+=("--dry-run") + local_nonpersistent_flags+=("--dry-run") + flags+=("--no-headers") + local_nonpersistent_flags+=("--no-headers") + flags+=("--output=") + two_word_flags+=("-o") + local_nonpersistent_flags+=("--output=") flags+=("--rolebinding-name=") local_nonpersistent_flags+=("--rolebinding-name=") + flags+=("--show-all") + flags+=("-a") + local_nonpersistent_flags+=("--show-all") + flags+=("--show-labels") + local_nonpersistent_flags+=("--show-labels") + flags+=("--sort-by=") + local_nonpersistent_flags+=("--sort-by=") + flags+=("--template=") + flags_with_completion+=("--template") + flags_completion+=("_filedir") + local_nonpersistent_flags+=("--template=") flags+=("--as=") flags+=("--as-group=") flags+=("--certificate-authority=") @@ -8475,11 +8780,31 @@ _openshift_cli_adm_policy_add-cluster-role-to-user() flags_with_completion=() flags_completion=() + flags+=("--allow-missing-template-keys") + local_nonpersistent_flags+=("--allow-missing-template-keys") + flags+=("--dry-run") + local_nonpersistent_flags+=("--dry-run") + flags+=("--no-headers") + local_nonpersistent_flags+=("--no-headers") + flags+=("--output=") + two_word_flags+=("-o") + local_nonpersistent_flags+=("--output=") flags+=("--rolebinding-name=") local_nonpersistent_flags+=("--rolebinding-name=") flags+=("--serviceaccount=") two_word_flags+=("-z") local_nonpersistent_flags+=("--serviceaccount=") + flags+=("--show-all") + flags+=("-a") + local_nonpersistent_flags+=("--show-all") + flags+=("--show-labels") + local_nonpersistent_flags+=("--show-labels") + flags+=("--sort-by=") + local_nonpersistent_flags+=("--sort-by=") + flags+=("--template=") + flags_with_completion+=("--template") + flags_completion+=("_filedir") + local_nonpersistent_flags+=("--template=") flags+=("--as=") flags+=("--as-group=") flags+=("--certificate-authority=") @@ -8523,10 +8848,30 @@ _openshift_cli_adm_policy_add-role-to-group() flags_with_completion=() flags_completion=() + flags+=("--allow-missing-template-keys") + local_nonpersistent_flags+=("--allow-missing-template-keys") + flags+=("--dry-run") + local_nonpersistent_flags+=("--dry-run") + flags+=("--no-headers") + local_nonpersistent_flags+=("--no-headers") + flags+=("--output=") + two_word_flags+=("-o") + local_nonpersistent_flags+=("--output=") flags+=("--role-namespace=") local_nonpersistent_flags+=("--role-namespace=") flags+=("--rolebinding-name=") local_nonpersistent_flags+=("--rolebinding-name=") + flags+=("--show-all") + flags+=("-a") + local_nonpersistent_flags+=("--show-all") + flags+=("--show-labels") + local_nonpersistent_flags+=("--show-labels") + flags+=("--sort-by=") + local_nonpersistent_flags+=("--sort-by=") + flags+=("--template=") + flags_with_completion+=("--template") + flags_completion+=("_filedir") + local_nonpersistent_flags+=("--template=") flags+=("--as=") flags+=("--as-group=") flags+=("--certificate-authority=") @@ -8570,6 +8915,15 @@ _openshift_cli_adm_policy_add-role-to-user() flags_with_completion=() flags_completion=() + flags+=("--allow-missing-template-keys") + local_nonpersistent_flags+=("--allow-missing-template-keys") + flags+=("--dry-run") + local_nonpersistent_flags+=("--dry-run") + flags+=("--no-headers") + local_nonpersistent_flags+=("--no-headers") + flags+=("--output=") + two_word_flags+=("-o") + local_nonpersistent_flags+=("--output=") flags+=("--role-namespace=") local_nonpersistent_flags+=("--role-namespace=") flags+=("--rolebinding-name=") @@ -8577,6 +8931,17 @@ _openshift_cli_adm_policy_add-role-to-user() flags+=("--serviceaccount=") two_word_flags+=("-z") local_nonpersistent_flags+=("--serviceaccount=") + flags+=("--show-all") + flags+=("-a") + local_nonpersistent_flags+=("--show-all") + flags+=("--show-labels") + local_nonpersistent_flags+=("--show-labels") + flags+=("--sort-by=") + local_nonpersistent_flags+=("--sort-by=") + flags+=("--template=") + flags_with_completion+=("--template") + flags_completion+=("_filedir") + local_nonpersistent_flags+=("--template=") flags+=("--as=") flags+=("--as-group=") flags+=("--certificate-authority=") @@ -8620,6 +8985,26 @@ _openshift_cli_adm_policy_add-scc-to-group() flags_with_completion=() flags_completion=() + flags+=("--allow-missing-template-keys") + local_nonpersistent_flags+=("--allow-missing-template-keys") + flags+=("--dry-run") + local_nonpersistent_flags+=("--dry-run") + flags+=("--no-headers") + local_nonpersistent_flags+=("--no-headers") + flags+=("--output=") + two_word_flags+=("-o") + local_nonpersistent_flags+=("--output=") + flags+=("--show-all") + flags+=("-a") + local_nonpersistent_flags+=("--show-all") + flags+=("--show-labels") + local_nonpersistent_flags+=("--show-labels") + flags+=("--sort-by=") + local_nonpersistent_flags+=("--sort-by=") + flags+=("--template=") + flags_with_completion+=("--template") + flags_completion+=("_filedir") + local_nonpersistent_flags+=("--template=") flags+=("--as=") flags+=("--as-group=") flags+=("--certificate-authority=") @@ -8663,9 +9048,29 @@ _openshift_cli_adm_policy_add-scc-to-user() flags_with_completion=() flags_completion=() + flags+=("--allow-missing-template-keys") + local_nonpersistent_flags+=("--allow-missing-template-keys") + flags+=("--dry-run") + local_nonpersistent_flags+=("--dry-run") + flags+=("--no-headers") + local_nonpersistent_flags+=("--no-headers") + flags+=("--output=") + two_word_flags+=("-o") + local_nonpersistent_flags+=("--output=") flags+=("--serviceaccount=") two_word_flags+=("-z") local_nonpersistent_flags+=("--serviceaccount=") + flags+=("--show-all") + flags+=("-a") + local_nonpersistent_flags+=("--show-all") + flags+=("--show-labels") + local_nonpersistent_flags+=("--show-labels") + flags+=("--sort-by=") + local_nonpersistent_flags+=("--sort-by=") + flags+=("--template=") + flags_with_completion+=("--template") + flags_completion+=("_filedir") + local_nonpersistent_flags+=("--template=") flags+=("--as=") flags+=("--as-group=") flags+=("--certificate-authority=") @@ -8910,6 +9315,26 @@ _openshift_cli_adm_policy_remove-cluster-role-from-group() flags_with_completion=() flags_completion=() + flags+=("--allow-missing-template-keys") + local_nonpersistent_flags+=("--allow-missing-template-keys") + flags+=("--dry-run") + local_nonpersistent_flags+=("--dry-run") + flags+=("--no-headers") + local_nonpersistent_flags+=("--no-headers") + flags+=("--output=") + two_word_flags+=("-o") + local_nonpersistent_flags+=("--output=") + flags+=("--show-all") + flags+=("-a") + local_nonpersistent_flags+=("--show-all") + flags+=("--show-labels") + local_nonpersistent_flags+=("--show-labels") + flags+=("--sort-by=") + local_nonpersistent_flags+=("--sort-by=") + flags+=("--template=") + flags_with_completion+=("--template") + flags_completion+=("_filedir") + local_nonpersistent_flags+=("--template=") flags+=("--as=") flags+=("--as-group=") flags+=("--certificate-authority=") @@ -8953,9 +9378,29 @@ _openshift_cli_adm_policy_remove-cluster-role-from-user() flags_with_completion=() flags_completion=() + flags+=("--allow-missing-template-keys") + local_nonpersistent_flags+=("--allow-missing-template-keys") + flags+=("--dry-run") + local_nonpersistent_flags+=("--dry-run") + flags+=("--no-headers") + local_nonpersistent_flags+=("--no-headers") + flags+=("--output=") + two_word_flags+=("-o") + local_nonpersistent_flags+=("--output=") flags+=("--serviceaccount=") two_word_flags+=("-z") local_nonpersistent_flags+=("--serviceaccount=") + flags+=("--show-all") + flags+=("-a") + local_nonpersistent_flags+=("--show-all") + flags+=("--show-labels") + local_nonpersistent_flags+=("--show-labels") + flags+=("--sort-by=") + local_nonpersistent_flags+=("--sort-by=") + flags+=("--template=") + flags_with_completion+=("--template") + flags_completion+=("_filedir") + local_nonpersistent_flags+=("--template=") flags+=("--as=") flags+=("--as-group=") flags+=("--certificate-authority=") @@ -8999,6 +9444,13 @@ _openshift_cli_adm_policy_remove-group() flags_with_completion=() flags_completion=() + flags+=("--allow-missing-template-keys") + local_nonpersistent_flags+=("--allow-missing-template-keys") + flags+=("--dry-run") + local_nonpersistent_flags+=("--dry-run") + flags+=("--output=") + two_word_flags+=("-o") + local_nonpersistent_flags+=("--output=") flags+=("--as=") flags+=("--as-group=") flags+=("--certificate-authority=") @@ -9042,8 +9494,28 @@ _openshift_cli_adm_policy_remove-role-from-group() flags_with_completion=() flags_completion=() + flags+=("--allow-missing-template-keys") + local_nonpersistent_flags+=("--allow-missing-template-keys") + flags+=("--dry-run") + local_nonpersistent_flags+=("--dry-run") + flags+=("--no-headers") + local_nonpersistent_flags+=("--no-headers") + flags+=("--output=") + two_word_flags+=("-o") + local_nonpersistent_flags+=("--output=") flags+=("--role-namespace=") local_nonpersistent_flags+=("--role-namespace=") + flags+=("--show-all") + flags+=("-a") + local_nonpersistent_flags+=("--show-all") + flags+=("--show-labels") + local_nonpersistent_flags+=("--show-labels") + flags+=("--sort-by=") + local_nonpersistent_flags+=("--sort-by=") + flags+=("--template=") + flags_with_completion+=("--template") + flags_completion+=("_filedir") + local_nonpersistent_flags+=("--template=") flags+=("--as=") flags+=("--as-group=") flags+=("--certificate-authority=") @@ -9087,11 +9559,31 @@ _openshift_cli_adm_policy_remove-role-from-user() flags_with_completion=() flags_completion=() + flags+=("--allow-missing-template-keys") + local_nonpersistent_flags+=("--allow-missing-template-keys") + flags+=("--dry-run") + local_nonpersistent_flags+=("--dry-run") + flags+=("--no-headers") + local_nonpersistent_flags+=("--no-headers") + flags+=("--output=") + two_word_flags+=("-o") + local_nonpersistent_flags+=("--output=") flags+=("--role-namespace=") local_nonpersistent_flags+=("--role-namespace=") flags+=("--serviceaccount=") two_word_flags+=("-z") local_nonpersistent_flags+=("--serviceaccount=") + flags+=("--show-all") + flags+=("-a") + local_nonpersistent_flags+=("--show-all") + flags+=("--show-labels") + local_nonpersistent_flags+=("--show-labels") + flags+=("--sort-by=") + local_nonpersistent_flags+=("--sort-by=") + flags+=("--template=") + flags_with_completion+=("--template") + flags_completion+=("_filedir") + local_nonpersistent_flags+=("--template=") flags+=("--as=") flags+=("--as-group=") flags+=("--certificate-authority=") @@ -9135,6 +9627,26 @@ _openshift_cli_adm_policy_remove-scc-from-group() flags_with_completion=() flags_completion=() + flags+=("--allow-missing-template-keys") + local_nonpersistent_flags+=("--allow-missing-template-keys") + flags+=("--dry-run") + local_nonpersistent_flags+=("--dry-run") + flags+=("--no-headers") + local_nonpersistent_flags+=("--no-headers") + flags+=("--output=") + two_word_flags+=("-o") + local_nonpersistent_flags+=("--output=") + flags+=("--show-all") + flags+=("-a") + local_nonpersistent_flags+=("--show-all") + flags+=("--show-labels") + local_nonpersistent_flags+=("--show-labels") + flags+=("--sort-by=") + local_nonpersistent_flags+=("--sort-by=") + flags+=("--template=") + flags_with_completion+=("--template") + flags_completion+=("_filedir") + local_nonpersistent_flags+=("--template=") flags+=("--as=") flags+=("--as-group=") flags+=("--certificate-authority=") @@ -9178,9 +9690,29 @@ _openshift_cli_adm_policy_remove-scc-from-user() flags_with_completion=() flags_completion=() + flags+=("--allow-missing-template-keys") + local_nonpersistent_flags+=("--allow-missing-template-keys") + flags+=("--dry-run") + local_nonpersistent_flags+=("--dry-run") + flags+=("--no-headers") + local_nonpersistent_flags+=("--no-headers") + flags+=("--output=") + two_word_flags+=("-o") + local_nonpersistent_flags+=("--output=") flags+=("--serviceaccount=") two_word_flags+=("-z") local_nonpersistent_flags+=("--serviceaccount=") + flags+=("--show-all") + flags+=("-a") + local_nonpersistent_flags+=("--show-all") + flags+=("--show-labels") + local_nonpersistent_flags+=("--show-labels") + flags+=("--sort-by=") + local_nonpersistent_flags+=("--sort-by=") + flags+=("--template=") + flags_with_completion+=("--template") + flags_completion+=("_filedir") + local_nonpersistent_flags+=("--template=") flags+=("--as=") flags+=("--as-group=") flags+=("--certificate-authority=") @@ -9224,6 +9756,26 @@ _openshift_cli_adm_policy_remove-user() flags_with_completion=() flags_completion=() + flags+=("--allow-missing-template-keys") + local_nonpersistent_flags+=("--allow-missing-template-keys") + flags+=("--dry-run") + local_nonpersistent_flags+=("--dry-run") + flags+=("--no-headers") + local_nonpersistent_flags+=("--no-headers") + flags+=("--output=") + two_word_flags+=("-o") + local_nonpersistent_flags+=("--output=") + flags+=("--show-all") + flags+=("-a") + local_nonpersistent_flags+=("--show-all") + flags+=("--show-labels") + local_nonpersistent_flags+=("--show-labels") + flags+=("--sort-by=") + local_nonpersistent_flags+=("--sort-by=") + flags+=("--template=") + flags_with_completion+=("--template") + flags_completion+=("_filedir") + local_nonpersistent_flags+=("--template=") flags+=("--as=") flags+=("--as-group=") flags+=("--certificate-authority=") @@ -9422,6 +9974,24 @@ _openshift_cli_adm_policy_who-can() flags+=("--all-namespaces") local_nonpersistent_flags+=("--all-namespaces") + flags+=("--allow-missing-template-keys") + local_nonpersistent_flags+=("--allow-missing-template-keys") + flags+=("--no-headers") + local_nonpersistent_flags+=("--no-headers") + flags+=("--output=") + two_word_flags+=("-o") + local_nonpersistent_flags+=("--output=") + flags+=("--show-all") + flags+=("-a") + local_nonpersistent_flags+=("--show-all") + flags+=("--show-labels") + local_nonpersistent_flags+=("--show-labels") + flags+=("--sort-by=") + local_nonpersistent_flags+=("--sort-by=") + flags+=("--template=") + flags_with_completion+=("--template") + flags_completion+=("_filedir") + local_nonpersistent_flags+=("--template=") flags+=("--as=") flags+=("--as-group=") flags+=("--certificate-authority=") @@ -18377,10 +18947,30 @@ _openshift_cli_policy_add-role-to-group() flags_with_completion=() flags_completion=() + flags+=("--allow-missing-template-keys") + local_nonpersistent_flags+=("--allow-missing-template-keys") + flags+=("--dry-run") + local_nonpersistent_flags+=("--dry-run") + flags+=("--no-headers") + local_nonpersistent_flags+=("--no-headers") + flags+=("--output=") + two_word_flags+=("-o") + local_nonpersistent_flags+=("--output=") flags+=("--role-namespace=") local_nonpersistent_flags+=("--role-namespace=") flags+=("--rolebinding-name=") local_nonpersistent_flags+=("--rolebinding-name=") + flags+=("--show-all") + flags+=("-a") + local_nonpersistent_flags+=("--show-all") + flags+=("--show-labels") + local_nonpersistent_flags+=("--show-labels") + flags+=("--sort-by=") + local_nonpersistent_flags+=("--sort-by=") + flags+=("--template=") + flags_with_completion+=("--template") + flags_completion+=("_filedir") + local_nonpersistent_flags+=("--template=") flags+=("--as=") flags+=("--as-group=") flags+=("--certificate-authority=") @@ -18428,6 +19018,15 @@ _openshift_cli_policy_add-role-to-user() flags_with_completion=() flags_completion=() + flags+=("--allow-missing-template-keys") + local_nonpersistent_flags+=("--allow-missing-template-keys") + flags+=("--dry-run") + local_nonpersistent_flags+=("--dry-run") + flags+=("--no-headers") + local_nonpersistent_flags+=("--no-headers") + flags+=("--output=") + two_word_flags+=("-o") + local_nonpersistent_flags+=("--output=") flags+=("--role-namespace=") local_nonpersistent_flags+=("--role-namespace=") flags+=("--rolebinding-name=") @@ -18435,6 +19034,17 @@ _openshift_cli_policy_add-role-to-user() flags+=("--serviceaccount=") two_word_flags+=("-z") local_nonpersistent_flags+=("--serviceaccount=") + flags+=("--show-all") + flags+=("-a") + local_nonpersistent_flags+=("--show-all") + flags+=("--show-labels") + local_nonpersistent_flags+=("--show-labels") + flags+=("--sort-by=") + local_nonpersistent_flags+=("--sort-by=") + flags+=("--template=") + flags_with_completion+=("--template") + flags_completion+=("_filedir") + local_nonpersistent_flags+=("--template=") flags+=("--as=") flags+=("--as-group=") flags+=("--certificate-authority=") @@ -18561,6 +19171,13 @@ _openshift_cli_policy_remove-group() flags_with_completion=() flags_completion=() + flags+=("--allow-missing-template-keys") + local_nonpersistent_flags+=("--allow-missing-template-keys") + flags+=("--dry-run") + local_nonpersistent_flags+=("--dry-run") + flags+=("--output=") + two_word_flags+=("-o") + local_nonpersistent_flags+=("--output=") flags+=("--as=") flags+=("--as-group=") flags+=("--certificate-authority=") @@ -18608,8 +19225,28 @@ _openshift_cli_policy_remove-role-from-group() flags_with_completion=() flags_completion=() + flags+=("--allow-missing-template-keys") + local_nonpersistent_flags+=("--allow-missing-template-keys") + flags+=("--dry-run") + local_nonpersistent_flags+=("--dry-run") + flags+=("--no-headers") + local_nonpersistent_flags+=("--no-headers") + flags+=("--output=") + two_word_flags+=("-o") + local_nonpersistent_flags+=("--output=") flags+=("--role-namespace=") local_nonpersistent_flags+=("--role-namespace=") + flags+=("--show-all") + flags+=("-a") + local_nonpersistent_flags+=("--show-all") + flags+=("--show-labels") + local_nonpersistent_flags+=("--show-labels") + flags+=("--sort-by=") + local_nonpersistent_flags+=("--sort-by=") + flags+=("--template=") + flags_with_completion+=("--template") + flags_completion+=("_filedir") + local_nonpersistent_flags+=("--template=") flags+=("--as=") flags+=("--as-group=") flags+=("--certificate-authority=") @@ -18657,11 +19294,31 @@ _openshift_cli_policy_remove-role-from-user() flags_with_completion=() flags_completion=() + flags+=("--allow-missing-template-keys") + local_nonpersistent_flags+=("--allow-missing-template-keys") + flags+=("--dry-run") + local_nonpersistent_flags+=("--dry-run") + flags+=("--no-headers") + local_nonpersistent_flags+=("--no-headers") + flags+=("--output=") + two_word_flags+=("-o") + local_nonpersistent_flags+=("--output=") flags+=("--role-namespace=") local_nonpersistent_flags+=("--role-namespace=") flags+=("--serviceaccount=") two_word_flags+=("-z") local_nonpersistent_flags+=("--serviceaccount=") + flags+=("--show-all") + flags+=("-a") + local_nonpersistent_flags+=("--show-all") + flags+=("--show-labels") + local_nonpersistent_flags+=("--show-labels") + flags+=("--sort-by=") + local_nonpersistent_flags+=("--sort-by=") + flags+=("--template=") + flags_with_completion+=("--template") + flags_completion+=("_filedir") + local_nonpersistent_flags+=("--template=") flags+=("--as=") flags+=("--as-group=") flags+=("--certificate-authority=") @@ -18709,6 +19366,26 @@ _openshift_cli_policy_remove-user() flags_with_completion=() flags_completion=() + flags+=("--allow-missing-template-keys") + local_nonpersistent_flags+=("--allow-missing-template-keys") + flags+=("--dry-run") + local_nonpersistent_flags+=("--dry-run") + flags+=("--no-headers") + local_nonpersistent_flags+=("--no-headers") + flags+=("--output=") + two_word_flags+=("-o") + local_nonpersistent_flags+=("--output=") + flags+=("--show-all") + flags+=("-a") + local_nonpersistent_flags+=("--show-all") + flags+=("--show-labels") + local_nonpersistent_flags+=("--show-labels") + flags+=("--sort-by=") + local_nonpersistent_flags+=("--sort-by=") + flags+=("--template=") + flags_with_completion+=("--template") + flags_completion+=("_filedir") + local_nonpersistent_flags+=("--template=") flags+=("--as=") flags+=("--as-group=") flags+=("--certificate-authority=") @@ -18919,6 +19596,24 @@ _openshift_cli_policy_who-can() flags+=("--all-namespaces") local_nonpersistent_flags+=("--all-namespaces") + flags+=("--allow-missing-template-keys") + local_nonpersistent_flags+=("--allow-missing-template-keys") + flags+=("--no-headers") + local_nonpersistent_flags+=("--no-headers") + flags+=("--output=") + two_word_flags+=("-o") + local_nonpersistent_flags+=("--output=") + flags+=("--show-all") + flags+=("-a") + local_nonpersistent_flags+=("--show-all") + flags+=("--show-labels") + local_nonpersistent_flags+=("--show-labels") + flags+=("--sort-by=") + local_nonpersistent_flags+=("--sort-by=") + flags+=("--template=") + flags_with_completion+=("--template") + flags_completion+=("_filedir") + local_nonpersistent_flags+=("--template=") flags+=("--as=") flags+=("--as-group=") flags+=("--certificate-authority=") diff --git a/contrib/completions/zsh/oadm b/contrib/completions/zsh/oadm index 0762bfef0196..8d2286480bf5 100644 --- a/contrib/completions/zsh/oadm +++ b/contrib/completions/zsh/oadm @@ -3439,8 +3439,28 @@ _oadm_policy_add-cluster-role-to-group() flags_with_completion=() flags_completion=() + flags+=("--allow-missing-template-keys") + local_nonpersistent_flags+=("--allow-missing-template-keys") + flags+=("--dry-run") + local_nonpersistent_flags+=("--dry-run") + flags+=("--no-headers") + local_nonpersistent_flags+=("--no-headers") + flags+=("--output=") + two_word_flags+=("-o") + local_nonpersistent_flags+=("--output=") flags+=("--rolebinding-name=") local_nonpersistent_flags+=("--rolebinding-name=") + flags+=("--show-all") + flags+=("-a") + local_nonpersistent_flags+=("--show-all") + flags+=("--show-labels") + local_nonpersistent_flags+=("--show-labels") + flags+=("--sort-by=") + local_nonpersistent_flags+=("--sort-by=") + flags+=("--template=") + flags_with_completion+=("--template") + flags_completion+=("_filedir") + local_nonpersistent_flags+=("--template=") flags+=("--as=") flags+=("--as-group=") flags+=("--certificate-authority=") @@ -3484,11 +3504,31 @@ _oadm_policy_add-cluster-role-to-user() flags_with_completion=() flags_completion=() + flags+=("--allow-missing-template-keys") + local_nonpersistent_flags+=("--allow-missing-template-keys") + flags+=("--dry-run") + local_nonpersistent_flags+=("--dry-run") + flags+=("--no-headers") + local_nonpersistent_flags+=("--no-headers") + flags+=("--output=") + two_word_flags+=("-o") + local_nonpersistent_flags+=("--output=") flags+=("--rolebinding-name=") local_nonpersistent_flags+=("--rolebinding-name=") flags+=("--serviceaccount=") two_word_flags+=("-z") local_nonpersistent_flags+=("--serviceaccount=") + flags+=("--show-all") + flags+=("-a") + local_nonpersistent_flags+=("--show-all") + flags+=("--show-labels") + local_nonpersistent_flags+=("--show-labels") + flags+=("--sort-by=") + local_nonpersistent_flags+=("--sort-by=") + flags+=("--template=") + flags_with_completion+=("--template") + flags_completion+=("_filedir") + local_nonpersistent_flags+=("--template=") flags+=("--as=") flags+=("--as-group=") flags+=("--certificate-authority=") @@ -3532,10 +3572,30 @@ _oadm_policy_add-role-to-group() flags_with_completion=() flags_completion=() + flags+=("--allow-missing-template-keys") + local_nonpersistent_flags+=("--allow-missing-template-keys") + flags+=("--dry-run") + local_nonpersistent_flags+=("--dry-run") + flags+=("--no-headers") + local_nonpersistent_flags+=("--no-headers") + flags+=("--output=") + two_word_flags+=("-o") + local_nonpersistent_flags+=("--output=") flags+=("--role-namespace=") local_nonpersistent_flags+=("--role-namespace=") flags+=("--rolebinding-name=") local_nonpersistent_flags+=("--rolebinding-name=") + flags+=("--show-all") + flags+=("-a") + local_nonpersistent_flags+=("--show-all") + flags+=("--show-labels") + local_nonpersistent_flags+=("--show-labels") + flags+=("--sort-by=") + local_nonpersistent_flags+=("--sort-by=") + flags+=("--template=") + flags_with_completion+=("--template") + flags_completion+=("_filedir") + local_nonpersistent_flags+=("--template=") flags+=("--as=") flags+=("--as-group=") flags+=("--certificate-authority=") @@ -3579,6 +3639,15 @@ _oadm_policy_add-role-to-user() flags_with_completion=() flags_completion=() + flags+=("--allow-missing-template-keys") + local_nonpersistent_flags+=("--allow-missing-template-keys") + flags+=("--dry-run") + local_nonpersistent_flags+=("--dry-run") + flags+=("--no-headers") + local_nonpersistent_flags+=("--no-headers") + flags+=("--output=") + two_word_flags+=("-o") + local_nonpersistent_flags+=("--output=") flags+=("--role-namespace=") local_nonpersistent_flags+=("--role-namespace=") flags+=("--rolebinding-name=") @@ -3586,6 +3655,17 @@ _oadm_policy_add-role-to-user() flags+=("--serviceaccount=") two_word_flags+=("-z") local_nonpersistent_flags+=("--serviceaccount=") + flags+=("--show-all") + flags+=("-a") + local_nonpersistent_flags+=("--show-all") + flags+=("--show-labels") + local_nonpersistent_flags+=("--show-labels") + flags+=("--sort-by=") + local_nonpersistent_flags+=("--sort-by=") + flags+=("--template=") + flags_with_completion+=("--template") + flags_completion+=("_filedir") + local_nonpersistent_flags+=("--template=") flags+=("--as=") flags+=("--as-group=") flags+=("--certificate-authority=") @@ -3629,6 +3709,26 @@ _oadm_policy_add-scc-to-group() flags_with_completion=() flags_completion=() + flags+=("--allow-missing-template-keys") + local_nonpersistent_flags+=("--allow-missing-template-keys") + flags+=("--dry-run") + local_nonpersistent_flags+=("--dry-run") + flags+=("--no-headers") + local_nonpersistent_flags+=("--no-headers") + flags+=("--output=") + two_word_flags+=("-o") + local_nonpersistent_flags+=("--output=") + flags+=("--show-all") + flags+=("-a") + local_nonpersistent_flags+=("--show-all") + flags+=("--show-labels") + local_nonpersistent_flags+=("--show-labels") + flags+=("--sort-by=") + local_nonpersistent_flags+=("--sort-by=") + flags+=("--template=") + flags_with_completion+=("--template") + flags_completion+=("_filedir") + local_nonpersistent_flags+=("--template=") flags+=("--as=") flags+=("--as-group=") flags+=("--certificate-authority=") @@ -3672,9 +3772,29 @@ _oadm_policy_add-scc-to-user() flags_with_completion=() flags_completion=() + flags+=("--allow-missing-template-keys") + local_nonpersistent_flags+=("--allow-missing-template-keys") + flags+=("--dry-run") + local_nonpersistent_flags+=("--dry-run") + flags+=("--no-headers") + local_nonpersistent_flags+=("--no-headers") + flags+=("--output=") + two_word_flags+=("-o") + local_nonpersistent_flags+=("--output=") flags+=("--serviceaccount=") two_word_flags+=("-z") local_nonpersistent_flags+=("--serviceaccount=") + flags+=("--show-all") + flags+=("-a") + local_nonpersistent_flags+=("--show-all") + flags+=("--show-labels") + local_nonpersistent_flags+=("--show-labels") + flags+=("--sort-by=") + local_nonpersistent_flags+=("--sort-by=") + flags+=("--template=") + flags_with_completion+=("--template") + flags_completion+=("_filedir") + local_nonpersistent_flags+=("--template=") flags+=("--as=") flags+=("--as-group=") flags+=("--certificate-authority=") @@ -3919,6 +4039,26 @@ _oadm_policy_remove-cluster-role-from-group() flags_with_completion=() flags_completion=() + flags+=("--allow-missing-template-keys") + local_nonpersistent_flags+=("--allow-missing-template-keys") + flags+=("--dry-run") + local_nonpersistent_flags+=("--dry-run") + flags+=("--no-headers") + local_nonpersistent_flags+=("--no-headers") + flags+=("--output=") + two_word_flags+=("-o") + local_nonpersistent_flags+=("--output=") + flags+=("--show-all") + flags+=("-a") + local_nonpersistent_flags+=("--show-all") + flags+=("--show-labels") + local_nonpersistent_flags+=("--show-labels") + flags+=("--sort-by=") + local_nonpersistent_flags+=("--sort-by=") + flags+=("--template=") + flags_with_completion+=("--template") + flags_completion+=("_filedir") + local_nonpersistent_flags+=("--template=") flags+=("--as=") flags+=("--as-group=") flags+=("--certificate-authority=") @@ -3962,9 +4102,29 @@ _oadm_policy_remove-cluster-role-from-user() flags_with_completion=() flags_completion=() + flags+=("--allow-missing-template-keys") + local_nonpersistent_flags+=("--allow-missing-template-keys") + flags+=("--dry-run") + local_nonpersistent_flags+=("--dry-run") + flags+=("--no-headers") + local_nonpersistent_flags+=("--no-headers") + flags+=("--output=") + two_word_flags+=("-o") + local_nonpersistent_flags+=("--output=") flags+=("--serviceaccount=") two_word_flags+=("-z") local_nonpersistent_flags+=("--serviceaccount=") + flags+=("--show-all") + flags+=("-a") + local_nonpersistent_flags+=("--show-all") + flags+=("--show-labels") + local_nonpersistent_flags+=("--show-labels") + flags+=("--sort-by=") + local_nonpersistent_flags+=("--sort-by=") + flags+=("--template=") + flags_with_completion+=("--template") + flags_completion+=("_filedir") + local_nonpersistent_flags+=("--template=") flags+=("--as=") flags+=("--as-group=") flags+=("--certificate-authority=") @@ -4008,6 +4168,13 @@ _oadm_policy_remove-group() flags_with_completion=() flags_completion=() + flags+=("--allow-missing-template-keys") + local_nonpersistent_flags+=("--allow-missing-template-keys") + flags+=("--dry-run") + local_nonpersistent_flags+=("--dry-run") + flags+=("--output=") + two_word_flags+=("-o") + local_nonpersistent_flags+=("--output=") flags+=("--as=") flags+=("--as-group=") flags+=("--certificate-authority=") @@ -4051,8 +4218,28 @@ _oadm_policy_remove-role-from-group() flags_with_completion=() flags_completion=() + flags+=("--allow-missing-template-keys") + local_nonpersistent_flags+=("--allow-missing-template-keys") + flags+=("--dry-run") + local_nonpersistent_flags+=("--dry-run") + flags+=("--no-headers") + local_nonpersistent_flags+=("--no-headers") + flags+=("--output=") + two_word_flags+=("-o") + local_nonpersistent_flags+=("--output=") flags+=("--role-namespace=") local_nonpersistent_flags+=("--role-namespace=") + flags+=("--show-all") + flags+=("-a") + local_nonpersistent_flags+=("--show-all") + flags+=("--show-labels") + local_nonpersistent_flags+=("--show-labels") + flags+=("--sort-by=") + local_nonpersistent_flags+=("--sort-by=") + flags+=("--template=") + flags_with_completion+=("--template") + flags_completion+=("_filedir") + local_nonpersistent_flags+=("--template=") flags+=("--as=") flags+=("--as-group=") flags+=("--certificate-authority=") @@ -4096,11 +4283,31 @@ _oadm_policy_remove-role-from-user() flags_with_completion=() flags_completion=() + flags+=("--allow-missing-template-keys") + local_nonpersistent_flags+=("--allow-missing-template-keys") + flags+=("--dry-run") + local_nonpersistent_flags+=("--dry-run") + flags+=("--no-headers") + local_nonpersistent_flags+=("--no-headers") + flags+=("--output=") + two_word_flags+=("-o") + local_nonpersistent_flags+=("--output=") flags+=("--role-namespace=") local_nonpersistent_flags+=("--role-namespace=") flags+=("--serviceaccount=") two_word_flags+=("-z") local_nonpersistent_flags+=("--serviceaccount=") + flags+=("--show-all") + flags+=("-a") + local_nonpersistent_flags+=("--show-all") + flags+=("--show-labels") + local_nonpersistent_flags+=("--show-labels") + flags+=("--sort-by=") + local_nonpersistent_flags+=("--sort-by=") + flags+=("--template=") + flags_with_completion+=("--template") + flags_completion+=("_filedir") + local_nonpersistent_flags+=("--template=") flags+=("--as=") flags+=("--as-group=") flags+=("--certificate-authority=") @@ -4144,6 +4351,26 @@ _oadm_policy_remove-scc-from-group() flags_with_completion=() flags_completion=() + flags+=("--allow-missing-template-keys") + local_nonpersistent_flags+=("--allow-missing-template-keys") + flags+=("--dry-run") + local_nonpersistent_flags+=("--dry-run") + flags+=("--no-headers") + local_nonpersistent_flags+=("--no-headers") + flags+=("--output=") + two_word_flags+=("-o") + local_nonpersistent_flags+=("--output=") + flags+=("--show-all") + flags+=("-a") + local_nonpersistent_flags+=("--show-all") + flags+=("--show-labels") + local_nonpersistent_flags+=("--show-labels") + flags+=("--sort-by=") + local_nonpersistent_flags+=("--sort-by=") + flags+=("--template=") + flags_with_completion+=("--template") + flags_completion+=("_filedir") + local_nonpersistent_flags+=("--template=") flags+=("--as=") flags+=("--as-group=") flags+=("--certificate-authority=") @@ -4187,9 +4414,29 @@ _oadm_policy_remove-scc-from-user() flags_with_completion=() flags_completion=() + flags+=("--allow-missing-template-keys") + local_nonpersistent_flags+=("--allow-missing-template-keys") + flags+=("--dry-run") + local_nonpersistent_flags+=("--dry-run") + flags+=("--no-headers") + local_nonpersistent_flags+=("--no-headers") + flags+=("--output=") + two_word_flags+=("-o") + local_nonpersistent_flags+=("--output=") flags+=("--serviceaccount=") two_word_flags+=("-z") local_nonpersistent_flags+=("--serviceaccount=") + flags+=("--show-all") + flags+=("-a") + local_nonpersistent_flags+=("--show-all") + flags+=("--show-labels") + local_nonpersistent_flags+=("--show-labels") + flags+=("--sort-by=") + local_nonpersistent_flags+=("--sort-by=") + flags+=("--template=") + flags_with_completion+=("--template") + flags_completion+=("_filedir") + local_nonpersistent_flags+=("--template=") flags+=("--as=") flags+=("--as-group=") flags+=("--certificate-authority=") @@ -4233,6 +4480,26 @@ _oadm_policy_remove-user() flags_with_completion=() flags_completion=() + flags+=("--allow-missing-template-keys") + local_nonpersistent_flags+=("--allow-missing-template-keys") + flags+=("--dry-run") + local_nonpersistent_flags+=("--dry-run") + flags+=("--no-headers") + local_nonpersistent_flags+=("--no-headers") + flags+=("--output=") + two_word_flags+=("-o") + local_nonpersistent_flags+=("--output=") + flags+=("--show-all") + flags+=("-a") + local_nonpersistent_flags+=("--show-all") + flags+=("--show-labels") + local_nonpersistent_flags+=("--show-labels") + flags+=("--sort-by=") + local_nonpersistent_flags+=("--sort-by=") + flags+=("--template=") + flags_with_completion+=("--template") + flags_completion+=("_filedir") + local_nonpersistent_flags+=("--template=") flags+=("--as=") flags+=("--as-group=") flags+=("--certificate-authority=") @@ -4431,6 +4698,24 @@ _oadm_policy_who-can() flags+=("--all-namespaces") local_nonpersistent_flags+=("--all-namespaces") + flags+=("--allow-missing-template-keys") + local_nonpersistent_flags+=("--allow-missing-template-keys") + flags+=("--no-headers") + local_nonpersistent_flags+=("--no-headers") + flags+=("--output=") + two_word_flags+=("-o") + local_nonpersistent_flags+=("--output=") + flags+=("--show-all") + flags+=("-a") + local_nonpersistent_flags+=("--show-all") + flags+=("--show-labels") + local_nonpersistent_flags+=("--show-labels") + flags+=("--sort-by=") + local_nonpersistent_flags+=("--sort-by=") + flags+=("--template=") + flags_with_completion+=("--template") + flags_completion+=("_filedir") + local_nonpersistent_flags+=("--template=") flags+=("--as=") flags+=("--as-group=") flags+=("--certificate-authority=") diff --git a/contrib/completions/zsh/oc b/contrib/completions/zsh/oc index cf6c35416ceb..1121be4e24e7 100644 --- a/contrib/completions/zsh/oc +++ b/contrib/completions/zsh/oc @@ -3604,8 +3604,28 @@ _oc_adm_policy_add-cluster-role-to-group() flags_with_completion=() flags_completion=() + flags+=("--allow-missing-template-keys") + local_nonpersistent_flags+=("--allow-missing-template-keys") + flags+=("--dry-run") + local_nonpersistent_flags+=("--dry-run") + flags+=("--no-headers") + local_nonpersistent_flags+=("--no-headers") + flags+=("--output=") + two_word_flags+=("-o") + local_nonpersistent_flags+=("--output=") flags+=("--rolebinding-name=") local_nonpersistent_flags+=("--rolebinding-name=") + flags+=("--show-all") + flags+=("-a") + local_nonpersistent_flags+=("--show-all") + flags+=("--show-labels") + local_nonpersistent_flags+=("--show-labels") + flags+=("--sort-by=") + local_nonpersistent_flags+=("--sort-by=") + flags+=("--template=") + flags_with_completion+=("--template") + flags_completion+=("_filedir") + local_nonpersistent_flags+=("--template=") flags+=("--as=") flags+=("--as-group=") flags+=("--certificate-authority=") @@ -3649,11 +3669,31 @@ _oc_adm_policy_add-cluster-role-to-user() flags_with_completion=() flags_completion=() + flags+=("--allow-missing-template-keys") + local_nonpersistent_flags+=("--allow-missing-template-keys") + flags+=("--dry-run") + local_nonpersistent_flags+=("--dry-run") + flags+=("--no-headers") + local_nonpersistent_flags+=("--no-headers") + flags+=("--output=") + two_word_flags+=("-o") + local_nonpersistent_flags+=("--output=") flags+=("--rolebinding-name=") local_nonpersistent_flags+=("--rolebinding-name=") flags+=("--serviceaccount=") two_word_flags+=("-z") local_nonpersistent_flags+=("--serviceaccount=") + flags+=("--show-all") + flags+=("-a") + local_nonpersistent_flags+=("--show-all") + flags+=("--show-labels") + local_nonpersistent_flags+=("--show-labels") + flags+=("--sort-by=") + local_nonpersistent_flags+=("--sort-by=") + flags+=("--template=") + flags_with_completion+=("--template") + flags_completion+=("_filedir") + local_nonpersistent_flags+=("--template=") flags+=("--as=") flags+=("--as-group=") flags+=("--certificate-authority=") @@ -3697,10 +3737,30 @@ _oc_adm_policy_add-role-to-group() flags_with_completion=() flags_completion=() + flags+=("--allow-missing-template-keys") + local_nonpersistent_flags+=("--allow-missing-template-keys") + flags+=("--dry-run") + local_nonpersistent_flags+=("--dry-run") + flags+=("--no-headers") + local_nonpersistent_flags+=("--no-headers") + flags+=("--output=") + two_word_flags+=("-o") + local_nonpersistent_flags+=("--output=") flags+=("--role-namespace=") local_nonpersistent_flags+=("--role-namespace=") flags+=("--rolebinding-name=") local_nonpersistent_flags+=("--rolebinding-name=") + flags+=("--show-all") + flags+=("-a") + local_nonpersistent_flags+=("--show-all") + flags+=("--show-labels") + local_nonpersistent_flags+=("--show-labels") + flags+=("--sort-by=") + local_nonpersistent_flags+=("--sort-by=") + flags+=("--template=") + flags_with_completion+=("--template") + flags_completion+=("_filedir") + local_nonpersistent_flags+=("--template=") flags+=("--as=") flags+=("--as-group=") flags+=("--certificate-authority=") @@ -3744,6 +3804,15 @@ _oc_adm_policy_add-role-to-user() flags_with_completion=() flags_completion=() + flags+=("--allow-missing-template-keys") + local_nonpersistent_flags+=("--allow-missing-template-keys") + flags+=("--dry-run") + local_nonpersistent_flags+=("--dry-run") + flags+=("--no-headers") + local_nonpersistent_flags+=("--no-headers") + flags+=("--output=") + two_word_flags+=("-o") + local_nonpersistent_flags+=("--output=") flags+=("--role-namespace=") local_nonpersistent_flags+=("--role-namespace=") flags+=("--rolebinding-name=") @@ -3751,6 +3820,17 @@ _oc_adm_policy_add-role-to-user() flags+=("--serviceaccount=") two_word_flags+=("-z") local_nonpersistent_flags+=("--serviceaccount=") + flags+=("--show-all") + flags+=("-a") + local_nonpersistent_flags+=("--show-all") + flags+=("--show-labels") + local_nonpersistent_flags+=("--show-labels") + flags+=("--sort-by=") + local_nonpersistent_flags+=("--sort-by=") + flags+=("--template=") + flags_with_completion+=("--template") + flags_completion+=("_filedir") + local_nonpersistent_flags+=("--template=") flags+=("--as=") flags+=("--as-group=") flags+=("--certificate-authority=") @@ -3794,6 +3874,26 @@ _oc_adm_policy_add-scc-to-group() flags_with_completion=() flags_completion=() + flags+=("--allow-missing-template-keys") + local_nonpersistent_flags+=("--allow-missing-template-keys") + flags+=("--dry-run") + local_nonpersistent_flags+=("--dry-run") + flags+=("--no-headers") + local_nonpersistent_flags+=("--no-headers") + flags+=("--output=") + two_word_flags+=("-o") + local_nonpersistent_flags+=("--output=") + flags+=("--show-all") + flags+=("-a") + local_nonpersistent_flags+=("--show-all") + flags+=("--show-labels") + local_nonpersistent_flags+=("--show-labels") + flags+=("--sort-by=") + local_nonpersistent_flags+=("--sort-by=") + flags+=("--template=") + flags_with_completion+=("--template") + flags_completion+=("_filedir") + local_nonpersistent_flags+=("--template=") flags+=("--as=") flags+=("--as-group=") flags+=("--certificate-authority=") @@ -3837,9 +3937,29 @@ _oc_adm_policy_add-scc-to-user() flags_with_completion=() flags_completion=() + flags+=("--allow-missing-template-keys") + local_nonpersistent_flags+=("--allow-missing-template-keys") + flags+=("--dry-run") + local_nonpersistent_flags+=("--dry-run") + flags+=("--no-headers") + local_nonpersistent_flags+=("--no-headers") + flags+=("--output=") + two_word_flags+=("-o") + local_nonpersistent_flags+=("--output=") flags+=("--serviceaccount=") two_word_flags+=("-z") local_nonpersistent_flags+=("--serviceaccount=") + flags+=("--show-all") + flags+=("-a") + local_nonpersistent_flags+=("--show-all") + flags+=("--show-labels") + local_nonpersistent_flags+=("--show-labels") + flags+=("--sort-by=") + local_nonpersistent_flags+=("--sort-by=") + flags+=("--template=") + flags_with_completion+=("--template") + flags_completion+=("_filedir") + local_nonpersistent_flags+=("--template=") flags+=("--as=") flags+=("--as-group=") flags+=("--certificate-authority=") @@ -4084,6 +4204,26 @@ _oc_adm_policy_remove-cluster-role-from-group() flags_with_completion=() flags_completion=() + flags+=("--allow-missing-template-keys") + local_nonpersistent_flags+=("--allow-missing-template-keys") + flags+=("--dry-run") + local_nonpersistent_flags+=("--dry-run") + flags+=("--no-headers") + local_nonpersistent_flags+=("--no-headers") + flags+=("--output=") + two_word_flags+=("-o") + local_nonpersistent_flags+=("--output=") + flags+=("--show-all") + flags+=("-a") + local_nonpersistent_flags+=("--show-all") + flags+=("--show-labels") + local_nonpersistent_flags+=("--show-labels") + flags+=("--sort-by=") + local_nonpersistent_flags+=("--sort-by=") + flags+=("--template=") + flags_with_completion+=("--template") + flags_completion+=("_filedir") + local_nonpersistent_flags+=("--template=") flags+=("--as=") flags+=("--as-group=") flags+=("--certificate-authority=") @@ -4127,9 +4267,29 @@ _oc_adm_policy_remove-cluster-role-from-user() flags_with_completion=() flags_completion=() + flags+=("--allow-missing-template-keys") + local_nonpersistent_flags+=("--allow-missing-template-keys") + flags+=("--dry-run") + local_nonpersistent_flags+=("--dry-run") + flags+=("--no-headers") + local_nonpersistent_flags+=("--no-headers") + flags+=("--output=") + two_word_flags+=("-o") + local_nonpersistent_flags+=("--output=") flags+=("--serviceaccount=") two_word_flags+=("-z") local_nonpersistent_flags+=("--serviceaccount=") + flags+=("--show-all") + flags+=("-a") + local_nonpersistent_flags+=("--show-all") + flags+=("--show-labels") + local_nonpersistent_flags+=("--show-labels") + flags+=("--sort-by=") + local_nonpersistent_flags+=("--sort-by=") + flags+=("--template=") + flags_with_completion+=("--template") + flags_completion+=("_filedir") + local_nonpersistent_flags+=("--template=") flags+=("--as=") flags+=("--as-group=") flags+=("--certificate-authority=") @@ -4173,6 +4333,13 @@ _oc_adm_policy_remove-group() flags_with_completion=() flags_completion=() + flags+=("--allow-missing-template-keys") + local_nonpersistent_flags+=("--allow-missing-template-keys") + flags+=("--dry-run") + local_nonpersistent_flags+=("--dry-run") + flags+=("--output=") + two_word_flags+=("-o") + local_nonpersistent_flags+=("--output=") flags+=("--as=") flags+=("--as-group=") flags+=("--certificate-authority=") @@ -4216,8 +4383,28 @@ _oc_adm_policy_remove-role-from-group() flags_with_completion=() flags_completion=() + flags+=("--allow-missing-template-keys") + local_nonpersistent_flags+=("--allow-missing-template-keys") + flags+=("--dry-run") + local_nonpersistent_flags+=("--dry-run") + flags+=("--no-headers") + local_nonpersistent_flags+=("--no-headers") + flags+=("--output=") + two_word_flags+=("-o") + local_nonpersistent_flags+=("--output=") flags+=("--role-namespace=") local_nonpersistent_flags+=("--role-namespace=") + flags+=("--show-all") + flags+=("-a") + local_nonpersistent_flags+=("--show-all") + flags+=("--show-labels") + local_nonpersistent_flags+=("--show-labels") + flags+=("--sort-by=") + local_nonpersistent_flags+=("--sort-by=") + flags+=("--template=") + flags_with_completion+=("--template") + flags_completion+=("_filedir") + local_nonpersistent_flags+=("--template=") flags+=("--as=") flags+=("--as-group=") flags+=("--certificate-authority=") @@ -4261,11 +4448,31 @@ _oc_adm_policy_remove-role-from-user() flags_with_completion=() flags_completion=() + flags+=("--allow-missing-template-keys") + local_nonpersistent_flags+=("--allow-missing-template-keys") + flags+=("--dry-run") + local_nonpersistent_flags+=("--dry-run") + flags+=("--no-headers") + local_nonpersistent_flags+=("--no-headers") + flags+=("--output=") + two_word_flags+=("-o") + local_nonpersistent_flags+=("--output=") flags+=("--role-namespace=") local_nonpersistent_flags+=("--role-namespace=") flags+=("--serviceaccount=") two_word_flags+=("-z") local_nonpersistent_flags+=("--serviceaccount=") + flags+=("--show-all") + flags+=("-a") + local_nonpersistent_flags+=("--show-all") + flags+=("--show-labels") + local_nonpersistent_flags+=("--show-labels") + flags+=("--sort-by=") + local_nonpersistent_flags+=("--sort-by=") + flags+=("--template=") + flags_with_completion+=("--template") + flags_completion+=("_filedir") + local_nonpersistent_flags+=("--template=") flags+=("--as=") flags+=("--as-group=") flags+=("--certificate-authority=") @@ -4309,6 +4516,26 @@ _oc_adm_policy_remove-scc-from-group() flags_with_completion=() flags_completion=() + flags+=("--allow-missing-template-keys") + local_nonpersistent_flags+=("--allow-missing-template-keys") + flags+=("--dry-run") + local_nonpersistent_flags+=("--dry-run") + flags+=("--no-headers") + local_nonpersistent_flags+=("--no-headers") + flags+=("--output=") + two_word_flags+=("-o") + local_nonpersistent_flags+=("--output=") + flags+=("--show-all") + flags+=("-a") + local_nonpersistent_flags+=("--show-all") + flags+=("--show-labels") + local_nonpersistent_flags+=("--show-labels") + flags+=("--sort-by=") + local_nonpersistent_flags+=("--sort-by=") + flags+=("--template=") + flags_with_completion+=("--template") + flags_completion+=("_filedir") + local_nonpersistent_flags+=("--template=") flags+=("--as=") flags+=("--as-group=") flags+=("--certificate-authority=") @@ -4352,9 +4579,29 @@ _oc_adm_policy_remove-scc-from-user() flags_with_completion=() flags_completion=() + flags+=("--allow-missing-template-keys") + local_nonpersistent_flags+=("--allow-missing-template-keys") + flags+=("--dry-run") + local_nonpersistent_flags+=("--dry-run") + flags+=("--no-headers") + local_nonpersistent_flags+=("--no-headers") + flags+=("--output=") + two_word_flags+=("-o") + local_nonpersistent_flags+=("--output=") flags+=("--serviceaccount=") two_word_flags+=("-z") local_nonpersistent_flags+=("--serviceaccount=") + flags+=("--show-all") + flags+=("-a") + local_nonpersistent_flags+=("--show-all") + flags+=("--show-labels") + local_nonpersistent_flags+=("--show-labels") + flags+=("--sort-by=") + local_nonpersistent_flags+=("--sort-by=") + flags+=("--template=") + flags_with_completion+=("--template") + flags_completion+=("_filedir") + local_nonpersistent_flags+=("--template=") flags+=("--as=") flags+=("--as-group=") flags+=("--certificate-authority=") @@ -4398,6 +4645,26 @@ _oc_adm_policy_remove-user() flags_with_completion=() flags_completion=() + flags+=("--allow-missing-template-keys") + local_nonpersistent_flags+=("--allow-missing-template-keys") + flags+=("--dry-run") + local_nonpersistent_flags+=("--dry-run") + flags+=("--no-headers") + local_nonpersistent_flags+=("--no-headers") + flags+=("--output=") + two_word_flags+=("-o") + local_nonpersistent_flags+=("--output=") + flags+=("--show-all") + flags+=("-a") + local_nonpersistent_flags+=("--show-all") + flags+=("--show-labels") + local_nonpersistent_flags+=("--show-labels") + flags+=("--sort-by=") + local_nonpersistent_flags+=("--sort-by=") + flags+=("--template=") + flags_with_completion+=("--template") + flags_completion+=("_filedir") + local_nonpersistent_flags+=("--template=") flags+=("--as=") flags+=("--as-group=") flags+=("--certificate-authority=") @@ -4596,6 +4863,24 @@ _oc_adm_policy_who-can() flags+=("--all-namespaces") local_nonpersistent_flags+=("--all-namespaces") + flags+=("--allow-missing-template-keys") + local_nonpersistent_flags+=("--allow-missing-template-keys") + flags+=("--no-headers") + local_nonpersistent_flags+=("--no-headers") + flags+=("--output=") + two_word_flags+=("-o") + local_nonpersistent_flags+=("--output=") + flags+=("--show-all") + flags+=("-a") + local_nonpersistent_flags+=("--show-all") + flags+=("--show-labels") + local_nonpersistent_flags+=("--show-labels") + flags+=("--sort-by=") + local_nonpersistent_flags+=("--sort-by=") + flags+=("--template=") + flags_with_completion+=("--template") + flags_completion+=("_filedir") + local_nonpersistent_flags+=("--template=") flags+=("--as=") flags+=("--as-group=") flags+=("--certificate-authority=") @@ -13551,10 +13836,30 @@ _oc_policy_add-role-to-group() flags_with_completion=() flags_completion=() + flags+=("--allow-missing-template-keys") + local_nonpersistent_flags+=("--allow-missing-template-keys") + flags+=("--dry-run") + local_nonpersistent_flags+=("--dry-run") + flags+=("--no-headers") + local_nonpersistent_flags+=("--no-headers") + flags+=("--output=") + two_word_flags+=("-o") + local_nonpersistent_flags+=("--output=") flags+=("--role-namespace=") local_nonpersistent_flags+=("--role-namespace=") flags+=("--rolebinding-name=") local_nonpersistent_flags+=("--rolebinding-name=") + flags+=("--show-all") + flags+=("-a") + local_nonpersistent_flags+=("--show-all") + flags+=("--show-labels") + local_nonpersistent_flags+=("--show-labels") + flags+=("--sort-by=") + local_nonpersistent_flags+=("--sort-by=") + flags+=("--template=") + flags_with_completion+=("--template") + flags_completion+=("_filedir") + local_nonpersistent_flags+=("--template=") flags+=("--as=") flags+=("--as-group=") flags+=("--certificate-authority=") @@ -13602,6 +13907,15 @@ _oc_policy_add-role-to-user() flags_with_completion=() flags_completion=() + flags+=("--allow-missing-template-keys") + local_nonpersistent_flags+=("--allow-missing-template-keys") + flags+=("--dry-run") + local_nonpersistent_flags+=("--dry-run") + flags+=("--no-headers") + local_nonpersistent_flags+=("--no-headers") + flags+=("--output=") + two_word_flags+=("-o") + local_nonpersistent_flags+=("--output=") flags+=("--role-namespace=") local_nonpersistent_flags+=("--role-namespace=") flags+=("--rolebinding-name=") @@ -13609,6 +13923,17 @@ _oc_policy_add-role-to-user() flags+=("--serviceaccount=") two_word_flags+=("-z") local_nonpersistent_flags+=("--serviceaccount=") + flags+=("--show-all") + flags+=("-a") + local_nonpersistent_flags+=("--show-all") + flags+=("--show-labels") + local_nonpersistent_flags+=("--show-labels") + flags+=("--sort-by=") + local_nonpersistent_flags+=("--sort-by=") + flags+=("--template=") + flags_with_completion+=("--template") + flags_completion+=("_filedir") + local_nonpersistent_flags+=("--template=") flags+=("--as=") flags+=("--as-group=") flags+=("--certificate-authority=") @@ -13735,6 +14060,13 @@ _oc_policy_remove-group() flags_with_completion=() flags_completion=() + flags+=("--allow-missing-template-keys") + local_nonpersistent_flags+=("--allow-missing-template-keys") + flags+=("--dry-run") + local_nonpersistent_flags+=("--dry-run") + flags+=("--output=") + two_word_flags+=("-o") + local_nonpersistent_flags+=("--output=") flags+=("--as=") flags+=("--as-group=") flags+=("--certificate-authority=") @@ -13782,8 +14114,28 @@ _oc_policy_remove-role-from-group() flags_with_completion=() flags_completion=() + flags+=("--allow-missing-template-keys") + local_nonpersistent_flags+=("--allow-missing-template-keys") + flags+=("--dry-run") + local_nonpersistent_flags+=("--dry-run") + flags+=("--no-headers") + local_nonpersistent_flags+=("--no-headers") + flags+=("--output=") + two_word_flags+=("-o") + local_nonpersistent_flags+=("--output=") flags+=("--role-namespace=") local_nonpersistent_flags+=("--role-namespace=") + flags+=("--show-all") + flags+=("-a") + local_nonpersistent_flags+=("--show-all") + flags+=("--show-labels") + local_nonpersistent_flags+=("--show-labels") + flags+=("--sort-by=") + local_nonpersistent_flags+=("--sort-by=") + flags+=("--template=") + flags_with_completion+=("--template") + flags_completion+=("_filedir") + local_nonpersistent_flags+=("--template=") flags+=("--as=") flags+=("--as-group=") flags+=("--certificate-authority=") @@ -13831,11 +14183,31 @@ _oc_policy_remove-role-from-user() flags_with_completion=() flags_completion=() + flags+=("--allow-missing-template-keys") + local_nonpersistent_flags+=("--allow-missing-template-keys") + flags+=("--dry-run") + local_nonpersistent_flags+=("--dry-run") + flags+=("--no-headers") + local_nonpersistent_flags+=("--no-headers") + flags+=("--output=") + two_word_flags+=("-o") + local_nonpersistent_flags+=("--output=") flags+=("--role-namespace=") local_nonpersistent_flags+=("--role-namespace=") flags+=("--serviceaccount=") two_word_flags+=("-z") local_nonpersistent_flags+=("--serviceaccount=") + flags+=("--show-all") + flags+=("-a") + local_nonpersistent_flags+=("--show-all") + flags+=("--show-labels") + local_nonpersistent_flags+=("--show-labels") + flags+=("--sort-by=") + local_nonpersistent_flags+=("--sort-by=") + flags+=("--template=") + flags_with_completion+=("--template") + flags_completion+=("_filedir") + local_nonpersistent_flags+=("--template=") flags+=("--as=") flags+=("--as-group=") flags+=("--certificate-authority=") @@ -13883,6 +14255,26 @@ _oc_policy_remove-user() flags_with_completion=() flags_completion=() + flags+=("--allow-missing-template-keys") + local_nonpersistent_flags+=("--allow-missing-template-keys") + flags+=("--dry-run") + local_nonpersistent_flags+=("--dry-run") + flags+=("--no-headers") + local_nonpersistent_flags+=("--no-headers") + flags+=("--output=") + two_word_flags+=("-o") + local_nonpersistent_flags+=("--output=") + flags+=("--show-all") + flags+=("-a") + local_nonpersistent_flags+=("--show-all") + flags+=("--show-labels") + local_nonpersistent_flags+=("--show-labels") + flags+=("--sort-by=") + local_nonpersistent_flags+=("--sort-by=") + flags+=("--template=") + flags_with_completion+=("--template") + flags_completion+=("_filedir") + local_nonpersistent_flags+=("--template=") flags+=("--as=") flags+=("--as-group=") flags+=("--certificate-authority=") @@ -14093,6 +14485,24 @@ _oc_policy_who-can() flags+=("--all-namespaces") local_nonpersistent_flags+=("--all-namespaces") + flags+=("--allow-missing-template-keys") + local_nonpersistent_flags+=("--allow-missing-template-keys") + flags+=("--no-headers") + local_nonpersistent_flags+=("--no-headers") + flags+=("--output=") + two_word_flags+=("-o") + local_nonpersistent_flags+=("--output=") + flags+=("--show-all") + flags+=("-a") + local_nonpersistent_flags+=("--show-all") + flags+=("--show-labels") + local_nonpersistent_flags+=("--show-labels") + flags+=("--sort-by=") + local_nonpersistent_flags+=("--sort-by=") + flags+=("--template=") + flags_with_completion+=("--template") + flags_completion+=("_filedir") + local_nonpersistent_flags+=("--template=") flags+=("--as=") flags+=("--as-group=") flags+=("--certificate-authority=") diff --git a/contrib/completions/zsh/openshift b/contrib/completions/zsh/openshift index e8dca87665db..d5fc6ff07d6f 100644 --- a/contrib/completions/zsh/openshift +++ b/contrib/completions/zsh/openshift @@ -3439,8 +3439,28 @@ _openshift_admin_policy_add-cluster-role-to-group() flags_with_completion=() flags_completion=() + flags+=("--allow-missing-template-keys") + local_nonpersistent_flags+=("--allow-missing-template-keys") + flags+=("--dry-run") + local_nonpersistent_flags+=("--dry-run") + flags+=("--no-headers") + local_nonpersistent_flags+=("--no-headers") + flags+=("--output=") + two_word_flags+=("-o") + local_nonpersistent_flags+=("--output=") flags+=("--rolebinding-name=") local_nonpersistent_flags+=("--rolebinding-name=") + flags+=("--show-all") + flags+=("-a") + local_nonpersistent_flags+=("--show-all") + flags+=("--show-labels") + local_nonpersistent_flags+=("--show-labels") + flags+=("--sort-by=") + local_nonpersistent_flags+=("--sort-by=") + flags+=("--template=") + flags_with_completion+=("--template") + flags_completion+=("_filedir") + local_nonpersistent_flags+=("--template=") flags+=("--as=") flags+=("--as-group=") flags+=("--certificate-authority=") @@ -3484,11 +3504,31 @@ _openshift_admin_policy_add-cluster-role-to-user() flags_with_completion=() flags_completion=() + flags+=("--allow-missing-template-keys") + local_nonpersistent_flags+=("--allow-missing-template-keys") + flags+=("--dry-run") + local_nonpersistent_flags+=("--dry-run") + flags+=("--no-headers") + local_nonpersistent_flags+=("--no-headers") + flags+=("--output=") + two_word_flags+=("-o") + local_nonpersistent_flags+=("--output=") flags+=("--rolebinding-name=") local_nonpersistent_flags+=("--rolebinding-name=") flags+=("--serviceaccount=") two_word_flags+=("-z") local_nonpersistent_flags+=("--serviceaccount=") + flags+=("--show-all") + flags+=("-a") + local_nonpersistent_flags+=("--show-all") + flags+=("--show-labels") + local_nonpersistent_flags+=("--show-labels") + flags+=("--sort-by=") + local_nonpersistent_flags+=("--sort-by=") + flags+=("--template=") + flags_with_completion+=("--template") + flags_completion+=("_filedir") + local_nonpersistent_flags+=("--template=") flags+=("--as=") flags+=("--as-group=") flags+=("--certificate-authority=") @@ -3532,10 +3572,30 @@ _openshift_admin_policy_add-role-to-group() flags_with_completion=() flags_completion=() + flags+=("--allow-missing-template-keys") + local_nonpersistent_flags+=("--allow-missing-template-keys") + flags+=("--dry-run") + local_nonpersistent_flags+=("--dry-run") + flags+=("--no-headers") + local_nonpersistent_flags+=("--no-headers") + flags+=("--output=") + two_word_flags+=("-o") + local_nonpersistent_flags+=("--output=") flags+=("--role-namespace=") local_nonpersistent_flags+=("--role-namespace=") flags+=("--rolebinding-name=") local_nonpersistent_flags+=("--rolebinding-name=") + flags+=("--show-all") + flags+=("-a") + local_nonpersistent_flags+=("--show-all") + flags+=("--show-labels") + local_nonpersistent_flags+=("--show-labels") + flags+=("--sort-by=") + local_nonpersistent_flags+=("--sort-by=") + flags+=("--template=") + flags_with_completion+=("--template") + flags_completion+=("_filedir") + local_nonpersistent_flags+=("--template=") flags+=("--as=") flags+=("--as-group=") flags+=("--certificate-authority=") @@ -3579,6 +3639,15 @@ _openshift_admin_policy_add-role-to-user() flags_with_completion=() flags_completion=() + flags+=("--allow-missing-template-keys") + local_nonpersistent_flags+=("--allow-missing-template-keys") + flags+=("--dry-run") + local_nonpersistent_flags+=("--dry-run") + flags+=("--no-headers") + local_nonpersistent_flags+=("--no-headers") + flags+=("--output=") + two_word_flags+=("-o") + local_nonpersistent_flags+=("--output=") flags+=("--role-namespace=") local_nonpersistent_flags+=("--role-namespace=") flags+=("--rolebinding-name=") @@ -3586,6 +3655,17 @@ _openshift_admin_policy_add-role-to-user() flags+=("--serviceaccount=") two_word_flags+=("-z") local_nonpersistent_flags+=("--serviceaccount=") + flags+=("--show-all") + flags+=("-a") + local_nonpersistent_flags+=("--show-all") + flags+=("--show-labels") + local_nonpersistent_flags+=("--show-labels") + flags+=("--sort-by=") + local_nonpersistent_flags+=("--sort-by=") + flags+=("--template=") + flags_with_completion+=("--template") + flags_completion+=("_filedir") + local_nonpersistent_flags+=("--template=") flags+=("--as=") flags+=("--as-group=") flags+=("--certificate-authority=") @@ -3629,6 +3709,26 @@ _openshift_admin_policy_add-scc-to-group() flags_with_completion=() flags_completion=() + flags+=("--allow-missing-template-keys") + local_nonpersistent_flags+=("--allow-missing-template-keys") + flags+=("--dry-run") + local_nonpersistent_flags+=("--dry-run") + flags+=("--no-headers") + local_nonpersistent_flags+=("--no-headers") + flags+=("--output=") + two_word_flags+=("-o") + local_nonpersistent_flags+=("--output=") + flags+=("--show-all") + flags+=("-a") + local_nonpersistent_flags+=("--show-all") + flags+=("--show-labels") + local_nonpersistent_flags+=("--show-labels") + flags+=("--sort-by=") + local_nonpersistent_flags+=("--sort-by=") + flags+=("--template=") + flags_with_completion+=("--template") + flags_completion+=("_filedir") + local_nonpersistent_flags+=("--template=") flags+=("--as=") flags+=("--as-group=") flags+=("--certificate-authority=") @@ -3672,9 +3772,29 @@ _openshift_admin_policy_add-scc-to-user() flags_with_completion=() flags_completion=() + flags+=("--allow-missing-template-keys") + local_nonpersistent_flags+=("--allow-missing-template-keys") + flags+=("--dry-run") + local_nonpersistent_flags+=("--dry-run") + flags+=("--no-headers") + local_nonpersistent_flags+=("--no-headers") + flags+=("--output=") + two_word_flags+=("-o") + local_nonpersistent_flags+=("--output=") flags+=("--serviceaccount=") two_word_flags+=("-z") local_nonpersistent_flags+=("--serviceaccount=") + flags+=("--show-all") + flags+=("-a") + local_nonpersistent_flags+=("--show-all") + flags+=("--show-labels") + local_nonpersistent_flags+=("--show-labels") + flags+=("--sort-by=") + local_nonpersistent_flags+=("--sort-by=") + flags+=("--template=") + flags_with_completion+=("--template") + flags_completion+=("_filedir") + local_nonpersistent_flags+=("--template=") flags+=("--as=") flags+=("--as-group=") flags+=("--certificate-authority=") @@ -3919,6 +4039,26 @@ _openshift_admin_policy_remove-cluster-role-from-group() flags_with_completion=() flags_completion=() + flags+=("--allow-missing-template-keys") + local_nonpersistent_flags+=("--allow-missing-template-keys") + flags+=("--dry-run") + local_nonpersistent_flags+=("--dry-run") + flags+=("--no-headers") + local_nonpersistent_flags+=("--no-headers") + flags+=("--output=") + two_word_flags+=("-o") + local_nonpersistent_flags+=("--output=") + flags+=("--show-all") + flags+=("-a") + local_nonpersistent_flags+=("--show-all") + flags+=("--show-labels") + local_nonpersistent_flags+=("--show-labels") + flags+=("--sort-by=") + local_nonpersistent_flags+=("--sort-by=") + flags+=("--template=") + flags_with_completion+=("--template") + flags_completion+=("_filedir") + local_nonpersistent_flags+=("--template=") flags+=("--as=") flags+=("--as-group=") flags+=("--certificate-authority=") @@ -3962,9 +4102,29 @@ _openshift_admin_policy_remove-cluster-role-from-user() flags_with_completion=() flags_completion=() + flags+=("--allow-missing-template-keys") + local_nonpersistent_flags+=("--allow-missing-template-keys") + flags+=("--dry-run") + local_nonpersistent_flags+=("--dry-run") + flags+=("--no-headers") + local_nonpersistent_flags+=("--no-headers") + flags+=("--output=") + two_word_flags+=("-o") + local_nonpersistent_flags+=("--output=") flags+=("--serviceaccount=") two_word_flags+=("-z") local_nonpersistent_flags+=("--serviceaccount=") + flags+=("--show-all") + flags+=("-a") + local_nonpersistent_flags+=("--show-all") + flags+=("--show-labels") + local_nonpersistent_flags+=("--show-labels") + flags+=("--sort-by=") + local_nonpersistent_flags+=("--sort-by=") + flags+=("--template=") + flags_with_completion+=("--template") + flags_completion+=("_filedir") + local_nonpersistent_flags+=("--template=") flags+=("--as=") flags+=("--as-group=") flags+=("--certificate-authority=") @@ -4008,6 +4168,13 @@ _openshift_admin_policy_remove-group() flags_with_completion=() flags_completion=() + flags+=("--allow-missing-template-keys") + local_nonpersistent_flags+=("--allow-missing-template-keys") + flags+=("--dry-run") + local_nonpersistent_flags+=("--dry-run") + flags+=("--output=") + two_word_flags+=("-o") + local_nonpersistent_flags+=("--output=") flags+=("--as=") flags+=("--as-group=") flags+=("--certificate-authority=") @@ -4051,8 +4218,28 @@ _openshift_admin_policy_remove-role-from-group() flags_with_completion=() flags_completion=() + flags+=("--allow-missing-template-keys") + local_nonpersistent_flags+=("--allow-missing-template-keys") + flags+=("--dry-run") + local_nonpersistent_flags+=("--dry-run") + flags+=("--no-headers") + local_nonpersistent_flags+=("--no-headers") + flags+=("--output=") + two_word_flags+=("-o") + local_nonpersistent_flags+=("--output=") flags+=("--role-namespace=") local_nonpersistent_flags+=("--role-namespace=") + flags+=("--show-all") + flags+=("-a") + local_nonpersistent_flags+=("--show-all") + flags+=("--show-labels") + local_nonpersistent_flags+=("--show-labels") + flags+=("--sort-by=") + local_nonpersistent_flags+=("--sort-by=") + flags+=("--template=") + flags_with_completion+=("--template") + flags_completion+=("_filedir") + local_nonpersistent_flags+=("--template=") flags+=("--as=") flags+=("--as-group=") flags+=("--certificate-authority=") @@ -4096,11 +4283,31 @@ _openshift_admin_policy_remove-role-from-user() flags_with_completion=() flags_completion=() + flags+=("--allow-missing-template-keys") + local_nonpersistent_flags+=("--allow-missing-template-keys") + flags+=("--dry-run") + local_nonpersistent_flags+=("--dry-run") + flags+=("--no-headers") + local_nonpersistent_flags+=("--no-headers") + flags+=("--output=") + two_word_flags+=("-o") + local_nonpersistent_flags+=("--output=") flags+=("--role-namespace=") local_nonpersistent_flags+=("--role-namespace=") flags+=("--serviceaccount=") two_word_flags+=("-z") local_nonpersistent_flags+=("--serviceaccount=") + flags+=("--show-all") + flags+=("-a") + local_nonpersistent_flags+=("--show-all") + flags+=("--show-labels") + local_nonpersistent_flags+=("--show-labels") + flags+=("--sort-by=") + local_nonpersistent_flags+=("--sort-by=") + flags+=("--template=") + flags_with_completion+=("--template") + flags_completion+=("_filedir") + local_nonpersistent_flags+=("--template=") flags+=("--as=") flags+=("--as-group=") flags+=("--certificate-authority=") @@ -4144,6 +4351,26 @@ _openshift_admin_policy_remove-scc-from-group() flags_with_completion=() flags_completion=() + flags+=("--allow-missing-template-keys") + local_nonpersistent_flags+=("--allow-missing-template-keys") + flags+=("--dry-run") + local_nonpersistent_flags+=("--dry-run") + flags+=("--no-headers") + local_nonpersistent_flags+=("--no-headers") + flags+=("--output=") + two_word_flags+=("-o") + local_nonpersistent_flags+=("--output=") + flags+=("--show-all") + flags+=("-a") + local_nonpersistent_flags+=("--show-all") + flags+=("--show-labels") + local_nonpersistent_flags+=("--show-labels") + flags+=("--sort-by=") + local_nonpersistent_flags+=("--sort-by=") + flags+=("--template=") + flags_with_completion+=("--template") + flags_completion+=("_filedir") + local_nonpersistent_flags+=("--template=") flags+=("--as=") flags+=("--as-group=") flags+=("--certificate-authority=") @@ -4187,9 +4414,29 @@ _openshift_admin_policy_remove-scc-from-user() flags_with_completion=() flags_completion=() + flags+=("--allow-missing-template-keys") + local_nonpersistent_flags+=("--allow-missing-template-keys") + flags+=("--dry-run") + local_nonpersistent_flags+=("--dry-run") + flags+=("--no-headers") + local_nonpersistent_flags+=("--no-headers") + flags+=("--output=") + two_word_flags+=("-o") + local_nonpersistent_flags+=("--output=") flags+=("--serviceaccount=") two_word_flags+=("-z") local_nonpersistent_flags+=("--serviceaccount=") + flags+=("--show-all") + flags+=("-a") + local_nonpersistent_flags+=("--show-all") + flags+=("--show-labels") + local_nonpersistent_flags+=("--show-labels") + flags+=("--sort-by=") + local_nonpersistent_flags+=("--sort-by=") + flags+=("--template=") + flags_with_completion+=("--template") + flags_completion+=("_filedir") + local_nonpersistent_flags+=("--template=") flags+=("--as=") flags+=("--as-group=") flags+=("--certificate-authority=") @@ -4233,6 +4480,26 @@ _openshift_admin_policy_remove-user() flags_with_completion=() flags_completion=() + flags+=("--allow-missing-template-keys") + local_nonpersistent_flags+=("--allow-missing-template-keys") + flags+=("--dry-run") + local_nonpersistent_flags+=("--dry-run") + flags+=("--no-headers") + local_nonpersistent_flags+=("--no-headers") + flags+=("--output=") + two_word_flags+=("-o") + local_nonpersistent_flags+=("--output=") + flags+=("--show-all") + flags+=("-a") + local_nonpersistent_flags+=("--show-all") + flags+=("--show-labels") + local_nonpersistent_flags+=("--show-labels") + flags+=("--sort-by=") + local_nonpersistent_flags+=("--sort-by=") + flags+=("--template=") + flags_with_completion+=("--template") + flags_completion+=("_filedir") + local_nonpersistent_flags+=("--template=") flags+=("--as=") flags+=("--as-group=") flags+=("--certificate-authority=") @@ -4431,6 +4698,24 @@ _openshift_admin_policy_who-can() flags+=("--all-namespaces") local_nonpersistent_flags+=("--all-namespaces") + flags+=("--allow-missing-template-keys") + local_nonpersistent_flags+=("--allow-missing-template-keys") + flags+=("--no-headers") + local_nonpersistent_flags+=("--no-headers") + flags+=("--output=") + two_word_flags+=("-o") + local_nonpersistent_flags+=("--output=") + flags+=("--show-all") + flags+=("-a") + local_nonpersistent_flags+=("--show-all") + flags+=("--show-labels") + local_nonpersistent_flags+=("--show-labels") + flags+=("--sort-by=") + local_nonpersistent_flags+=("--sort-by=") + flags+=("--template=") + flags_with_completion+=("--template") + flags_completion+=("_filedir") + local_nonpersistent_flags+=("--template=") flags+=("--as=") flags+=("--as-group=") flags+=("--certificate-authority=") @@ -8579,8 +8864,28 @@ _openshift_cli_adm_policy_add-cluster-role-to-group() flags_with_completion=() flags_completion=() + flags+=("--allow-missing-template-keys") + local_nonpersistent_flags+=("--allow-missing-template-keys") + flags+=("--dry-run") + local_nonpersistent_flags+=("--dry-run") + flags+=("--no-headers") + local_nonpersistent_flags+=("--no-headers") + flags+=("--output=") + two_word_flags+=("-o") + local_nonpersistent_flags+=("--output=") flags+=("--rolebinding-name=") local_nonpersistent_flags+=("--rolebinding-name=") + flags+=("--show-all") + flags+=("-a") + local_nonpersistent_flags+=("--show-all") + flags+=("--show-labels") + local_nonpersistent_flags+=("--show-labels") + flags+=("--sort-by=") + local_nonpersistent_flags+=("--sort-by=") + flags+=("--template=") + flags_with_completion+=("--template") + flags_completion+=("_filedir") + local_nonpersistent_flags+=("--template=") flags+=("--as=") flags+=("--as-group=") flags+=("--certificate-authority=") @@ -8624,11 +8929,31 @@ _openshift_cli_adm_policy_add-cluster-role-to-user() flags_with_completion=() flags_completion=() + flags+=("--allow-missing-template-keys") + local_nonpersistent_flags+=("--allow-missing-template-keys") + flags+=("--dry-run") + local_nonpersistent_flags+=("--dry-run") + flags+=("--no-headers") + local_nonpersistent_flags+=("--no-headers") + flags+=("--output=") + two_word_flags+=("-o") + local_nonpersistent_flags+=("--output=") flags+=("--rolebinding-name=") local_nonpersistent_flags+=("--rolebinding-name=") flags+=("--serviceaccount=") two_word_flags+=("-z") local_nonpersistent_flags+=("--serviceaccount=") + flags+=("--show-all") + flags+=("-a") + local_nonpersistent_flags+=("--show-all") + flags+=("--show-labels") + local_nonpersistent_flags+=("--show-labels") + flags+=("--sort-by=") + local_nonpersistent_flags+=("--sort-by=") + flags+=("--template=") + flags_with_completion+=("--template") + flags_completion+=("_filedir") + local_nonpersistent_flags+=("--template=") flags+=("--as=") flags+=("--as-group=") flags+=("--certificate-authority=") @@ -8672,10 +8997,30 @@ _openshift_cli_adm_policy_add-role-to-group() flags_with_completion=() flags_completion=() + flags+=("--allow-missing-template-keys") + local_nonpersistent_flags+=("--allow-missing-template-keys") + flags+=("--dry-run") + local_nonpersistent_flags+=("--dry-run") + flags+=("--no-headers") + local_nonpersistent_flags+=("--no-headers") + flags+=("--output=") + two_word_flags+=("-o") + local_nonpersistent_flags+=("--output=") flags+=("--role-namespace=") local_nonpersistent_flags+=("--role-namespace=") flags+=("--rolebinding-name=") local_nonpersistent_flags+=("--rolebinding-name=") + flags+=("--show-all") + flags+=("-a") + local_nonpersistent_flags+=("--show-all") + flags+=("--show-labels") + local_nonpersistent_flags+=("--show-labels") + flags+=("--sort-by=") + local_nonpersistent_flags+=("--sort-by=") + flags+=("--template=") + flags_with_completion+=("--template") + flags_completion+=("_filedir") + local_nonpersistent_flags+=("--template=") flags+=("--as=") flags+=("--as-group=") flags+=("--certificate-authority=") @@ -8719,6 +9064,15 @@ _openshift_cli_adm_policy_add-role-to-user() flags_with_completion=() flags_completion=() + flags+=("--allow-missing-template-keys") + local_nonpersistent_flags+=("--allow-missing-template-keys") + flags+=("--dry-run") + local_nonpersistent_flags+=("--dry-run") + flags+=("--no-headers") + local_nonpersistent_flags+=("--no-headers") + flags+=("--output=") + two_word_flags+=("-o") + local_nonpersistent_flags+=("--output=") flags+=("--role-namespace=") local_nonpersistent_flags+=("--role-namespace=") flags+=("--rolebinding-name=") @@ -8726,6 +9080,17 @@ _openshift_cli_adm_policy_add-role-to-user() flags+=("--serviceaccount=") two_word_flags+=("-z") local_nonpersistent_flags+=("--serviceaccount=") + flags+=("--show-all") + flags+=("-a") + local_nonpersistent_flags+=("--show-all") + flags+=("--show-labels") + local_nonpersistent_flags+=("--show-labels") + flags+=("--sort-by=") + local_nonpersistent_flags+=("--sort-by=") + flags+=("--template=") + flags_with_completion+=("--template") + flags_completion+=("_filedir") + local_nonpersistent_flags+=("--template=") flags+=("--as=") flags+=("--as-group=") flags+=("--certificate-authority=") @@ -8769,6 +9134,26 @@ _openshift_cli_adm_policy_add-scc-to-group() flags_with_completion=() flags_completion=() + flags+=("--allow-missing-template-keys") + local_nonpersistent_flags+=("--allow-missing-template-keys") + flags+=("--dry-run") + local_nonpersistent_flags+=("--dry-run") + flags+=("--no-headers") + local_nonpersistent_flags+=("--no-headers") + flags+=("--output=") + two_word_flags+=("-o") + local_nonpersistent_flags+=("--output=") + flags+=("--show-all") + flags+=("-a") + local_nonpersistent_flags+=("--show-all") + flags+=("--show-labels") + local_nonpersistent_flags+=("--show-labels") + flags+=("--sort-by=") + local_nonpersistent_flags+=("--sort-by=") + flags+=("--template=") + flags_with_completion+=("--template") + flags_completion+=("_filedir") + local_nonpersistent_flags+=("--template=") flags+=("--as=") flags+=("--as-group=") flags+=("--certificate-authority=") @@ -8812,9 +9197,29 @@ _openshift_cli_adm_policy_add-scc-to-user() flags_with_completion=() flags_completion=() + flags+=("--allow-missing-template-keys") + local_nonpersistent_flags+=("--allow-missing-template-keys") + flags+=("--dry-run") + local_nonpersistent_flags+=("--dry-run") + flags+=("--no-headers") + local_nonpersistent_flags+=("--no-headers") + flags+=("--output=") + two_word_flags+=("-o") + local_nonpersistent_flags+=("--output=") flags+=("--serviceaccount=") two_word_flags+=("-z") local_nonpersistent_flags+=("--serviceaccount=") + flags+=("--show-all") + flags+=("-a") + local_nonpersistent_flags+=("--show-all") + flags+=("--show-labels") + local_nonpersistent_flags+=("--show-labels") + flags+=("--sort-by=") + local_nonpersistent_flags+=("--sort-by=") + flags+=("--template=") + flags_with_completion+=("--template") + flags_completion+=("_filedir") + local_nonpersistent_flags+=("--template=") flags+=("--as=") flags+=("--as-group=") flags+=("--certificate-authority=") @@ -9059,6 +9464,26 @@ _openshift_cli_adm_policy_remove-cluster-role-from-group() flags_with_completion=() flags_completion=() + flags+=("--allow-missing-template-keys") + local_nonpersistent_flags+=("--allow-missing-template-keys") + flags+=("--dry-run") + local_nonpersistent_flags+=("--dry-run") + flags+=("--no-headers") + local_nonpersistent_flags+=("--no-headers") + flags+=("--output=") + two_word_flags+=("-o") + local_nonpersistent_flags+=("--output=") + flags+=("--show-all") + flags+=("-a") + local_nonpersistent_flags+=("--show-all") + flags+=("--show-labels") + local_nonpersistent_flags+=("--show-labels") + flags+=("--sort-by=") + local_nonpersistent_flags+=("--sort-by=") + flags+=("--template=") + flags_with_completion+=("--template") + flags_completion+=("_filedir") + local_nonpersistent_flags+=("--template=") flags+=("--as=") flags+=("--as-group=") flags+=("--certificate-authority=") @@ -9102,9 +9527,29 @@ _openshift_cli_adm_policy_remove-cluster-role-from-user() flags_with_completion=() flags_completion=() + flags+=("--allow-missing-template-keys") + local_nonpersistent_flags+=("--allow-missing-template-keys") + flags+=("--dry-run") + local_nonpersistent_flags+=("--dry-run") + flags+=("--no-headers") + local_nonpersistent_flags+=("--no-headers") + flags+=("--output=") + two_word_flags+=("-o") + local_nonpersistent_flags+=("--output=") flags+=("--serviceaccount=") two_word_flags+=("-z") local_nonpersistent_flags+=("--serviceaccount=") + flags+=("--show-all") + flags+=("-a") + local_nonpersistent_flags+=("--show-all") + flags+=("--show-labels") + local_nonpersistent_flags+=("--show-labels") + flags+=("--sort-by=") + local_nonpersistent_flags+=("--sort-by=") + flags+=("--template=") + flags_with_completion+=("--template") + flags_completion+=("_filedir") + local_nonpersistent_flags+=("--template=") flags+=("--as=") flags+=("--as-group=") flags+=("--certificate-authority=") @@ -9148,6 +9593,13 @@ _openshift_cli_adm_policy_remove-group() flags_with_completion=() flags_completion=() + flags+=("--allow-missing-template-keys") + local_nonpersistent_flags+=("--allow-missing-template-keys") + flags+=("--dry-run") + local_nonpersistent_flags+=("--dry-run") + flags+=("--output=") + two_word_flags+=("-o") + local_nonpersistent_flags+=("--output=") flags+=("--as=") flags+=("--as-group=") flags+=("--certificate-authority=") @@ -9191,8 +9643,28 @@ _openshift_cli_adm_policy_remove-role-from-group() flags_with_completion=() flags_completion=() + flags+=("--allow-missing-template-keys") + local_nonpersistent_flags+=("--allow-missing-template-keys") + flags+=("--dry-run") + local_nonpersistent_flags+=("--dry-run") + flags+=("--no-headers") + local_nonpersistent_flags+=("--no-headers") + flags+=("--output=") + two_word_flags+=("-o") + local_nonpersistent_flags+=("--output=") flags+=("--role-namespace=") local_nonpersistent_flags+=("--role-namespace=") + flags+=("--show-all") + flags+=("-a") + local_nonpersistent_flags+=("--show-all") + flags+=("--show-labels") + local_nonpersistent_flags+=("--show-labels") + flags+=("--sort-by=") + local_nonpersistent_flags+=("--sort-by=") + flags+=("--template=") + flags_with_completion+=("--template") + flags_completion+=("_filedir") + local_nonpersistent_flags+=("--template=") flags+=("--as=") flags+=("--as-group=") flags+=("--certificate-authority=") @@ -9236,11 +9708,31 @@ _openshift_cli_adm_policy_remove-role-from-user() flags_with_completion=() flags_completion=() + flags+=("--allow-missing-template-keys") + local_nonpersistent_flags+=("--allow-missing-template-keys") + flags+=("--dry-run") + local_nonpersistent_flags+=("--dry-run") + flags+=("--no-headers") + local_nonpersistent_flags+=("--no-headers") + flags+=("--output=") + two_word_flags+=("-o") + local_nonpersistent_flags+=("--output=") flags+=("--role-namespace=") local_nonpersistent_flags+=("--role-namespace=") flags+=("--serviceaccount=") two_word_flags+=("-z") local_nonpersistent_flags+=("--serviceaccount=") + flags+=("--show-all") + flags+=("-a") + local_nonpersistent_flags+=("--show-all") + flags+=("--show-labels") + local_nonpersistent_flags+=("--show-labels") + flags+=("--sort-by=") + local_nonpersistent_flags+=("--sort-by=") + flags+=("--template=") + flags_with_completion+=("--template") + flags_completion+=("_filedir") + local_nonpersistent_flags+=("--template=") flags+=("--as=") flags+=("--as-group=") flags+=("--certificate-authority=") @@ -9284,6 +9776,26 @@ _openshift_cli_adm_policy_remove-scc-from-group() flags_with_completion=() flags_completion=() + flags+=("--allow-missing-template-keys") + local_nonpersistent_flags+=("--allow-missing-template-keys") + flags+=("--dry-run") + local_nonpersistent_flags+=("--dry-run") + flags+=("--no-headers") + local_nonpersistent_flags+=("--no-headers") + flags+=("--output=") + two_word_flags+=("-o") + local_nonpersistent_flags+=("--output=") + flags+=("--show-all") + flags+=("-a") + local_nonpersistent_flags+=("--show-all") + flags+=("--show-labels") + local_nonpersistent_flags+=("--show-labels") + flags+=("--sort-by=") + local_nonpersistent_flags+=("--sort-by=") + flags+=("--template=") + flags_with_completion+=("--template") + flags_completion+=("_filedir") + local_nonpersistent_flags+=("--template=") flags+=("--as=") flags+=("--as-group=") flags+=("--certificate-authority=") @@ -9327,9 +9839,29 @@ _openshift_cli_adm_policy_remove-scc-from-user() flags_with_completion=() flags_completion=() + flags+=("--allow-missing-template-keys") + local_nonpersistent_flags+=("--allow-missing-template-keys") + flags+=("--dry-run") + local_nonpersistent_flags+=("--dry-run") + flags+=("--no-headers") + local_nonpersistent_flags+=("--no-headers") + flags+=("--output=") + two_word_flags+=("-o") + local_nonpersistent_flags+=("--output=") flags+=("--serviceaccount=") two_word_flags+=("-z") local_nonpersistent_flags+=("--serviceaccount=") + flags+=("--show-all") + flags+=("-a") + local_nonpersistent_flags+=("--show-all") + flags+=("--show-labels") + local_nonpersistent_flags+=("--show-labels") + flags+=("--sort-by=") + local_nonpersistent_flags+=("--sort-by=") + flags+=("--template=") + flags_with_completion+=("--template") + flags_completion+=("_filedir") + local_nonpersistent_flags+=("--template=") flags+=("--as=") flags+=("--as-group=") flags+=("--certificate-authority=") @@ -9373,6 +9905,26 @@ _openshift_cli_adm_policy_remove-user() flags_with_completion=() flags_completion=() + flags+=("--allow-missing-template-keys") + local_nonpersistent_flags+=("--allow-missing-template-keys") + flags+=("--dry-run") + local_nonpersistent_flags+=("--dry-run") + flags+=("--no-headers") + local_nonpersistent_flags+=("--no-headers") + flags+=("--output=") + two_word_flags+=("-o") + local_nonpersistent_flags+=("--output=") + flags+=("--show-all") + flags+=("-a") + local_nonpersistent_flags+=("--show-all") + flags+=("--show-labels") + local_nonpersistent_flags+=("--show-labels") + flags+=("--sort-by=") + local_nonpersistent_flags+=("--sort-by=") + flags+=("--template=") + flags_with_completion+=("--template") + flags_completion+=("_filedir") + local_nonpersistent_flags+=("--template=") flags+=("--as=") flags+=("--as-group=") flags+=("--certificate-authority=") @@ -9571,6 +10123,24 @@ _openshift_cli_adm_policy_who-can() flags+=("--all-namespaces") local_nonpersistent_flags+=("--all-namespaces") + flags+=("--allow-missing-template-keys") + local_nonpersistent_flags+=("--allow-missing-template-keys") + flags+=("--no-headers") + local_nonpersistent_flags+=("--no-headers") + flags+=("--output=") + two_word_flags+=("-o") + local_nonpersistent_flags+=("--output=") + flags+=("--show-all") + flags+=("-a") + local_nonpersistent_flags+=("--show-all") + flags+=("--show-labels") + local_nonpersistent_flags+=("--show-labels") + flags+=("--sort-by=") + local_nonpersistent_flags+=("--sort-by=") + flags+=("--template=") + flags_with_completion+=("--template") + flags_completion+=("_filedir") + local_nonpersistent_flags+=("--template=") flags+=("--as=") flags+=("--as-group=") flags+=("--certificate-authority=") @@ -18526,10 +19096,30 @@ _openshift_cli_policy_add-role-to-group() flags_with_completion=() flags_completion=() + flags+=("--allow-missing-template-keys") + local_nonpersistent_flags+=("--allow-missing-template-keys") + flags+=("--dry-run") + local_nonpersistent_flags+=("--dry-run") + flags+=("--no-headers") + local_nonpersistent_flags+=("--no-headers") + flags+=("--output=") + two_word_flags+=("-o") + local_nonpersistent_flags+=("--output=") flags+=("--role-namespace=") local_nonpersistent_flags+=("--role-namespace=") flags+=("--rolebinding-name=") local_nonpersistent_flags+=("--rolebinding-name=") + flags+=("--show-all") + flags+=("-a") + local_nonpersistent_flags+=("--show-all") + flags+=("--show-labels") + local_nonpersistent_flags+=("--show-labels") + flags+=("--sort-by=") + local_nonpersistent_flags+=("--sort-by=") + flags+=("--template=") + flags_with_completion+=("--template") + flags_completion+=("_filedir") + local_nonpersistent_flags+=("--template=") flags+=("--as=") flags+=("--as-group=") flags+=("--certificate-authority=") @@ -18577,6 +19167,15 @@ _openshift_cli_policy_add-role-to-user() flags_with_completion=() flags_completion=() + flags+=("--allow-missing-template-keys") + local_nonpersistent_flags+=("--allow-missing-template-keys") + flags+=("--dry-run") + local_nonpersistent_flags+=("--dry-run") + flags+=("--no-headers") + local_nonpersistent_flags+=("--no-headers") + flags+=("--output=") + two_word_flags+=("-o") + local_nonpersistent_flags+=("--output=") flags+=("--role-namespace=") local_nonpersistent_flags+=("--role-namespace=") flags+=("--rolebinding-name=") @@ -18584,6 +19183,17 @@ _openshift_cli_policy_add-role-to-user() flags+=("--serviceaccount=") two_word_flags+=("-z") local_nonpersistent_flags+=("--serviceaccount=") + flags+=("--show-all") + flags+=("-a") + local_nonpersistent_flags+=("--show-all") + flags+=("--show-labels") + local_nonpersistent_flags+=("--show-labels") + flags+=("--sort-by=") + local_nonpersistent_flags+=("--sort-by=") + flags+=("--template=") + flags_with_completion+=("--template") + flags_completion+=("_filedir") + local_nonpersistent_flags+=("--template=") flags+=("--as=") flags+=("--as-group=") flags+=("--certificate-authority=") @@ -18710,6 +19320,13 @@ _openshift_cli_policy_remove-group() flags_with_completion=() flags_completion=() + flags+=("--allow-missing-template-keys") + local_nonpersistent_flags+=("--allow-missing-template-keys") + flags+=("--dry-run") + local_nonpersistent_flags+=("--dry-run") + flags+=("--output=") + two_word_flags+=("-o") + local_nonpersistent_flags+=("--output=") flags+=("--as=") flags+=("--as-group=") flags+=("--certificate-authority=") @@ -18757,8 +19374,28 @@ _openshift_cli_policy_remove-role-from-group() flags_with_completion=() flags_completion=() + flags+=("--allow-missing-template-keys") + local_nonpersistent_flags+=("--allow-missing-template-keys") + flags+=("--dry-run") + local_nonpersistent_flags+=("--dry-run") + flags+=("--no-headers") + local_nonpersistent_flags+=("--no-headers") + flags+=("--output=") + two_word_flags+=("-o") + local_nonpersistent_flags+=("--output=") flags+=("--role-namespace=") local_nonpersistent_flags+=("--role-namespace=") + flags+=("--show-all") + flags+=("-a") + local_nonpersistent_flags+=("--show-all") + flags+=("--show-labels") + local_nonpersistent_flags+=("--show-labels") + flags+=("--sort-by=") + local_nonpersistent_flags+=("--sort-by=") + flags+=("--template=") + flags_with_completion+=("--template") + flags_completion+=("_filedir") + local_nonpersistent_flags+=("--template=") flags+=("--as=") flags+=("--as-group=") flags+=("--certificate-authority=") @@ -18806,11 +19443,31 @@ _openshift_cli_policy_remove-role-from-user() flags_with_completion=() flags_completion=() + flags+=("--allow-missing-template-keys") + local_nonpersistent_flags+=("--allow-missing-template-keys") + flags+=("--dry-run") + local_nonpersistent_flags+=("--dry-run") + flags+=("--no-headers") + local_nonpersistent_flags+=("--no-headers") + flags+=("--output=") + two_word_flags+=("-o") + local_nonpersistent_flags+=("--output=") flags+=("--role-namespace=") local_nonpersistent_flags+=("--role-namespace=") flags+=("--serviceaccount=") two_word_flags+=("-z") local_nonpersistent_flags+=("--serviceaccount=") + flags+=("--show-all") + flags+=("-a") + local_nonpersistent_flags+=("--show-all") + flags+=("--show-labels") + local_nonpersistent_flags+=("--show-labels") + flags+=("--sort-by=") + local_nonpersistent_flags+=("--sort-by=") + flags+=("--template=") + flags_with_completion+=("--template") + flags_completion+=("_filedir") + local_nonpersistent_flags+=("--template=") flags+=("--as=") flags+=("--as-group=") flags+=("--certificate-authority=") @@ -18858,6 +19515,26 @@ _openshift_cli_policy_remove-user() flags_with_completion=() flags_completion=() + flags+=("--allow-missing-template-keys") + local_nonpersistent_flags+=("--allow-missing-template-keys") + flags+=("--dry-run") + local_nonpersistent_flags+=("--dry-run") + flags+=("--no-headers") + local_nonpersistent_flags+=("--no-headers") + flags+=("--output=") + two_word_flags+=("-o") + local_nonpersistent_flags+=("--output=") + flags+=("--show-all") + flags+=("-a") + local_nonpersistent_flags+=("--show-all") + flags+=("--show-labels") + local_nonpersistent_flags+=("--show-labels") + flags+=("--sort-by=") + local_nonpersistent_flags+=("--sort-by=") + flags+=("--template=") + flags_with_completion+=("--template") + flags_completion+=("_filedir") + local_nonpersistent_flags+=("--template=") flags+=("--as=") flags+=("--as-group=") flags+=("--certificate-authority=") @@ -19068,6 +19745,24 @@ _openshift_cli_policy_who-can() flags+=("--all-namespaces") local_nonpersistent_flags+=("--all-namespaces") + flags+=("--allow-missing-template-keys") + local_nonpersistent_flags+=("--allow-missing-template-keys") + flags+=("--no-headers") + local_nonpersistent_flags+=("--no-headers") + flags+=("--output=") + two_word_flags+=("-o") + local_nonpersistent_flags+=("--output=") + flags+=("--show-all") + flags+=("-a") + local_nonpersistent_flags+=("--show-all") + flags+=("--show-labels") + local_nonpersistent_flags+=("--show-labels") + flags+=("--sort-by=") + local_nonpersistent_flags+=("--sort-by=") + flags+=("--template=") + flags_with_completion+=("--template") + flags_completion+=("_filedir") + local_nonpersistent_flags+=("--template=") flags+=("--as=") flags+=("--as-group=") flags+=("--certificate-authority=")