#!/bin/bash # # Copyright (c) 2023 Intel Corporation # # SPDX-License-Identifier: Apache-2.0 set -o pipefail # General env SCRIPT_PATH=$(dirname "$(readlink -f "$0")") # shellcheck source=/dev/null source "${SCRIPT_PATH}/common_stability.bash" NUM_CONTAINERS="$1" # shellcheck disable=SC2034 TIMEOUT_LAUNCH="$2" PAYLOAD_ARGS="${PAYLOAD_ARGS:-tail -f /dev/null}" IMAGE="${IMAGE:-quay.io/prometheus/busybox:latest}" # Show help about this script help(){ cat << EOF Usage: $0 Description: This script launches n number of containers. Options: : Number of containers to run. : Timeout to launch the containers. EOF } function main() { # Verify enough arguments if [[ $# != 2 ]]; then echo >&2 "error: Not enough arguments [$*]" help exit 1 fi local i=0 local containers=() local not_started_count="${NUM_CONTAINERS}" clean_env_ctr # shellcheck disable=SC2154 sudo -E "${CTR_EXE}" i pull "${IMAGE}" info "Creating ${NUM_CONTAINERS} containers" for ((i=1; i<= "${NUM_CONTAINERS}"; i++)); do local name name=$(random_name) containers+=("${name}") # shellcheck disable=SC2154 sudo -E "${CTR_EXE}" run -d --runtime "${CTR_RUNTIME}" "${IMAGE}" "${containers[-1]}" sh -c "${PAYLOAD_ARGS}" ((not_started_count--)) info "${not_started_count} remaining containers" done # Check that the requested number of containers are running check_containers_are_up "${NUM_CONTAINERS}" # Check that the requested number of containers are running check_containers_are_running "${NUM_CONTAINERS}" clean_env_ctr } main "$@"