Compare commits

...

3 Commits

Author SHA1 Message Date
a891109ee9 Merge pull request 'stage' (#28) from stage into master
Some checks failed
Terraform Apply / Terraform Apply (push) Has been cancelled
Reviewed-on: #28
2026-02-28 12:58:11 +00:00
0ea9888854 fix: include SSH key variable in destroy workflow
All checks were successful
Terraform Plan / Terraform Plan (push) Successful in 17s
Pass SSH_KEY_PUBLIC in secrets.auto.tfvars so terraform destroy plan no longer prompts for required cloud-init variable.
2026-02-28 12:56:51 +00:00
3261b18f37 improve: fail fast and surface guest-agent API errors
Some checks failed
Terraform Plan / Terraform Plan (push) Failing after 23s
Reduce agent wait timeout and print HTTP/auth errors during enrollment so hangs are visible and permission issues are diagnosable.
2026-02-28 12:52:15 +00:00
2 changed files with 11 additions and 3 deletions

View File

@@ -96,6 +96,7 @@ jobs:
import ssl
import sys
import time
import urllib.error
import urllib.parse
import urllib.request
@@ -145,7 +146,7 @@ jobs:
payload = resp.read().decode("utf-8")
return json.loads(payload)
def wait_for_guest_agent(vmid, timeout_seconds=300):
def wait_for_guest_agent(vmid, timeout_seconds=120):
deadline = time.time() + timeout_seconds
tries = 0
while time.time() < deadline:
@@ -155,8 +156,14 @@ jobs:
if res.get("data") == "pong":
print(f"Guest agent ready for vmid {vmid}", flush=True)
return True
except Exception:
pass
except urllib.error.HTTPError as exc:
detail = exc.read().decode("utf-8", "ignore")
print(f"Agent ping HTTP error for vmid {vmid}: {exc.code} {detail}", flush=True)
if exc.code in (401, 403):
return False
except Exception as exc:
if tries == 1:
print(f"Agent ping error for vmid {vmid}: {exc}", flush=True)
if tries % 6 == 0:
remaining = int(deadline - time.time())
print(f"Waiting for guest agent on vmid {vmid} ({remaining}s left)", flush=True)

View File

@@ -43,6 +43,7 @@ jobs:
run: |
cat > secrets.auto.tfvars << EOF
pm_api_token_secret = "${{ secrets.PM_API_TOKEN_SECRET }}"
SSH_KEY_PUBLIC = "$(printf '%s' "${{ secrets.SSH_KEY_PUBLIC }}" | tr -d '\r\n')"
EOF
cat > backend.hcl << EOF
bucket = "${{ secrets.B2_TF_BUCKET }}"