Add support for kpod kill
Kill one or more containers using a user-provided signal. If not signal is provided, KILL is used. Signed-off-by: baude <bbaude@redhat.com>
This commit is contained in:
parent
e2c87f515b
commit
7b062cf4c1
10 changed files with 322 additions and 0 deletions
86
test/kpod_kill.bats
Normal file
86
test/kpod_kill.bats
Normal file
|
@ -0,0 +1,86 @@
|
|||
#!/usr/bin/env bats
|
||||
|
||||
load helpers
|
||||
|
||||
ROOT="$TESTDIR/crio"
|
||||
RUNROOT="$TESTDIR/crio-run"
|
||||
KPOD_OPTIONS="--root $ROOT --runroot $RUNROOT ${STORAGE_OPTS} --runtime $RUNTIME_BINARY"
|
||||
function teardown() {
|
||||
cleanup_test
|
||||
}
|
||||
|
||||
function start_sleep_container () {
|
||||
pod_id=$(crioctl pod run --config "$TESTDATA"/sandbox_config.json)
|
||||
ctr_id=$(crioctl ctr create --config "$TESTDATA"/container_config_sleep.json --pod "$pod_id")
|
||||
crioctl ctr start --id "$ctr_id"
|
||||
}
|
||||
|
||||
@test "kill a bogus container" {
|
||||
run ${KPOD_BINARY} ${KPOD_OPTIONS} kill foobar
|
||||
echo "$output"
|
||||
[ "$status" -ne 0 ]
|
||||
}
|
||||
|
||||
@test "kill a running container by id" {
|
||||
start_crio
|
||||
${KPOD_BINARY} ${KPOD_OPTIONS} pull docker.io/library/busybox:latest
|
||||
ctr_id=$( start_sleep_container )
|
||||
crioctl ctr status --id "$ctr_id"
|
||||
${KPOD_BINARY} ${KPOD_OPTIONS} ps -a
|
||||
${KPOD_BINARY} ${KPOD_OPTIONS} logs "$ctr_id"
|
||||
crioctl ctr status --id "$ctr_id"
|
||||
run ${KPOD_BINARY} ${KPOD_OPTIONS} kill "$ctr_id"
|
||||
echo "$output"
|
||||
[ "$status" -eq 0 ]
|
||||
cleanup_ctrs
|
||||
cleanup_pods
|
||||
stop_crio
|
||||
}
|
||||
|
||||
@test "kill a running container by id with TERM" {
|
||||
start_crio
|
||||
${KPOD_BINARY} ${KPOD_OPTIONS} pull docker.io/library/busybox:latest
|
||||
ctr_id=$( start_sleep_container )
|
||||
crioctl ctr status --id "$ctr_id"
|
||||
${KPOD_BINARY} ${KPOD_OPTIONS} ps -a
|
||||
${KPOD_BINARY} ${KPOD_OPTIONS} logs "$ctr_id"
|
||||
crioctl ctr status --id "$ctr_id"
|
||||
run ${KPOD_BINARY} ${KPOD_OPTIONS} kill -s TERM "$ctr_id"
|
||||
echo "$output"
|
||||
[ "$status" -eq 0 ]
|
||||
cleanup_ctrs
|
||||
cleanup_pods
|
||||
stop_crio
|
||||
}
|
||||
|
||||
@test "kill a running container by name" {
|
||||
start_crio
|
||||
${KPOD_BINARY} ${KPOD_OPTIONS} pull docker.io/library/busybox:latest
|
||||
ctr_id=$( start_sleep_container )
|
||||
crioctl ctr status --id "$ctr_id"
|
||||
${KPOD_BINARY} ${KPOD_OPTIONS} ps -a
|
||||
${KPOD_BINARY} ${KPOD_OPTIONS} logs "$ctr_id"
|
||||
crioctl ctr status --id "$ctr_id"
|
||||
${KPOD_BINARY} ${KPOD_OPTIONS} ps -a
|
||||
run ${KPOD_BINARY} ${KPOD_OPTIONS} kill "k8s_container999_podsandbox1_redhat.test.crio_redhat-test-crio_1"
|
||||
echo "$output"
|
||||
[ "$status" -eq 0 ]
|
||||
cleanup_ctrs
|
||||
cleanup_pods
|
||||
stop_crio
|
||||
}
|
||||
|
||||
@test "kill a running container by id with a bogus signal" {
|
||||
start_crio
|
||||
${KPOD_BINARY} ${KPOD_OPTIONS} pull docker.io/library/busybox:latest
|
||||
ctr_id=$( start_sleep_container )
|
||||
crioctl ctr status --id "$ctr_id"
|
||||
${KPOD_BINARY} ${KPOD_OPTIONS} logs "$ctr_id"
|
||||
crioctl ctr status --id "$ctr_id"
|
||||
run ${KPOD_BINARY} ${KPOD_OPTIONS} kill -s foobar "$ctr_id"
|
||||
echo "$output"
|
||||
[ "$status" -ne 0 ]
|
||||
cleanup_ctrs
|
||||
cleanup_pods
|
||||
stop_crio
|
||||
}
|
71
test/testdata/container_config_sleep.json
vendored
Normal file
71
test/testdata/container_config_sleep.json
vendored
Normal file
|
@ -0,0 +1,71 @@
|
|||
{
|
||||
"metadata": {
|
||||
"name": "container999",
|
||||
"attempt": 1
|
||||
},
|
||||
"image": {
|
||||
"image": "docker.io/library/busybox:latest"
|
||||
},
|
||||
"command": [
|
||||
"sleep",
|
||||
"9999"
|
||||
],
|
||||
"args": [],
|
||||
"working_dir": "/",
|
||||
"envs": [
|
||||
{
|
||||
"key": "PATH",
|
||||
"value": "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
|
||||
},
|
||||
{
|
||||
"key": "TERM",
|
||||
"value": "xterm"
|
||||
},
|
||||
{
|
||||
"key": "TESTDIR",
|
||||
"value": "test/dir1"
|
||||
},
|
||||
{
|
||||
"key": "TESTFILE",
|
||||
"value": "test/file1"
|
||||
}
|
||||
],
|
||||
"labels": {
|
||||
"type": "small",
|
||||
"batch": "no"
|
||||
},
|
||||
"annotations": {
|
||||
"owner": "dragon",
|
||||
"daemon": "crio"
|
||||
},
|
||||
"privileged": true,
|
||||
"log_path": "",
|
||||
"stdin": false,
|
||||
"stdin_once": false,
|
||||
"tty": false,
|
||||
"linux": {
|
||||
"resources": {
|
||||
"cpu_period": 10000,
|
||||
"cpu_quota": 20000,
|
||||
"cpu_shares": 512,
|
||||
"oom_score_adj": 30
|
||||
},
|
||||
"security_context": {
|
||||
"readonly_rootfs": false,
|
||||
"selinux_options": {
|
||||
"user": "system_u",
|
||||
"role": "system_r",
|
||||
"type": "svirt_lxc_net_t",
|
||||
"level": "s0:c4,c5"
|
||||
},
|
||||
"capabilities": {
|
||||
"add_capabilities": [
|
||||
"setuid",
|
||||
"setgid"
|
||||
],
|
||||
"drop_capabilities": [
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue