|
431 | 431 | create_containerd_config "${containerd_runtime_test}"
|
432 | 432 | }
|
433 | 433 |
|
| 434 | +TestContainerGuestApparmor() { |
| 435 | + info "Test container guest AppArmor" |
| 436 | + |
| 437 | + original_image=$(sudo sed -n 's/^image = \(.*\)/\1/p' ${kata_config}) |
| 438 | + sudo sed -i "/image =/c image = "\"${KATA_APPARMOR_IMAGE}\""" "${kata_config}" |
| 439 | + sudo sed -i '/^disable_guest_apparmor/ s/true/false/g' "${kata_config}" |
| 440 | + sudo sed -i 's/^#\(debug_console_enabled\).*=.*$/\1 = true/g' "${kata_config}" |
| 441 | + |
| 442 | + local container_yaml="${REPORT_DIR}/container.yaml" |
| 443 | + local image="busybox:latest" |
| 444 | + cat << EOF > "${container_yaml}" |
| 445 | +metadata: |
| 446 | + name: busybox-apparmor |
| 447 | +image: |
| 448 | + image: "$image" |
| 449 | +command: |
| 450 | +- top |
| 451 | +EOF |
| 452 | + |
| 453 | + testContainerStart 1 |
| 454 | + |
| 455 | + info "check kata-runtime exec" |
| 456 | + aa_status=$(expect -c " |
| 457 | + spawn -noecho kata-runtime exec $podid |
| 458 | + expect "root@localhost:/#" |
| 459 | + send \"aa-status\n\" |
| 460 | + expect "root@localhost:/#" |
| 461 | + send \"exit\n\" |
| 462 | + expect eof |
| 463 | + ") |
| 464 | + echo "aa-status results:" |
| 465 | + echo "${aa_status}" |
| 466 | + ret=$(echo "$aa_status" | grep "/pause.*kata-default" || true) |
| 467 | + [ -n "$ret" ] || die "not found /pause kata-default profile" |
| 468 | + ret=$(echo "$aa_status" | grep "/bin/top.*kata-default" || true) |
| 469 | + [ -n "$ret" ] || die "not found /bin/top kata-default profile" |
| 470 | +
|
| 471 | + info "check crictl exec" |
| 472 | + sudo -E crictl exec $cid sleep 10 & |
| 473 | +
|
| 474 | + aa_status=$(expect -c " |
| 475 | + spawn -noecho kata-runtime exec $podid |
| 476 | + expect "root@localhost:/#" |
| 477 | + send \"aa-status\n\" |
| 478 | + expect "root@localhost:/#" |
| 479 | + send \"exit\n\" |
| 480 | + expect eof |
| 481 | + ") |
| 482 | + echo "aa-status results:" |
| 483 | + echo "${aa_status}" |
| 484 | + ret=$(echo "$aa_status" | grep "/bin/sleep.*kata-default" || true) |
| 485 | + [ -n "$ret" ] || die "not found /bin/sleep kata-default profile" |
| 486 | +
|
| 487 | + testContainerStop |
| 488 | +
|
| 489 | + sudo sed -i '/^disable_guest_apparmor/ s/false/true/g' "${kata_config}" |
| 490 | + sudo sed -i "/image =/c image = "\"${original_image}\""" "$kata_config" |
| 491 | +} |
| 492 | +
|
434 | 493 | # k8s may restart docker which will impact on containerd stop
|
435 | 494 | stop_containerd() {
|
436 | 495 | local tmp=$(pgrep kubelet || true)
|
@@ -509,6 +568,8 @@ main() {
|
509 | 568 | TestContainerMemoryUpdate 0
|
510 | 569 | fi
|
511 | 570 |
|
| 571 | + TestContainerGuestApparmor |
| 572 | +
|
512 | 573 | TestKilledVmmCleanup
|
513 | 574 |
|
514 | 575 | popd
|
|
0 commit comments