diff --git a/tasks/scripts/gateway-docker.sh b/tasks/scripts/gateway-docker.sh index 895d5a62fc..d7fd0d0332 100644 --- a/tasks/scripts/gateway-docker.sh +++ b/tasks/scripts/gateway-docker.sh @@ -183,7 +183,6 @@ signing_key_path = "${TLS_DIR}/jwt/signing.pem" public_key_path = "${TLS_DIR}/jwt/public.pem" kid_path = "${TLS_DIR}/jwt/kid" gateway_id = "${GATEWAY_NAME}" -ttl_secs = 3600 [openshell.drivers.docker] default_image = "${SANDBOX_IMAGE}" diff --git a/tasks/scripts/gateway-vm.sh b/tasks/scripts/gateway-vm.sh index 22ba1b039f..4bc6b78f41 100755 --- a/tasks/scripts/gateway-vm.sh +++ b/tasks/scripts/gateway-vm.sh @@ -335,7 +335,6 @@ signing_key_path = "${TLS_DIR}/jwt/signing.pem" public_key_path = "${TLS_DIR}/jwt/public.pem" kid_path = "${TLS_DIR}/jwt/kid" gateway_id = "${GATEWAY_NAME}" -ttl_secs = 3600 [openshell.drivers.vm] default_image = "${SANDBOX_IMAGE}" diff --git a/tasks/scripts/gateway.sh b/tasks/scripts/gateway.sh index 5d3adae2a8..4a9357232c 100644 --- a/tasks/scripts/gateway.sh +++ b/tasks/scripts/gateway.sh @@ -356,9 +356,15 @@ signing_key_path = "${TLS_DIR}/jwt/signing.pem" public_key_path = "${TLS_DIR}/jwt/public.pem" kid_path = "${TLS_DIR}/jwt/kid" gateway_id = "${GATEWAY_NAME}" -ttl_secs = 3600 EOF +# Kubernetes is a shared deployment, so its sandbox JWTs must expire. Local +# drivers omit ttl_secs and inherit the gateway's non-expiring default, so a +# sandbox restarted while the gateway is down can still reconnect. +if [[ "${DRIVER}" == "kubernetes" ]]; then + printf 'ttl_secs = 3600\n' >>"${CONFIG_PATH}" +fi + case "${DRIVER}" in kubernetes) cat >>"${CONFIG_PATH}" <