Skip to content

Commit

Permalink
Log in as root to the node.
Browse files Browse the repository at this point in the history
This executes simple container in host IPC, network and PID space.
Then is uses nsenter to switch other namespaces and execute BASH.
  • Loading branch information
sentinelt committed Feb 2, 2025
1 parent 18b2ada commit 8f203f8
Showing 1 changed file with 34 additions and 0 deletions.
34 changes: 34 additions & 0 deletions plugins/node-root-shell.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
plugins:
node-root-shell:
shortCut: a
description: Run root shell on node
dangerous: true
scopes:
- nodes
command: bash
background: false
confirm: true
args:
- -c
- |
host="$1"
json='
{
"apiVersion": "v1",
"spec": {
"hostIPC": true,
"hostNetwork": true,
"hostPID": true
'
if ! [[ -z "$host" ]]; then
json+=",
\"nodeSelector\" : {
\"kubernetes.io/hostname\" : \"$host\"
}
";
fi
json+='
}
}
'
kubectl run -ti --image alpine:3.8 --rm --privileged --restart=Never --overrides="$json" root --command -- nsenter -t 1 -m -u -n -i -- bash -l

0 comments on commit 8f203f8

Please sign in to comment.