Conversation
- Add comprehensive multi-session workspace management section to AGENTS.md - Document automatic worktree creation workflow for concurrent sessions - Include session initialization with unique timestamp-based naming - Add automatic cleanup workflow after PR merge - Document worktree management commands and troubleshooting - Support up to 10 concurrent isolated OpenCode sessions - Update session workflow to integrate worktree creation - Migrate main repository to ~/workspace/onctl for consistency
- Merged latest changes from main branch - Made TLS verification configurable via proxmox.insecure setting - Default to secure TLS (verify certificates) - Added error handling in provider initialization - Added insecure option to proxmox.yaml config template
|
Review the following changes in direct dependencies. Learn more about Socket for GitHub.
|
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: a8bc9fcc50
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| _, err := p.Client.GetVmInfo(ctx, vmRef) | ||
| if err == nil { | ||
| log.Println("VM already exists with ID:", vmID) | ||
| return p.getVMInfo(vmRef, server.Name) |
There was a problem hiding this comment.
Return error when target VM ID is already occupied
When proxmox.vm.id already exists, Deploy treats it as a successful create and returns that VM (getVMInfo) instead of failing. In the create workflow this means onctl can skip cloning and then continue SSH/apply steps against an unrelated existing VM that happens to have that ID, which is a high-impact mis-targeting scenario whenever IDs collide.
Useful? React with 👍 / 👎.
internal/cloud/proxmox.go
Outdated
| vmRef := pxapi.NewVmRef(pxapi.GuestID(vmID)) | ||
| vmRef.SetNode(viper.GetString("proxmox.node")) |
There was a problem hiding this comment.
Use VM's actual node when issuing destroy calls
Destroy always sets vmRef to proxmox.node from config, even when the VM was discovered elsewhere (for example after migration or config drift). In those common cluster cases, stop/delete calls are sent to the wrong node and destruction fails for a valid VM name/ID.
Useful? React with 👍 / 👎.
| if server.CloudInitFile != "" { | ||
| config["ciuser"] = viper.GetString("proxmox.vm.username") |
There was a problem hiding this comment.
Apply provided cloud-init content during Proxmox deploy
The Proxmox deploy path checks server.CloudInitFile but only sets ciuser; it never reads or attaches the provided cloud-init file, so onctl create --cloud-init ... is effectively ignored for this provider. This silently drops user bootstrap configuration that callers expect Deploy to apply (as done by other providers).
Useful? React with 👍 / 👎.
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #790 +/- ##
==========================================
- Coverage 11.54% 11.49% -0.06%
==========================================
Files 36 38 +2
Lines 3093 3298 +205
==========================================
+ Hits 357 379 +22
- Misses 2693 2874 +181
- Partials 43 45 +2 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
- Replace p.Client.CloneQemuVm with sourceVmr.CloneQemu (new VmRef API) - Replace p.Client.StopVm with vmRef.Stop (new VmRef API) - Replace p.Client.DeleteVm with vmRef.Delete (new VmRef API) - Replace MD5 with SHA-256 for SSH key fingerprinting - Add bounds check on VM ID integer conversion (ParseUint instead of Atoi) - Make InsecureSkipVerify configurable via PROXMOX_INSECURE_SKIP_VERIFY env var
…ove codecov patch coverage
Summary
This PR adds Proxmox Virtual Environment as a new cloud provider to onctl, enabling users to manage VMs on self-hosted Proxmox infrastructure.
Changes
proxmox.insecuresetting)Key Features
Configuration
Environment Variables
PROXMOX_API_URL- Proxmox API endpointPROXMOX_TOKEN_ID- API token IDPROXMOX_SECRET- API token secretONCTL_CLOUD=proxmoxTesting
Related Issues
Closes #715 (supersedes original PR)