@@ -14,6 +14,7 @@ volume_mounts="[]"
14
14
x_mode=0
15
15
labels=" ${KUBECTL_NODE_SHELL_LABELS} "
16
16
pod_running_timeout=" ${KUBECTL_NODE_SHELL_POD_RUNNING_TIMEOUT:- 1m} "
17
+ custom_image=" "
17
18
18
19
if [ -t 0 ]; then
19
20
tty=true
@@ -65,6 +66,11 @@ while [ $# -gt 0 ]; do
65
66
volume_mounts=' [{"mountPath":"/host","name":"host-root"}]'
66
67
shift
67
68
;;
69
+ --image)
70
+ custom_image=" $2 "
71
+ shift
72
+ shift
73
+ ;;
68
74
--)
69
75
shift
70
76
break
@@ -97,15 +103,17 @@ os="$($kubectl get node $node -o jsonpath="{.metadata.labels.kubernetes\.io/os}"
97
103
98
104
# Set pod configuration per operating system
99
105
if [ " $os " = " windows" ]; then
100
- image=" ${KUBECTL_NODE_SHELL_IMAGE_WINDOWS:- mcr.microsoft.com/ oss/ kubernetes/ windows-host-process-containers-base-image: v1.0.0} "
106
+ default_image=" mcr.microsoft.com/oss/kubernetes/windows-host-process-containers-base-image:v1.0.0"
107
+ image=" ${custom_image:- ${KUBECTL_NODE_SHELL_IMAGE_WINDOWS:- $default_image } } "
101
108
name=" pwsh"
102
109
pod=" ${name} -$( env LC_ALL=C tr -dc a-z0-9 < /dev/urandom | head -c 6) "
103
110
cmd_start=' "cmd.exe", "/c", "powershell.exe", "-nol"'
104
111
cmd_arg_prefix=' , "-Command"'
105
112
cmd_default=' '
106
113
security_context=' {"privileged":true,"windowsOptions":{"hostProcess":true,"runAsUserName":"NT AUTHORITY\\SYSTEM"}}'
107
114
else # If the OS isn't windows, assume linux
108
- image=" ${KUBECTL_NODE_SHELL_IMAGE:- docker.io/ library/ alpine} "
115
+ default_image=" docker.io/library/alpine"
116
+ image=" ${custom_image:- ${KUBECTL_NODE_SHELL_IMAGE:- $default_image } } "
109
117
name=" nsenter"
110
118
pod=" ${name} -$( env LC_ALL=C tr -dc a-z0-9 < /dev/urandom | head -c 6) "
111
119
cmd_start=' "nsenter", "--target", "1", "--mount", "--uts", "--ipc", "--net", "--pid"'
183
191
trap " EC=\$ ?; $kubectl delete pod --wait=false $pod >&2 || true; exit \$ EC" EXIT INT TERM
184
192
185
193
echo " spawning \" $pod \" on \" $node \" " >&2
186
- $kubectl run --image " $image " --restart=Never --overrides=" $overrides " --labels=" $labels " --pod-running-timeout=" $pod_running_timeout " $( [ " $tty " = true ] && echo -t) -i " $pod " $generator
194
+ $kubectl run --image " $image " --restart=Never --overrides=" $overrides " --labels=" $labels " --pod-running-timeout=" $pod_running_timeout " $( [ " $tty " = true ] && echo -t) -i " $pod " $generator
0 commit comments