@@ -17,13 +17,25 @@ case $key in
17
17
echo " options:"
18
18
echo " -h, --help Show brief help"
19
19
echo " -i, --image use custom image"
20
+ echo " -r, --requests set resource requests for the debug container (e.g., CPU and memory)"
21
+ echo " -l, --limits set resource limit for the debug container (e.g., maximum CPU and memory)"
20
22
exit 0
21
23
;;
22
24
-i | --image)
23
25
image=" $2 "
24
26
shift # past argument
25
27
shift # past value
26
28
;;
29
+ -r|--requests)
30
+ requests=" $2 "
31
+ shift # past argument
32
+ shift # past value
33
+ ;;
34
+ -l|--limits)
35
+ limits=" $2 "
36
+ shift # past argument
37
+ shift # past value
38
+ ;;
27
39
* ) # unknown option
28
40
POSITIONAL+=(" $1 " )
29
41
shift # past argument
@@ -35,13 +47,39 @@ nodename="$1"
35
47
36
48
echo " Running on node '$nodename ' with image '$image '"
37
49
50
+ echo " Running with requests '$requests ' and limits '$limits '"
51
+
52
+ if [[ -n " ${requests} " ]]; then
53
+ request_json=$( echo $requests | awk ' BEGIN{FS="[=,]"}{printf "{\"%s\":\"%s\",\"%s\":\"%s\"}", $1, $2, $3, $4}' )
54
+ else
55
+ request_json=" {}"
56
+ fi
57
+
58
+ if [[ -n " ${limits} " ]]; then
59
+ limit_json=$( echo $limits | awk ' BEGIN{FS="[=,]"}{printf "{\"%s\":\"%s\",\"%s\":\"%s\"}", $1, $2, $3, $4}' )
60
+ else
61
+ limit_json=" {}"
62
+ fi
63
+
38
64
# sometime ns default is empty from this command so default if it is
39
65
namespace=$( kubectl config view --minify --output ' jsonpath={..namespace}' )
40
66
if [ -z " $namespace " ]; then namespace=" default" ; fi ;
41
67
68
+ podname=windows-debug-${RANDOM}
69
+
42
70
overrides=$( cat << -JSON
43
71
{
44
72
"spec": {
73
+ "containers": [
74
+ {
75
+ "name": "$podname ",
76
+ "image": "$image ",
77
+ "resources": {
78
+ "requests": $request_json ,
79
+ "limits": $limit_json
80
+ }
81
+ }
82
+ ],
45
83
"nodeName": "$nodename ",
46
84
"nodeSelector": {
47
85
"kubernetes.io/os": "windows"
@@ -58,9 +96,10 @@ overrides=$(cat <<-JSON
58
96
JSON
59
97
)
60
98
61
- kubectl run windows-debug- ${RANDOM} \
99
+ kubectl run $podname \
62
100
-it --rm -n $namespace --image $image \
63
101
--image-pull-policy=Always \
64
102
--restart=Never --overrides " $overrides " \
103
+ --override-type=strategic \
65
104
--pod-running-timeout=15m0s \
66
105
--command -- powershell
0 commit comments