How tsuyakashi/oci-proxmox-node works
This repository provisions a standalone Oracle Cloud ARM node running Proxmox VE, then configures it for LXC networking and Tailscale access. The main workflow is: import a Debian 13 ARM image, store credentials and configuration in Vault, apply Terraform, and let cloud-init install and configure Proxmox. The README documents these runtime stages and integrations; only the image-import script was sampled, so Terraform and bootstrap links below rely on the documented workflow and file tree.
Main entry points: bootstrap.sh.tpl Stage 2 setup · instance.tf OCI instance · network.tf OCI network resources · main.tf Node environment
Components 22
Image preparation
- OCI Object Storage
- Image importer
scripts/import-debian-image.py - OCI custom image
Terraform deployment
- Vault KV
- Vault policy setup
scripts/vault-policy-init.sh - Vault apply wrapper
scripts/vault-apply-wrapper.sh - Node environment
env/pve-node/main.tf - OCI network resources
mod/oci-pve-node/network.tf - OCI instance
mod/oci-pve-node/instance.tf - Deployment outputs
mod/oci-pve-node/outputs.tf
Host bootstrap
- Cloud-init bootstrap
mod/oci-pve-node/cloud-init/bootstrap.sh.tpl - Stage 1 setup
mod/oci-pve-node/cloud-init/bootstrap.sh.tpl - Stage 2 setup
mod/oci-pve-node/cloud-init/bootstrap.sh.tpl - Proxmox VE host
mod/oci-pve-node/cloud-init/bootstrap.sh.tpl - ZFS tank pool
mod/oci-pve-node/cloud-init/bootstrap.sh.tpl
Networking and access
- LXC NAT network
mod/oci-pve-node/cloud-init/bootstrap.sh.tpl - Tailscale connector
mod/oci-pve-node/cloud-init/bootstrap.sh.tpl - Proxmox web GUI
Other components
- Operator
- Debian ARM image
- Tailscale network
- Valheim traffic
Connections 26
- Operator → Debian ARM image: downloads
- Operator → OCI Object Storage: uploads
- OCI Object Storage → Image importer: provides image
- Image importer → OCI custom image: imports image
- Operator → Vault policy setup: initializes policy
- Operator → Vault KV: stores config
- Vault policy setup → Vault KV: configures access
- Vault KV → Vault apply wrapper: supplies variables
- Operator → Vault apply wrapper: sources wrapper
- Vault apply wrapper → Node environment: provides environment
- Node environment → OCI network resources: applies resources
- Node environment → OCI instance: applies resources
- OCI custom image → OCI instance: image input
- OCI network resources → OCI instance: network attachment
- OCI instance → Cloud-init bootstrap: runs bootstrap
- Cloud-init bootstrap → Stage 1 setup: starts
- Stage 1 setup → Stage 2 setup: reboots into
- Stage 2 setup → Proxmox VE host: installs
- Stage 2 setup → ZFS tank pool: creates pool
- Stage 2 setup → LXC NAT network: configures
- Stage 2 setup → Tailscale connector: installs and configures
- Tailscale connector → Tailscale network: advertises connector
- OCI instance → Deployment outputs: exposes values
- Tailscale network → Proxmox web GUI: provides private access
- Valheim traffic → OCI network resources: sends UDP traffic
- OCI network resources → LXC NAT network: forwards traffic