Skip to content

Commit 2813e2d

Browse files
committed
container debug options
1 parent e16c0dc commit 2813e2d

2 files changed

Lines changed: 23 additions & 0 deletions

File tree

.github/scripts/firesim-manager-entrypoint.sh

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,25 @@
11
#!/usr/bin/env bash
22
set -euo pipefail
33

4+
KEEP_CONTAINER_ON_ERROR="${KEEP_CONTAINER_ON_ERROR:-1}"
5+
6+
keep_container_on_error() {
7+
local rc="$?"
8+
if [ "${rc}" -ne 0 ] && [ "${KEEP_CONTAINER_ON_ERROR}" = "1" ]; then
9+
echo "Entrypoint failed with exit code ${rc}; keeping container alive for debugging." >&2
10+
echo "Inspect with: docker exec -it firesim-manager bash" >&2
11+
sleep infinity
12+
fi
13+
}
14+
15+
exit_immediately() {
16+
trap - EXIT
17+
exit 143
18+
}
19+
20+
trap keep_container_on_error EXIT
21+
trap exit_immediately INT TERM
22+
423
export USER=root
524
export LOGNAME=root
625
export HOME=/root

.github/scripts/launch-firesim-manager.sh

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@ root_volume_gb="${FIRESIM_MANAGER_ROOT_VOLUME_GB:-170}"
4747
remote_user="${FIRESIM_MANAGER_REMOTE_USER:-ubuntu}"
4848
remote_region="${FIRESIM_AWS_REGION:-${aws_region}}"
4949
detach_container="${FIRESIM_MANAGER_DETACH_CONTAINER:-0}"
50+
keep_container_on_error="${FIRESIM_MANAGER_KEEP_CONTAINER_ON_ERROR:-1}"
5051
firesim_build_security_group_name="${FIRESIM_AWS_SECURITY_GROUP_NAME:-chipyard-cicd-build-farm}"
5152

5253
vpc_name="${FIRESIM_MANAGER_VPC_NAME:-chipyard-cicd}"
@@ -395,6 +396,7 @@ write_runtime_env() {
395396
printf 'GHCR_USERNAME=%q\n' "${GHCR_USERNAME:-}"
396397
printf 'GHCR_TOKEN=%q\n' "${GHCR_TOKEN:-}"
397398
printf 'DETACH_CONTAINER=%q\n' "${detach_container}"
399+
printf 'KEEP_CONTAINER_ON_ERROR=%q\n' "${keep_container_on_error}"
398400
printf 'FIRESIM_AWS_VPC_NAME=%q\n' "${vpc_name}"
399401
printf 'FIRESIM_AWS_KEY_NAME=%q\n' "${key_name}"
400402
printf 'FIRESIM_AWS_SECURITY_GROUP_NAME=%q\n' "${firesim_build_security_group_name}"
@@ -462,6 +464,7 @@ set -euo pipefail
462464
463465
source /tmp/firesim-manager-runtime.env
464466
export IMAGE_REF GHCR_USERNAME GHCR_TOKEN DETACH_CONTAINER
467+
export KEEP_CONTAINER_ON_ERROR
465468
export FIRESIM_AWS_VPC_NAME FIRESIM_AWS_KEY_NAME FIRESIM_AWS_SECURITY_GROUP_NAME FIRESIM_AWS_MANAGER_SECURITY_GROUP_NAME FIRESIM_AWS_ALLOWED_CIDR
466469
467470
if command -v cloud-init >/dev/null 2>&1; then
@@ -507,6 +510,7 @@ docker_args=(
507510
-e "FIRESIM_AWS_SECURITY_GROUP_NAME=${FIRESIM_AWS_SECURITY_GROUP_NAME}"
508511
-e "FIRESIM_AWS_MANAGER_SECURITY_GROUP_NAME=${FIRESIM_AWS_MANAGER_SECURITY_GROUP_NAME}"
509512
-e "FIRESIM_AWS_ALLOWED_CIDR=${FIRESIM_AWS_ALLOWED_CIDR}"
513+
-e "KEEP_CONTAINER_ON_ERROR=${KEEP_CONTAINER_ON_ERROR}"
510514
)
511515
512516
if [ "${DETACH_CONTAINER}" = "1" ]; then

0 commit comments

Comments
 (0)