github.com/kata-containers/tests@v0.0.0-20240307153542-772105b56064/metrics/density/k8s-sysbench.sh (about) 1 #!/bin/bash 2 # 3 # Copyright (c) 2022 Intel Corporation 4 # 5 # SPDX-License-Identifier: Apache-2.0 6 7 set -o errexit 8 set -o nounset 9 set -o pipefail 10 11 SCRIPT_PATH=$(dirname "$(readlink -f "$0")") 12 13 source "${SCRIPT_PATH}/../../.ci/lib.sh" 14 source "${SCRIPT_PATH}/../lib/common.bash" 15 sysbench_file=$(mktemp sysbenchresults.XXXXXXXXXX) 16 TEST_NAME="${TEST_NAME:-sysbench}" 17 CI_JOB="${CI_JOB:-}" 18 IMAGE="docker.io/library/local-sysbench:latest" 19 DOCKERFILE="${SCRIPT_PATH}/sysbench-dockerfile/Dockerfile" 20 21 function remove_tmp_file() { 22 rm -rf "${sysbench_file}" 23 } 24 25 trap remove_tmp_file EXIT 26 27 function sysbench_memory() { 28 kubectl exec -i "$pod_name" -- sh -c "sysbench memory --threads=2 run" > "${sysbench_file}" 29 metrics_json_init 30 local memory_latency_sum=$(cat "$sysbench_file" | grep sum | cut -f2 -d':' | sed 's/[[:blank:]]//g') 31 metrics_json_start_array 32 local json="$(cat << EOF 33 { 34 "memory-latency-sum": { 35 "Result" : $memory_latency_sum, 36 "Units" : "ms" 37 } 38 } 39 EOF 40 )" 41 metrics_json_add_array_element "$json" 42 metrics_json_end_array "Results" 43 metrics_json_save 44 } 45 46 function sysbench_start_deployment() { 47 cmds=("bc" "jq") 48 check_cmds "${cmds[@]}" 49 50 # Check no processes are left behind 51 check_processes 52 53 if [ -z "${CI_JOB}" ]; then 54 # Start kubernetes 55 start_kubernetes 56 fi 57 58 export KUBECONFIG="$HOME/.kube/config" 59 export pod_name="test-sysbench" 60 61 kubectl create -f "${SCRIPT_PATH}/runtimeclass_workloads/sysbench-pod.yaml" 62 kubectl wait --for=condition=Ready --timeout=120s pod "$pod_name" 63 64 } 65 66 function sysbench_cleanup() { 67 kubectl delete pod "$pod_name" 68 if [ -z "${CI_JOB}" ]; then 69 end_kubernetes 70 check_processes 71 fi 72 } 73 74 function main() { 75 init_env 76 sysbench_start_deployment 77 sysbench_memory 78 sysbench_cleanup 79 } 80 81 main "$@"