https://github.com/jordanwilson230/kubectl-plugins
A Collection of Plugins for kubectl Integration (exec as any user, context switching, etc).
https://github.com/jordanwilson230/kubectl-plugins
automated-deployment ci-cd context-switching deployment devops eks exec gke google-cloud kubectl kubectl-plugins kubernetes namespace namespaces plugins pod ssh
Last synced: 14 days ago
JSON representation
A Collection of Plugins for kubectl Integration (exec as any user, context switching, etc).
- Host: GitHub
- URL: https://github.com/jordanwilson230/kubectl-plugins
- Owner: jordanwilson230
- License: apache-2.0
- Created: 2018-01-11T21:24:18.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2024-06-27T06:00:21.000Z (10 months ago)
- Last Synced: 2024-08-02T06:14:36.065Z (9 months ago)
- Topics: automated-deployment, ci-cd, context-switching, deployment, devops, eks, exec, gke, google-cloud, kubectl, kubectl-plugins, kubernetes, namespace, namespaces, plugins, pod, ssh
- Language: Shell
- Homepage:
- Size: 150 KB
- Stars: 610
- Watchers: 7
- Forks: 62
- Open Issues: 15
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
- awesome-kubectl-plugins - collection of kubectl plugins - A Collection of Plugins for kubectl Integration (context switching, ssh / exec as any user, etc). (kubectl Plugins / Collection of kubectl plugins)
- awesome-eks - kubectl-plugins
README
# kubectl-plugins
[](https://github.com/jordanwilson230/kubectl-plugins/actions)A collection of plugins for kubectl integration (for Kubectl versions >= 1.12.0)
*A portion of these plugins are available on [krew](https://github.com/kubernetes-sigs/krew) as well.*
###### Note
- These plugins are for kubectl versions at or above 1.12.0 only. Check your version via ```kubectl version```
- For versions below 1.12.0, use the 1.11.0 branch.
- To upgrade your kubectl version via homebrew: ```brew upgrade kubectl```, or via gcloud: ```gcloud components update```
- The kubectl-ip plugin requires jq ( brew/apt/yum install jq )
- All coding was written to maintain compatibility across both BSD and GNU.
- Requires Bash.## Install on Linux/Mac
```bash
git clone https://github.com/jordanwilson230/kubectl-plugins.git
cd kubectl-plugins
./install-plugins.sh
source ~/.bash_profile
```
#### To Uninstall
```
rm -rf ~/.kube/plugins/jordanwilson230
ex '+g/jordanwilson230/d' -cwq ~/.bash_profile
```
Remove the ```image``` plugin:
```
ex '+g/IMG_REGISTRY=/d' -cwq ~/.bash_profile
```
Remove the ```prompt``` plugin:
```
ex '+g/function kubectl()/d' -cwq ~/.bash_profile
ex '+g/KUBECTL_\(.*\)_PROMPT/d' -cwq ~/.bash_profile
```### kubectl ssh

- Like kubectl exec, but offers a --user flag to exec as root (or any other user)
- 'ssh' is a misnomer (it works by mounting a docker socket as a volume), but it's easier to work with as a command.
- You must be in the same namespace as the target pod or you can use ```-n namespace``` option to specify the namespace
- Kudos to mikelorant for thinking of the docker socket! :)Usage:
```kubectl ssh [OPTIONAL: -n ] [OPTIONAL: -u ] [OPTIONAL: -c ] [REQUIRED: ] -- [command]```Example:
```kubectl ssh -n default -u root -c prometheus prometheus-282sd0s2 -- bash```Option | Required | Description | Example
------------- | ------------- | ------------- | -------------
-h | N | Show usage | *`kubectl ssh -h`*
-d | N | Enable debug mode. Print a trace of each commands | *`kubectl ssh -d kafka-0`*
-n | N | The namespace scope for this CLI request | *`kubectl ssh -n infra kafka-0`*
-u | N | User to exec as. Defaults to root | *`kubectl ssh -u kafka kafka-0`*
-c | N | Specify container within pod | *`kubectl ssh -c burrow-metrics kafka-0`*
-- | N | Pass an optional command. Defaults to /bin/sh | *`kubectl ssh kafka -- ls /etc/burrow`*### kubectl switch

- View current namespace: *`kubectl switch`*
- Switch namespace: *`kubectl switch preprod`*
- Switch cluster: *`kubectl switch cluster staging`* (accepts fuzzy on the cluster name)
- List and select from all available clusters: *`kubeclt switch cluster -l`*Option | Required | Description | Example
------------- | ------------- | ------------- | -------------
-l | N | List available clusters and prompts for selection. Can only be used when ```cluster``` is passed. | *`kubNctl switch cluster -l`*
-h | N | Show usage | *`kubectl switch -h`*### kubectl prompt

- Displays a warning prompt when issuing commands in a flagged cluster or namespace
- Commands that trigger the prompt include ```create, scale, delete, apply, etc.,```
- Flag a namespace: ```kubectl prompt add -n production```
- Flag a cluster: ```kubectl prompt add -c my-cluster```
- List flagged environments: ```kubectl prompt list```
- Clear flagged environments: ```kubectl prompt remove```
- View description: ```kubectl prompt```### kubectl image

- Search for Docker images
- If you have a Google Container Registry, run ```kubectl image -c``` to set it as the default for future searches.
- If _not_ configured with ```-c```, searches will use Docker Hub by default.
- Adding ```-p``` will search Docker Hub, regardless of any default.
- Sorts Docker Hub images by number of stars.
- Sorts GCR images by upload date.Example:
```kubectl image kafka```### kubectl ip

- Outputs the node name, node IP, and Pod IP for a given resource. Search is performed against common labels (defaults to app, name, component)Example: `kubectl ip cassandra`
### kubectl uptime

- Displays total uptime for pods/statefulsets in the current namespace.Example: `kubectl uptime`