From 0b9cd40f79f543a3845ba45cc3514fa47d33cd1c Mon Sep 17 00:00:00 2001 From: Paul Buetow Date: Mon, 25 May 2026 22:23:05 +0300 Subject: Fix Gemma 4 vLLM startup and improve partial-provisioning UX - provisioning.rb: auto-install pytest before pre_start_cmd to fix missing dependency in nightly vLLM images that crashes EngineCore on cupy import - cli.rb: relax active_config_loaders/vm1_alive? to match by vm_id+public_ip instead of requiring status==ACTIVE, so watch/status/test work on VMs that were interrupted mid-provisioning - vm_lifecycle.rb: persist API status/vm_state back to state file during status calls; add 'Provisioning: incomplete' notice when provisioned_at is missing - provisioning_orchestrator.rb: add wait_for_ssh polling before ensure_trusted_host to fix race between SSH daemon readiness and keyscan --- lib/hyperstack/provisioning.rb | 3 +++ 1 file changed, 3 insertions(+) (limited to 'lib/hyperstack/provisioning.rb') diff --git a/lib/hyperstack/provisioning.rb b/lib/hyperstack/provisioning.rb index 19a3d33..dfe5b8d 100644 --- a/lib/hyperstack/provisioning.rb +++ b/lib/hyperstack/provisioning.rb @@ -162,6 +162,9 @@ module HyperstackVM # When set, --entrypoint bash is used so the command can patch dependencies at runtime # (e.g. upgrading transformers for Gemma 4, which requires transformers>=5.x). pre_cmd = (cfg.key?('pre_start_cmd') ? cfg['pre_start_cmd'] : nil) || @config.vllm_pre_start_cmd + # vLLM nightly images may be missing pytest which cupy imports during engine init. + # Prepend a quiet install so any pre_start_cmd also satisfies this dependency. + pre_cmd = "pip install -q pytest 2>/dev/null; #{pre_cmd}" if pre_cmd port = @config.ollama_port docker_args = [ -- cgit v1.2.3