A Pulumi package for creating and managing Proxmox Virtual Environment cloud resources.
Project description
Pulumi Proxmox VE Provider
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 aLegacynaming format (e.g.,proxmoxve:VM/virtualMachine:VirtualMachineis nowproxmoxve:index/vmLegacy:VmLegacy). - Standardized Resource IDs: Resources which have an
idinput exposed by the Terraform provider are consistently renamed toresourceId. 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
- Upstream Provider Reference: Terraform Proxmox Provider Documentation
- Proxmox API: Proxmox VE API Viewer
- Official Documentation: Proxmox VE Documentation
Contributors
Thanks goes to these wonderful people (emoji key):
Daniel Mühlbachler-Pietrzykowski 🚧 💻 📖 |
Nelson Costa Martins 💡 |
Guinevere Saenger 📖 |
Susan Evans 📖 |
zamrih 💻 |
This project follows the all-contributors specification. Contributions of any kind welcome!
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
eb84690861e0b9ac085c1e6239b56ceacacde94611bbd77fea1735c5f7bea721
|
|
| MD5 |
21c389830f3ef22fd64efb7c8a0fb685
|
|
| BLAKE2b-256 |
f6aa21a6c54ac2dbadf6f98e69f40d570683ebd6202fbf970b3a469adc7b85bf
|
Provenance
The following attestation bundles were made for pulumi_proxmoxve-8.0.0.tar.gz:
Publisher:
release.yml on muhlba91/pulumi-proxmoxve
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pulumi_proxmoxve-8.0.0.tar.gz -
Subject digest:
eb84690861e0b9ac085c1e6239b56ceacacde94611bbd77fea1735c5f7bea721 - Sigstore transparency entry: 1238693365
- Sigstore integration time:
-
Permalink:
muhlba91/pulumi-proxmoxve@7673a096730a0db4262a7866eb135305fde0931e -
Branch / Tag:
refs/heads/main - Owner: https://github.com/muhlba91
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@7673a096730a0db4262a7866eb135305fde0931e -
Trigger Event:
push
-
Statement type:
File details
Details for the file pulumi_proxmoxve-8.0.0-py3-none-any.whl.
File metadata
- Download URL: pulumi_proxmoxve-8.0.0-py3-none-any.whl
- Upload date:
- Size: 655.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
dc23a3803d38fade4f4e2aaf8b8ae2b078dfd18cd0129651da2905388c6bb2aa
|
|
| MD5 |
1681209ef92df23984e15f52185b2677
|
|
| BLAKE2b-256 |
8d2ed8ca88455ff92010f9a09cf8bb42c8e3fb39cb6bd618e9d74e4e40805fa3
|
Provenance
The following attestation bundles were made for pulumi_proxmoxve-8.0.0-py3-none-any.whl:
Publisher:
release.yml on muhlba91/pulumi-proxmoxve
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pulumi_proxmoxve-8.0.0-py3-none-any.whl -
Subject digest:
dc23a3803d38fade4f4e2aaf8b8ae2b078dfd18cd0129651da2905388c6bb2aa - Sigstore transparency entry: 1238693366
- Sigstore integration time:
-
Permalink:
muhlba91/pulumi-proxmoxve@7673a096730a0db4262a7866eb135305fde0931e -
Branch / Tag:
refs/heads/main - Owner: https://github.com/muhlba91
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@7673a096730a0db4262a7866eb135305fde0931e -
Trigger Event:
push
-
Statement type: