-
Notifications
You must be signed in to change notification settings - Fork 5.5k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Signed-off-by: notfromstatefarm <86763948+notfromstatefarm@users.noreply.github.com>
- Loading branch information
1 parent
10324a6
commit e8ee03f
Showing
4 changed files
with
47 additions
and
16 deletions.
There are no files selected for viewing
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,45 @@ | ||
# Web-based Terminal | ||
|
||
![Argo CD Terminal](../assets/terminal.png) | ||
|
||
Since v2.4, Argo CD has a web-based terminal that allows you to get a shell inside a running pod just like you would with | ||
`kubectl exec`. It's basically SSH from your browser, full ANSI color support and all! However, for security this feature | ||
is disabled by default. | ||
|
||
This is a powerful privilege. It allows the user to run arbitrary code on any Pod managed by an Application for which | ||
they have the `exec/create` privilege. If the Pod mounts a ServiceAccount token (which is the default behavior of | ||
Kubernetes), then the user effectively has the same privileges as that ServiceAccount. | ||
|
||
## Enabling the terminal | ||
|
||
1. Set the `exec.enabled` key to `true` on the `argocd-cm` ConfigMap. | ||
|
||
2. Patch the `argocd-server` Role (if using namespaced Argo) or ClusterRole (if using clustered Argo) to allow `argocd-server` | ||
to exec into pods | ||
```yaml | ||
- apiGroups: | ||
- "" | ||
resources: | ||
- pods/exec | ||
verbs: | ||
- create | ||
``` | ||
3. Add RBAC rules to allow your users to `create` the `exec` resource, i.e. | ||
``` | ||
p, role:myrole, exec, create, */*, allow | ||
``` | ||
See [RBAC Configuration](rbac.md#exec-resource) for more info. | ||
## Changing allowed shells | ||
By default, Argo CD attempts to execute shells in this order: | ||
1. bash | ||
2. sh | ||
3. powershell | ||
4. cmd | ||
If none of the shells are found, the terminal session will fail. To add to or change the allowed shells, change the | ||
`exec.shells` key in the `argocd-cm` ConfigMap, separating them with commas. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters