Skip to content

feat: convert proxmox-vm to Crossplane v2 with OpenTofu provider#53

Merged
patrick-hermann-sva merged 1 commit intomainfrom
feat/proxmox-vm-v2
Apr 9, 2026
Merged

feat: convert proxmox-vm to Crossplane v2 with OpenTofu provider#53
patrick-hermann-sva merged 1 commit intomainfrom
feat/proxmox-vm-v2

Conversation

@patrick-hermann-sva
Copy link
Copy Markdown
Contributor

Summary

  • Convert XRD from v1 to v2 (Namespaced scope, Foreground delete, no claim/composite split)
  • Rename kind from XProxmoxVM/ProxmoxVM (claim) to just ProxmoxVM (XR)
  • Migrate composition from tf.upbound.io/v1beta1 to opentofu.m.upbound.io/v1beta1
  • Add providerRef.kind support (ProviderConfig vs ClusterProviderConfig)
  • Bump Terraform module from v2.9.14-1.5.5 to 3.0.2-rc08-20260407
  • Align directory structure with project conventions (compositions/, definition.yaml typo)
  • Full README rewrite with prerequisites (ClusterProviderConfig, tfvars secret, RBAC)

Changes from old proxmox-vm

Aspect Before After
XRD apiVersion v1 v2
Kind XProxmoxVM (claim: ProxmoxVM) ProxmoxVM
Workspace API tf.upbound.io/v1beta1 opentofu.m.upbound.io/v1beta1
TF module v2.9.14-1.5.5 3.0.2-rc08-20260407
Provider config tf ProviderConfig opentofu.m ClusterProviderConfig
Crossplane version >=v1.14.1 >=2.13.0

Test plan

  • Apply XRD + composition to cluster
  • Create Proxmox tfvars secret and ClusterProviderConfig
  • Create test ProxmoxVM XR and verify VM provisioning
  • Verify IP output in status.share.ip
  • Delete XR and verify VM destruction

🤖 Generated with Claude Code

- XRD: v1→v2, add Foreground delete policy, Namespaced scope
- Rename kind XProxmoxVM→ProxmoxVM (no more claim/composite split)
- Composition: tf.upbound.io→opentofu.m.upbound.io, add providerRef.kind
- Bump TF module from v2.9.14-1.5.5 to 3.0.2-rc08-20260407
- Move composition to compositions/, fix definition.yaml typo
- Rewrite README with prerequisites (ClusterProviderConfig, RBAC, SOPS)
- Update provider-config to opentofu.m ClusterProviderConfig
- Remove obsolete namespace.yaml and claim-based examples

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant