feat(plugins): add pvc debug container plugin (#3528)
parent
e99c735430
commit
eed0cb87ae
|
|
@ -5,7 +5,7 @@ K9s plugins extend the tool to provide additional functionality via actions to f
|
|||
Following is an example of some plugin files in this directory. Other files are not listed in this table.
|
||||
|
||||
| Plugin-Name | Description | Available on Views | Shortcut | Kubectl plugin, external dependencies |
|
||||
|--------------------------------|-------------------------------------------------------------------------------------------|-------------------------------------|-----------|---------------------------------------------------------------------------------------|
|
||||
| ------------------------------ | ----------------------------------------------------------------------------------------- | ----------------------------------- | --------- | ------------------------------------------------------------------------------------- |
|
||||
| ai-incident-investigation.yaml | Run AI investigation on application issues to find the root cause in seconds | all | Shift-h/o | [HolmesGPT](https://github.com/robusta-dev/holmesgpt) |
|
||||
| argocd.yaml | Perform argocd operation quickly | applications | Shift-r | [ArgoCD](https://argo-cd.readthedocs.io/en/stable/getting_started/) |
|
||||
| debug-container.yaml | Add [ephemeral debug container](1)<br>([nicolaka/netshoot](2)) | containers | Shift-d | |
|
||||
|
|
@ -21,6 +21,7 @@ Following is an example of some plugin files in this directory. Other files are
|
|||
| log-jq.yaml | View resource logs using jq | pods | Ctrl-j | kubectl-plugins/kubectl-jq |
|
||||
| log-bunyan.yaml | View pods, service, deployment logs using bunyan | pods, service, deployment | Ctrl-l | [Bunyan](https://www.npmjs.com/package/bunyan) |
|
||||
| log-full.yaml | get full logs from pod/container | pods/containers | Ctrl-l | |
|
||||
| pvc-debug-container.yaml | Add ephemeral debug container with pvc mounted | pods | s | kubectl |
|
||||
| resource-recommendations.yaml | View recommendations for CPU/Memory requests based on historical data | deployments/daemonsets/statefulsets | Shift-k | [Robusta KRR](https://github.com/robusta-dev/krr) |
|
||||
| szero.yaml | Temporarily scale down/up all deployments, statefulsets, and daemonsets | namespaces | Shift-d/u | [szero](https://github.com/jadolg/szero) |
|
||||
| trace-dns.yaml | Trace DNS resolution using Inspektor Gadget (4) | containers/pods/nodes | Shift-d | |
|
||||
|
|
|
|||
|
|
@ -0,0 +1,38 @@
|
|||
plugins:
|
||||
pvc-shell:
|
||||
shortCut: s
|
||||
description: "Spawn an Ubuntu shell pod with this PVC mounted"
|
||||
scopes:
|
||||
- pvc
|
||||
command: sh
|
||||
background: false
|
||||
args:
|
||||
- -c
|
||||
- |
|
||||
echo "Starting a shell pod with PVC $NAME mounted at /mnt/data"
|
||||
cat <<EOF | kubectl --kubeconfig $KUBECONFIG apply -f > /dev/null 2>&1 -
|
||||
apiVersion: v1
|
||||
kind: Pod
|
||||
metadata:
|
||||
name: pvc-shell
|
||||
namespace: $NAMESPACE
|
||||
spec:
|
||||
restartPolicy: Never
|
||||
containers:
|
||||
- name: shell
|
||||
image: ubuntu:latest
|
||||
command: ["bash"]
|
||||
stdin: true
|
||||
tty: true
|
||||
volumeMounts:
|
||||
- name: vol
|
||||
mountPath: /mnt/data
|
||||
volumes:
|
||||
- name: vol
|
||||
persistentVolumeClaim:
|
||||
claimName: $NAME
|
||||
EOF
|
||||
echo "Waiting for pod to be ready..."
|
||||
kubectl --kubeconfig $KUBECONFIG -n $NAMESPACE wait --for=condition=Ready pod/pvc-shell > /dev/null 2>&1
|
||||
kubectl --kubeconfig $KUBECONFIG -n $NAMESPACE exec -it pvc-shell -- bash
|
||||
kubectl --kubeconfig $KUBECONFIG -n $NAMESPACE delete pod pvc-shell --grace-period=0 --force=true > /dev/null 2>&1
|
||||
Loading…
Reference in New Issue