A kubectl plugin to explore orphan configmaps
and secrets
. Can be used standalone.
New issues or any kind of feedback are most welcome.
Discovers and prints out any Configmaps
and Secrets
not linked to any of the following resources:
- Deployments,
- ReplicaSets,
- StatefulSets,
- DaemonSets,
- Jobs,
- CronJobs,
- ReplicationControllers,
- Pods,
- Ingresses,
- ServiceAccounts.
The recommended way is to use kubectl-explore
as a kubectl
plugin. Alternatively, because every kubectl plugin
is a standalone binary, it can be used directly.
- Download a pre-compiled binary, or compile from the source.
- Add kubectl-explore to path, e.g. to add temporarily use
export PATH="/path/to/kubectl-explore:$PATH"
. - Invoke
kubectl plugin list
- kubectl-explore should be on the list, automatically discovered bykubectl
.
To see all configuration options, invoke kubectl-explore orphans -h
.
Default context and namespace found in $KUBECONFIG
is used, unless specified otherwise.
kubectl explore orphans
Searching for unused ConfigMaps and Secrets in the 'default' namespace
configmaps:
- test
secrets: []
Pre-compiled x86_64-unknown-linux-gnu
binaries are available. Compiling and running "from the source" is also an option.
> kubectl-explore orphans -h
Options:
-k, --kubeconfig <PATH_TO_KUBECONFIG>
Path to a KUBECONFIG file. When not set, env is used.
-n, --namespace <NAMESPACE>
Namespace to search in.
-o, --output <OUTPUT>
Output format. YAML by default. [default: yaml] [possible values: yaml, json]
-h, --help
Print help
E.g. kubectl-explore -k /etc/rancher/k3s/k3s.yaml -n default -o json
to explicitly specify the KUBECONFIG
and the namespace.
If KUBECONFIG
is not specified, the KUBECONFIG
env variable is looked for. When not found, an error is thrown.
If namespace
is not defined, the default namespace from KUBECONFIG
is used.
For a list of all commands and general help, invoke kubectl-explore -h
.
- Install Rust
- Simply invoke
cargo run -- -h
(add the--release
flag for optimal performance) to obtain instructions.
> cargo run -- -h
Run tests using cargo test
. Tests require:
- Running Kubernetes cluster with supported API version
1_26
, KUBECONFIG
environment variable set.
An easy way to obtain a Kubernetes cluster is k3s.io - curl -sfL https://get.k3s.io | sh -. After
installation, export KUBECONFIG=/etc/rancher/k3s/k3s.yaml
and make sure to chown
or chmod
the $KUBECONFIG
file
for current user to be able to read it.