diff --git a/pkg/kubernetes/config.go b/pkg/kubernetes/config.go index 99aba9da..67686b5c 100644 --- a/pkg/kubernetes/config.go +++ b/pkg/kubernetes/config.go @@ -11,6 +11,7 @@ import ( ) var ImpersonateAs = "" +var ImpersonateAsGroups = []string{} func GetConfig() (*rest.Config, error) { cfg, err := config.GetConfig() @@ -22,6 +23,10 @@ func GetConfig() (*rest.Config, error) { cfg.Impersonate.UserName = ImpersonateAs } + if len(ImpersonateAsGroups) != 0 { + cfg.Impersonate.Groups = ImpersonateAsGroups + } + return cfg, nil } diff --git a/pkg/kuttlctl/cmd/root.go b/pkg/kuttlctl/cmd/root.go index 7195be37..4b85cc49 100644 --- a/pkg/kuttlctl/cmd/root.go +++ b/pkg/kuttlctl/cmd/root.go @@ -32,6 +32,8 @@ and serves as an API aggregation layer. } cmd.PersistentFlags().StringVar(&kubernetes.ImpersonateAs, "as", "", "Username to impersonate for the operation. User could be a regular user or a service account in a namespace.") + cmd.PersistentFlags().StringSliceVar(&kubernetes.ImpersonateAsGroups, "as-groups", []string{}, "Groups to impersonate for the operation.") + cmd.AddCommand(newAssertCmd()) cmd.AddCommand(newErrorsCmd()) cmd.AddCommand(newTestCmd())