MCPcopy Index your code
hub / github.com/aquasecurity/kubectl-who-can

github.com/aquasecurity/kubectl-who-can @v0.4.0

Chat with this repo
repository ↗ · DeepWiki ↗ · release v0.4.0 ↗ · + Follow
105 symbols 300 edges 14 files 30 documented · 29% updated 1y agov0.4.0 · 2022-02-15★ 9179 open issues
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

GitHub Release GitHub Action Coverage Status Go Report Card License GitHub All Releases

kubectl-who-can

Shows which subjects have RBAC permissions to VERB [TYPE | TYPE/NAME | NONRESOURCEURL] in Kubernetes.

asciicast

Installation

There are several ways to install kubectl-who-can. The recommended installation is via the kubectl plugin manager called krew.

krew

I assume that you've already installed krew. Then run the following command:

kubectl krew install who-can

The plugin will be available as kubectl who-can.

Manual

Download a release distribution archive for your operating system, extract it, and add the kubectl-who-can executable to your $PATH. For example, to manually install kubectl-who-can on macOS run the following command:

VERSION=`git describe --abbrev=0`

mkdir -p /tmp/who-can/$VERSION && \
curl -L https://github.com/aquasecurity/kubectl-who-can/releases/download/$VERSION/kubectl-who-can_darwin_x86_64.tar.gz \
  | tar xz -C /tmp/who-can/$VERSION && \
sudo mv -i /tmp/who-can/$VERSION/kubectl-who-can /usr/local/bin

Build from Source

This is a standard Go program. If you already know how to build and install Go code, you probably won't need these instructions.

Note that while the code is small, it has some rather big dependencies, and fetching + building these dependencies can take a few minutes.

Option 1 (if you have a Go compiler and want to tweak the code):

# Clone this repository (or your fork)
git clone https://github.com/aquasecurity/kubectl-who-can
cd kubectl-who-can
make

The kubectl-who-can binary will be in the current directory.

Option 2 (if you have a Go compiler and just want the binary):

go get -v github.com/aquasecurity/kubectl-who-can/cmd/kubectl-who-can

The kubectl-who-can binary will be in $GOPATH/bin.

Option 3 (if you don't have a Go compiler, but have Docker installed):

docker run --rm -v /usr/local/bin:/go/bin golang go get -v github.com/aquasecurity/kubectl-who-can/cmd/kubectl-who-can

The kubectl-who-can binary will be in /usr/local/bin.

Usage

$ kubectl who-can VERB (TYPE | TYPE/NAME | NONRESOURCEURL) [flags]

Flags

Name Shorthand Default Usage
namespace n If present, the namespace scope for this CLI request
all-namespaces A false If true, check for users that can do the specified action in any of the available namespaces
subresource Specify a sub-resource such as pod/log or deployment/scale

For additional details on flags and usage, run kubectl who-can --help.

Extension points exported contracts — how you extend this code

Core symbols most depended-on inside this repo

Shape

Method 44
Function 34
Struct 21
Interface 4
TypeAlias 2

Languages

Go100%

Modules by API surface

pkg/cmd/list_test.go22 symbols
pkg/cmd/list.go17 symbols
pkg/cmd/policy_rule_matcher.go13 symbols
pkg/cmd/resource_resolver.go11 symbols
pkg/cmd/printer.go10 symbols
pkg/cmd/namespace_validator.go5 symbols
pkg/cmd/access_checker.go5 symbols
test/integration_test.go4 symbols
pkg/cmd/resource_resolver_test.go4 symbols
pkg/cmd/printer_test.go3 symbols
pkg/cmd/policy_rule_matcher_test.go3 symbols
pkg/cmd/namespace_validator_test.go3 symbols

For agents

$ claude mcp add kubectl-who-can \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page