Skip to content

Latest commit

 

History

History
130 lines (96 loc) · 7.57 KB

File metadata and controls

130 lines (96 loc) · 7.57 KB

Pulumi Proxmox VE Provider

Buy Me A Coffee

A Pulumi package to manage Proxmox Virtual Environment (Proxmox VE) resources. This provider is built on the Terraform Proxmox Provider.

Installation

This package is available for multiple programming languages. Install using your preferred package manager:

Node.js (JavaScript/TypeScript)

npm install @muhlba91/pulumi-proxmoxve
# or
yarn add @muhlba91/pulumi-proxmoxve

Python

pip install pulumi-proxmoxve

Go

go get github.com/muhlba91/pulumi-proxmoxve/sdk/v6/go/proxmoxve

.NET

dotnet add package Pulumi.ProxmoxVE

Configuration

You must configure the provider with your Proxmox VE API credentials. Currently, you must explicitly pass configuration values to the provider constructor. You can use environment variables to manage these secrets:

Variable Description
PROXMOX_VE_ENDPOINT The API endpoint of your Proxmox VE server (e.g., https://pve.example.com:8006)
PROXMOX_VE_USERNAME Your Proxmox VE username
PROXMOX_VE_PASSWORD Your Proxmox VE password or API token
PROXMOX_VE_INSECURE Set to true to skip TLS certificate verification

Example Usage

TypeScript

import * as pulumi from '@pulumi/pulumi';
import * as proxmox from '@muhlba91/pulumi-proxmoxve';

// Initialize the Proxmox provider
const provider = new proxmox.Provider('proxmoxve', {
  endpoint: process.env.PROXMOX_VE_ENDPOINT,
  username: process.env.PROXMOX_VE_USERNAME,
  password: process.env.PROXMOX_VE_PASSWORD,
  insecure: process.env.PROXMOX_VE_INSECURE === 'true',
});

// Create a Virtual Machine
const vm = new proxmox.vm.VirtualMachine('my-vm', {
  nodeName: 'pve-node-1',
  // ... further configuration
}, { provider });

Migration

v7 to v8 (Breaking Changes)

Version 8 introduces a breaking change in how resources are named to align with the upstream Terraform provider's transition to the modern provider framework.

  • Standardized Resource Names: Due to the upstream provider introducing the proxmox_ prefix and standardizing resource identification, custom resource name and ID changes have been deprecated.
  • Legacy Namespacing: Resources that previously started with proxmox_virtual_environment_ have been moved to a Legacy naming format (e.g., proxmoxve:VM/virtualMachine:VirtualMachine is now proxmoxve:index/vmLegacy:VmLegacy).

You can migrate your existing stack by exporting the state, updating the resource tokens, and re-importing:

pulumi stack export > stack.json
# Example: updating the VirtualMachine resource token
sed -i 's/proxmoxve:VM\/virtualMachine:VirtualMachine/proxmoxve:index\/vmLegacy:VmLegacy/g' stack.json
pulumi stack import < stack.json

Reference

Contributors

Thanks goes to these wonderful people (emoji key):

Daniel Mühlbachler-Pietrzykowski
Daniel Mühlbachler-Pietrzykowski

🚧 💻 📖
Nelson Costa Martins
Nelson Costa Martins

💡
Guinevere Saenger
Guinevere Saenger

📖
Susan Evans
Susan Evans

📖
zamrih
zamrih

💻

This project follows the all-contributors specification. Contributions of any kind welcome!