Repository: knative/client
Pull request #1745 (2022-10-09 02:40:22)

cli options to enable user, uid, and group impersonation
## Description

<!-- Please add a short summary about what the pull request is going to bring on the table -->
CLI options to enable kubernetes user and group impersonation
```
❯ ./kn options
The following options can be passed to any command:

      --as string              username to impersonate for the operation
      --as-uid string          uid to impersonate for the operation
      --as-group stringArray   group to impersonate for the operation, this flag can be repeated to specify multiple groups
      --cluster string         name of the kubeconfig cluster to use
      --config string          kn configuration file (default: ~/.config/kn/config.yaml)
      --context string         name of the kubeconfig context to use
      --kubeconfig string      kubectl configuration file (default: ~/.kube/config)
      --log-http               log http traffic
```

## Changes

<!-- Please add list of more detailed changes. These changes should be reflected also in the commit messages -->

* provide string option `--as` for username impersonation
* provide string option `--as-uid` for uid impersonation
* provide stringArray option `--as-group` for group impersonation

## Reference

<!-- Please add the corresponding issue number which this pull request is about to fix -->
Fixes #

**Release Note**

<!-- Enter your extended release note in the below block. If the PR requires
additional action from users switching to the new release, include the string
"action required". If no release note is required, write "NONE". -->

```release-note
Provide cli options to enable Kubernetes user, uid, and group impersonation via `--as`, `--as-group` and `--as-uid` flags
```

<!--
Please add an entry to CHANGELOG.adoc file, too, as part of your Pull Request.

In the following cases, add a short description of PR to the unreleased section in CHANGELOG.adoc:

- 🎁 New feature
- 🐛 Bug fix
- ✨ Feature Update
- 🐣 Refactoring
- 🗑️ Remove feature or internal logic

See other entries in CHANGELOG.adoc as an example for how to add the entry, including a reference to the corresponding issue/PR

PLEASE DON'T ADD THAT LINE HERE IN THE PULL-REQUEST DESCRIPTION BUT DIRECTLY IN CHANGELOG.ADOC AND ADD CHANGELOG.ADOC AS PART OF YOUR PULL-REQUEST.
-->
- 🎁 New feature: provide cli options to enable Kubernetes user, uid, and group impersonation via `--as` and `--as-group` flags
<!--
To automatically lint go code in this pull request uncomment the line below. You get feedback as comments on your pull request then -->

<!--
/lint
-->


knative-prow[bot]: [APPROVALNOTIFIER] This PR is **NOT APPROVED**

