Skip to main content

A Pulumi package for creating and managing Proxmox Virtual Environment cloud resources.

Project description

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).
  • Standardized Resource IDs: Resources which have an id input exposed by the Terraform provider are consistently renamed to resourceId. In particular, this affects resources created using the Terraform provider framework.

State Migration

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

ID Migration

For resources that have an id input, you will need to update your code to use resourceId instead. For example:

// Example: updating a Vnet resource to use resourceId instead of id

// Before
const vnet = new proxmox.sdn.Vnet('my-vnet', {
  vnetId: '1',
  // ... further configuration
});

// After
const vnet = new proxmox.sdn.Vnet('my-vnet', {
  resourceId: '1',
  // ... further configuration
});

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!

Project details


Release history Release notifications | RSS feed

This version

8.0.0

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pulumi_proxmoxve-8.0.0.tar.gz (361.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pulumi_proxmoxve-8.0.0-py3-none-any.whl (655.4 kB view details)

Uploaded Python 3

File details

Details for the file pulumi_proxmoxve-8.0.0.tar.gz.

File metadata

  • Download URL: pulumi_proxmoxve-8.0.0.tar.gz
  • Upload date:
  • Size: 361.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for pulumi_proxmoxve-8.0.0.tar.gz
Algorithm Hash digest
SHA256 eb84690861e0b9ac085c1e6239b56ceacacde94611bbd77fea1735c5f7bea721
MD5 21c389830f3ef22fd64efb7c8a0fb685
BLAKE2b-256 f6aa21a6c54ac2dbadf6f98e69f40d570683ebd6202fbf970b3a469adc7b85bf

See more details on using hashes here.

Provenance

The following attestation bundles were made for pulumi_proxmoxve-8.0.0.tar.gz:

Publisher: release.yml on muhlba91/pulumi-proxmoxve

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pulumi_proxmoxve-8.0.0-py3-none-any.whl.

File metadata

File hashes

Hashes for pulumi_proxmoxve-8.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 dc23a3803d38fade4f4e2aaf8b8ae2b078dfd18cd0129651da2905388c6bb2aa
MD5 1681209ef92df23984e15f52185b2677
BLAKE2b-256 8d2ed8ca88455ff92010f9a09cf8bb42c8e3fb39cb6bd618e9d74e4e40805fa3

See more details on using hashes here.

Provenance

The following attestation bundles were made for pulumi_proxmoxve-8.0.0-py3-none-any.whl:

Publisher: release.yml on muhlba91/pulumi-proxmoxve

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page