-
Notifications
You must be signed in to change notification settings - Fork 177
Add replay-safe fixed lease IDs to the Proxmox provider #1847
Copy link
Copy link
Open
Labels
P2Normal priority bug or improvement with limited blast radius.Normal priority bug or improvement with limited blast radius.clawsweeper:needs-product-decisionClawSweeper marked this issue as needing a product or behavior decision.ClawSweeper marked this issue as needing a product or behavior decision.clawsweeper:needs-security-reviewClawSweeper marked this issue as needing security-sensitive review.ClawSweeper marked this issue as needing security-sensitive review.clawsweeper:no-new-fix-prClawSweeper does not recommend queueing a new automated fix PR for this issue.ClawSweeper does not recommend queueing a new automated fix PR for this issue.clawsweeper:source-reproClawSweeper found a high-confidence source-level issue reproduction.ClawSweeper found a high-confidence source-level issue reproduction.impact:otherThis issue has meaningful maintainer-visible impact outside the owned taxonomy.This issue has meaningful maintainer-visible impact outside the owned taxonomy.impact:securityThis issue is about security boundaries, credentials, authz, sandboxing, or sensitive data.This issue is about security boundaries, credentials, authz, sandboxing, or sensitive data.issue-rating: 🦞 diamond lobsterVery strong issue quality with high-confidence source-level or clear reproduction.Very strong issue quality with high-confidence source-level or clear reproduction.
Description
Activity
Metadata
Metadata
Assignees
Labels
P2Normal priority bug or improvement with limited blast radius.Normal priority bug or improvement with limited blast radius.clawsweeper:needs-product-decisionClawSweeper marked this issue as needing a product or behavior decision.ClawSweeper marked this issue as needing a product or behavior decision.clawsweeper:needs-security-reviewClawSweeper marked this issue as needing security-sensitive review.ClawSweeper marked this issue as needing security-sensitive review.clawsweeper:no-new-fix-prClawSweeper does not recommend queueing a new automated fix PR for this issue.ClawSweeper does not recommend queueing a new automated fix PR for this issue.clawsweeper:source-reproClawSweeper found a high-confidence source-level issue reproduction.ClawSweeper found a high-confidence source-level issue reproduction.impact:otherThis issue has meaningful maintainer-visible impact outside the owned taxonomy.This issue has meaningful maintainer-visible impact outside the owned taxonomy.impact:securityThis issue is about security boundaries, credentials, authz, sandboxing, or sensitive data.This issue is about security boundaries, credentials, authz, sandboxing, or sensitive data.issue-rating: 🦞 diamond lobsterVery strong issue quality with high-confidence source-level or clear reproduction.Very strong issue quality with high-confidence source-level or clear reproduction.
Type
Fields
Priority
None yet
Goal
Add replay-safe fixed lease IDs to the direct Proxmox provider so orchestrators can call
warmup --lease-id cbx_<12 hex>without weakening duplicate-allocation safeguards.Current behavior
The Proxmox backend implements ordinary SSH leases, but does not implement
IdempotentLeaseIDBackend. A fixed-ID warmup therefore fails before allocation with:The current acquire path generates a new lease ID and asks
/cluster/nextidfor every create. Proxmox's clone API already accepts an explicit targetnewid; the missing contract is durable binding and replay reconciliation in the provider.Architecture decision
Reuse Crabbox's existing fixed-lease framework used by direct providers. Do not use the slug as identity and do not derive a VMID by truncating/hashing the lease ID into an unchecked numeric range.
For a requested fixed lease ID:
newid.vmgenidagree.lease_id_conflict.Tests
Use strict test-first development. Cover at minimum:
lease_id_conflict;vmgenidfail closed;Documentation
Update the Proxmox provider and identifier documentation to list Proxmox among direct fixed-ID providers and describe its exact VMID/generation reconciliation contract.
Non-goals