This pull-request has been approved by: *<a href="https://github.com/knative/client/pull/1745#" title="Author self-approved">a7i</a>*
**Once this PR has been reviewed and has the lgtm label**, please assign nak3 for approval by writing `/assign @nak3` in a comment. For more information see:[The Kubernetes Code Review Process](https://git.k8s.io/community/contributors/guide/owners.md#the-code-review-process).

The full list of commands accepted by this bot can be found [here](https://go.k8s.io/bot-commands?repo=knative%2Fclient).

<details open>
Needs approval from an approver in each of these files:

- **[OWNERS](https://github.com/knative/client/blob/main/OWNERS)**

Approvers can indicate their approval by writing `/approve` in a comment
Approvers can cancel approval by writing `/approve cancel` in a comment
</details>
<!-- META={"approvers":["nak3"]} -->
knative-prow[bot]: Welcome @a7i! It looks like this is your first PR to knative/client 🎉
knative-prow[bot]: Hi @a7i. Thanks for your PR.

I'm waiting for a [knative](https://github.com/orgs/knative/people) member to verify that this patch is reasonable to test. If it is, they should reply with `/ok-to-test` on its own line. Until that is done, I will not automatically test new commits in this PR, but the usual testing commands by org members will still work. Regular contributors should [join the org](https://github.com/orgs/knative/people) to skip this step.

Once the patch is verified, the new status will be reflected by the `ok-to-test` label.

I understand the commands that are listed [here](https://go.k8s.io/bot-commands?repo=knative%2Fclient).

<details>

Instructions for interacting with me using PR comments are available [here](https://git.k8s.io/community/contributors/guide/pull-requests.md).  If you have questions or suggestions related to my behavior, please file an issue against the [kubernetes/test-infra](https://github.com/kubernetes/test-infra/issues/new?title=Prow%20issue:) repository.
</details>

dsimansk: /ok-to-test
knative-prow[bot]: @a7i: The following test **failed**, say `/retest` to rerun all failed tests or `/retest-required` to rerun all mandatory failed tests:

Test name | Commit | Details | Required | Rerun command
--- | --- | --- | --- | ---
unit-tests_client_main | 3cc8f841aecf905f617b335b9cdde52cb2fb727b | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative_client/1745/unit-tests_client_main/1579757005176836096) | true | `/test unit-tests`

[Your PR dashboard](https://prow.knative.dev/pr).

<details>

Instructions for interacting with me using PR comments are available [here](https://git.k8s.io/community/contributors/guide/pull-requests.md).  If you have questions or suggestions related to my behavior, please file an issue against the [kubernetes/test-infra](https://github.com/kubernetes/test-infra/issues/new?title=Prow%20issue:) repository. I understand the commands that are listed [here](https://go.k8s.io/bot-commands).
</details>
<!-- test report -->
dsimansk: @a7i thanks for the PR! Looks good at a first glance!

Can you pls take a look at failing unit test? https://github.com/knative/client/actions/runs/3212622694/jobs/5277761586#step:7:20
knative-prow[bot]: @a7i: The following test **failed**, say `/retest` to rerun all failed tests or `/retest-required` to rerun all mandatory failed tests:

Test name | Commit | Details | Required | Rerun command
--- | --- | --- | --- | ---
build-tests_client_main | 7977647055c4819a8c06996ed7ac426b5dc873bb | [link](https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative_client/1745/build-tests_client_main/1580021686546206720) | true | `/test build-tests`

[Your PR dashboard](https://prow.knative.dev/pr).

<details>

Instructions for interacting with me using PR comments are available [here](https://git.k8s.io/community/contributors/guide/pull-requests.md).  If you have questions or suggestions related to my behavior, please file an issue against the [kubernetes/test-infra](https://github.com/kubernetes/test-infra/issues/new?title=Prow%20issue:) repository. I understand the commands that are listed [here](https://go.k8s.io/bot-commands).
</details>
<!-- test report -->
codecov[bot]: # [Codecov](https://codecov.io/gh/knative/client/pull/1745?src=pr&el=h1&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=knative) Report
Base: **79.87**% // Head: **79.89**% // Increases project coverage by **`+0.01%`** :tada:
> Coverage data is based on head [(`4dcf7c7`)](https://codecov.io/gh/knative/client/pull/1745?src=pr&el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=knative) compared to base [(`6bbbd50`)](https://codecov.io/gh/knative/client/commit/6bbbd501be53e74727dc79c52b70ac8436ae1376?el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=knative).
> Patch coverage: 100.00% of modified lines in pull request are covered.

<details><summary>Additional details and impacted files</summary>


```diff
@@            Coverage Diff             @@
##             main    #1745      +/-   ##
==========================================
+ Coverage   79.87%   79.89%   +0.01%     
==========================================
  Files         174      174              
  Lines       13577    13589      +12     
==========================================
+ Hits        10845    10857      +12     
  Misses       1990     1990              
  Partials      742      742              
```


| [Impacted Files](https://codecov.io/gh/knative/client/pull/1745?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=knative) | Coverage Δ | |
|---|---|---|
| [pkg/kn/commands/types.go](https://codecov.io/gh/knative/client/pull/1745/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=knative#diff-cGtnL2tuL2NvbW1hbmRzL3R5cGVzLmdv) | `87.83% <100.00%> (+0.78%)` | :arrow_up: |
| [pkg/kn/root/root.go](https://codecov.io/gh/knative/client/pull/1745/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=knative#diff-cGtnL2tuL3Jvb3Qvcm9vdC5nbw==) | `89.91% <100.00%> (+0.26%)` | :arrow_up: |

Help us with your feedback. Take ten seconds to tell us [how you rate us](https://about.codecov.io/nps?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=knative). Have a feature suggestion? [Share it here.](https://app.codecov.io/gh/feedback/?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=knative)

</details>

[:umbrella: View full report at Codecov](https://codecov.io/gh/knative/client/pull/1745?src=pr&el=continue&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=knative).   
:loudspeaker: Do you have feedback about the report comment? [Let us know in this issue](https://about.codecov.io/codecov-pr-comment-feedback/?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=knative).


Patch:
diff --git a/docs/cmd/kn.md b/docs/cmd/kn.md
index 7d020382..7e36ee36 100644
--- a/docs/cmd/kn.md
+++ b/docs/cmd/kn.md
@@ -11,12 +11,15 @@ Find more information about Knative at: https://knative.dev
 ### Options
 
 ```
-      --cluster string      name of the kubeconfig cluster to use
-      --config string       kn configuration file (default: ~/.config/kn/config.yaml)
-      --context string      name of the kubeconfig context to use
-  -h, --help                help for kn
-      --kubeconfig string   kubectl configuration file (default: ~/.kube/config)
-      --log-http            log http traffic
+      --as string              username to impersonate for the operation
+      --as-group stringArray   group to impersonate for the operation, this flag can be repeated to specify multiple groups
+      --as-uid string          uid to impersonate for the operation
+      --cluster string         name of the kubeconfig cluster to use
+      --config string          kn configuration file (default: ~/.config/kn/config.yaml)
+      --context string         name of the kubeconfig context to use
+  -h, --help                   help for kn
+      --kubeconfig string      kubectl configuration file (default: ~/.kube/config)
+      --log-http               log http traffic
 ```
 
 ### SEE ALSO
diff --git a/docs/cmd/kn_broker.md b/docs/cmd/kn_broker.md
index 4237f2e7..e9bcfd33 100644
--- a/docs/cmd/kn_broker.md
+++ b/docs/cmd/kn_broker.md
@@ -15,11 +15,14 @@ kn broker
 ### Options inherited from parent commands
 
 ```
-      --cluster string      name of the kubeconfig cluster to use
-      --config string       kn configuration file (default: ~/.config/kn/config.yaml)
-      --context string      name of the kubeconfig context to use
-      --kubeconfig string   kubectl configuration file (default: ~/.kube/config)
-      --log-http            log http traffic
+      --as string              username to impersonate for the operation
+      --as-group stringArray   group to impersonate for the operation, this flag can be repeated to specify multiple groups
+      --as-uid string          uid to impersonate for the operation
+      --cluster string         name of the kubeconfig cluster to use
+      --config string          kn configuration file (default: ~/.config/kn/config.yaml)
+      --context string         name of the kubeconfig context to use
+      --kubeconfig string      kubectl configuration file (default: ~/.kube/config)
+      --log-http               log http traffic
 ```
 
 ### SEE ALSO
diff --git a/docs/cmd/kn_broker_create.md b/docs/cmd/kn_broker_create.md
index 955fffad..502012e3 100644
--- a/docs/cmd/kn_broker_create.md
+++ b/docs/cmd/kn_broker_create.md
@@ -52,11 +52,14 @@ kn broker create NAME
 ### Options inherited from parent commands
 
 ```
-      --cluster string      name of the kubeconfig cluster to use
-      --config string       kn configuration file (default: ~/.config/kn/config.yaml)
-      --context string      name of the kubeconfig context to use
-      --kubeconfig string   kubectl configuration file (default: ~/.kube/config)
-      --log-http            log http traffic
+      --as string              username to impersonate for the operation
+      --as-group stringArray   group to impersonate for the operation, this flag can be repeated to specify multiple groups
+      --as-uid string          uid to impersonate for the operation
+      --cluster string         name of the kubeconfig cluster to use
+      --config string          kn configuration file (default: ~/.config/kn/config.yaml)
+      --context string         name of the kubeconfig context to use
+      --kubeconfig string      kubectl configuration file (default: ~/.kube/config)
+      --log-http               log http traffic
 ```
 
 ### SEE ALSO
diff --git a/docs/cmd/kn_broker_delete.md b/docs/cmd/kn_broker_delete.md
index be8c6efd..1116033d 100644
--- a/docs/cmd/kn_broker_delete.md
+++ b/docs/cmd/kn_broker_delete.md
@@ -31,11 +31,14 @@ kn broker delete NAME
 ### Options inherited from parent commands
 
 ```
-      --cluster string      name of the kubeconfig cluster to use
-      --config string       kn configuration file (default: ~/.config/kn/config.yaml)
-      --context string      name of the kubeconfig context to use
-      --kubeconfig string   kubectl configuration file (default: ~/.kube/config)
-      --log-http            log http traffic
+      --as string              username to impersonate for the operation
+      --as-group stringArray   group to impersonate for the operation, this flag can be repeated to specify multiple groups
+      --as-uid string          uid to impersonate for the operation
+      --cluster string         name of the kubeconfig cluster to use
+      --config string          kn configuration file (default: ~/.config/kn/config.yaml)
+      --context string         name of the kubeconfig context to use
+      --kubeconfig string      kubectl configuration file (default: ~/.kube/config)
+      --log-http               log http traffic
 ```
 
 ### SEE ALSO
diff --git a/docs/cmd/kn_broker_describe.md b/docs/cmd/kn_broker_describe.md
index a56c0ee5..21969567 100644
--- a/docs/cmd/kn_broker_describe.md
+++ b/docs/cmd/kn_broker_describe.md
@@ -37,11 +37,14 @@ kn broker describe NAME
 ### Options inherited from parent commands
 
 ```
-      --cluster string      name of the kubeconfig cluster to use
-      --config string       kn configuration file (default: ~/.config/kn/config.yaml)
-      --context string      name of the kubeconfig context to use
-      --kubeconfig string   kubectl configuration file (default: ~/.kube/config)
-      --log-http            log http traffic
+      --as string              username to impersonate for the operation
+      --as-group stringArray   group to impersonate for the operation, this flag can be repeated to specify multiple groups
+      --as-uid string          uid to impersonate for the operation
+      --cluster string         name of the kubeconfig cluster to use
+      --config string          kn configuration file (default: ~/.config/kn/config.yaml)
+      --context string         name of the kubeconfig context to use
+      --kubeconfig string      kubectl configuration file (default: ~/.kube/config)
+      --log-http               log http traffic
 ```
 
 ### SEE ALSO
diff --git a/docs/cmd/kn_broker_list.md b/docs/cmd/kn_broker_list.md
index 658f01d7..c308d98a 100644
--- a/docs/cmd/kn_broker_list.md
+++ b/docs/cmd/kn_broker_list.md
@@ -33,11 +33,14 @@ kn broker list
 ### Options inherited from parent commands
 
 ```
-      --cluster string      name of the kubeconfig cluster to use
-      --config string       kn configuration file (default: ~/.config/kn/config.yaml)
-      --context string      name of the kubeconfig context to use
-      --kubeconfig string   kubectl configuration file (default: ~/.kube/config)
-      --log-http            log http traffic
+      --as string              username to impersonate for the operation
+      --as-group stringArray   group to impersonate for the operation, this flag can be repeated to specify multiple groups
+      --as-uid string          uid to impersonate for the operation
+      --cluster string         name of the kubeconfig cluster to use
+      --config string          kn configuration file (default: ~/.config/kn/config.yaml)
+      --context string         name of the kubeconfig context to use
+      --kubeconfig string      kubectl configuration file (default: ~/.kube/config)
+      --log-http               log http traffic
 ```
 
 ### SEE ALSO
diff --git a/docs/cmd/kn_broker_update.md b/docs/cmd/kn_broker_update.md
index 49934464..84fe9e35 100644
--- a/docs/cmd/kn_broker_update.md
+++ b/docs/cmd/kn_broker_update.md
@@ -34,11 +34,14 @@ kn broker update NAME
 ### Options inherited from parent commands
 
 ```
-      --cluster string      name of the kubeconfig cluster to use
-      --config string       kn configuration file (default: ~/.config/kn/config.yaml)
-      --context string      name of the kubeconfig context to use
-      --kubeconfig string   kubectl configuration file (default: ~/.kube/config)
-      --log-http            log http traffic
+      --as string              username to impersonate for the operation
+      --as-group stringArray   group to impersonate for the operation, this flag can be repeated to specify multiple groups
+      --as-uid string          uid to impersonate for the operation
+      --cluster string         name of the kubeconfig cluster to use
+      --config string          kn configuration file (default: ~/.config/kn/config.yaml)
+      --context string         name of the kubeconfig context to use
+      --kubeconfig string      kubectl configuration file (default: ~/.kube/config)
+      --log-http               log http traffic
 ```
 
 ### SEE ALSO
diff --git a/docs/cmd/kn_channel.md b/docs/cmd/kn_channel.md
index 192e5bab..32b28f73 100644
--- a/docs/cmd/kn_channel.md
+++ b/docs/cmd/kn_channel.md
@@ -15,11 +15,14 @@ kn channel COMMAND
 ### Options inherited from parent commands
 
 ```
-      --cluster string      name of the kubeconfig cluster to use
-      --config string       kn configuration file (default: ~/.config/kn/config.yaml)
-      --context string      name of the kubeconfig context to use
-      --kubeconfig string   kubectl configuration file (default: ~/.kube/config)
-      --log-http            log http traffic
+      --as string              username to impersonate for the operation
+      --as-group stringArray   group to impersonate for the operation, this flag can be repeated to specify multiple groups
+      --as-uid string          uid to impersonate for the operation
+      --cluster string         name of the kubeconfig cluster to use
+      --config string          kn configuration file (default: ~/.config/kn/config.yaml)
+      --context string         name of the kubeconfig context to use
+      --kubeconfig string      kubectl configuration file (default: ~/.kube/config)
+      --log-http               log http traffic
 ```
 
 ### SEE ALSO
diff --git a/docs/cmd/kn_channel_create.md b/docs/cmd/kn_channel_create.md
index 264801a2..849ea4ec 100644
--- a/docs/cmd/kn_channel_create.md
+++ b/docs/cmd/kn_channel_create.md
@@ -33,11 +33,14 @@ kn channel create NAME
 ### Options inherited from parent commands
 
 ```
-      --cluster string      name of the kubeconfig cluster to use
-      --config string       kn configuration file (default: ~/.config/kn/config.yaml)
-      --context string      name of the kubeconfig context to use
-      --kubeconfig string   kubectl configuration file (default: ~/.kube/config)
-      --log-http            log http traffic
+      --as string              username to impersonate for the operation
+      --as-group stringArray   group to impersonate for the operation, this flag can be repeated to specify multiple groups
+      --as-uid string          uid to impersonate for the operation
+      --cluster string         name of the kubeconfig cluster to use
+      --config string          kn configuration file (default: ~/.config/kn/config.yaml)
+      --context string         name of the kubeconfig context to use
+      --kubeconfig string      kubectl configuration file (default: ~/.kube/config)
+      --log-http               log http traffic
 ```
 
 ### SEE ALSO
diff --git a/docs/cmd/kn_channel_delete.md b/docs/cmd/kn_channel_delete.md
index da93f1b4..4f12cfcc 100644
--- a/docs/cmd/kn_channel_delete.md
+++ b/docs/cmd/kn_channel_delete.md
@@ -24,11 +24,14 @@ kn channel delete NAME
 ### Options inherited from parent commands
 
 ```
-      --cluster string      name of the kubeconfig cluster to use
-      --config string       kn configuration file (default: ~/.config/kn/config.yaml)
-      --context string      name of the kubeconfig context to use
-      --kubeconfig string   kubectl configuration file (default: ~/.kube/config)
-      --log-http            log http traffic
+      --as string              username to impersonate for the operation
+      --as-group stringArray   group to impersonate for the operation, this flag can be repeated to specify multiple groups
+      --as-uid string          uid to impersonate for the operation
+      --cluster string         name of the kubeconfig cluster to use
+      --config string          kn configuration file (default: ~/.config/kn/config.yaml)
+      --context string         name of the kubeconfig context to use
+      --kubeconfig string      kubectl configuration file (default: ~/.kube/config)
+      --log-http               log http traffic
 ```
 
 ### SEE ALSO
diff --git a/docs/cmd/kn_channel_describe.md b/docs/cmd/kn_channel_describe.md
index 99477d08..1a59dde5 100644
--- a/docs/cmd/kn_channel_describe.md
+++ b/docs/cmd/kn_channel_describe.md
@@ -32,11 +32,14 @@ kn channel describe NAME
 ### Options inherited from parent commands
 
 ```
-      --cluster string      name of the kubeconfig cluster to use
-      --config string       kn configuration file (default: ~/.config/kn/config.yaml)
-      --context string      name of the kubeconfig context to use
-      --kubeconfig string   kubectl configuration file (default: ~/.kube/config)
-      --log-http            log http traffic
+      --as string              username to impersonate for the operation
+      --as-group stringArray   group to impersonate for the operation, this flag can be repeated to specify multiple groups
+      --as-uid string          uid to impersonate for the operation
+      --cluster string         name of the kubeconfig cluster to use
+      --config string          kn configuration file (default: ~/.config/kn/config.yaml)
+      --context string         name of the kubeconfig context to use
+      --kubeconfig string      kubectl configuration file (default: ~/.kube/config)
+      --log-http               log http traffic
 ```
 
 ### SEE ALSO
diff --git a/docs/cmd/kn_channel_list-types.md b/docs/cmd/kn_channel_list-types.md
index ea1f7d2e..04e50a84 100644
--- a/docs/cmd/kn_channel_list-types.md
+++ b/docs/cmd/kn_channel_list-types.md
@@ -32,11 +32,14 @@ kn channel list-types
 ### Options inherited from parent commands
 
 ```
-      --cluster string      name of the kubeconfig cluster to use
-      --config string       kn configuration file (default: ~/.config/kn/config.yaml)
-      --context string      name of the kubeconfig context to use
-      --kubeconfig string   kubectl configuration file (default: ~/.kube/config)
-      --log-http            log http traffic
+      --as string              username to impersonate for the operation
+      --as-group stringArray   group to impersonate for the operation, this flag can be repeated to specify multiple groups
+      --as-uid string          uid to impersonate for the operation
+      --cluster string         name of the kubeconfig cluster to use
+      --config string          kn configuration file (default: ~/.config/kn/config.yaml)
+      --context string         name of the kubeconfig context to use
+      --kubeconfig string      kubectl configuration file (default: ~/.kube/config)
+      --log-http               log http traffic
 ```
 
 ### SEE ALSO
diff --git a/docs/cmd/kn_channel_list.md b/docs/cmd/kn_channel_list.md
index 2e09aa3b..6891a855 100644
--- a/docs/cmd/kn_channel_list.md
+++ b/docs/cmd/kn_channel_list.md
@@ -33,11 +33,14 @@ kn channel list
 ### Options inherited from parent commands
 
 ```
-      --cluster string      name of the kubeconfig cluster to use
-      --config string       kn configuration file (default: ~/.config/kn/config.yaml)
-      --context string      name of the kubeconfig context to use
-      --kubeconfig string   kubectl configuration file (default: ~/.kube/config)
-      --log-http            log http traffic
+      --as string              username to impersonate for the operation
+      --as-group stringArray   group to impersonate for the operation, this flag can be repeated to specify multiple groups
+      --as-uid string          uid to impersonate for the operation
+      --cluster string         name of the kubeconfig cluster to use
+      --config string          kn configuration file (default: ~/.config/kn/config.yaml)
+      --context string         name of the kubeconfig context to use
+      --kubeconfig string      kubectl configuration file (default: ~/.kube/config)
+      --log-http               log http traffic
 ```
 
 ### SEE ALSO
diff --git a/docs/cmd/kn_completion.md b/docs/cmd/kn_completion.md
index 59317863..b543bd29 100644
--- a/docs/cmd/kn_completion.md
+++ b/docs/cmd/kn_completion.md
@@ -37,11 +37,14 @@ kn completion SHELL
 ### Options inherited from parent commands
 
 ```
-      --cluster string      name of the kubeconfig cluster to use
-      --config string       kn configuration file (default: ~/.config/kn/config.yaml)
-      --context string      name of the kubeconfig context to use
-      --kubeconfig string   kubectl configuration file (default: ~/.kube/config)
-      --log-http            log http traffic
+      --as string              username to impersonate for the operation
+      --as-group stringArray   group to impersonate for the operation, this flag can be repeated to specify multiple groups
+      --as-uid string          uid to impersonate for the operation
+      --cluster string         name of the kubeconfig cluster to use
+      --config string          kn configuration file (default: ~/.config/kn/config.yaml)
+      --context string         name of the kubeconfig context to use
+      --kubeconfig string      kubectl configuration file (default: ~/.kube/config)
+      --log-http               log http traffic
 ```
 
 ### SEE ALSO
diff --git a/docs/cmd/kn_container.md b/docs/cmd/kn_container.md
index d402be6c..17a83b28 100644
--- a/docs/cmd/kn_container.md
+++ b/docs/cmd/kn_container.md
@@ -15,11 +15,14 @@ kn container COMMAND
 ### Options inherited from parent commands
 
 ```
-      --cluster string      name of the kubeconfig cluster to use
-      --config string       kn configuration file (default: ~/.config/kn/config.yaml)
-      --context string      name of the kubeconfig context to use
-      --kubeconfig string   kubectl configuration file (default: ~/.kube/config)
-      --log-http            log http traffic
+      --as string              username to impersonate for the operation
+      --as-group stringArray   group to impersonate for the operation, this flag can be repeated to specify multiple groups
+      --as-uid string          uid to impersonate for the operation
+      --cluster string         name of the kubeconfig cluster to use
+      --config string          kn configuration file (default: ~/.config/kn/config.yaml)
+      --context string         name of the kubeconfig context to use
+      --kubeconfig string      kubectl configuration file (default: ~/.kube/config)
+      --log-http               log http traffic
 ```
 
 ### SEE ALSO
diff --git a/docs/cmd/kn_container_add.md b/docs/cmd/kn_container_add.md
index 15c41a2c..c59b1189 100644
--- a/docs/cmd/kn_container_add.md
+++ b/docs/cmd/kn_container_add.md
@@ -54,11 +54,14 @@ kn container add NAME
 ### Options inherited from parent commands
 
 ```
-      --cluster string      name of the kubeconfig cluster to use
-      --config string       kn configuration file (default: ~/.config/kn/config.yaml)
-      --context string      name of the kubeconfig context to use
-      --kubeconfig string   kubectl configuration file (default: ~/.kube/config)
-      --log-http            log http traffic
+      --as string              username to impersonate for the operation
+      --as-group stringArray   group to impersonate for the operation, this flag can be repeated to specify multiple groups
+      --as-uid string          uid to impersonate for the operation
+      --cluster string         name of the kubeconfig cluster to use
+      --config string          kn configuration file (default: ~/.config/kn/config.yaml)
+      --context string         name of the kubeconfig context to use
+      --kubeconfig string      kubectl configuration file (default: ~/.kube/config)
+      --log-http               log http traffic
 ```
 
 ### SEE ALSO
diff --git a/docs/cmd/kn_domain.md b/docs/cmd/kn_domain.md
index d04e5848..1299df5e 100644
--- a/docs/cmd/kn_domain.md
+++ b/docs/cmd/kn_domain.md
@@ -15,11 +15,14 @@ kn domain COMMAND
 ### Options inherited from parent commands
 
 ```
-      --cluster string      name of the kubeconfig cluster to use
-      --config string       kn configuration file (default: ~/.config/kn/config.yaml)
-      --context string      name of the kubeconfig context to use
-      --kubeconfig string   kubectl configuration file (default: ~/.kube/config)
-      --log-http            log http traffic
+      --as string              username to impersonate for the operation
+      --as-group stringArray   group to impersonate for the operation, this flag can be repeated to specify multiple groups
+      --as-uid string          uid to impersonate for the operation
+      --cluster string         name of the kubeconfig cluster to use
+      --config string          kn configuration file (default: ~/.config/kn/config.yaml)
+      --context string         name of the kubeconfig context to use
+      --kubeconfig string      kubectl configuration file (default: ~/.kube/config)
+      --log-http               log http traffic
 ```
 
 ### SEE ALSO
diff --git a/docs/cmd/kn_domain_create.md b/docs/cmd/kn_domain_create.md
index b9356c8d..5ceb3759 100644
--- a/docs/cmd/kn_domain_create.md
+++ b/docs/cmd/kn_domain_create.md
@@ -26,11 +26,14 @@ kn domain create NAME
 ### Options inherited from parent commands
 
 ```
-      --cluster string      name of the kubeconfig cluster to use
-      --config string       kn configuration file (default: ~/.config/kn/config.yaml)
-      --context string      name of the kubeconfig context to use
-      --kubeconfig string   kubectl configuration file (default: ~/.kube/config)
-      --log-http            log http traffic
+      --as string              username to impersonate for the operation
+      --as-group stringArray   group to impersonate for the operation, this flag can be repeated to specify multiple groups
+      --as-uid string          uid to impersonate for the operation
+      --cluster string         name of the kubeconfig cluster to use
+      --config string          kn configuration file (default: ~/.config/kn/config.yaml)
+      --context string         name of the kubeconfig context to use
+      --kubeconfig string      kubectl configuration file (default: ~/.kube/config)
+      --log-http               log http traffic
 ```
 
 ### SEE ALSO
diff --git a/docs/cmd/kn_domain_delete.md b/docs/cmd/kn_domain_delete.md
index a7d4d781..8841fdef 100644
--- a/docs/cmd/kn_domain_delete.md
+++ b/docs/cmd/kn_domain_delete.md
@@ -24,11 +24,14 @@ kn domain delete NAME
 ### Options inherited from parent commands
 
 ```
-      --cluster string      name of the kubeconfig cluster to use
-      --config string       kn configuration file (default: ~/.config/kn/config.yaml)
-      --context string      name of the kubeconfig context to use
-      --kubeconfig string   kubectl configuration file (default: ~/.kube/config)
-      --log-http            log http traffic
+      --as string              username to impersonate for the operation
+      --as-group stringArray   group to impersonate for the operation, this flag can be repeated to specify multiple groups
+      --as-uid string          uid to impersonate for the operation
+      --cluster string         name of the kubeconfig cluster to use
+      --config string          kn configuration file (default: ~/.config/kn/config.yaml)
+      --context string         name of the kubeconfig context to use
+      --kubeconfig string      kubectl configuration file (default: ~/.kube/config)
+      --log-http               log http traffic
 ```
 
 ### SEE ALSO
diff --git a/docs/cmd/kn_domain_describe.md b/docs/cmd/kn_domain_describe.md
index 5ef33c14..0d491f09 100644
--- a/docs/cmd/kn_domain_describe.md
+++ b/docs/cmd/kn_domain_describe.md
@@ -29,11 +29,14 @@ kn domain describe NAME
 ### Options inherited from parent commands
 
 ```
-      --cluster string      name of the kubeconfig cluster to use
-      --config string       kn configuration file (default: ~/.config/kn/config.yaml)
-      --context string      name of the kubeconfig context to use
-      --kubeconfig string   kubectl configuration file (default: ~/.kube/config)
-      --log-http            log http traffic
+      --as string              username to impersonate for the operation
+      --as-group stringArray   group to impersonate for the operation, this flag can be repeated to specify multiple groups
+      --as-uid string          uid to impersonate for the operation
+      --cluster string         name of the kubeconfig cluster to use
+      --config string          kn configuration file (default: ~/.config/kn/config.yaml)
+      --context string         name of the kubeconfig context to use
+      --kubeconfig string      kubectl configuration file (default: ~/.kube/config)
+      --log-http               log http traffic
 ```
 
 ### SEE ALSO
diff --git a/docs/cmd/kn_domain_list.md b/docs/cmd/kn_domain_list.md
index 55dfbfa6..a80a0b34 100644
--- a/docs/cmd/kn_domain_list.md
+++ b/docs/cmd/kn_domain_list.md
@@ -33,11 +33,14 @@ kn domain list
 ### Options inherited from parent commands
 
 ```
-      --cluster string      name of the kubeconfig cluster to use
-      --config string       kn configuration file (default: ~/.config/kn/config.yaml)
-      --context string      name of the kubeconfig context to use
-      --kubeconfig string   kubectl configuration file (default: ~/.kube/config)
-      --log-http            log http traffic
+      --as string              username to impersonate for the operation
+      --as-group stringArray   group to impersonate for the operation, this flag can be repeated to specify multiple groups
+      --as-uid string          uid to impersonate for the operation
+      --cluster string         name of the kubeconfig cluster to use
+      --config string          kn configuration file (default: ~/.config/kn/config.yaml)
+      --context string         name of the kubeconfig context to use
+      --kubeconfig string      kubectl configuration file (default: ~/.kube/config)
+      --log-http               log http traffic
 ```
 
 ### SEE ALSO
diff --git a/docs/cmd/kn_domain_update.md b/docs/cmd/kn_domain_update.md
index 52dd3f4a..5bdb4cd6 100644
--- a/docs/cmd/kn_domain_update.md
+++ b/docs/cmd/kn_domain_update.md
@@ -25,11 +25,14 @@ kn domain update NAME
 ### Options inherited from parent commands
 
 ```
-      --cluster string      name of the kubeconfig cluster to use
-      --config string       kn configuration file (default: ~/.config/kn/config.yaml)
-      --context string      name of the kubeconfig context to use
-      --kubeconfig string   kubectl configuration file (default: ~/.kube/config)
-      --log-http            log http traffic
+      --as string              username to impersonate for the operation
+      --as-group stringArray   group to impersonate for the operation, this flag can be repeated to specify multiple groups
+      --as-uid string          uid to impersonate for the operation
+      --cluster string         name of the kubeconfig cluster to use
+      --config string          kn configuration file (default: ~/.config/kn/config.yaml)
+      --context string         name of the kubeconfig context to use
+      --kubeconfig string      kubectl configuration file (default: ~/.kube/config)
+      --log-http               log http traffic
 ```
 
 ### SEE ALSO
diff --git a/docs/cmd/kn_eventtype.md b/docs/cmd/kn_eventtype.md
index ddb76fcc..f681c3f0 100644
--- a/docs/cmd/kn_eventtype.md
+++ b/docs/cmd/kn_eventtype.md
@@ -15,11 +15,14 @@ kn eventtype
 ### Options inherited from parent commands
 
 ```
-      --cluster string      name of the kubeconfig cluster to use
-      --config string       kn configuration file (default: ~/.config/kn/config.yaml)
-      --context string      name of the kubeconfig context to use
-      --kubeconfig string   kubectl configuration file (default: ~/.kube/config)
-      --log-http            log http traffic
+      --as string              username to impersonate for the operation
+      --as-group stringArray   group to impersonate for the operation, this flag can be repeated to specify multiple groups
+      --as-uid string          uid to impersonate for the operation
+      --cluster string         name of the kubeconfig cluster to use
+      --config string          kn configuration file (default: ~/.config/kn/config.yaml)
+      --context string         name of the kubeconfig context to use
+      --kubeconfig string      kubectl configuration file (default: ~/.kube/config)
+      --log-http               log http traffic
 ```
 
 ### SEE ALSO
diff --git a/docs/cmd/kn_eventtype_create.md b/docs/cmd/kn_eventtype_create.md
index adf39dbe..161d4d2b 100644
--- a/docs/cmd/kn_eventtype_create.md
+++ b/docs/cmd/kn_eventtype_create.md
@@ -31,11 +31,14 @@ kn eventtype create
 ### Options inherited from parent commands
 
 ```
-      --cluster string      name of the kubeconfig cluster to use
-      --config string       kn configuration file (default: ~/.config/kn/config.yaml)
-      --context string      name of the kubeconfig context to use
-      --kubeconfig string   kubectl configuration file (default: ~/.kube/config)
-      --log-http            log http traffic
+      --as string              username to impersonate for the operation
+      --as-group stringArray   group to impersonate for the operation, this flag can be repeated to specify multiple groups
+      --as-uid string          uid to impersonate for the operation
+      --cluster string         name of the kubeconfig cluster to use
+      --config string          kn configuration file (default: ~/.config/kn/config.yaml)
+      --context string         name of the kubeconfig context to use
+      --kubeconfig string      kubectl configuration file (default: ~/.kube/config)
+      --log-http               log http traffic
 ```
 
 ### SEE ALSO
diff --git a/docs/cmd/kn_eventtype_delete.md b/docs/cmd/kn_eventtype_delete.md
index d5e52f35..00bdf4e8 100644
--- a/docs/cmd/kn_eventtype_delete.md
+++ b/docs/cmd/kn_eventtype_delete.md
@@ -28,11 +28,14 @@ kn eventtype delete
 ### Options inherited from parent commands
 
 ```
-      --cluster string      name of the kubeconfig cluster to use
-      --config string       kn configuration file (default: ~/.config/kn/config.yaml)
-      --context string      name of the kubeconfig context to use
-      --kubeconfig string   kubectl configuration file (default: ~/.kube/config)
-      --log-http            log http traffic
+      --as string              username to impersonate for the operation
+      --as-group stringArray   group to impersonate for the operation, this flag can be repeated to specify multiple groups
+      --as-uid string          uid to impersonate for the operation
+      --cluster string         name of the kubeconfig cluster to use
+      --config string          kn configuration file (default: ~/.config/kn/config.yaml)
+      --context string         name of the kubeconfig context to use
+      --kubeconfig string      kubectl configuration file (default: ~/.kube/config)
+      --log-http               log http traffic
 ```
 
 ### SEE ALSO
diff --git a/docs/cmd/kn_eventtype_describe.md b/docs/cmd/kn_eventtype_describe.md
index 40c350e5..ac6cf7ca 100644
--- a/docs/cmd/kn_eventtype_describe.md
+++ b/docs/cmd/kn_eventtype_describe.md
@@ -34,11 +34,14 @@ kn eventtype describe
 ### Options inherited from parent commands
 
 ```
-      --cluster string      name of the kubeconfig cluster to use
-      --config string       kn configuration file (default: ~/.config/kn/config.yaml)
-      --context string      name of the kubeconfig context to use
-      --kubeconfig string   kubectl configuration file (default: ~/.kube/config)
-      --log-http            log http traffic
+      --as string              username to impersonate for the operation
+      --as-group stringArray   group to impersonate for the operation, this flag can be repeated to specify multiple groups
+      --as-uid string          uid to impersonate for the operation
+      --cluster string         name of the kubeconfig cluster to use
+      --config string          kn configuration file (default: ~/.config/kn/config.yaml)
+      --context string         name of the kubeconfig context to use
+      --kubeconfig string      kubectl configuration file (default: ~/.kube/config)
+      --log-http               log http traffic
 ```
 
 ### SEE ALSO
diff --git a/docs/cmd/kn_eventtype_list.md b/docs/cmd/kn_eventtype_list.md
index 38ba8a13..89126ef7 100644
--- a/docs/cmd/kn_eventtype_list.md
+++ b/docs/cmd/kn_eventtype_list.md
@@ -33,11 +33,14 @@ kn eventtype list
 ### Options inherited from parent commands
 
 ```
-      --cluster string      name of the kubeconfig cluster to use
-      --config string       kn configuration file (default: ~/.config/kn/config.yaml)
-      --context string      name of the kubeconfig context to use
-      --kubeconfig string   kubectl configuration file (default: ~/.kube/config)
-      --log-http            log http traffic
+      --as string              username to impersonate for the operation
+      --as-group stringArray   group to impersonate for the operation, this flag can be repeated to specify multiple groups
+      --as-uid string          uid to impersonate for the operation
+      --cluster string         name of the kubeconfig cluster to use
+      --config string          kn configuration file (default: ~/.config/kn/config.yaml)
+      --context string         name of the kubeconfig context to use
+      --kubeconfig string      kubectl configuration file (default: ~/.kube/config)
+      --log-http               log http traffic
 ```
 
 ### SEE ALSO
diff --git a/docs/cmd/kn_options.md b/docs/cmd/kn_options.md
index ca099ced..bc582883 100644
--- a/docs/cmd/kn_options.md
+++ b/docs/cmd/kn_options.md
@@ -26,11 +26,14 @@ kn options
 ### Options inherited from parent commands
 
 ```
-      --cluster string      name of the kubeconfig cluster to use
-      --config string       kn configuration file (default: ~/.config/kn/config.yaml)
-      --context string      name of the kubeconfig context to use
-      --kubeconfig string   kubectl configuration file (default: ~/.kube/config)
-      --log-http            log http traffic
+      --as string              username to impersonate for the operation
+      --as-group stringArray   group to impersonate for the operation, this flag can be repeated to specify multiple groups
+      --as-uid string          uid to impersonate for the operation
+      --cluster string         name of the kubeconfig cluster to use
+      --config string          kn configuration file (default: ~/.config/kn/config.yaml)
+      --context string         name of the kubeconfig context to use
+      --kubeconfig string      kubectl configuration file (default: ~/.kube/config)
+      --log-http               log http traffic
 ```
 
 ### SEE ALSO
diff --git a/docs/cmd/kn_plugin.md b/docs/cmd/kn_plugin.md
index de924e28..31082956 100644
--- a/docs/cmd/kn_plugin.md
+++ b/docs/cmd/kn_plugin.md
@@ -22,11 +22,14 @@ kn plugin
 ### Options inherited from parent commands
 
 ```
-      --cluster string      name of the kubeconfig cluster to use
-      --config string       kn configuration file (default: ~/.config/kn/config.yaml)
-      --context string      name of the kubeconfig context to use
-      --kubeconfig string   kubectl configuration file (default: ~/.kube/config)
-      --log-http            log http traffic
+      --as string              username to impersonate for the operation
+      --as-group stringArray   group to impersonate for the operation, this flag can be repeated to specify multiple groups
+      --as-uid string          uid to impersonate for the operation
+      --cluster string         name of the kubeconfig cluster to use
+      --config string          kn configuration file (default: ~/.config/kn/config.yaml)
+      --context string         name of the kubeconfig context to use
+      --kubeconfig string      kubectl configuration file (default: ~/.kube/config)
+      --log-http               log http traffic
 ```
 
 ### SEE ALSO
diff --git a/docs/cmd/kn_plugin_list.md b/docs/cmd/kn_plugin_list.md
index 28b3aa02..4082d4e0 100644
--- a/docs/cmd/kn_plugin_list.md
+++ b/docs/cmd/kn_plugin_list.md
@@ -26,11 +26,14 @@ kn plugin list
 ### Options inherited from parent commands
 
 ```
-      --cluster string      name of the kubeconfig cluster to use
-      --config string       kn configuration file (default: ~/.config/kn/config.yaml)
-      --context string      name of the kubeconfig context to use
-      --kubeconfig string   kubectl configuration file (default: ~/.kube/config)
-      --log-http            log http traffic
+      --as string              username to impersonate for the operation
+      --as-group stringArray   group to impersonate for the operation, this flag can be repeated to specify multiple groups
+      --as-uid string          uid to impersonate for the operation
+      --cluster string         name of the kubeconfig cluster to use
+      --config string          kn configuration file (default: ~/.config/kn/config.yaml)
+      --context string         name of the kubeconfig context to use
+      --kubeconfig string      kubectl configuration file (default: ~/.kube/config)
+      --log-http               log http traffic
 ```
 
 ### SEE ALSO
diff --git a/docs/cmd/kn_revision.md b/docs/cmd/kn_revision.md
index 76c3cee6..f9f3e901 100644
--- a/docs/cmd/kn_revision.md
+++ b/docs/cmd/kn_revision.md
@@ -15,11 +15,14 @@ kn revision
 ### Options inherited from parent commands
 
 ```
-      --cluster string      name of the kubeconfig cluster to use
-      --config string       kn configuration file (default: ~/.config/kn/config.yaml)
-      --context string      name of the kubeconfig context to use
-      --kubeconfig string   kubectl configuration file (default: ~/.kube/config)
-      --log-http            log http traffic
+      --as string              username to impersonate for the operation
+      --as-group stringArray   group to impersonate for the operation, this flag can be repeated to specify multiple groups
+      --as-uid string          uid to impersonate for the operation
+      --cluster string         name of the kubeconfig cluster to use
+      --config string          kn configuration file (default: ~/.config/kn/config.yaml)
+      --context string         name of the kubeconfig context to use
+      --kubeconfig string      kubectl configuration file (default: ~/.kube/config)
+      --log-http               log http traffic
 ```
 
 ### SEE ALSO
diff --git a/docs/cmd/kn_revision_delete.md b/docs/cmd/kn_revision_delete.md
index 81a72573..b19f058f 100644
--- a/docs/cmd/kn_revision_delete.md
+++ b/docs/cmd/kn_revision_delete.md
@@ -36,11 +36,14 @@ kn revision delete NAME [NAME ...]
 ### Options inherited from parent commands
 
 ```
-      --cluster string      name of the kubeconfig cluster to use
-      --config string       kn configuration file (default: ~/.config/kn/config.yaml)
-      --context string      name of the kubeconfig context to use
-      --kubeconfig string   kubectl configuration file (default: ~/.kube/config)
-      --log-http            log http traffic
+      --as string              username to impersonate for the operation
+      --as-group stringArray   group to impersonate for the operation, this flag can be repeated to specify multiple groups
+      --as-uid string          uid to impersonate for the operation
+      --cluster string         name of the kubeconfig cluster to use
+      --config string          kn configuration file (default: ~/.config/kn/config.yaml)
+      --context string         name of the kubeconfig context to use
+      --kubeconfig string      kubectl configuration file (default: ~/.kube/config)
+      --log-http               log http traffic
 ```
 
 ### SEE ALSO
diff --git a/docs/cmd/kn_revision_describe.md b/docs/cmd/kn_revision_describe.md
index dc607750..701182be 100644
--- a/docs/cmd/kn_revision_describe.md
+++ b/docs/cmd/kn_revision_describe.md
@@ -21,11 +21,14 @@ kn revision describe NAME
 ### Options inherited from parent commands
 
 ```
-      --cluster string      name of the kubeconfig cluster to use
-      --config string       kn configuration file (default: ~/.config/kn/config.yaml)
-      --context string      name of the kubeconfig context to use
-      --kubeconfig string   kubectl configuration file (default: ~/.kube/config)
-      --log-http            log http traffic
+      --as string              username to impersonate for the operation
+      --as-group stringArray   group to impersonate for the operation, this flag can be repeated to specify multiple groups
+      --as-uid string          uid to impersonate for the operation
+      --cluster string         name of the kubeconfig cluster to use
+      --config string          kn configuration file (default: ~/.config/kn/config.yaml)
+      --context string         name of the kubeconfig context to use
+      --kubeconfig string      kubectl configuration file (default: ~/.kube/config)
+      --log-http               log http traffic
 ```
 
 ### SEE ALSO
diff --git a/docs/cmd/kn_revision_list.md b/docs/cmd/kn_revision_list.md
index 352e4e17..3d50e580 100644
--- a/docs/cmd/kn_revision_list.md
+++ b/docs/cmd/kn_revision_list.md
@@ -44,11 +44,14 @@ kn revision list
 ### Options inherited from parent commands
 
 ```
-      --cluster string      name of the kubeconfig cluster to use
-      --config string       kn configuration file (default: ~/.config/kn/config.yaml)
-      --context string      name of the kubeconfig context to use
-      --kubeconfig string   kubectl configuration file (default: ~/.kube/config)
-      --log-http            log http traffic
+      --as string              username to impersonate for the operation
+      --as-group stringArray   group to impersonate for the operation, this flag can be repeated to specify multiple groups
+      --as-uid string          uid to impersonate for the operation
+      --cluster string         name of the kubeconfig cluster to use
+      --config string          kn configuration file (default: ~/.config/kn/config.yaml)
+      --context string         name of the kubeconfig context to use
+      --kubeconfig string      kubectl configuration file (default: ~/.kube/config)
+      --log-http               log http traffic
 ```
 
 ### SEE ALSO
diff --git a/docs/cmd/kn_route.md b/docs/cmd/kn_route.md
index f4adcdff..87b158af 100644
--- a/docs/cmd/kn_route.md
+++ b/docs/cmd/kn_route.md
@@ -15,11 +15,14 @@ kn route
 ### Options inherited from parent commands
 
 ```
-      --cluster string      name of the kubeconfig cluster to use
-      --config string       kn configuration file (default: ~/.config/kn/config.yaml)
-      --context string      name of the kubeconfig context to use
-      --kubeconfig string   kubectl configuration file (default: ~/.kube/config)
-      --log-http            log http traffic
+      --as string              username to impersonate for the operation
+      --as-group stringArray   group to impersonate for the operation, this flag can be repeated to specify multiple groups
+      --as-uid string          uid to impersonate for the operation
+      --cluster string         name of the kubeconfig cluster to use
+      --config string          kn configuration file (default: ~/.config/kn/config.yaml)
+      --context string         name of the kubeconfig context to use
+      --kubeconfig string      kubectl configuration file (default: ~/.kube/config)
+      --log-http               log http traffic
 ```
 
 ### SEE ALSO
diff --git a/docs/cmd/kn_route_describe.md b/docs/cmd/kn_route_describe.md
index 6c470756..0e931bb1 100644
--- a/docs/cmd/kn_route_describe.md
+++ b/docs/cmd/kn_route_describe.md
@@ -21,11 +21,14 @@ kn route describe NAME
 ### Options inherited from parent commands
 
 ```
-      --cluster string      name of the kubeconfig cluster to use
-      --config string       kn configuration file (default: ~/.config/kn/config.yaml)
-      --context string      name of the kubeconfig context to use
-      --kubeconfig string   kubectl configuration file (default: ~/.kube/config)
-      --log-http            log http traffic
+      --as string              username to impersonate for the operation
+      --as-group stringArray   group to impersonate for the operation, this flag can be repeated to specify multiple groups
+      --as-uid string          uid to impersonate for the operation
+      --cluster string         name of the kubeconfig cluster to use
+      --config string          kn configuration file (default: ~/.config/kn/config.yaml)
+      --context string         name of the kubeconfig context to use
+      --kubeconfig string      kubectl configuration file (default: ~/.kube/config)
+      --log-http               log http traffic
 ```
 
 ### SEE ALSO
diff --git a/docs/cmd/kn_route_list.md b/docs/cmd/kn_route_list.md
index e8d43792..88e51a34 100644
--- a/docs/cmd/kn_route_list.md
+++ b/docs/cmd/kn_route_list.md
@@ -36,11 +36,14 @@ kn route list NAME
 ### Options inherited from parent commands
 
 ```
-      --cluster string      name of the kubeconfig cluster to use
-      --config string       kn configuration file (default: ~/.config/kn/config.yaml)
-      --context string      name of the kubeconfig context to use
-      --kubeconfig string   kubectl configuration file (default: ~/.kube/config)
-      --log-http            log http traffic
+      --as string              username to impersonate for the operation
+      --as-group stringArray   group to impersonate for the operation, this flag can be repeated to specify multiple groups
+      --as-uid string          uid to impersonate for the operation
+      --cluster string         name of the kubeconfig cluster to use
+      --config string          kn configuration file (default: ~/.config/kn/config.yaml)
+      --context string         name of the kubeconfig context to use
+      --kubeconfig string      kubectl configuration file (default: ~/.kube/config)
+      --log-http               log http traffic
 ```
 
 ### SEE ALSO
diff --git a/docs/cmd/kn_service.md b/docs/cmd/kn_service.md
index c07d30f3..85297bbb 100644
--- a/docs/cmd/kn_service.md
+++ b/docs/cmd/kn_service.md
@@ -15,11 +15,14 @@ kn service
 ### Options inherited from parent commands
 
 ```
-      --cluster string      name of the kubeconfig cluster to use
-      --config string       kn configuration file (default: ~/.config/kn/config.yaml)
-      --context string      name of the kubeconfig context to use
-      --kubeconfig string   kubectl configuration file (default: ~/.kube/config)
-      --log-http            log http traffic
+      --as string              username to impersonate for the operation
+      --as-group stringArray   group to impersonate for the operation, this flag can be repeated to specify multiple groups
+      --as-uid string          uid to impersonate for the operation
+      --cluster string         name of the kubeconfig cluster to use
+      --config string          kn configuration file (default: ~/.config/kn/config.yaml)
+      --context string         name of the kubeconfig context to use
+      --kubeconfig string      kubectl configuration file (default: ~/.kube/config)
+      --log-http               log http traffic
 ```
 
 ### SEE ALSO
diff --git a/docs/cmd/kn_service_apply.md b/docs/cmd/kn_service_apply.md
index c4e1360e..48594fd3 100644
--- a/docs/cmd/kn_service_apply.md
+++ b/docs/cmd/kn_service_apply.md
@@ -85,11 +85,14 @@ kn service apply s0 --filename my-svc.yml
 ### Options inherited from parent commands
 
 ```
-      --cluster string      name of the kubeconfig cluster to use
-      --config string       kn configuration file (default: ~/.config/kn/config.yaml)
-      --context string      name of the kubeconfig context to use
-      --kubeconfig string   kubectl configuration file (default: ~/.kube/config)
-      --log-http            log http traffic
+      --as string              username to impersonate for the operation
+      --as-group stringArray   group to impersonate for the operation, this flag can be repeated to specify multiple groups
+      --as-uid string          uid to impersonate for the operation
+      --cluster string         name of the kubeconfig cluster to use
+      --config string          kn configuration file (default: ~/.config/kn/config.yaml)
+      --context string         name of the kubeconfig context to use
+      --kubeconfig string      kubectl configuration file (default: ~/.kube/config)
+      --log-http               log http traffic
 ```
 
 ### SEE ALSO
diff --git a/docs/cmd/kn_service_create.md b/docs/cmd/kn_service_create.md
index 26e77609..ba0793ca 100644
--- a/docs/cmd/kn_service_create.md
+++ b/docs/cmd/kn_service_create.md
@@ -112,11 +112,14 @@ kn service create NAME --image IMAGE
 ### Options inherited from parent commands
 
 ```
-      --cluster string      name of the kubeconfig cluster to use
-      --config string       kn configuration file (default: ~/.config/kn/config.yaml)
-      --context string      name of the kubeconfig context to use
-      --kubeconfig string   kubectl configuration file (default: ~/.kube/config)
-      --log-http            log http traffic
+      --as string              username to impersonate for the operation
+      --as-group stringArray   group to impersonate for the operation, this flag can be repeated to specify multiple groups
+      --as-uid string          uid to impersonate for the operation
+      --cluster string         name of the kubeconfig cluster to use
+      --config string          kn configuration file (default: ~/.config/kn/config.yaml)
+      --context string         name of the kubeconfig context to use
+      --kubeconfig string      kubectl configuration file (default: ~/.kube/config)
+      --log-http               log http traffic
 ```
 
 ### SEE ALSO
diff --git a/docs/cmd/kn_service_delete.md b/docs/cmd/kn_service_delete.md
index 2f026303..cbc6608e 100644
--- a/docs/cmd/kn_service_delete.md
+++ b/docs/cmd/kn_service_delete.md
@@ -41,11 +41,14 @@ kn service delete NAME [NAME ...]
 ### Options inherited from parent commands
 
 ```
-      --cluster string      name of the kubeconfig cluster to use
-      --config string       kn configuration file (default: ~/.config/kn/config.yaml)
-      --context string      name of the kubeconfig context to use
-      --kubeconfig string   kubectl configuration file (default: ~/.kube/config)
-      --log-http            log http traffic
+      --as string              username to impersonate for the operation
+      --as-group stringArray   group to impersonate for the operation, this flag can be repeated to specify multiple groups
+      --as-uid string          uid to impersonate for the operation
+      --cluster string         name of the kubeconfig cluster to use
+      --config string          kn configuration file (default: ~/.config/kn/config.yaml)
+      --context string         name of the kubeconfig context to use
+      --kubeconfig string      kubectl configuration file (default: ~/.kube/config)
+      --log-http               log http traffic
 ```
 
 ### SEE ALSO
diff --git a/docs/cmd/kn_service_describe.md b/docs/cmd/kn_service_describe.md
index d0c7b231..141679d5 100644
--- a/docs/cmd/kn_service_describe.md
+++ b/docs/cmd/kn_service_describe.md
@@ -41,11 +41,14 @@ kn service describe NAME
 ### Options inherited from parent commands
 
 ```
-      --cluster string      name of the kubeconfig cluster to use
-      --config string       kn configuration file (default: ~/.config/kn/config.yaml)
-      --context string      name of the kubeconfig context to use
-      --kubeconfig string   kubectl configuration file (default: ~/.kube/config)
-      --log-http            log http traffic
+      --as string              username to impersonate for the operation
+      --as-group stringArray   group to impersonate for the operation, this flag can be repeated to specify multiple groups
+      --as-uid string          uid to impersonate for the operation
+      --cluster string         name of the kubeconfig cluster to use
+      --config string          kn configuration file (default: ~/.config/kn/config.yaml)
+      --context string         name of the kubeconfig context to use
+      --kubeconfig string      kubectl configuration file (default: ~/.kube/config)
+      --log-http               log http traffic
 ```
 
 ### SEE ALSO
diff --git a/docs/cmd/kn_service_export.md b/docs/cmd/kn_service_export.md
index c527ba47..9cdb3abe 100644
--- a/docs/cmd/kn_service_export.md
+++ b/docs/cmd/kn_service_export.md
@@ -39,11 +39,14 @@ kn service export NAME
 ### Options inherited from parent commands
 
 ```
-      --cluster string      name of the kubeconfig cluster to use
-      --config string       kn configuration file (default: ~/.config/kn/config.yaml)
-      --context string      name of the kubeconfig context to use
-      --kubeconfig string   kubectl configuration file (default: ~/.kube/config)
-      --log-http            log http traffic
+      --as string              username to impersonate for the operation
+      --as-group stringArray   group to impersonate for the operation, this flag can be repeated to specify multiple groups
+      --as-uid string          uid to impersonate for the operation
+      --cluster string         name of the kubeconfig cluster to use
+      --config string          kn configuration file (default: ~/.config/kn/config.yaml)
+      --context string         name of the kubeconfig context to use
+      --kubeconfig string      kubectl configuration file (default: ~/.kube/config)
+      --log-http               log http traffic
 ```
 
 ### SEE ALSO
diff --git a/docs/cmd/kn_service_import.md b/docs/cmd/kn_service_import.md
index 715aa890..3eb8dd6d 100644
--- a/docs/cmd/kn_service_import.md
+++ b/docs/cmd/kn_service_import.md
@@ -31,11 +31,14 @@ kn service import FILENAME
 ### Options inherited from parent commands
 
 ```
-      --cluster string      name of the kubeconfig cluster to use
-      --config string       kn configuration file (default: ~/.config/kn/config.yaml)
-      --context string      name of the kubeconfig context to use
-      --kubeconfig string   kubectl configuration file (default: ~/.kube/config)
-      --log-http            log http traffic
+      --as string              username to impersonate for the operation
+      --as-group stringArray   group to impersonate for the operation, this flag can be repeated to specify multiple groups
+      --as-uid string          uid to impersonate for the operation
+      --cluster string         name of the kubeconfig cluster to use
+      --config string          kn configuration file (default: ~/.config/kn/config.yaml)
+      --context string         name of the kubeconfig context to use
+      --kubeconfig string      kubectl configuration file (default: ~/.kube/config)
+      --log-http               log http traffic
 ```
 
 ### SEE ALSO
diff --git a/docs/cmd/kn_service_list.md b/docs/cmd/kn_service_list.md
index da038d73..5eaa3c5e 100644
--- a/docs/cmd/kn_service_list.md
+++ b/docs/cmd/kn_service_list.md
@@ -43,11 +43,14 @@ kn service list
 ### Options inherited from parent commands
 
 ```
-      --cluster string      name of the kubeconfig cluster to use
-      --config string       kn configuration file (default: ~/.config/kn/config.yaml)
-      --context string      name of the kubeconfig context to use
-      --kubeconfig string   kubectl configuration file (default: ~/.kube/config)
-      --log-http            log http traffic
+      --as string              username to impersonate for the operation
+      --as-group stringArray   group to impersonate for the operation, this flag can be repeated to specify multiple groups
+      --as-uid string          uid to impersonate for the operation
+      --cluster string         name of the kubeconfig cluster to use
+      --config string          kn configuration file (default: ~/.config/kn/config.yaml)
+      --context string         name of the kubeconfig context to use
+      --kubeconfig string      kubectl configuration file (default: ~/.kube/config)
+      --log-http               log http traffic
 ```
 
 ### SEE ALSO
diff --git a/docs/cmd/kn_service_update.md b/docs/cmd/kn_service_update.md
index 81b5847f..4d2c97d4 100644
--- a/docs/cmd/kn_service_update.md
+++ b/docs/cmd/kn_service_update.md
@@ -101,11 +101,14 @@ kn service update NAME
 ### Options inherited from parent commands
 
 ```
-      --cluster string      name of the kubeconfig cluster to use
-      --config string       kn configuration file (default: ~/.config/kn/config.yaml)
-      --context string      name of the kubeconfig context to use
-      --kubeconfig string   kubectl configuration file (default: ~/.kube/config)
-      --log-http            log http traffic
+      --as string              username to impersonate for the operation
+      --as-group stringArray   group to impersonate for the operation, this flag can be repeated to specify multiple groups
+      --as-uid string          uid to impersonate for the operation
+      --cluster string         name of the kubeconfig cluster to use
+      --config string          kn configuration file (default: ~/.config/kn/config.yaml)
+      --context string         name of the kubeconfig context to use
+      --kubeconfig string      kubectl configuration file (default: ~/.kube/config)
+      --log-http               log http traffic
 ```
 
 ### SEE ALSO
diff --git a/docs/cmd/kn_source.md b/docs/cmd/kn_source.md
index c16f3e12..b6723f8e 100644
--- a/docs/cmd/kn_source.md
+++ b/docs/cmd/kn_source.md
@@ -15,11 +15,14 @@ kn source SOURCE|COMMAND
 ### Options inherited from parent commands
 
 ```
-      --cluster string      name of the kubeconfig cluster to use
-      --config string       kn configuration file (default: ~/.config/kn/config.yaml)
-      --context string      name of the kubeconfig context to use
-      --kubeconfig string   kubectl configuration file (default: ~/.kube/config)
-      --log-http            log http traffic
+      --as string              username to impersonate for the operation
+      --as-group stringArray   group to impersonate for the operation, this flag can be repeated to specify multiple groups
+      --as-uid string          uid to impersonate for the operation
+      --cluster string         name of the kubeconfig cluster to use
+      --config string          kn configuration file (default: ~/.config/kn/config.yaml)
+      --context string         name of the kubeconfig context to use
+      --kubeconfig string      kubectl configuration file (default: ~/.kube/config)
+      --log-http               log http traffic
 ```
 
 ### SEE ALSO
diff --git a/docs/cmd/kn_source_apiserver.md b/docs/cmd/kn_source_apiserver.md
index e94a2bf7..1cdb546e 100644
--- a/docs/cmd/kn_source_apiserver.md
+++ b/docs/cmd/kn_source_apiserver.md
@@ -15,11 +15,14 @@ kn source apiserver COMMAND
 ### Options inherited from parent commands
 
 ```
-      --cluster string      name of the kubeconfig cluster to use
-      --config string       kn configuration file (default: ~/.config/kn/config.yaml)
-      --context string      name of the kubeconfig context to use
-      --kubeconfig string   kubectl configuration file (default: ~/.kube/config)
-      --log-http            log http traffic
+      --as string              username to impersonate for the operation
+      --as-group stringArray   group to impersonate for the operation, this flag can be repeated to specify multiple groups
+      --as-uid string          uid to impersonate for the operation
+      --cluster string         name of the kubeconfig cluster to use
+      --config string          kn configuration file (default: ~/.config/kn/config.yaml)
+      --context string         name of the kubeconfig context to use
+      --kubeconfig string      kubectl configuration file (default: ~/.kube/config)
+      --log-http               log http traffic
 ```
 
 ### SEE ALSO
diff --git a/docs/cmd/kn_source_apiserver_create.md b/docs/cmd/kn_source_apiserver_create.md
index e04b79b4..42cac29c 100644
--- a/docs/cmd/kn_source_apiserver_create.md
+++ b/docs/cmd/kn_source_apiserver_create.md
@@ -32,11 +32,14 @@ kn source apiserver create NAME --resource RESOURCE --sink SINK
 ### Options inherited from parent commands
 
 ```
-      --cluster string      name of the kubeconfig cluster to use
-      --config string       kn configuration file (default: ~/.config/kn/config.yaml)
-      --context string      name of the kubeconfig context to use
-      --kubeconfig string   kubectl configuration file (default: ~/.kube/config)
-      --log-http            log http traffic
+      --as string              username to impersonate for the operation
+      --as-group stringArray   group to impersonate for the operation, this flag can be repeated to specify multiple groups
+      --as-uid string          uid to impersonate for the operation
+      --cluster string         name of the kubeconfig cluster to use
+      --config string          kn configuration file (default: ~/.config/kn/config.yaml)
+      --context string         name of the kubeconfig context to use
+      --kubeconfig string      kubectl configuration file (default: ~/.kube/config)
+      --log-http               log http traffic
 ```
 
 ### SEE ALSO
diff --git a/docs/cmd/kn_source_apiserver_delete.md b/docs/cmd/kn_source_apiserver_delete.md
index 76bbfa71..a7a74b72 100644
--- a/docs/cmd/kn_source_apiserver_delete.md
+++ b/docs/cmd/kn_source_apiserver_delete.md
@@ -24,11 +24,14 @@ kn source apiserver delete NAME
 ### Options inherited from parent commands
 
 ```
-      --cluster string      name of the kubeconfig cluster to use
-      --config string       kn configuration file (default: ~/.config/kn/config.yaml)
-      --context string      name of the kubeconfig context to use
-      --kubeconfig string   kubectl configuration file (default: ~/.kube/config)
-      --log-http            log http traffic
+      --as string              username to impersonate for the operation
+      --as-group stringArray   group to impersonate for the operation, this flag can be repeated to specify multiple groups
+      --as-uid string          uid to impersonate for the operation
+      --cluster string         name of the kubeconfig cluster to use
+      --config string          kn configuration file (default: ~/.config/kn/config.yaml)
+      --context string         name of the kubeconfig context to use
+      --kubeconfig string      kubectl configuration file (default: ~/.kube/config)
+      --log-http               log http traffic
 ```
 
 ### SEE ALSO
diff --git a/docs/cmd/kn_source_apiserver_describe.md b/docs/cmd/kn_source_apiserver_describe.md
index 9404ea28..0f70a304 100644
--- a/docs/cmd/kn_source_apiserver_describe.md
+++ b/docs/cmd/kn_source_apiserver_describe.md
@@ -32,11 +32,14 @@ kn source apiserver describe NAME
 ### Options inherited from parent commands
 
 ```
-      --cluster string      name of the kubeconfig cluster to use
-      --config string       kn configuration file (default: ~/.config/kn/config.yaml)
-      --context string      name of the kubeconfig context to use
-      --kubeconfig string   kubectl configuration file (default: ~/.kube/config)
-      --log-http            log http traffic
+      --as string              username to impersonate for the operation
+      --as-group stringArray   group to impersonate for the operation, this flag can be repeated to specify multiple groups
+      --as-uid string          uid to impersonate for the operation
+      --cluster string         name of the kubeconfig cluster to use
+      --config string          kn configuration file (default: ~/.config/kn/config.yaml)
+      --context string         name of the kubeconfig context to use
+      --kubeconfig string      kubectl configuration file (default: ~/.kube/config)
+      --log-http               log http traffic
 ```
 
 ### SEE ALSO
diff --git a/docs/cmd/kn_source_apiserver_list.md b/docs/cmd/kn_source_apiserver_list.md
index 035dd494..666e8f65 100644
--- a/docs/cmd/kn_source_apiserver_list.md
+++ b/docs/cmd/kn_source_apiserver_list.md
@@ -33,11 +33,14 @@ kn source apiserver list
 ### Options inherited from parent commands
 
 ```
-      --cluster string      name of the kubeconfig cluster to use
-      --config string       kn configuration file (default: ~/.config/kn/config.yaml)
-      --context string      name of the kubeconfig context to use
-      --kubeconfig string   kubectl configuration file (default: ~/.kube/config)
-      --log-http            log http traffic
+      --as string              username to impersonate for the operation
+      --as-group stringArray   group to impersonate for the operation, this flag can be repeated to specify multiple groups
+      --as-uid string          uid to impersonate for the operation
+      --cluster string         name of the kubeconfig cluster to use
+      --config string          kn configuration file (default: ~/.config/kn/config.yaml)
+      --context string         name of the kubeconfig context to use
+      --kubeconfig string      kubectl configuration file (default: ~/.kube/config)
+      --log-http               log http traffic
 ```
 
 ### SEE ALSO
diff --git a/docs/cmd/kn_source_apiserver_update.md b/docs/cmd/kn_source_apiserver_update.md
index 0b365cee..c7830c79 100644
--- a/docs/cmd/kn_source_apiserver_update.md
+++ b/docs/cmd/kn_source_apiserver_update.md
@@ -32,11 +32,14 @@ kn source apiserver update NAME
 ### Options inherited from parent commands
 
 ```
-      --cluster string      name of the kubeconfig cluster to use
-      --config string       kn configuration file (default: ~/.config/kn/config.yaml)
-      --context string      name of the kubeconfig context to use
-      --kubeconfig string   kubectl configuration file (default: ~/.kube/config)
-      --log-http            log http traffic
+      --as string              username to impersonate for the operation
+      --as-group stringArray   group to impersonate for the operation, this flag can be repeated to specify multiple groups
+      --as-uid string          uid to impersonate for the operation
+      --cluster string         name of the kubeconfig cluster to use
+      --config string          kn configuration file (default: ~/.config/kn/config.yaml)
+      --context string         name of the kubeconfig context to use
+      --kubeconfig string      kubectl configuration file (default: ~/.kube/config)
+      --log-http               log http traffic
 ```
 
 ### SEE ALSO
diff --git a/docs/cmd/kn_source_binding.md b/docs/cmd/kn_source_binding.md
index 2e4473eb..f9eeb860 100644
--- a/docs/cmd/kn_source_binding.md
+++ b/docs/cmd/kn_source_binding.md
@@ -15,11 +15,14 @@ kn source binding COMMAND
 ### Options inherited from parent commands
 
 ```
-      --cluster string      name of the kubeconfig cluster to use
-      --config string       kn configuration file (default: ~/.config/kn/config.yaml)
-      --context string      name of the kubeconfig context to use
-      --kubeconfig string   kubectl configuration file (default: ~/.kube/config)
-      --log-http            log http traffic
+      --as string              username to impersonate for the operation
+      --as-group stringArray   group to impersonate for the operation, this flag can be repeated to specify multiple groups
+      --as-uid string          uid to impersonate for the operation
+      --cluster string         name of the kubeconfig cluster to use
+      --config string          kn configuration file (default: ~/.config/kn/config.yaml)
+      --context string         name of the kubeconfig context to use
+      --kubeconfig string      kubectl configuration file (default: ~/.kube/config)
+      --log-http               log http traffic
 ```
 
 ### SEE ALSO
diff --git a/docs/cmd/kn_source_binding_create.md b/docs/cmd/kn_source_binding_create.md
index d3c5eab7..6040f777 100644
--- a/docs/cmd/kn_source_binding_create.md
+++ b/docs/cmd/kn_source_binding_create.md
@@ -27,11 +27,14 @@ kn source binding create NAME --subject SUBJECT --sink SINK
 ### Options inherited from parent commands
 
 ```
-      --cluster string      name of the kubeconfig cluster to use
-      --config string       kn configuration file (default: ~/.config/kn/config.yaml)
-      --context string      name of the kubeconfig context to use
-      --kubeconfig string   kubectl configuration file (default: ~/.kube/config)
-      --log-http            log http traffic
+      --as string              username to impersonate for the operation
+      --as-group stringArray   group to impersonate for the operation, this flag can be repeated to specify multiple groups
+      --as-uid string          uid to impersonate for the operation
+      --cluster string         name of the kubeconfig cluster to use
+      --config string          kn configuration file (default: ~/.config/kn/config.yaml)
+      --context string         name of the kubeconfig context to use
+      --kubeconfig string      kubectl configuration file (default: ~/.kube/config)
+      --log-http               log http traffic
 ```
 
 ### SEE ALSO
diff --git a/docs/cmd/kn_source_binding_delete.md b/docs/cmd/kn_source_binding_delete.md
index d625cef6..a1f21ee8 100644
--- a/docs/cmd/kn_source_binding_delete.md
+++ b/docs/cmd/kn_source_binding_delete.md
@@ -24,11 +24,14 @@ kn source binding delete NAME
 ### Options inherited from parent commands
 
 ```
-      --cluster string      name of the kubeconfig cluster to use
-      --config string       kn configuration file (default: ~/.config/kn/config.yaml)
-      --context string      name of the kubeconfig context to use
-      --kubeconfig string   kubectl configuration file (default: ~/.kube/config)
-      --log-http            log http traffic
+      --as string              username to impersonate for the operation
+      --as-group stringArray   group to impersonate for the operation, this flag can be repeated to specify multiple groups
+      --as-uid string          uid to impersonate for the operation
+      --cluster string         name of the kubeconfig cluster to use
+      --config string          kn configuration file (default: ~/.config/kn/config.yaml)
+      --context string         name of the kubeconfig context to use
+      --kubeconfig string      kubectl configuration file (default: ~/.kube/config)
+      --log-http               log http traffic
 ```
 
 ### SEE ALSO
diff --git a/docs/cmd/kn_source_binding_describe.md b/docs/cmd/kn_source_binding_describe.md
index 702ff35e..18815117 100644
--- a/docs/cmd/kn_source_binding_describe.md
+++ b/docs/cmd/kn_source_binding_describe.md
@@ -32,11 +32,14 @@ kn source binding describe NAME
 ### Options inherited from parent commands
 
 ```
-      --cluster string      name of the kubeconfig cluster to use
-      --config string       kn configuration file (default: ~/.config/kn/config.yaml)
-      --context string      name of the kubeconfig context to use
-      --kubeconfig string   kubectl configuration file (default: ~/.kube/config)
-      --log-http            log http traffic
+      --as string              username to impersonate for the operation
+      --as-group stringArray   group to impersonate for the operation, this flag can be repeated to specify multiple groups
+      --as-uid string          uid to impersonate for the operation
+      --cluster string         name of the kubeconfig cluster to use
+      --config string          kn configuration file (default: ~/.config/kn/config.yaml)
+      --context string         name of the kubeconfig context to use
+      --kubeconfig string      kubectl configuration file (default: ~/.kube/config)
+      --log-http               log http traffic
 ```
 
 ### SEE ALSO
diff --git a/docs/cmd/kn_source_binding_list.md b/docs/cmd/kn_source_binding_list.md
index 11881e2c..f0586929 100644
--- a/docs/cmd/kn_source_binding_list.md
+++ b/docs/cmd/kn_source_binding_list.md
@@ -33,11 +33,14 @@ kn source binding list
 ### Options inherited from parent commands
 
 ```
-      --cluster string      name of the kubeconfig cluster to use
-      --config string       kn configuration file (default: ~/.config/kn/config.yaml)
-      --context string      name of the kubeconfig context to use
-      --kubeconfig string   kubectl configuration file (default: ~/.kube/config)
-      --log-http            log http traffic
+      --as string              username to impersonate for the operation
+      --as-group stringArray   group to impersonate for the operation, this flag can be repeated to specify multiple groups
+      --as-uid string          uid to impersonate for the operation
+      --cluster string         name of the kubeconfig cluster to use
+      --config string          kn configuration file (default: ~/.config/kn/config.yaml)
+      --context string         name of the kubeconfig context to use
+      --kubeconfig string      kubectl configuration file (default: ~/.kube/config)
+      --log-http               log http traffic
 ```
 
 ### SEE ALSO
diff --git a/docs/cmd/kn_source_binding_update.md b/docs/cmd/kn_source_binding_update.md
index 3d8fd4b0..a7f8cdff 100644
--- a/docs/cmd/kn_source_binding_update.md
+++ b/docs/cmd/kn_source_binding_update.md
@@ -27,11 +27,14 @@ kn source binding update NAME
 ### Options inherited from parent commands
 
 ```
-      --cluster string      name of the kubeconfig cluster to use
-      --config string       kn configuration file (default: ~/.config/kn/config.yaml)
-      --context string      name of the kubeconfig context to use
-      --kubeconfig string   kubectl configuration file (default: ~/.kube/config)
-      --log-http            log http traffic
+      --as string              username to impersonate for the operation
+      --as-group stringArray   group to impersonate for the operation, this flag can be repeated to specify multiple groups
+      --as-uid string          uid to impersonate for the operation
+      --cluster string         name of the kubeconfig cluster to use
+      --config string          kn configuration file (default: ~/.config/kn/config.yaml)
+      --context string         name of the kubeconfig context to use
+      --kubeconfig string      kubectl configuration file (default: ~/.kube/config)
+      --log-http               log http traffic
 ```
 
 ### SEE ALSO
diff --git a/docs/cmd/kn_source_container.md b/docs/cmd/kn_source_container.md
index 3d750ff4..90d308b0 100644
--- a/docs/cmd/kn_source_container.md
+++ b/docs/cmd/kn_source_container.md
@@ -15,11 +15,14 @@ kn source container create|delete|update|list|describe
 ### Options inherited from parent commands
 
 ```
-      --cluster string      name of the kubeconfig cluster to use
-      --config string       kn configuration file (default: ~/.config/kn/config.yaml)
-      --context string      name of the kubeconfig context to use
-      --kubeconfig string   kubectl configuration file (default: ~/.kube/config)
-      --log-http            log http traffic
+      --as string              username to impersonate for the operation
+      --as-group stringArray   group to impersonate for the operation, this flag can be repeated to specify multiple groups
+      --as-uid string          uid to impersonate for the operation
+      --cluster string         name of the kubeconfig cluster to use
+      --config string          kn configuration file (default: ~/.config/kn/config.yaml)
+      --context string         name of the kubeconfig context to use
+      --kubeconfig string      kubectl configuration file (default: ~/.kube/config)
+      --log-http               log http traffic
 ```
 
 ### SEE ALSO
diff --git a/docs/cmd/kn_source_container_create.md b/docs/cmd/kn_source_container_create.md
index d51b1b12..be75ad4c 100644
--- a/docs/cmd/kn_source_container_create.md
+++ b/docs/cmd/kn_source_container_create.md
@@ -46,11 +46,14 @@ kn source container create NAME --image IMAGE --sink SINK
 ### Options inherited from parent commands
 
 ```
-      --cluster string      name of the kubeconfig cluster to use
-      --config string       kn configuration file (default: ~/.config/kn/config.yaml)
-      --context string      name of the kubeconfig context to use
-      --kubeconfig string   kubectl configuration file (default: ~/.kube/config)
-      --log-http            log http traffic
+      --as string              username to impersonate for the operation
+      --as-group stringArray   group to impersonate for the operation, this flag can be repeated to specify multiple groups
+      --as-uid string          uid to impersonate for the operation
+      --cluster string         name of the kubeconfig cluster to use
+      --config string          kn configuration file (default: ~/.config/kn/config.yaml)
+      --context string         name of the kubeconfig context to use
+      --kubeconfig string      kubectl configuration file (default: ~/.kube/config)
+      --log-http               log http traffic
 ```
 
 ### SEE ALSO
diff --git a/docs/cmd/kn_source_container_delete.md b/docs/cmd/kn_source_container_delete.md
index 430b17bb..a4b7b41c 100644
--- a/docs/cmd/kn_source_container_delete.md
+++ b/docs/cmd/kn_source_container_delete.md
@@ -24,11 +24,14 @@ kn source container delete NAME
 ### Options inherited from parent commands
 
 ```
-      --cluster string      name of the kubeconfig cluster to use
-      --config string       kn configuration file (default: ~/.config/kn/config.yaml)
-      --context string      name of the kubeconfig context to use
-      --kubeconfig string   kubectl configuration file (default: ~/.kube/config)
-      --log-http            log http traffic
+      --as string              username to impersonate for the operation
+      --as-group stringArray   group to impersonate for the operation, this flag can be repeated to specify multiple groups
+      --as-uid string          uid to impersonate for the operation
+      --cluster string         name of the kubeconfig cluster to use
+      --config string          kn configuration file (default: ~/.config/kn/config.yaml)
+      --context string         name of the kubeconfig context to use
+      --kubeconfig string      kubectl configuration file (default: ~/.kube/config)
+      --log-http               log http traffic
 ```
 
 ### SEE ALSO
diff --git a/docs/cmd/kn_source_container_describe.md b/docs/cmd/kn_source_container_describe.md
index 7a3f5590..d1e98cbf 100644
--- a/docs/cmd/kn_source_container_describe.md
+++ b/docs/cmd/kn_source_container_describe.md
@@ -25,11 +25,14 @@ kn source container describe NAME
 ### Options inherited from parent commands
 
 ```
-      --cluster string      name of the kubeconfig cluster to use
-      --config string       kn configuration file (default: ~/.config/kn/config.yaml)
-      --context string      name of the kubeconfig context to use
-      --kubeconfig string   kubectl configuration file (default: ~/.kube/config)
-      --log-http            log http traffic
+      --as string              username to impersonate for the operation
+      --as-group stringArray   group to impersonate for the operation, this flag can be repeated to specify multiple groups
+      --as-uid string          uid to impersonate for the operation
+      --cluster string         name of the kubeconfig cluster to use
+      --config string          kn configuration file (default: ~/.config/kn/config.yaml)
+      --context string         name of the kubeconfig context to use
+      --kubeconfig string      kubectl configuration file (default: ~/.kube/config)
+      --log-http               log http traffic
 ```
 
 ### SEE ALSO
diff --git a/docs/cmd/kn_source_container_list.md b/docs/cmd/kn_source_container_list.md
index 724b12f2..26fdfe0c 100644
--- a/docs/cmd/kn_source_container_list.md
+++ b/docs/cmd/kn_source_container_list.md
@@ -33,11 +33,14 @@ kn source container list
 ### Options inherited from parent commands
 
 ```
-      --cluster string      name of the kubeconfig cluster to use
-      --config string       kn configuration file (default: ~/.config/kn/config.yaml)
-      --context string      name of the kubeconfig context to use
-      --kubeconfig string   kubectl configuration file (default: ~/.kube/config)
-      --log-http            log http traffic
+      --as string              username to impersonate for the operation
+      --as-group stringArray   group to impersonate for the operation, this flag can be repeated to specify multiple groups
+      --as-uid string          uid to impersonate for the operation
+      --cluster string         name of the kubeconfig cluster to use
+      --config string          kn configuration file (default: ~/.config/kn/config.yaml)
+      --context string         name of the kubeconfig context to use
+      --kubeconfig string      kubectl configuration file (default: ~/.kube/config)
+      --log-http               log http traffic
 ```
 
 ### SEE ALSO
diff --git a/docs/cmd/kn_source_container_update.md b/docs/cmd/kn_source_container_update.md
index 81d947d4..b6c48466 100644
--- a/docs/cmd/kn_source_container_update.md
+++ b/docs/cmd/kn_source_container_update.md
@@ -46,11 +46,14 @@ kn source container update NAME --image IMAGE
 ### Options inherited from parent commands
 
 ```
-      --cluster string      name of the kubeconfig cluster to use
-      --config string       kn configuration file (default: ~/.config/kn/config.yaml)
-      --context string      name of the kubeconfig context to use
-      --kubeconfig string   kubectl configuration file (default: ~/.kube/config)
-      --log-http            log http traffic
+      --as string              username to impersonate for the operation
+      --as-group stringArray   group to impersonate for the operation, this flag can be repeated to specify multiple groups
+      --as-uid string          uid to impersonate for the operation
+      --cluster string         name of the kubeconfig cluster to use
+      --config string          kn configuration file (default: ~/.config/kn/config.yaml)
+      --context string         name of the kubeconfig context to use
+      --kubeconfig string      kubectl configuration file (default: ~/.kube/config)
+      --log-http               log http traffic
 ```
 
 ### SEE ALSO
diff --git a/docs/cmd/kn_source_list-types.md b/docs/cmd/kn_source_list-types.md
index 696fbe9f..86910201 100644
--- a/docs/cmd/kn_source_list-types.md
+++ b/docs/cmd/kn_source_list-types.md
@@ -32,11 +32,14 @@ kn source list-types
 ### Options inherited from parent commands
 
 ```
-      --cluster string      name of the kubeconfig cluster to use
-      --config string       kn configuration file (default: ~/.config/kn/config.yaml)
-      --context string      name of the kubeconfig context to use
-      --kubeconfig string   kubectl configuration file (default: ~/.kube/config)
-      --log-http            log http traffic
+      --as string              username to impersonate for the operation
+      --as-group stringArray   group to impersonate for the operation, this flag can be repeated to specify multiple groups
+      --as-uid string          uid to impersonate for the operation
+      --cluster string         name of the kubeconfig cluster to use
+      --config string          kn configuration file (default: ~/.config/kn/config.yaml)
+      --context string         name of the kubeconfig context to use
+      --kubeconfig string      kubectl configuration file (default: ~/.kube/config)
+      --log-http               log http traffic
 ```
 
 ### SEE ALSO
diff --git a/docs/cmd/kn_source_list.md b/docs/cmd/kn_source_list.md
index 48d7104b..a0352922 100644
--- a/docs/cmd/kn_source_list.md
+++ b/docs/cmd/kn_source_list.md
@@ -37,11 +37,14 @@ kn source list
 ### Options inherited from parent commands
 
 ```
-      --cluster string      name of the kubeconfig cluster to use
-      --config string       kn configuration file (default: ~/.config/kn/config.yaml)
-      --context string      name of the kubeconfig context to use
-      --kubeconfig string   kubectl configuration file (default: ~/.kube/config)
-      --log-http            log http traffic
+      --as string              username to impersonate for the operation
+      --as-group stringArray   group to impersonate for the operation, this flag can be repeated to specify multiple groups
+      --as-uid string          uid to impersonate for the operation
+      --cluster string         name of the kubeconfig cluster to use
+      --config string          kn configuration file (default: ~/.config/kn/config.yaml)
+      --context string         name of the kubeconfig context to use
+      --kubeconfig string      kubectl configuration file (default: ~/.kube/config)
+      --log-http               log http traffic
 ```
 
 ### SEE ALSO
diff --git a/docs/cmd/kn_source_ping.md b/docs/cmd/kn_source_ping.md
index 5515bca3..506a90b7 100644
--- a/docs/cmd/kn_source_ping.md
+++ b/docs/cmd/kn_source_ping.md
@@ -15,11 +15,14 @@ kn source ping COMMAND
 ### Options inherited from parent commands
 
 ```
-      --cluster string      name of the kubeconfig cluster to use
-      --config string       kn configuration file (default: ~/.config/kn/config.yaml)
-      --context string      name of the kubeconfig context to use
-      --kubeconfig string   kubectl configuration file (default: ~/.kube/config)
-      --log-http            log http traffic
+      --as string              username to impersonate for the operation
+      --as-group stringArray   group to impersonate for the operation, this flag can be repeated to specify multiple groups
+      --as-uid string          uid to impersonate for the operation
+      --cluster string         name of the kubeconfig cluster to use
+      --config string          kn configuration file (default: ~/.config/kn/config.yaml)
+      --context string         name of the kubeconfig context to use
+      --kubeconfig string      kubectl configuration file (default: ~/.kube/config)
+      --log-http               log http traffic
 ```
 
 ### SEE ALSO
diff --git a/docs/cmd/kn_source_ping_create.md b/docs/cmd/kn_source_ping_create.md
index 6c6e09e8..3e0eabfc 100644
--- a/docs/cmd/kn_source_ping_create.md
+++ b/docs/cmd/kn_source_ping_create.md
@@ -29,11 +29,14 @@ kn source ping create NAME --sink SINK
 ### Options inherited from parent commands
 
 ```
-      --cluster string      name of the kubeconfig cluster to use
-      --config string       kn configuration file (default: ~/.config/kn/config.yaml)
-      --context string      name of the kubeconfig context to use
-      --kubeconfig string   kubectl configuration file (default: ~/.kube/config)
-      --log-http            log http traffic
+      --as string              username to impersonate for the operation
+      --as-group stringArray   group to impersonate for the operation, this flag can be repeated to specify multiple groups
+      --as-uid string          uid to impersonate for the operation
+      --cluster string         name of the kubeconfig cluster to use
+      --config string          kn configuration file (default: ~/.config/kn/config.yaml)
+      --context string         name of the kubeconfig context to use
+      --kubeconfig string      kubectl configuration file (default: ~/.kube/config)
+      --log-http               log http traffic
 ```
 
 ### SEE ALSO
diff --git a/docs/cmd/kn_source_ping_delete.md b/docs/cmd/kn_source_ping_delete.md
index 90f6f8c5..d8598643 100644
--- a/docs/cmd/kn_source_ping_delete.md
+++ b/docs/cmd/kn_source_ping_delete.md
@@ -24,11 +24,14 @@ kn source ping delete NAME
 ### Options inherited from parent commands
 
 ```
-      --cluster string      name of the kubeconfig cluster to use
-      --config string       kn configuration file (default: ~/.config/kn/config.yaml)
-      --context string      name of the kubeconfig context to use
-      --kubeconfig string   kubectl configuration file (default: ~/.kube/config)
-      --log-http            log http traffic
+      --as string              username to impersonate for the operation
+      --as-group stringArray   group to impersonate for the operation, this flag can be repeated to specify multiple groups
+      --as-uid string          uid to impersonate for the operation
+      --cluster string         name of the kubeconfig cluster to use
+      --config string          kn configuration file (default: ~/.config/kn/config.yaml)
+      --context string         name of the kubeconfig context to use
+      --kubeconfig string      kubectl configuration file (default: ~/.kube/config)
+      --log-http               log http traffic
 ```
 
 ### SEE ALSO
diff --git a/docs/cmd/kn_source_ping_describe.md b/docs/cmd/kn_source_ping_describe.md
index a062171f..e73328a1 100644
--- a/docs/cmd/kn_source_ping_describe.md
+++ b/docs/cmd/kn_source_ping_describe.md
@@ -32,11 +32,14 @@ kn source ping describe NAME
 ### Options inherited from parent commands
 
 ```
-      --cluster string      name of the kubeconfig cluster to use
-      --config string       kn configuration file (default: ~/.config/kn/config.yaml)
-      --context string      name of the kubeconfig context to use
-      --kubeconfig string   kubectl configuration file (default: ~/.kube/config)
-      --log-http            log http traffic
+      --as string              username to impersonate for the operation
+      --as-group stringArray   group to impersonate for the operation, this flag can be repeated to specify multiple groups
+      --as-uid string          uid to impersonate for the operation
+      --cluster string         name of the kubeconfig cluster to use
+      --config string          kn configuration file (default: ~/.config/kn/config.yaml)
+      --context string         name of the kubeconfig context to use
+      --kubeconfig string      kubectl configuration file (default: ~/.kube/config)
+      --log-http               log http traffic
 ```
 
 ### SEE ALSO
diff --git a/docs/cmd/kn_source_ping_list.md b/docs/cmd/kn_source_ping_list.md
index b1f80658..5c072cec 100644
--- a/docs/cmd/kn_source_ping_list.md
+++ b/docs/cmd/kn_source_ping_list.md
@@ -33,11 +33,14 @@ kn source ping list
 ### Options inherited from parent commands
 
 ```
-      --cluster string      name of the kubeconfig cluster to use
-      --config string       kn configuration file (default: ~/.config/kn/config.yaml)
-      --context string      name of the kubeconfig context to use
-      --kubeconfig string   kubectl configuration file (default: ~/.kube/config)
-      --log-http            log http traffic
+      --as string              username to impersonate for the operation
+      --as-group stringArray   group to impersonate for the operation, this flag can be repeated to specify multiple groups
+      --as-uid string          uid to impersonate for the operation
+      --cluster string         name of the kubeconfig cluster to use
+      --config string          kn configuration file (default: ~/.config/kn/config.yaml)
+      --context string         name of the kubeconfig context to use
+      --kubeconfig string      kubectl configuration file (default: ~/.kube/config)
+      --log-http               log http traffic
 ```
 
 ### SEE ALSO
diff --git a/docs/cmd/kn_source_ping_update.md b/docs/cmd/kn_source_ping_update.md
index 068afd95..3f6a3dcf 100644
--- a/docs/cmd/kn_source_ping_update.md
+++ b/docs/cmd/kn_source_ping_update.md
@@ -29,11 +29,14 @@ kn source ping update NAME
 ### Options inherited from parent commands
 
 ```
-      --cluster string      name of the kubeconfig cluster to use
-      --config string       kn configuration file (default: ~/.config/kn/config.yaml)
-      --context string      name of the kubeconfig context to use
-      --kubeconfig string   kubectl configuration file (default: ~/.kube/config)
-      --log-http            log http traffic
+      --as string              username to impersonate for the operation
+      --as-group stringArray   group to impersonate for the operation, this flag can be repeated to specify multiple groups
+      --as-uid string          uid to impersonate for the operation
+      --cluster string         name of the kubeconfig cluster to use
+      --config string          kn configuration file (default: ~/.config/kn/config.yaml)
+      --context string         name of the kubeconfig context to use
+      --kubeconfig string      kubectl configuration file (default: ~/.kube/config)
+      --log-http               log http traffic
 ```
 
 ### SEE ALSO
diff --git a/docs/cmd/kn_subscription.md b/docs/cmd/kn_subscription.md
index dbd58732..3bf96712 100644
--- a/docs/cmd/kn_subscription.md
+++ b/docs/cmd/kn_subscription.md
@@ -15,11 +15,14 @@ kn subscription COMMAND
 ### Options inherited from parent commands
 
 ```
-      --cluster string      name of the kubeconfig cluster to use
-      --config string       kn configuration file (default: ~/.config/kn/config.yaml)
-      --context string      name of the kubeconfig context to use
-      --kubeconfig string   kubectl configuration file (default: ~/.kube/config)
-      --log-http            log http traffic
+      --as string              username to impersonate for the operation
+      --as-group stringArray   group to impersonate for the operation, this flag can be repeated to specify multiple groups
+      --as-uid string          uid to impersonate for the operation
+      --cluster string         name of the kubeconfig cluster to use
+      --config string          kn configuration file (default: ~/.config/kn/config.yaml)
+      --context string         name of the kubeconfig context to use
+      --kubeconfig string      kubectl configuration file (default: ~/.kube/config)
+      --log-http               log http traffic
 ```
 
 ### SEE ALSO
diff --git a/docs/cmd/kn_subscription_create.md b/docs/cmd/kn_subscription_create.md
index ca244a21..fa5565fa 100644
--- a/docs/cmd/kn_subscription_create.md
+++ b/docs/cmd/kn_subscription_create.md
@@ -31,11 +31,14 @@ kn subscription create NAME
 ### Options inherited from parent commands
 
 ```
-      --cluster string      name of the kubeconfig cluster to use
-      --config string       kn configuration file (default: ~/.config/kn/config.yaml)
-      --context string      name of the kubeconfig context to use
-      --kubeconfig string   kubectl configuration file (default: ~/.kube/config)
-      --log-http            log http traffic
+      --as string              username to impersonate for the operation
+      --as-group stringArray   group to impersonate for the operation, this flag can be repeated to specify multiple groups
+      --as-uid string          uid to impersonate for the operation
+      --cluster string         name of the kubeconfig cluster to use
+      --config string          kn configuration file (default: ~/.config/kn/config.yaml)
+      --context string         name of the kubeconfig context to use
+      --kubeconfig string      kubectl configuration file (default: ~/.kube/config)
+      --log-http               log http traffic
 ```
 
 ### SEE ALSO
diff --git a/docs/cmd/kn_subscription_delete.md b/docs/cmd/kn_subscription_delete.md
index 4dee0a45..09b30abc 100644
--- a/docs/cmd/kn_subscription_delete.md
+++ b/docs/cmd/kn_subscription_delete.md
@@ -24,11 +24,14 @@ kn subscription delete NAME
 ### Options inherited from parent commands
 
 ```
-      --cluster string      name of the kubeconfig cluster to use
-      --config string       kn configuration file (default: ~/.config/kn/config.yaml)
-      --context string      name of the kubeconfig context to use
-      --kubeconfig string   kubectl configuration file (default: ~/.kube/config)
-      --log-http            log http traffic
+      --as string              username to impersonate for the operation
+      --as-group stringArray   group to impersonate for the operation, this flag can be repeated to specify multiple groups
+      --as-uid string          uid to impersonate for the operation
+      --cluster string         name of the kubeconfig cluster to use
+      --config string          kn configuration file (default: ~/.config/kn/config.yaml)
+      --context string         name of the kubeconfig context to use
+      --kubeconfig string      kubectl configuration file (default: ~/.kube/config)
+      --log-http               log http traffic
 ```
 
 ### SEE ALSO
diff --git a/docs/cmd/kn_subscription_describe.md b/docs/cmd/kn_subscription_describe.md
index 8492022c..769b0dc2 100644
--- a/docs/cmd/kn_subscription_describe.md
+++ b/docs/cmd/kn_subscription_describe.md
@@ -29,11 +29,14 @@ kn subscription describe NAME
 ### Options inherited from parent commands
 
 ```
-      --cluster string      name of the kubeconfig cluster to use
-      --config string       kn configuration file (default: ~/.config/kn/config.yaml)
-      --context string      name of the kubeconfig context to use
-      --kubeconfig string   kubectl configuration file (default: ~/.kube/config)
-      --log-http            log http traffic
+      --as string              username to impersonate for the operation
+      --as-group stringArray   group to impersonate for the operation, this flag can be repeated to specify multiple groups
+      --as-uid string          uid to impersonate for the operation
+      --cluster string         name of the kubeconfig cluster to use
+      --config string          kn configuration file (default: ~/.config/kn/config.yaml)
+      --context string         name of the kubeconfig context to use
+      --kubeconfig string      kubectl configuration file (default: ~/.kube/config)
+      --log-http               log http traffic
 ```
 
 ### SEE ALSO
diff --git a/docs/cmd/kn_subscription_list.md b/docs/cmd/kn_subscription_list.md
index b8bd0aa4..9c6906e3 100644
--- a/docs/cmd/kn_subscription_list.md
+++ b/docs/cmd/kn_subscription_list.md
@@ -33,11 +33,14 @@ kn subscription list
 ### Options inherited from parent commands
 
 ```
-      --cluster string      name of the kubeconfig cluster to use
-      --config string       kn configuration file (default: ~/.config/kn/config.yaml)
-      --context string      name of the kubeconfig context to use
-      --kubeconfig string   kubectl configuration file (default: ~/.kube/config)
-      --log-http            log http traffic
+      --as string              username to impersonate for the operation
+      --as-group stringArray   group to impersonate for the operation, this flag can be repeated to specify multiple groups
+      --as-uid string          uid to impersonate for the operation
+      --cluster string         name of the kubeconfig cluster to use
+      --config string          kn configuration file (default: ~/.config/kn/config.yaml)
+      --context string         name of the kubeconfig context to use
+      --kubeconfig string      kubectl configuration file (default: ~/.kube/config)
+      --log-http               log http traffic
 ```
 
 ### SEE ALSO
diff --git a/docs/cmd/kn_subscription_update.md b/docs/cmd/kn_subscription_update.md
index c0512cb4..818ee3be 100644
--- a/docs/cmd/kn_subscription_update.md
+++ b/docs/cmd/kn_subscription_update.md
@@ -30,11 +30,14 @@ kn subscription update NAME
 ### Options inherited from parent commands
 
 ```
-      --cluster string      name of the kubeconfig cluster to use
-      --config string       kn configuration file (default: ~/.config/kn/config.yaml)
-      --context string      name of the kubeconfig context to use
-      --kubeconfig string   kubectl configuration file (default: ~/.kube/config)
-      --log-http            log http traffic
+      --as string              username to impersonate for the operation
+      --as-group stringArray   group to impersonate for the operation, this flag can be repeated to specify multiple groups
+      --as-uid string          uid to impersonate for the operation
+      --cluster string         name of the kubeconfig cluster to use
+      --config string          kn configuration file (default: ~/.config/kn/config.yaml)
+      --context string         name of the kubeconfig context to use
+      --kubeconfig string      kubectl configuration file (default: ~/.kube/config)
+      --log-http               log http traffic
 ```
 
 ### SEE ALSO
diff --git a/docs/cmd/kn_trigger.md b/docs/cmd/kn_trigger.md
index 012401bd..cfe70ab7 100644
--- a/docs/cmd/kn_trigger.md
+++ b/docs/cmd/kn_trigger.md
@@ -15,11 +15,14 @@ kn trigger
 ### Options inherited from parent commands
 
 ```
-      --cluster string      name of the kubeconfig cluster to use
-      --config string       kn configuration file (default: ~/.config/kn/config.yaml)
-      --context string      name of the kubeconfig context to use
-      --kubeconfig string   kubectl configuration file (default: ~/.kube/config)
-      --log-http            log http traffic
+      --as string              username to impersonate for the operation
+      --as-group stringArray   group to impersonate for the operation, this flag can be repeated to specify multiple groups
+      --as-uid string          uid to impersonate for the operation
+      --cluster string         name of the kubeconfig cluster to use
+      --config string          kn configuration file (default: ~/.config/kn/config.yaml)
+      --context string         name of the kubeconfig context to use
+      --kubeconfig string      kubectl configuration file (default: ~/.kube/config)
+      --log-http               log http traffic
 ```
 
 ### SEE ALSO
diff --git a/docs/cmd/kn_trigger_create.md b/docs/cmd/kn_trigger_create.md
index 6d95b1b3..d17654ca 100644
--- a/docs/cmd/kn_trigger_create.md
+++ b/docs/cmd/kn_trigger_create.md
@@ -30,11 +30,14 @@ kn trigger create NAME --sink SINK
 ### Options inherited from parent commands
 
 ```
-      --cluster string      name of the kubeconfig cluster to use
-      --config string       kn configuration file (default: ~/.config/kn/config.yaml)
-      --context string      name of the kubeconfig context to use
-      --kubeconfig string   kubectl configuration file (default: ~/.kube/config)
-      --log-http            log http traffic
+      --as string              username to impersonate for the operation
+      --as-group stringArray   group to impersonate for the operation, this flag can be repeated to specify multiple groups
+      --as-uid string          uid to impersonate for the operation
+      --cluster string         name of the kubeconfig cluster to use
+      --config string          kn configuration file (default: ~/.config/kn/config.yaml)
+      --context string         name of the kubeconfig context to use
+      --kubeconfig string      kubectl configuration file (default: ~/.kube/config)
+      --log-http               log http traffic
 ```
 
 ### SEE ALSO
diff --git a/docs/cmd/kn_trigger_delete.md b/docs/cmd/kn_trigger_delete.md
index 37a63194..52f8a250 100644
--- a/docs/cmd/kn_trigger_delete.md
+++ b/docs/cmd/kn_trigger_delete.md
@@ -24,11 +24,14 @@ kn trigger delete NAME
 ### Options inherited from parent commands
 
 ```
-      --cluster string      name of the kubeconfig cluster to use
-      --config string       kn configuration file (default: ~/.config/kn/config.yaml)
-      --context string      name of the kubeconfig context to use
-      --kubeconfig string   kubectl configuration file (default: ~/.kube/config)
-      --log-http            log http traffic
+      --as string              username to impersonate for the operation
+      --as-group stringArray   group to impersonate for the operation, this flag can be repeated to specify multiple groups
+      --as-uid string          uid to impersonate for the operation
+      --cluster string         name of the kubeconfig cluster to use
+      --config string          kn configuration file (default: ~/.config/kn/config.yaml)
+      --context string         name of the kubeconfig context to use
+      --kubeconfig string      kubectl configuration file (default: ~/.kube/config)
+      --log-http               log http traffic
 ```
 
 ### SEE ALSO
diff --git a/docs/cmd/kn_trigger_describe.md b/docs/cmd/kn_trigger_describe.md
index 1772c669..a5285bba 100644
--- a/docs/cmd/kn_trigger_describe.md
+++ b/docs/cmd/kn_trigger_describe.md
@@ -32,11 +32,14 @@ kn trigger describe NAME
 ### Options inherited from parent commands
 
 ```
-      --cluster string      name of the kubeconfig cluster to use
-      --config string       kn configuration file (default: ~/.config/kn/config.yaml)
-      --context string      name of the kubeconfig context to use
-      --kubeconfig string   kubectl configuration file (default: ~/.kube/config)
-      --log-http            log http traffic
+      --as string              username to impersonate for the operation
+      --as-group stringArray   group to impersonate for the operation, this flag can be repeated to specify multiple groups
+      --as-uid string          uid to impersonate for the operation
+      --cluster string         name of the kubeconfig cluster to use
+      --config string          kn configuration file (default: ~/.config/kn/config.yaml)
+      --context string         name of the kubeconfig context to use
+      --kubeconfig string      kubectl configuration file (default: ~/.kube/config)
+      --log-http               log http traffic
 ```
 
 ### SEE ALSO
diff --git a/docs/cmd/kn_trigger_list.md b/docs/cmd/kn_trigger_list.md
index bb6457c9..1ecd228e 100644
--- a/docs/cmd/kn_trigger_list.md
+++ b/docs/cmd/kn_trigger_list.md
@@ -33,11 +33,14 @@ kn trigger list
 ### Options inherited from parent commands
 
 ```
-      --cluster string      name of the kubeconfig cluster to use
-      --config string       kn configuration file (default: ~/.config/kn/config.yaml)
-      --context string      name of the kubeconfig context to use
-      --kubeconfig string   kubectl configuration file (default: ~/.kube/config)
-      --log-http            log http traffic
+      --as string              username to impersonate for the operation
+      --as-group stringArray   group to impersonate for the operation, this flag can be repeated to specify multiple groups
+      --as-uid string          uid to impersonate for the operation
+      --cluster string         name of the kubeconfig cluster to use
+      --config string          kn configuration file (default: ~/.config/kn/config.yaml)
+      --context string         name of the kubeconfig context to use
+      --kubeconfig string      kubectl configuration file (default: ~/.kube/config)
+      --log-http               log http traffic
 ```
 
 ### SEE ALSO
diff --git a/docs/cmd/kn_trigger_update.md b/docs/cmd/kn_trigger_update.md
index 3c023ba8..b871829b 100644
--- a/docs/cmd/kn_trigger_update.md
+++ b/docs/cmd/kn_trigger_update.md
@@ -34,11 +34,14 @@ kn trigger update NAME
 ### Options inherited from parent commands
 
 ```
-      --cluster string      name of the kubeconfig cluster to use
-      --config string       kn configuration file (default: ~/.config/kn/config.yaml)
-      --context string      name of the kubeconfig context to use
-      --kubeconfig string   kubectl configuration file (default: ~/.kube/config)
-      --log-http            log http traffic
+      --as string              username to impersonate for the operation
+      --as-group stringArray   group to impersonate for the operation, this flag can be repeated to specify multiple groups
+      --as-uid string          uid to impersonate for the operation
+      --cluster string         name of the kubeconfig cluster to use
+      --config string          kn configuration file (default: ~/.config/kn/config.yaml)
+      --context string         name of the kubeconfig context to use
+      --kubeconfig string      kubectl configuration file (default: ~/.kube/config)
+      --log-http               log http traffic
 ```
 
 ### SEE ALSO
diff --git a/docs/cmd/kn_version.md b/docs/cmd/kn_version.md
index c583c9ad..40ad3936 100644
--- a/docs/cmd/kn_version.md
+++ b/docs/cmd/kn_version.md
@@ -16,11 +16,14 @@ kn version
 ### Options inherited from parent commands
 
 ```
-      --cluster string      name of the kubeconfig cluster to use
-      --config string       kn configuration file (default: ~/.config/kn/config.yaml)
-      --context string      name of the kubeconfig context to use
-      --kubeconfig string   kubectl configuration file (default: ~/.kube/config)
-      --log-http            log http traffic
+      --as string              username to impersonate for the operation
+      --as-group stringArray   group to impersonate for the operation, this flag can be repeated to specify multiple groups
+      --as-uid string          uid to impersonate for the operation
+      --cluster string         name of the kubeconfig cluster to use
+      --config string          kn configuration file (default: ~/.config/kn/config.yaml)
+      --context string         name of the kubeconfig context to use
+      --kubeconfig string      kubectl configuration file (default: ~/.kube/config)
+      --log-http               log http traffic
 ```
 
 ### SEE ALSO
diff --git a/go.mod b/go.mod
index dc37498b..342f5c14 100644
--- a/go.mod
+++ b/go.mod
@@ -20,11 +20,11 @@ require (
 	k8s.io/cli-runtime v0.24.4
 	k8s.io/client-go v0.25.2
 	k8s.io/code-generator v0.25.2
-	knative.dev/eventing v0.34.1-0.20221010083935-56e9ee13b301
+	knative.dev/eventing v0.34.1-0.20221011150150-2899fcef641f
 	knative.dev/hack v0.0.0-20221010154335-3fdc50b9c24a
 	knative.dev/networking v0.0.0-20221007151732-fcbfa31ac035
-	knative.dev/pkg v0.0.0-20221010143036-21d3b47e2efe
-	knative.dev/serving v0.34.1-0.20221010213350-636e12161662
+	knative.dev/pkg v0.0.0-20221011175852-714b7630a836
+	knative.dev/serving v0.34.1-0.20221011230550-3ac6d4a5e660
 	sigs.k8s.io/yaml v1.3.0
 )
 
diff --git a/go.sum b/go.sum
index 255cf8c0..8834b1fb 100644
--- a/go.sum
+++ b/go.sum
@@ -1222,16 +1222,16 @@ k8s.io/utils v0.0.0-20210802155522-efc7438f0176/go.mod h1:jPW/WVKK9YHAvNhRxK0md/
 k8s.io/utils v0.0.0-20220210201930-3a6ce19ff2f9/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA=
 k8s.io/utils v0.0.0-20220728103510-ee6ede2d64ed h1:jAne/RjBTyawwAy0utX5eqigAwz/lQhTmy+Hr/Cpue4=
 k8s.io/utils v0.0.0-20220728103510-ee6ede2d64ed/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA=
-knative.dev/eventing v0.34.1-0.20221010083935-56e9ee13b301 h1:4C1AYI1N5yugf/20yn1eErTRE2L0IwwUzOZQ7qEnV08=
-knative.dev/eventing v0.34.1-0.20221010083935-56e9ee13b301/go.mod h1:KTyxEUhiRMbAUTPIscPDEYmCjXSXc0gHD+gQciefuGg=
+knative.dev/eventing v0.34.1-0.20221011150150-2899fcef641f h1:2wYsoB40ReW1+h4uA0wBRtK3wMNCdk1b0FOw1XdEVR8=
+knative.dev/eventing v0.34.1-0.20221011150150-2899fcef641f/go.mod h1:HF9K/jJBKHH1hmYN7vNLMrFsuW3WhMK2DsEjs7YMM/c=
 knative.dev/hack v0.0.0-20221010154335-3fdc50b9c24a h1:yfq1OMrkyYkxDeM0pmAOeN4YF16R/WG0C+VvLBeq4uc=
 knative.dev/hack v0.0.0-20221010154335-3fdc50b9c24a/go.mod h1:yk2OjGDsbEnQjfxdm0/HJKS2WqTLEFg/N6nUs6Rqx3Q=
 knative.dev/networking v0.0.0-20221007151732-fcbfa31ac035 h1:OOw/KMAKITv3godQbwzT617mjJGYiNuRQxPGpjqwHkE=
 knative.dev/networking v0.0.0-20221007151732-fcbfa31ac035/go.mod h1:ySkvDWiPZ0QD6H5GlYxOgUI782Fv2vLkyQRXCr4wkrQ=
-knative.dev/pkg v0.0.0-20221010143036-21d3b47e2efe h1:mlyaEOLotR3ma5hIN4XP/KE3/SeQvJa6hNd2BNYg2U4=
-knative.dev/pkg v0.0.0-20221010143036-21d3b47e2efe/go.mod h1:8MLQO2NWHa+1GhEUlogKfOEkyh2T2EWgfSayCA0q2gc=
-knative.dev/serving v0.34.1-0.20221010213350-636e12161662 h1:9KTtuPDKmy6SSjdJJ0GxtyFtyxqQUth730h4ZPVnYj8=
-knative.dev/serving v0.34.1-0.20221010213350-636e12161662/go.mod h1:ER6NpJWxr9ovyBpwAmVFeoKs70aJ+iz3ex+rneYkBXM=
+knative.dev/pkg v0.0.0-20221011175852-714b7630a836 h1:0N7Zo/O+xeUUebJPm9keBaGclrUoEbljr3J1MsqtaIM=
+knative.dev/pkg v0.0.0-20221011175852-714b7630a836/go.mod h1:DMTRDJ5WRxf/DrlOPzohzfhSuJggscLZ8EavOq9O/x8=
+knative.dev/serving v0.34.1-0.20221011230550-3ac6d4a5e660 h1:u5tr7GoTcKoUIggGZn5WQHYTJVlPhUPagIvoGc87/5Q=
+knative.dev/serving v0.34.1-0.20221011230550-3ac6d4a5e660/go.mod h1:t3mvgJKWSOcwiVkPpzpJnWErTwMhgSpab4w9hDCqnCg=
 rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8=
 rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0=
 rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA=
diff --git a/pkg/kn/commands/types.go b/pkg/kn/commands/types.go
index eaec4f5f..64e448ee 100644
--- a/pkg/kn/commands/types.go
+++ b/pkg/kn/commands/types.go
@@ -17,7 +17,6 @@ package commands
 import (
 	"fmt"
 	"io"
-
 	"os"
 	"path/filepath"
 
@@ -51,6 +50,9 @@ type KnParams struct {
 	KubeCfgPath              string
 	KubeContext              string
 	KubeCluster              string
+	KubeAsUser               string
+	KubeAsUID                string
+	KubeAsGroup              []string
 	ClientConfig             clientcmd.ClientConfig
 	NewServingClient         func(namespace string) (clientservingv1.KnServingClient, error)
 	NewServingV1alpha1Client func(namespace string) (clientservingv1alpha1.KnServingClient, error)
@@ -234,6 +236,15 @@ func (params *KnParams) GetClientConfig() (clientcmd.ClientConfig, error) {
 	if params.KubeCluster != "" {
 		configOverrides.Context.Cluster = params.KubeCluster
 	}
+	if params.KubeAsUser != "" {
+		configOverrides.AuthInfo.Impersonate = params.KubeAsUser
+	}
+	if params.KubeAsUID != "" {
+		configOverrides.AuthInfo.ImpersonateUID = params.KubeAsUID
+	}
+	if len(params.KubeAsGroup) > 0 {
+		configOverrides.AuthInfo.ImpersonateGroups = params.KubeAsGroup
+	}
 	if len(params.KubeCfgPath) == 0 {
 		return clientcmd.NewNonInteractiveDeferredLoadingClientConfig(loadingRules, configOverrides), nil
 	}
diff --git a/pkg/kn/root/root.go b/pkg/kn/root/root.go
index 5de0d23b..51ee473f 100644
--- a/pkg/kn/root/root.go
+++ b/pkg/kn/root/root.go
@@ -86,6 +86,9 @@ Find more information about Knative at: https://knative.dev`, rootName),
 	rootCmd.PersistentFlags().StringVar(&p.KubeCfgPath, "kubeconfig", "", "kubectl configuration file (default: ~/.kube/config)")
 	rootCmd.PersistentFlags().StringVar(&p.KubeContext, "context", "", "name of the kubeconfig context to use")
 	rootCmd.PersistentFlags().StringVar(&p.KubeCluster, "cluster", "", "name of the kubeconfig cluster to use")
+	rootCmd.PersistentFlags().StringVar(&p.KubeAsUser, "as", "", "username to impersonate for the operation")
+	rootCmd.PersistentFlags().StringVar(&p.KubeAsUID, "as-uid", "", "uid to impersonate for the operation")
+	rootCmd.PersistentFlags().StringArrayVar(&p.KubeAsGroup, "as-group", []string{}, "group to impersonate for the operation, this flag can be repeated to specify multiple groups")
 	flags.AddBothBoolFlags(rootCmd.PersistentFlags(), &p.LogHTTP, "log-http", "", false, "log http traffic")
 
 	// Grouped commands
diff --git a/vendor/modules.txt b/vendor/modules.txt
index 67dda462..251357e4 100644
--- a/vendor/modules.txt
+++ b/vendor/modules.txt
@@ -924,7 +924,7 @@ k8s.io/utils/net
 k8s.io/utils/pointer
 k8s.io/utils/strings/slices
 k8s.io/utils/trace
-# knative.dev/eventing v0.34.1-0.20221010083935-56e9ee13b301
+# knative.dev/eventing v0.34.1-0.20221011150150-2899fcef641f
 ## explicit; go 1.18
 knative.dev/eventing/pkg/apis/config
 knative.dev/eventing/pkg/apis/duck
@@ -970,7 +970,7 @@ knative.dev/networking/pkg/http/probe
 knative.dev/networking/pkg/http/proxy
 knative.dev/networking/pkg/http/stats
 knative.dev/networking/pkg/k8s
-# knative.dev/pkg v0.0.0-20221010143036-21d3b47e2efe
+# knative.dev/pkg v0.0.0-20221011175852-714b7630a836
 ## explicit; go 1.18
 knative.dev/pkg/apis
 knative.dev/pkg/apis/duck
@@ -1020,7 +1020,7 @@ knative.dev/pkg/tracing/config
 knative.dev/pkg/tracing/propagation
 knative.dev/pkg/tracing/propagation/tracecontextb3
 knative.dev/pkg/tracker
-# knative.dev/serving v0.34.1-0.20221010213350-636e12161662
+# knative.dev/serving v0.34.1-0.20221011230550-3ac6d4a5e660
 ## explicit; go 1.18
 knative.dev/serving/pkg/apis/autoscaling
 knative.dev/serving/pkg/apis/autoscaling/v1alpha1


Test patch:
diff --git a/pkg/kn/commands/types_test.go b/pkg/kn/commands/types_test.go
index a9312add..5c527b7d 100644
--- a/pkg/kn/commands/types_test.go
+++ b/pkg/kn/commands/types_test.go
@@ -112,6 +112,9 @@ func TestPrepareConfig(t *testing.T) {
 type typeTestCase struct {
 	kubeCfgPath   string
 	kubeContext   string
+	kubeAsUser    string
+	kubeAsUID     string
+	kubeAsGroup   []string
 	kubeCluster   string
 	explicitPath  string
 	expectedError string
@@ -130,6 +133,9 @@ func TestGetClientConfig(t *testing.T) {
 			"",
 			"",
 			"",
+			"",
+			[]string{},
+			"",
 			clientcmd.NewDefaultClientConfigLoadingRules().ExplicitPath,
 			"",
 		},
@@ -137,12 +143,18 @@ func TestGetClientConfig(t *testing.T) {
 			tempFile,
 			"",
 			"",
+			"",
+			[]string{},
+			"",
 			tempFile,
 			"",
 		},
 		{
 			"/testing/assets/kube-config-01.yml",
 			"foo",
+			"",
+			"",
+			[]string{},
 			"bar",
 			"",
 			fmt.Sprintf("config file '%s' can not be found", "/testing/assets/kube-config-01.yml"),
@@ -152,12 +164,48 @@ func TestGetClientConfig(t *testing.T) {
 			"",
 			"",
 			"",
+			[]string{},
+			"",
+			"",
 			fmt.Sprintf("can not find config file. '%s' looks like a path. Please use the env var KUBECONFIG if you want to check for multiple configuration files", multiConfigs),
 		},
+		{
+			tempFile,
+			"",
+			"admin",
+			"",
+			[]string{},
+			"",
+			tempFile,
+			"",
+		},
+		{
+			tempFile,
+			"",
+			"admin",
+			"",
+			[]string{"system:authenticated", "system:masters"},
+			"",
+			tempFile,
+			"",
+		},
+		{
+			tempFile,
+			"",
+			"admin",
+			"abc123",
+			[]string{},
+			"",
+			tempFile,
+			"",
+		},
 	} {
 		p := &KnParams{
 			KubeCfgPath: tc.kubeCfgPath,
 			KubeContext: tc.kubeContext,
+			KubeAsUser:  tc.kubeAsUser,
+			KubeAsUID:   tc.kubeAsUID,
+			KubeAsGroup: tc.kubeAsGroup,
 			KubeCluster: tc.kubeCluster,
 		}
 
@@ -178,6 +226,27 @@ func TestGetClientConfig(t *testing.T) {
 				assert.Assert(t, config.CurrentContext == tc.kubeContext)
 				assert.Assert(t, config.Contexts[tc.kubeContext].Cluster == tc.kubeCluster)
 			}
+
+			if tc.kubeAsUser != "" {
+				config, err := clientConfig.ClientConfig()
+				assert.NilError(t, err)
+				assert.Assert(t, config.Impersonate.UserName == tc.kubeAsUser)
+			}
+
+			if tc.kubeAsUID != "" {
+				config, err := clientConfig.ClientConfig()
+				assert.NilError(t, err)
+				assert.Assert(t, config.Impersonate.UID == tc.kubeAsUID)
+			}
+
+			if len(tc.kubeAsGroup) > 0 {
+				config, err := clientConfig.ClientConfig()
+				assert.NilError(t, err)
+				assert.Assert(t, len(config.Impersonate.Groups) == len(tc.kubeAsGroup))
+				for i := range tc.kubeAsGroup {
+					assert.Assert(t, config.Impersonate.Groups[i] == tc.kubeAsGroup[i])
+				}
+			}
 		}
 	}
 }
diff --git a/pkg/kn/root/root_test.go b/pkg/kn/root/root_test.go
index 2fa3a23b..52cc4f3a 100644
--- a/pkg/kn/root/root_test.go
+++ b/pkg/kn/root/root_test.go
@@ -48,6 +48,9 @@ func TestNewRootCommand(t *testing.T) {
 	assert.Assert(t, rootCmd.PersistentFlags().Lookup("kubeconfig") != nil)
 	assert.Assert(t, rootCmd.PersistentFlags().Lookup("context") != nil)
 	assert.Assert(t, rootCmd.PersistentFlags().Lookup("cluster") != nil)
+	assert.Assert(t, rootCmd.PersistentFlags().Lookup("as") != nil)
+	assert.Assert(t, rootCmd.PersistentFlags().Lookup("as-uid") != nil)
+	assert.Assert(t, rootCmd.PersistentFlags().Lookup("as-group") != nil)
 
 	assert.Assert(t, rootCmd.RunE == nil)
 
diff --git a/vendor/knative.dev/serving/test/e2e_flags.go b/vendor/knative.dev/serving/test/e2e_flags.go
index 10cb0bd0..c714dfa3 100644
--- a/vendor/knative.dev/serving/test/e2e_flags.go
+++ b/vendor/knative.dev/serving/test/e2e_flags.go
@@ -49,6 +49,10 @@ type ServingEnvironmentFlags struct {
 	ExceedingMemoryLimitSize int    // Memory size used to trigger a non-200 response when the service is set with 300MB memory limit.
 	RequestHeaders           string // Extra HTTP request headers sent to the testing deployed KServices.
 	IngressClass             string // Ingress class used for serving.
+	CustomMemoryRequests     string // Memory requests used for services with a specific size.
+	CustomMemoryLimits       string // Memory limits used for services with a specific size.
+	CustomCPURequests        string // CPU requests used for services with a specific size.
+	CustomCPULimits          string // CPU limits used for services with a specific size.
 }
 
 func initializeServingFlags() *ServingEnvironmentFlags {
@@ -102,6 +106,22 @@ func initializeServingFlags() *ServingEnvironmentFlags {
 
 	flag.StringVar(&f.IngressClass, "ingress-class", "",
 		"Set the ingress class in use to this flag in order to skip non-compatible test")
+
+	flag.StringVar(&f.CustomMemoryRequests, "custom-memory-requests", "",
+		"Set this flag to the custom memory request for tests with specific memory request values."+
+			"This should differ from what is used as default. The flag accepts a value acceptable to resource.MustParse.")
+
+	flag.StringVar(&f.CustomMemoryLimits, "custom-memory-limits", "",
+		"Set this flag to the custom memory limit for tests with specific memory limit values."+
+			"This should differ from what is used as default. The flag accepts a value acceptable to resource.MustParse.")
+
+	flag.StringVar(&f.CustomCPURequests, "custom-cpu-requests", "",
+		"Set this flag to the custom cpu request for tests with specific cpu request values."+
+			"This should differ from what is used as default. The flag accepts a value acceptable to resource.MustParse.")
+
+	flag.StringVar(&f.CustomCPULimits, "custom-cpu-limits", "",
+		"Set this flag to the custom cpu limit for tests with specific cpu limit values."+
+			"This should differ from what is used as default. The flag accepts a value acceptable to resource.MustParse.")
 	return &f
 }